OSDN Git Service

Fix a few logic errors with overriding the freeform hack
authorBraden Farmer <farmerbb@gmail.com>
Tue, 18 Feb 2020 05:05:56 +0000 (22:05 -0700)
committerBraden Farmer <farmerbb@gmail.com>
Tue, 18 Feb 2020 05:05:56 +0000 (22:05 -0700)
app/src/main/java/com/farmerbb/taskbar/activity/ContextMenuActivity.java
app/src/main/java/com/farmerbb/taskbar/fragment/GeneralFragment.java
app/src/main/java/com/farmerbb/taskbar/util/U.java

index 3f6c68d..5a5a9a6 100644 (file)
@@ -253,9 +253,9 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
             if(pref.getBoolean("freeform_hack", false)
                     && !U.isDesktopIconsEnabled(this)
                     && ((U.launcherIsDefault(this)
-                    && !U.isOverridingFreeformHack(this)
+                    && !U.isOverridingFreeformHack(this, false)
                     && FreeformHackHelper.getInstance().isInFreeformWorkspace())
-                    || (U.isOverridingFreeformHack(this)
+                    || (U.isOverridingFreeformHack(this, false)
                     && LauncherHelper.getInstance().isOnHomeScreen()))) {
                 addPreferencesFromResource(R.xml.tb_pref_context_menu_change_wallpaper);
                 findPreference("change_wallpaper").setOnPreferenceClickListener(this);
index 3555e25..24d6c37 100644 (file)
@@ -56,7 +56,7 @@ public class GeneralFragment extends SettingsFragment implements Preference.OnPr
 
         if(U.canEnableFreeform()
                 && !U.isChromeOs(getActivity())
-                && !U.isOverridingFreeformHack(getActivity()))
+                && !U.isOverridingFreeformHack(getActivity(), false))
             findPreference("hide_taskbar").setSummary(R.string.tb_hide_taskbar_disclaimer);
 
         bindPreferenceSummaryToValue(findPreference("start_menu_layout"));
index bdb95d6..20d7d48 100644 (file)
@@ -352,7 +352,7 @@ public class U {
     public static void stopFreeformHack(Context context) {
         LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("com.farmerbb.taskbar.FINISH_FREEFORM_ACTIVITY"));
 
-        if(isOverridingFreeformHack(context)) {
+        if(isOverridingFreeformHack(context, false)) {
             FreeformHackHelper helper = FreeformHackHelper.getInstance();
             helper.setFreeformHackActive(false);
             helper.setInFreeformWorkspace(false);
@@ -881,10 +881,7 @@ public class U {
     }
 
     public static boolean canBootToFreeform(Context context) {
-        SharedPreferences pref = getSharedPreferences(context);
-        return hasFreeformSupport(context)
-                && pref.getBoolean("freeform_hack", false)
-                && !isOverridingFreeformHack(context);
+        return hasFreeformSupport(context) && !isOverridingFreeformHack(context);
     }
 
     public static boolean isSamsungDevice() {
@@ -1402,7 +1399,9 @@ public class U {
     public static boolean shouldCollapse(Context context, boolean pendingAppLaunch) {
         SharedPreferences pref = getSharedPreferences(context);
         if(pref.getBoolean("hide_taskbar", true)) {
-            if(isOverridingFreeformHack(context))
+            if(!pref.getBoolean("freeform_hack", false))
+                return true;
+            else if(isOverridingFreeformHack(context, false))
                 return !LauncherHelper.getInstance().isOnHomeScreen();
             else {
                 FreeformHackHelper helper = FreeformHackHelper.getInstance();
@@ -1416,8 +1415,12 @@ public class U {
     }
 
     public static boolean isOverridingFreeformHack(Context context) {
+        return isOverridingFreeformHack(context, true);
+    }
+
+    public static boolean isOverridingFreeformHack(Context context, boolean checkPref) {
         SharedPreferences pref = getSharedPreferences(context);
-        return pref.getBoolean("freeform_hack", false)
+        return (!checkPref || pref.getBoolean("freeform_hack", false))
                 && ((isChromeOs(context) && pref.getBoolean("chrome_os_context_menu_fix", true))
                 || (!isChromeOs(context) && getCurrentApiVersion() >= 28.0f));
     }