OSDN Git Service

Fix launching windows with "Save window sizes" preference disabled
authorBraden Farmer <farmerbb@gmail.com>
Tue, 11 Oct 2016 16:30:37 +0000 (10:30 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Tue, 11 Oct 2016 16:30:37 +0000 (10:30 -0600)
app/src/main/java/com/farmerbb/taskbar/activity/ContextMenuActivity.java
app/src/main/java/com/farmerbb/taskbar/adapter/StartMenuAdapter.java
app/src/main/java/com/farmerbb/taskbar/adapter/TaskbarAdapter.java
app/src/main/java/com/farmerbb/taskbar/util/U.java

index e667057..3ee01f2 100644 (file)
@@ -352,13 +352,15 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
             case "window_size_half_left":
             case "window_size_half_right":
             case "window_size_phone_size":
+                String windowSize = p.getKey().replace("window_size_", "");
+
                 SharedPreferences pref2 = U.getSharedPreferences(this);
                 if(pref2.getBoolean("save_window_sizes", true)) {
-                    SavedWindowSizes.getInstance(this).setWindowSize(this, packageName, p.getKey().replace("window_size_", ""));
+                    SavedWindowSizes.getInstance(this).setWindowSize(this, packageName, windowSize);
                 }
                 
                 startFreeformActivity();
-                U.launchApp(this, packageName, componentName, false, !isInMultiWindowMode(), true);
+                U.launchApp(this, packageName, componentName, windowSize, false, !isInMultiWindowMode(), true);
 
                 showStartMenu = false;
                 shouldHideTaskbar = true;
index 8393bd0..dfda53b 100644 (file)
@@ -95,7 +95,7 @@ public class StartMenuAdapter extends ArrayAdapter<AppEntry> {
             @Override
             public void onClick(View view) {
                 LocalBroadcastManager.getInstance(getContext()).sendBroadcast(new Intent("com.farmerbb.taskbar.HIDE_START_MENU"));
-                U.launchApp(getContext(), entry.getPackageName(), entry.getComponentName(), false, true, false);
+                U.launchApp(getContext(), entry.getPackageName(), entry.getComponentName(), null, false, true, false);
             }
         });
 
index 7c60c53..b1d5806 100644 (file)
@@ -83,7 +83,7 @@ public class TaskbarAdapter extends ArrayAdapter<AppEntry> {
         layout.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                U.launchApp(getContext(), entry.getPackageName(), entry.getComponentName(), true, true, false);
+                U.launchApp(getContext(), entry.getPackageName(), entry.getComponentName(), null, true, true, false);
             }
         });
 
index 067936b..b75c15f 100644 (file)
@@ -136,6 +136,7 @@ public class U {
     public static void launchApp(final Context context,
                                  final String packageName,
                                  final String componentName,
+                                 final String windowSize,
                                  final boolean launchedFromTaskbar,
                                  final boolean padStatusBar,
                                  final boolean openInNewWindow) {
@@ -162,7 +163,8 @@ public class U {
                     new Handler().postDelayed(new Runnable() {
                         @Override
                         public void run() {
-                            continueLaunchingApp(context, packageName, componentName, launchedFromTaskbar, padStatusBar, openInNewWindow);
+                            continueLaunchingApp(context, packageName, componentName, windowSize,
+                                    launchedFromTaskbar, padStatusBar, openInNewWindow);
                         }
                     }, 100);
                 }
@@ -171,9 +173,11 @@ public class U {
 
         if(!FreeformHackHelper.getInstance().isFreeformHackActive()) {
             if(!shouldDelay)
-                continueLaunchingApp(context, packageName, componentName, launchedFromTaskbar, padStatusBar, openInNewWindow);
+                continueLaunchingApp(context, packageName, componentName, windowSize,
+                        launchedFromTaskbar, padStatusBar, openInNewWindow);
         } else if(FreeformHackHelper.getInstance().isInFreeformWorkspace() || !openInFullscreen)
-            continueLaunchingApp(context, packageName, componentName, launchedFromTaskbar, padStatusBar, openInNewWindow);
+            continueLaunchingApp(context, packageName, componentName, windowSize,
+                    launchedFromTaskbar, padStatusBar, openInNewWindow);
     }
 
     @SuppressWarnings("deprecation")
@@ -205,6 +209,7 @@ public class U {
     private static void continueLaunchingApp(Context context,
                                              String packageName,
                                              String componentName,
+                                             String windowSize,
                                              boolean launchedFromTaskbar,
                                              boolean padStatusBar,
                                              boolean openInNewWindow) {
@@ -230,11 +235,18 @@ public class U {
             }
         }
 
+        if(windowSize == null) {
+            if(pref.getBoolean("save_window_sizes", true))
+                windowSize = SavedWindowSizes.getInstance(context).getWindowSize(context, packageName);
+            else
+                windowSize = pref.getString("window_size", "standard");
+        }
+
         if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N || !pref.getBoolean("freeform_hack", false)) {
             try {
                 context.startActivity(intent);
             } catch (ActivityNotFoundException | IllegalArgumentException e) { /* Gracefully fail */ }
-        } else switch(SavedWindowSizes.getInstance(context).getWindowSize(context, packageName)) {
+        } else switch(windowSize) {
             case "standard":
                 if(FreeformHackHelper.getInstance().isInFreeformWorkspace())
                     try {