OSDN Git Service

Initialize preferences on the home screen
authorBraden Farmer <farmerbb@gmail.com>
Wed, 7 Jun 2017 16:00:18 +0000 (10:00 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Wed, 7 Jun 2017 16:00:18 +0000 (10:00 -0600)
app/src/main/java/com/farmerbb/taskbar/activity/HomeActivity.java
app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java
app/src/main/java/com/farmerbb/taskbar/util/U.java

index 613e32f..7abf4e0 100644 (file)
@@ -186,6 +186,8 @@ public class HomeActivity extends Activity {
 
         LocalBroadcastManager.getInstance(this).registerReceiver(killReceiver, new IntentFilter("com.farmerbb.taskbar.KILL_HOME_ACTIVITY"));
         LocalBroadcastManager.getInstance(this).registerReceiver(forceTaskbarStartReceiver, new IntentFilter("com.farmerbb.taskbar.FORCE_TASKBAR_RESTART"));
+
+        U.initPrefs(this);
     }
 
     private void setWallpaper() {
index eebf7d3..2d3fe64 100644 (file)
 package com.farmerbb.taskbar.fragment;
 
 import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Build;
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceManager;
-import android.support.v4.content.LocalBroadcastManager;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.ListView;
@@ -53,26 +50,7 @@ public class SettingsFragment extends PreferenceFragment {
         setRetainInstance(true);
         setHasOptionsMenu(true);
 
-        // On smaller-screened devices, set "Grid" as the default start menu layout
-        SharedPreferences pref = U.getSharedPreferences(getActivity());
-        if(getActivity().getApplicationContext().getResources().getConfiguration().smallestScreenWidthDp < 600
-                && pref.getString("start_menu_layout", "null").equals("null")) {
-            pref.edit().putString("start_menu_layout", "grid").apply();
-        }
-
-        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
-            if(!pref.getBoolean("freeform_hack_override", false)) {
-                pref.edit()
-                        .putBoolean("freeform_hack", U.hasFreeformSupport(getActivity()) && !U.hasPartialFreeformSupport())
-                        .putBoolean("save_window_sizes", false)
-                        .putBoolean("freeform_hack_override", true)
-                        .apply();
-            } else if(!U.hasFreeformSupport(getActivity())) {
-                pref.edit().putBoolean("freeform_hack", false).apply();
-
-                LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(new Intent("com.farmerbb.taskbar.FINISH_FREEFORM_ACTIVITY"));
-            }
-        }
+        U.initPrefs(getActivity());
     }
 
     private Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
index 2b8d4de..e154834 100644 (file)
@@ -1015,4 +1015,27 @@ public class U {
             Settings.System.putInt(context.getContentResolver(), "navigation_bar_show", show ? 1 : 0);
         } catch (Exception e) { /* Gracefully fail */ }
     }
+
+    public static void initPrefs(Context context) {
+        // On smaller-screened devices, set "Grid" as the default start menu layout
+        SharedPreferences pref = getSharedPreferences(context);
+        if(context.getApplicationContext().getResources().getConfiguration().smallestScreenWidthDp < 600
+                && pref.getString("start_menu_layout", "null").equals("null")) {
+            pref.edit().putString("start_menu_layout", "grid").apply();
+        }
+
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+            if(!pref.getBoolean("freeform_hack_override", false)) {
+                pref.edit()
+                        .putBoolean("freeform_hack", hasFreeformSupport(context) && !hasPartialFreeformSupport())
+                        .putBoolean("save_window_sizes", false)
+                        .putBoolean("freeform_hack_override", true)
+                        .apply();
+            } else if(!hasFreeformSupport(context)) {
+                pref.edit().putBoolean("freeform_hack", false).apply();
+
+                LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("com.farmerbb.taskbar.FINISH_FREEFORM_ACTIVITY"));
+            }
+        }
+    }
 }