summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2019-05-16 22:08:43 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-05-16 22:08:43 +0000
commit0d51988d6e4f72293eeb8f18d36de92da425bd96 (patch)
treebf7eced26e18e66809362e40397a562b18cd3c25 /src
parentc2968da3728006942cc105dc562ad04d907dfaea (diff)
parent58de5de42ae14bcd688fccd841c537fe8da6f3e9 (diff)
downloadandroid_packages_apps_Trebuchet-0d51988d6e4f72293eeb8f18d36de92da425bd96.tar.gz
android_packages_apps_Trebuchet-0d51988d6e4f72293eeb8f18d36de92da425bd96.tar.bz2
android_packages_apps_Trebuchet-0d51988d6e4f72293eeb8f18d36de92da425bd96.zip
Merge "Add developer options for grid change for Styles Bug: 118758696" into ub-launcher3-qt-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/Utilities.java13
-rw-r--r--src/com/android/launcher3/config/BaseFlags.java4
-rw-r--r--src/com/android/launcher3/settings/SettingsActivity.java36
-rw-r--r--src/com/android/launcher3/util/PackageManagerHelper.java5
-rw-r--r--src/com/android/launcher3/views/OptionsPopupView.java14
5 files changed, 57 insertions, 15 deletions
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index 732aa9587..af22f1b2f 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -50,6 +50,7 @@ import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.os.TransactionTooLargeException;
+import android.provider.Settings;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -71,6 +72,7 @@ import com.android.launcher3.icons.LauncherIcons;
import com.android.launcher3.shortcuts.DeepShortcutManager;
import com.android.launcher3.shortcuts.ShortcutKey;
import com.android.launcher3.util.IntArray;
+import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.views.Transposable;
import com.android.launcher3.widget.PendingAddShortcutInfo;
@@ -133,6 +135,11 @@ public final class Utilities {
Build.TYPE.toLowerCase(Locale.ROOT).contains("debug") ||
Build.TYPE.toLowerCase(Locale.ROOT).equals("eng");
+ public static boolean isDevelopersOptionsEnabled(Context context) {
+ return Settings.Global.getInt(context.getApplicationContext().getContentResolver(),
+ Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
+ }
+
// An intent extra to indicate the horizontal scroll of the wallpaper.
public static final String EXTRA_WALLPAPER_OFFSET = "com.android.launcher3.WALLPAPER_OFFSET";
public static final String EXTRA_WALLPAPER_FLAVOR = "com.android.launcher3.WALLPAPER_FLAVOR";
@@ -160,6 +167,12 @@ public final class Utilities {
return Log.isLoggable(propertyName, Log.VERBOSE);
}
+ public static boolean existsStyleWallpapers(Context context) {
+ ResolveInfo ri = context.getPackageManager().resolveActivity(
+ PackageManagerHelper.getStyleWallpapersIntent(context), 0);
+ return ri != null;
+ }
+
/**
* Given a coordinate relative to the descendant, find the coordinate in a parent view's
* coordinates.
diff --git a/src/com/android/launcher3/config/BaseFlags.java b/src/com/android/launcher3/config/BaseFlags.java
index bad8282f5..7e20d11c2 100644
--- a/src/com/android/launcher3/config/BaseFlags.java
+++ b/src/com/android/launcher3/config/BaseFlags.java
@@ -58,9 +58,7 @@ abstract class BaseFlags {
}
public static boolean showFlagTogglerUi(Context context) {
- return Utilities.IS_DEBUG_DEVICE &&
- Settings.Global.getInt(context.getApplicationContext().getContentResolver(),
- Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
+ return Utilities.IS_DEBUG_DEVICE && Utilities.isDevelopersOptionsEnabled(context);
}
public static final boolean IS_DOGFOOD_BUILD = false;
diff --git a/src/com/android/launcher3/settings/SettingsActivity.java b/src/com/android/launcher3/settings/SettingsActivity.java
index 6e7188f3c..18b6094fb 100644
--- a/src/com/android/launcher3/settings/SettingsActivity.java
+++ b/src/com/android/launcher3/settings/SettingsActivity.java
@@ -24,6 +24,10 @@ import static com.android.launcher3.util.SecureSettingsObserver.newNotificationS
import android.app.Activity;
import android.app.DialogFragment;
import android.app.Fragment;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.os.Bundle;
import android.provider.Settings;
import android.text.TextUtils;
@@ -32,6 +36,7 @@ import com.android.launcher3.LauncherFiles;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.config.FeatureFlags;
+import com.android.launcher3.graphics.GridOptionsProvider;
import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper;
import com.android.launcher3.util.SecureSettingsObserver;
@@ -47,7 +52,8 @@ import androidx.recyclerview.widget.RecyclerView;
* Settings activity for Launcher. Currently implements the following setting: Allow rotation
*/
public class SettingsActivity extends Activity
- implements OnPreferenceStartFragmentCallback, OnPreferenceStartScreenCallback {
+ implements OnPreferenceStartFragmentCallback, OnPreferenceStartScreenCallback,
+ SharedPreferences.OnSharedPreferenceChangeListener{
private static final String DEVELOPER_OPTIONS_KEY = "pref_developer_options";
private static final String FLAGS_PREFERENCE_KEY = "flag_toggler";
@@ -61,6 +67,8 @@ public class SettingsActivity extends Activity
private static final int DELAY_HIGHLIGHT_DURATION_MILLIS = 600;
public static final String SAVE_HIGHLIGHTED_KEY = "android:preference_highlighted";
+ public static final String GRID_OPTIONS_PREFERENCE_KEY = "pref_grid_options";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -79,6 +87,28 @@ public class SettingsActivity extends Activity
.replace(android.R.id.content, f)
.commit();
}
+ Utilities.getPrefs(getApplicationContext()).registerOnSharedPreferenceChangeListener(this);
+ }
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if (GRID_OPTIONS_PREFERENCE_KEY.equals(key)) {
+
+ final ComponentName cn = new ComponentName(getApplicationContext(),
+ GridOptionsProvider.class);
+ Context c = getApplicationContext();
+ int oldValue = c.getPackageManager().getComponentEnabledSetting(cn);
+ int newValue;
+ if (Utilities.getPrefs(c).getBoolean(GRID_OPTIONS_PREFERENCE_KEY, false)) {
+ newValue = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ } else {
+ newValue = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
+ }
+
+ if (oldValue != newValue) {
+ c.getPackageManager().setComponentEnabledSetting(cn, newValue,
+ PackageManager.DONT_KILL_APP);
+ }
+ }
}
private boolean startFragment(String fragment, Bundle args, String key) {
@@ -200,6 +230,10 @@ public class SettingsActivity extends Activity
// Show if plugins are enabled or flag UI is enabled.
return FeatureFlags.showFlagTogglerUi(getContext()) ||
PluginManagerWrapper.hasPlugins(getContext());
+ case GRID_OPTIONS_PREFERENCE_KEY:
+ return Utilities.isDevelopersOptionsEnabled(getContext()) &&
+ Utilities.IS_DEBUG_DEVICE &&
+ Utilities.existsStyleWallpapers(getContext());
}
return true;
diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java
index 7439ac154..7d3a94162 100644
--- a/src/com/android/launcher3/util/PackageManagerHelper.java
+++ b/src/com/android/launcher3/util/PackageManagerHelper.java
@@ -172,6 +172,11 @@ public class PackageManagerHelper {
}
}
+ public static Intent getStyleWallpapersIntent(Context context) {
+ return new Intent(Intent.ACTION_SET_WALLPAPER).setComponent(
+ new ComponentName(context.getString(R.string.wallpaper_picker_package),
+ "com.android.customization.picker.CustomizationPickerActivity"));
+ }
/**
* Starts the details activity for {@code info}
diff --git a/src/com/android/launcher3/views/OptionsPopupView.java b/src/com/android/launcher3/views/OptionsPopupView.java
index 706236907..63f742768 100644
--- a/src/com/android/launcher3/views/OptionsPopupView.java
+++ b/src/com/android/launcher3/views/OptionsPopupView.java
@@ -152,9 +152,9 @@ public class OptionsPopupView extends ArrowPopup
RectF target = new RectF(x - halfSize, y - halfSize, x + halfSize, y + halfSize);
ArrayList<OptionItem> options = new ArrayList<>();
- int resString = existsStyleWallpapers(launcher) ?
+ int resString = Utilities.existsStyleWallpapers(launcher) ?
R.string.styles_wallpaper_button_text : R.string.wallpaper_button_text;
- int resDrawable = existsStyleWallpapers(launcher) ?
+ int resDrawable = Utilities.existsStyleWallpapers(launcher) ?
R.drawable.ic_palette : R.drawable.ic_wallpaper;
options.add(new OptionItem(resString, resDrawable,
ControlType.WALLPAPER_BUTTON, OptionsPopupView::startWallpaperPicker));
@@ -168,14 +168,6 @@ public class OptionsPopupView extends ArrowPopup
show(launcher, target, options);
}
- private static boolean existsStyleWallpapers(Launcher launcher) {
- Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
- intent.setComponent(new ComponentName(launcher.getString(R.string.wallpaper_picker_package),
- "com.android.customization.picker.CustomizationPickerActivity"));
- ResolveInfo ri = launcher.getPackageManager().resolveActivity(intent, 0);
- return ri != null;
- }
-
public static boolean onWidgetsClicked(View view) {
return openWidgets(Launcher.getLauncher(view.getContext()));
}
@@ -212,7 +204,7 @@ public class OptionsPopupView extends ArrowPopup
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
.putExtra(EXTRA_WALLPAPER_OFFSET,
launcher.getWorkspace().getWallpaperOffsetForCenterPage());
- if (!existsStyleWallpapers(launcher)) {
+ if (!Utilities.existsStyleWallpapers(launcher)) {
intent.putExtra(EXTRA_WALLPAPER_FLAVOR, "wallpaper_only");
} else {
intent.putExtra(EXTRA_WALLPAPER_FLAVOR, "focus_wallpaper");