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);
+ }
}