OSDN Git Service

Fix length of Taskbar when navbar buttons are enabled
authorBraden Farmer <farmerbb@gmail.com>
Sun, 2 Apr 2017 02:48:01 +0000 (20:48 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Sun, 2 Apr 2017 02:48:01 +0000 (20:48 -0600)
app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java
app/src/main/java/com/farmerbb/taskbar/util/U.java
app/src/main/res/layout/taskbar_left.xml
app/src/main/res/layout/taskbar_right.xml
app/src/main/res/layout/taskbar_top_vertical.xml
app/src/main/res/layout/taskbar_vertical.xml
app/src/main/res/values/dimens.xml

index 5ef5301..dbb9a71 100644 (file)
@@ -124,6 +124,7 @@ public class TaskbarService extends Service {
     private boolean showHideAutomagically = false;
     private boolean positionIsVertical = false;
     private boolean dashboardEnabled = false;
+    private boolean navbarButtonsEnabled = false;
 
     private List<String> currentTaskbarIds = new ArrayList<>();
     private int numOfPinnedApps = -1;
@@ -375,9 +376,6 @@ public class TaskbarService extends Service {
         } else
             dashboardButton.setVisibility(View.GONE);
 
-
-        boolean navbarButtonsEnabled = false;
-
         if(pref.getBoolean("button_back", false)) {
             navbarButtonsEnabled = true;
 
@@ -417,11 +415,8 @@ public class TaskbarService extends Service {
             }
         }
 
-        if(dashboardEnabled && navbarButtonsEnabled) {
-            LinearLayout.LayoutParams params2 = (LinearLayout.LayoutParams) dashboardButton.getLayoutParams();
-            params2.setMargins(0, 0, 0, 0);
-            dashboardButton.setLayoutParams(params2);
-        }
+        if(!navbarButtonsEnabled)
+            navbarButtons.setVisibility(View.GONE);
 
         layout.setBackgroundColor(backgroundTint);
         layout.findViewById(R.id.divider).setBackgroundColor(accentColor);
@@ -759,13 +754,13 @@ public class TaskbarService extends Service {
                             float maxScreenSize = metrics.heightPixels - U.getStatusBarHeight(TaskbarService.this);
 
                             params.height = (int) Math.min(getResources().getDimensionPixelSize(R.dimen.icon_size) * numOfEntries,
-                                    maxScreenSize - getResources().getDimensionPixelSize(dashboardEnabled ? R.dimen.base_taskbar_size_dashboard : R.dimen.base_taskbar_size))
+                                    maxScreenSize - U.getBaseTaskbarSize(TaskbarService.this))
                                     + getResources().getDimensionPixelSize(R.dimen.divider_size);
                         } else {
                             float maxScreenSize = metrics.widthPixels;
 
                             params.width = (int) Math.min(getResources().getDimensionPixelSize(R.dimen.icon_size) * numOfEntries,
-                                    maxScreenSize - getResources().getDimensionPixelSize(dashboardEnabled ? R.dimen.base_taskbar_size_dashboard : R.dimen.base_taskbar_size))
+                                    maxScreenSize - U.getBaseTaskbarSize(TaskbarService.this))
                                     + getResources().getDimensionPixelSize(R.dimen.divider_size);
                         }
 
@@ -840,11 +835,13 @@ public class TaskbarService extends Service {
         if(startButton.getVisibility() == View.GONE) {
             startButton.setVisibility(View.VISIBLE);
             space.setVisibility(View.VISIBLE);
-            navbarButtons.setVisibility(View.VISIBLE);
 
             if(dashboardEnabled)
                 dashboardButton.setVisibility(View.VISIBLE);
 
+            if(navbarButtonsEnabled)
+                navbarButtons.setVisibility(View.VISIBLE);
+
             if(isShowingRecents && scrollView.getVisibility() == View.GONE)
                 scrollView.setVisibility(View.INVISIBLE);
 
@@ -862,11 +859,13 @@ public class TaskbarService extends Service {
         if(startButton.getVisibility() == View.VISIBLE) {
             startButton.setVisibility(View.GONE);
             space.setVisibility(View.GONE);
-            navbarButtons.setVisibility(View.GONE);
 
             if(dashboardEnabled)
                 dashboardButton.setVisibility(View.GONE);
 
+            if(navbarButtonsEnabled)
+                navbarButtons.setVisibility(View.GONE);
+
             if(isShowingRecents) {
                 scrollView.setVisibility(View.GONE);
             }
index e77895d..89b0a77 100644 (file)
@@ -672,7 +672,7 @@ public class U {
     private static int getMaxNumOfColumns(Context context) {
         SharedPreferences pref = getSharedPreferences(context);
         DisplayMetrics metrics = context.getResources().getDisplayMetrics();
-        float baseTaskbarSize = context.getResources().getDimension(pref.getBoolean("dashboard", false) ? R.dimen.base_taskbar_size_dashboard : R.dimen.base_taskbar_size) / metrics.density;
+        float baseTaskbarSize = getBaseTaskbarSizeFloat(context) / metrics.density;
         int numOfColumns = 0;
 
         float maxScreenSize = getTaskbarPosition(context).contains("vertical")
@@ -925,4 +925,37 @@ public class U {
         } else
             context.startActivity(intent, options);
     }
+
+    public static int getBaseTaskbarSize(Context context) {
+        return Math.round(getBaseTaskbarSizeFloat(context));
+    }
+
+    private static float getBaseTaskbarSizeFloat(Context context) {
+        SharedPreferences pref = getSharedPreferences(context);
+        float baseTaskbarSize = context.getResources().getDimension(R.dimen.base_taskbar_size);
+        boolean navbarButtonsEnabled = false;
+
+        if(pref.getBoolean("dashboard", false))
+            baseTaskbarSize += context.getResources().getDimension(R.dimen.dashboard_button_size);
+
+        if(pref.getBoolean("button_back", false)) {
+            navbarButtonsEnabled = true;
+            baseTaskbarSize += context.getResources().getDimension(R.dimen.icon_size);
+        }
+
+        if(pref.getBoolean("button_home", false)) {
+            navbarButtonsEnabled = true;
+            baseTaskbarSize += context.getResources().getDimension(R.dimen.icon_size);
+        }
+
+        if(pref.getBoolean("button_recents", false)) {
+            navbarButtonsEnabled = true;
+            baseTaskbarSize += context.getResources().getDimension(R.dimen.icon_size);
+        }
+
+        if(navbarButtonsEnabled)
+            baseTaskbarSize += context.getResources().getDimension(R.dimen.navbar_buttons_margin);
+
+        return baseTaskbarSize;
+    }
 }
index bada334..bee18b2 100644 (file)
             android:id="@+id/navbar_buttons"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
+            android:layout_marginEnd="8dp"
             android:orientation="horizontal">
 
                 <ImageView
index 74bded6..0cda380 100644 (file)
@@ -70,6 +70,7 @@
             android:id="@+id/navbar_buttons"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
+            android:layout_marginStart="8dp"
             android:orientation="horizontal">
 
                 <ImageView
index 3e47a14..8364ed2 100644 (file)
         android:id="@+id/navbar_buttons"
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
+        android:layout_marginBottom="8dp"
         android:orientation="vertical">
 
         <ImageView
index b28efe0..3d820d5 100644 (file)
@@ -80,6 +80,7 @@
         android:id="@+id/navbar_buttons"
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
+        android:layout_marginTop="8dp"
         android:orientation="vertical">
 
         <ImageView
index c4bb7f9..59e4977 100644 (file)
@@ -33,6 +33,7 @@
     <dimen name="app_drawer_icon_padding">4dp</dimen>
     <dimen name="app_drawer_icon_padding_alt">7dp</dimen>
     <dimen name="base_taskbar_size">93dp</dimen>
-    <dimen name="base_taskbar_size_dashboard">141dp</dimen>
+    <dimen name="dashboard_button_size">48dp</dimen>
     <dimen name="divider_size">5dp</dimen>
+    <dimen name="navbar_buttons_margin">8dp</dimen>
 </resources>