OSDN Git Service

Fix expanding whitespace on certain configurations
authorBraden Farmer <farmerbb@gmail.com>
Mon, 3 Apr 2017 22:00:26 +0000 (16:00 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Mon, 3 Apr 2017 22:00:26 +0000 (16:00 -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_right.xml
app/src/main/res/layout/taskbar_vertical.xml

index cbd84f7..2f22531 100644 (file)
@@ -763,22 +763,40 @@ public class TaskbarService extends Service {
                     if(numOfEntries > 0 || fullLength) {
                         ViewGroup.LayoutParams params = scrollView.getLayoutParams();
                         DisplayMetrics metrics = getResources().getDisplayMetrics();
-                        float maxRecentsSize = fullLength
-                                ? Float.MAX_VALUE
-                                : (getResources().getDimensionPixelSize(R.dimen.icon_size) * numOfEntries);
+                        int recentsSize = getResources().getDimensionPixelSize(R.dimen.icon_size) * numOfEntries;
+                        float maxRecentsSize = fullLength ? Float.MAX_VALUE : recentsSize;
 
                         if(U.getTaskbarPosition(TaskbarService.this).contains("vertical")) {
-                            float maxScreenSize = metrics.heightPixels - U.getStatusBarHeight(TaskbarService.this);
+                            int maxScreenSize = metrics.heightPixels
+                                    - U.getStatusBarHeight(TaskbarService.this)
+                                    - U.getBaseTaskbarSize(TaskbarService.this);
 
-                            params.height = (int) Math.min(maxRecentsSize,
-                                    maxScreenSize - U.getBaseTaskbarSize(TaskbarService.this))
+                            params.height = (int) Math.min(maxRecentsSize, maxScreenSize)
                                     + getResources().getDimensionPixelSize(R.dimen.divider_size);
+
+                            if(fullLength && U.getTaskbarPosition(this).contains("bottom")) {
+                                Space whitespace = (Space) layout.findViewById(R.id.whitespace);
+                                ViewGroup.LayoutParams params2 = whitespace.getLayoutParams();
+                                if(params2 != null) {
+                                    params2.height = maxScreenSize - recentsSize;
+                                    whitespace.setLayoutParams(params2);
+                                }
+                            }
                         } else {
-                            float maxScreenSize = metrics.widthPixels;
+                            int maxScreenSize = metrics.widthPixels
+                                    - U.getBaseTaskbarSize(TaskbarService.this);
 
-                            params.width = (int) Math.min(maxRecentsSize,
-                                    maxScreenSize - U.getBaseTaskbarSize(TaskbarService.this))
+                            params.width = (int) Math.min(maxRecentsSize, maxScreenSize)
                                     + getResources().getDimensionPixelSize(R.dimen.divider_size);
+
+                            if(fullLength && U.getTaskbarPosition(this).contains("right")) {
+                                Space whitespace = (Space) layout.findViewById(R.id.whitespace);
+                                ViewGroup.LayoutParams params2 = whitespace.getLayoutParams();
+                                if(params2 != null) {
+                                    params2.width = maxScreenSize - recentsSize;
+                                    whitespace.setLayoutParams(params2);
+                                }
+                            }
                         }
 
                         scrollView.setLayoutParams(params);
index 7fed686..3e5038d 100644 (file)
@@ -678,7 +678,7 @@ public class U {
         return position;
     }
 
-    private static int getMaxNumOfColumns(Context context) {
+    public static int getMaxNumOfColumns(Context context) {
         SharedPreferences pref = getSharedPreferences(context);
         DisplayMetrics metrics = context.getResources().getDisplayMetrics();
         float baseTaskbarSize = getBaseTaskbarSizeFloat(context) / metrics.density;
index 0cda380..14f3269 100644 (file)
                     android:orientation="horizontal"
                     android:clickable="false">
 
+                        <Space
+                            android:id="@+id/whitespace"
+                            android:layout_height="0dp"
+                            android:layout_width="0dp" />
+
                         <LinearLayout
                             android:id="@+id/taskbar"
                             android:layout_width="wrap_content"
index 3d820d5..651a4b8 100644 (file)
             android:orientation="vertical"
             android:clickable="false">
 
+            <Space
+                android:id="@+id/whitespace"
+                android:layout_width="0dp"
+                android:layout_height="0dp" />
+
             <LinearLayout
                 android:id="@+id/taskbar"
                 android:layout_width="wrap_content"