OSDN Git Service

Make Taskbar full-width
authorBraden Farmer <farmerbb@gmail.com>
Thu, 27 Oct 2016 03:49:25 +0000 (21:49 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Thu, 27 Oct 2016 03:49:25 +0000 (21:49 -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 6c44f07..498bde8 100644 (file)
@@ -45,6 +45,7 @@ import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
 import android.support.v4.content.ContextCompat;
+import android.util.DisplayMetrics;
 import android.view.ContextThemeWrapper;
 import android.view.Display;
 import android.view.Gravity;
@@ -678,11 +679,16 @@ public class TaskbarService extends Service {
                     public void run() {
                         if(numOfEntries > 0) {
                             ViewGroup.LayoutParams params = scrollView.getLayoutParams();
+                            DisplayMetrics metrics = getResources().getDisplayMetrics();
 
                             if(U.getTaskbarPosition(TaskbarService.this).contains("vertical")) {
-                                params.height = getResources().getDimensionPixelSize(R.dimen.icon_size) * Math.min(numOfEntries, MAX_NUM_OF_COLUMNS);
+                                float maxScreenSize = metrics.heightPixels - U.getStatusBarHeight(TaskbarService.this);
+
+                                params.height = (int) Math.min(getResources().getDimensionPixelSize(R.dimen.icon_size) * numOfEntries, maxScreenSize - getResources().getDimensionPixelSize(R.dimen.base_taskbar_size));
                             } else {
-                                params.width = getResources().getDimensionPixelSize(R.dimen.icon_size) * Math.min(numOfEntries, MAX_NUM_OF_COLUMNS);
+                                float maxScreenSize = metrics.widthPixels;
+
+                                params.width = (int) Math.min(getResources().getDimensionPixelSize(R.dimen.icon_size) * numOfEntries, maxScreenSize - getResources().getDimensionPixelSize(R.dimen.base_taskbar_size));
                             }
 
                             scrollView.setLayoutParams(params);
index 2e5c9f4..2069970 100644 (file)
@@ -613,7 +613,7 @@ public class U {
                 : Integer.valueOf(pref.getString("max_num_of_recents", "10"));
     }
 
-    private static int getStatusBarHeight(Context context) {
+    public static int getStatusBarHeight(Context context) {
         int statusBarHeight = 0;
         int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
         if(resourceId > 0)
index 24250f5..61a50a4 100644 (file)
@@ -52,6 +52,7 @@
             android:layout_width="wrap_content"
             android:layout_height="@dimen/icon_size"
             android:scrollbars="none"
+            android:requiresFadingEdge="horizontal"
             android:visibility="gone" >
 
                 <LinearLayout
index 722aba1..b7f4e53 100644 (file)
@@ -37,6 +37,7 @@
             android:layout_width="wrap_content"
             android:layout_height="@dimen/icon_size"
             android:scrollbars="none"
+            android:requiresFadingEdge="horizontal"
             android:visibility="gone" >
 
                 <LinearLayout
index 43faaf0..193b36e 100644 (file)
@@ -63,6 +63,7 @@
         android:layout_width="@dimen/icon_size"
         android:layout_height="wrap_content"
         android:scrollbars="none"
+        android:requiresFadingEdge="vertical"
         android:visibility="gone" >
 
         <LinearLayout
index e9a8431..0dc4e6f 100644 (file)
@@ -48,6 +48,7 @@
         android:layout_width="@dimen/icon_size"
         android:layout_height="wrap_content"
         android:scrollbars="none"
+        android:requiresFadingEdge="vertical"
         android:visibility="gone" >
 
         <LinearLayout
index 25ec827..3c6e3e9 100644 (file)
@@ -30,4 +30,5 @@
     <dimen name="max_width">@dimen/match_parent</dimen>
     <dimen name="app_drawer_icon_padding">4dp</dimen>
     <dimen name="app_drawer_icon_padding_alt">7dp</dimen>
+    <dimen name="base_taskbar_size">92dp</dimen>
 </resources>