Преглед на файлове

[공통][Common] API 버전별 레이아웃 대응 이슈 테스트 중

Hasemi преди 7 години
родител
ревизия
69fa632ed9

+ 14 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ActivityBase.java

@@ -87,11 +87,21 @@ public abstract class ActivityBase extends AppCompatActivity implements IHelperP
       FullScreenWithKeyBoardLayout.assistActivity(this);
 
       //소프트키 있을 경우 판별하여 레이아웃 조절
-//      Log.e("APP#  ActivityBase | onCreate", "|" + "AppUtil.hasNavBar(): " + AppUtil.hasNavBar());
-//      Log.e("APP#  ActivityBase | onCreate", "|" + "ResourceUtil.getNavBarHeightValue(): " + ResourceUtil.getNavBarHeightValue());
-//      Log.e("APP#  ActivityBase | onCreate", "|" + "ResourceUtil.getNavBarHeight(): " + ResourceUtil.getNavBarHeight());
+      Log.e("APP#  ActivityBase | onCreate", "|" + "AppUtil.hasNavBar(): " + AppUtil.hasNavBar());
+      Log.e("APP#  ActivityBase | onCreate", "|" + "ResourceUtil.getNavBarHeightValue(): " + ResourceUtil.getNavBarHeightValue());
+      Log.e("APP#  ActivityBase | onCreate", "|" + "ResourceUtil.getNavBarHeight(): " + ResourceUtil.getNavBarHeight());
+
+
       if (AppUtil.hasNavBar() || ResourceUtil.getNavBarHeight() > 0) {
-        findViewById(R.id.layout_container).setPadding(0, 0, 0, ResourceUtil.getNavBarHeightValue());
+
+        int paddingBottom = ResourceUtil.getNavBarHeightValue();
+
+        if (AppUtil.isFullScreenVersion()) {
+          paddingBottom = paddingBottom + ResourceUtil.getStatusBarHeight();
+        }
+        findViewById(R.id.layout_container).setPadding(0, 0, 0, paddingBottom);
+
+
       }
 
       // 상단 스테이터스바 높이 패딩 액션바에 더해줌

+ 2 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/application/App.java

@@ -5,11 +5,11 @@ package kr.co.zumo.app.lifeplus.application;
 
 import android.content.Context;
 import android.support.multidex.MultiDexApplication;
-import android.os.Build;
 import android.util.Log;
 
 import kr.co.zumo.app.BuildConfig;
 import kr.co.zumo.app.lifeplus.supervisor.TypefaceUtil;
+import kr.co.zumo.app.lifeplus.util.AppUtil;
 
 /**
  * 어플리케이션 클래스
@@ -46,7 +46,7 @@ public class App extends MultiDexApplication {
     /**
      * font init
      */
-    if(Build.VERSION.SDK_INT >= 23) {
+    if(AppUtil.isFullScreenVersion())  {
       new TypefaceUtil().init(getContext());
     }
 

+ 3 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/helper/ActionBarHelper.java

@@ -2,7 +2,6 @@ package kr.co.zumo.app.lifeplus.helper;
 
 import android.animation.ObjectAnimator;
 import android.app.Activity;
-import android.os.Build;
 import android.support.annotation.IntRange;
 import android.support.constraint.ConstraintLayout;
 import android.support.design.widget.AppBarLayout;
@@ -20,6 +19,7 @@ import java.util.ArrayList;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.supervisor.AnimatorManager;
+import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.CustomHeaderBehavior;
 
@@ -378,7 +378,7 @@ public class ActionBarHelper extends Helper {
    * API 버전별 full screen 시 status bar color 색 변경
    */
   private void setStatusBarOpaqueColor() {
-    if (Build.VERSION.SDK_INT >= 23) {
+    if (AppUtil.isFullScreenVersion()) {
       StatusBarCompat.setStatusBarColor(activity, ResourceUtil.getColor(R.color.CF2FFFFFF));
     }
     else {
@@ -387,7 +387,7 @@ public class ActionBarHelper extends Helper {
   }
 
   private void setStatusBarTranslucentColor() {
-    if (Build.VERSION.SDK_INT >= 23) {
+    if (AppUtil.isFullScreenVersion()) {
       StatusBarCompat.setStatusBarColor(activity, ResourceUtil.getColor(R.color.C33000000));
     }
     else {

+ 6 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/helper/ScreenSizeHelper.java

@@ -9,6 +9,9 @@ import android.util.Log;
 import android.view.Display;
 import android.view.WindowManager;
 
+import kr.co.zumo.app.lifeplus.util.AppUtil;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
+
 /**
  * ScreenSizeHelper
  * - activity 별로 스크린 사이즈를 관리
@@ -52,6 +55,9 @@ public class ScreenSizeHelper extends Helper {
     Log.w("APP# ScreenSizeHelper | init", "|" + " SCREEN W: " + width + ", H: " + height);
     screenWidth = width;
     screenHeight = height;
+    if (false == AppUtil.isFullScreenVersion()) {
+      screenHeight = screenHeight - ResourceUtil.getStatusBarHeight();
+    }
   }
 
 

+ 22 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/util/AppUtil.java

@@ -118,4 +118,26 @@ public class AppUtil {
     return (!(hasKeys[0] && hasKeys[1]));
   }
 
+  /**
+   * API 기준버전(22) 이상인지 확인
+   */
+  public static boolean isFullScreenVersion() {
+
+    boolean isFullScreenVersion;
+    int targetVersion = 23;
+
+    if (AppUtil.isDebug()) {
+      targetVersion = 24;
+    }
+
+    if (Build.VERSION.SDK_INT >= targetVersion) {
+      isFullScreenVersion = true;
+    }
+    else {
+      isFullScreenVersion = false;
+    }
+
+    return isFullScreenVersion;
+  }
+
 }

+ 1 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/util/ResourceUtil.java

@@ -13,7 +13,6 @@ import android.support.annotation.DrawableRes;
 import android.support.annotation.IdRes;
 import android.support.annotation.StringRes;
 import android.support.v4.content.ContextCompat;
-import android.os.Build;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.util.TypedValue;
@@ -160,7 +159,7 @@ public class ResourceUtil {
    */
   public static int getStatusBarHeightManual() {
     int statusBarHeight = 0;
-    if (Build.VERSION.SDK_INT >= 23) {
+    if (AppUtil.isFullScreenVersion()) {
       statusBarHeight = getStatusBarHeight();
     }
     return statusBarHeight;

+ 12 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/OverviewTooltip.java

@@ -8,6 +8,8 @@ import android.view.View;
 import android.widget.FrameLayout;
 
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.util.AppUtil;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IEventListener;
 
@@ -36,8 +38,17 @@ public class OverviewTooltip {
     LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     View view = inflater.inflate(R.layout.dialog_tool_tip, null);
     ConstraintLayout layoutTooltip = view.findViewById(R.id.over_view_dialog);
-
     frameLayout.addView(view);
+
+    /**
+     * API 22 이하 부터 status bar로 인한 레이아웃 분기 처리
+     */
+    if (false == AppUtil.isFullScreenVersion()) {
+      ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) layoutTooltip.getLayoutParams();
+      layoutParams.setMargins(0, layoutParams.topMargin - ResourceUtil.getStatusBarHeight(), 0, 0);
+      layoutTooltip.setLayoutParams(layoutParams);
+    }
+
     layoutTooltip.setOnClickListener(view1 -> {
       listener.onEvent(new Event.Builder(Event.OVER_VIEW).build());
       frameLayout.removeView(view);

+ 1 - 1
app/src/main/res/layout/dialog_tool_tip.xml

@@ -39,13 +39,13 @@
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginStart="5dp"
+      android:layout_marginTop="4dp"
       android:layout_marginEnd="17dp"
       android:gravity="center_horizontal"
       android:lineSpacingExtra="2sp"
       android:text="@string/overview"
       android:textColor="@color/C000000"
       android:textSize="12dp"
-      android:layout_marginTop="4dp"
       android:textStyle="bold"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"

+ 1 - 1
app/src/main/res/values/styles.xml

@@ -23,7 +23,7 @@
     <item name="android:windowBackground">@color/CFFFFFF</item>
     <item name="android:windowContentOverlay">@null</item>
     <!--<item name="android:windowTranslucentStatus">true</item>-->
-    <item name="android:windowTranslucentNavigation">true</item>
+    <!--<item name="android:windowTranslucentNavigation">true</item>-->
 
     <!--<item name="android:windowFullscreen">true</item>-->
     <item name="android:fontFamily">@font/font_droid_sans</item> <!-- Custom Toast 에 적용이 안된다. -->