diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6a68582036..ce1744fdab 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -67,6 +67,7 @@ + Show Google Search instead of normal apps search Number of icons in dock Icon scale + Add settings shortcut to home screen diff --git a/res/xml/lawnchair_dev_options_preference.xml b/res/xml/lawnchair_dev_options_preference.xml index 53bb6970dc..d5125041ae 100644 --- a/res/xml/lawnchair_dev_options_preference.xml +++ b/res/xml/lawnchair_dev_options_preference.xml @@ -11,4 +11,9 @@ android:title="@string/show_debug_info_pref_title" android:defaultValue="false" android:persistent="true" /> + + \ No newline at end of file diff --git a/src/ch/deletescape/lawnchair/settings/ui/SettingsActivity.java b/src/ch/deletescape/lawnchair/settings/ui/SettingsActivity.java index 6a86e4a98f..a536fed202 100644 --- a/src/ch/deletescape/lawnchair/settings/ui/SettingsActivity.java +++ b/src/ch/deletescape/lawnchair/settings/ui/SettingsActivity.java @@ -27,10 +27,10 @@ import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.provider.Settings; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; +import android.support.v4.app.*; +import android.support.v4.content.pm.ShortcutInfoCompat; +import android.support.v4.content.pm.ShortcutManagerCompat; +import android.support.v4.graphics.drawable.IconCompat; import android.support.v7.preference.ListPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; @@ -306,6 +306,7 @@ public class SettingsActivity extends SettingsBaseActivity implements Preference findPreference(SHOW_PREDICTIONS_PREF).setOnPreferenceChangeListener(this); } else if (getContent() == R.xml.lawnchair_dev_options_preference) { findPreference("kill").setOnPreferenceClickListener(this); + findPreference("addSettingsShortcut").setOnPreferenceClickListener(this); } } @@ -437,6 +438,8 @@ public class SettingsActivity extends SettingsBaseActivity implements Preference return true; } else if ("kill".equals(preference.getKey())) { Utilities.killLauncher(); + } else if ("addSettingsShortcut".equals(preference.getKey())) { + Utilities.pinSettingsShortcut(getActivity()); } return false; } diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 2bd8fc8b90..58ca8393ee 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -34,6 +34,9 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.*; import android.support.annotation.NonNull; +import android.support.v4.content.pm.ShortcutInfoCompat; +import android.support.v4.content.pm.ShortcutManagerCompat; +import android.support.v4.graphics.drawable.IconCompat; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; @@ -47,6 +50,7 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import ch.deletescape.lawnchair.LawnchairPreferences; import ch.deletescape.lawnchair.backup.RestoreBackupActivity; +import ch.deletescape.lawnchair.settings.ui.SettingsActivity; import com.android.launcher3.config.FeatureFlags; import java.io.ByteArrayOutputStream; @@ -757,4 +761,14 @@ public final class Utilities { public static String upperCaseFirstLetter(String str) { return str.substring(0, 1).toUpperCase() + str.substring(1); } + + public static void pinSettingsShortcut(Context context) { + if (!ShortcutManagerCompat.isRequestPinShortcutSupported(context)) return; + ShortcutManagerCompat.requestPinShortcut(context, new ShortcutInfoCompat.Builder(context, "settings") + .setIntent(new Intent(context, SettingsActivity.class).setAction(Intent.ACTION_MAIN)) + .setIcon(IconCompat.createWithResource(context, R.drawable.ic_setting)) + .setShortLabel(context.getString(R.string.settings_button_text)) + .setAlwaysBadged() + .build(), null); + } }