OSDN Git Service

Taskbar 3.4 (release 3)
authorBraden Farmer <farmerbb@gmail.com>
Thu, 25 May 2017 15:56:32 +0000 (09:56 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Thu, 25 May 2017 15:56:32 +0000 (09:56 -0600)
• Fix Taskbar being permanently hidden in certain scenarios
• Abstract out the show/hide navigation bar functionality

app/build.gradle
app/src/main/java/com/farmerbb/taskbar/activity/NavigationBarButtonsActivity.java
app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java
app/src/main/java/com/farmerbb/taskbar/util/U.java

index d0be1e1..72536dd 100644 (file)
@@ -34,7 +34,7 @@ android {
         minSdkVersion 21
         targetSdkVersion 25
 
-        versionCode 146
+        versionCode 147
         versionName "3.4"
 
         resConfigs "en", "ja", "ru", "de"
index 4aef319..0eb1aa4 100644 (file)
@@ -19,7 +19,6 @@ import android.os.Bundle;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
-import android.provider.Settings;
 
 import com.farmerbb.taskbar.R;
 import com.farmerbb.taskbar.service.TaskbarService;
@@ -49,13 +48,9 @@ public class NavigationBarButtonsActivity extends PreferenceActivity implements
     public boolean onPreferenceClick(Preference preference) {
         switch(preference.getKey()) {
             case "auto_hide_navbar":
-                if(U.isServiceRunning(this, TaskbarService.class)) {
-                    boolean isChecked = ((CheckBoxPreference) preference).isChecked();
+                if(U.isServiceRunning(this, TaskbarService.class))
+                    U.showHideNavigationBar(this, !((CheckBoxPreference) preference).isChecked());
 
-                    try {
-                        Settings.System.putInt(getContentResolver(), "navigation_bar_show", isChecked ? 0 : 1);
-                    } catch (Exception e) { /* Gracefully fail */ }
-                }
                 break;
             default:
                 U.restartTaskbar(this);
index 5f588c1..53c4d1b 100644 (file)
@@ -167,7 +167,8 @@ public class TaskbarService extends Service {
     private BroadcastReceiver startMenuAppearReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            if(startButton.getVisibility() == View.GONE)
+            if(startButton.getVisibility() == View.GONE
+                    && (!LauncherHelper.getInstance().isOnHomeScreen() || FreeformHackHelper.getInstance().isInFreeformWorkspace()))
                 layout.setVisibility(View.GONE);
         }
     };
@@ -489,9 +490,7 @@ public class TaskbarService extends Service {
             toggleTaskbar();
 
         if(pref.getBoolean("auto_hide_navbar", false))
-            try {
-                Settings.System.putInt(getContentResolver(), "navigation_bar_show", 0);
-            } catch (Exception e) { /* Gracefully fail */ }
+            U.showHideNavigationBar(this, false);
 
         LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
         
@@ -1081,9 +1080,7 @@ public class TaskbarService extends Service {
         if(pref.getBoolean("skip_auto_hide_navbar", false)) {
             pref.edit().remove("skip_auto_hide_navbar").apply();
         } else if(pref.getBoolean("auto_hide_navbar", false))
-            try {
-                Settings.System.putInt(getContentResolver(), "navigation_bar_show", 1);
-            } catch (Exception e) { /* Gracefully fail */ }
+            U.showHideNavigationBar(this, true);
 
         LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
 
index 9b24ed6..a76d746 100644 (file)
@@ -1012,4 +1012,11 @@ public class U {
             context.startService(intent);
         }
     }
+
+    public static void showHideNavigationBar(Context context, boolean show) {
+        // Show or hide the system navigation bar on Bliss-x86
+        try {
+            Settings.System.putInt(context.getContentResolver(), "navigation_bar_show", show ? 1 : 0);
+        } catch (Exception e) { /* Gracefully fail */ }
+    }
 }