diff options
author | Christopher Lane <lanechr@google.com> | 2015-02-26 19:11:31 -0800 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-03-27 15:02:11 -0700 |
commit | dcd9bcafc6954aa81d7f29d6213fb13af6bad577 (patch) | |
tree | 0d9865dfb82da2f6d0fb7f384bf3fdcb294ecde2 | |
parent | c7896d66909d5b4c9f44cf0babd8e067231fe868 (diff) | |
download | TvSettings-lollipop-mr1-release.tar.gz |
DO NOT MERGE : Add link to home screen settingsandroid-cts-5.1_r9android-cts-5.1_r8android-cts-5.1_r7android-cts-5.1_r6android-cts-5.1_r5android-cts-5.1_r4android-cts-5.1_r3android-cts-5.1_r28android-cts-5.1_r27android-cts-5.1_r26android-cts-5.1_r25android-cts-5.1_r24android-cts-5.1_r23android-cts-5.1_r22android-cts-5.1_r21android-cts-5.1_r20android-cts-5.1_r2android-cts-5.1_r19android-cts-5.1_r18android-cts-5.1_r17android-cts-5.1_r16android-cts-5.1_r15android-cts-5.1_r14android-cts-5.1_r13android-cts-5.1_r10android-cts-5.1_r1android-5.1.1_r9android-5.1.1_r6android-5.1.1_r4android-5.1.1_r38android-5.1.1_r37android-5.1.1_r36android-5.1.1_r35android-5.1.1_r34android-5.1.1_r33android-5.1.1_r30android-5.1.1_r3android-5.1.1_r26android-5.1.1_r25android-5.1.1_r24android-5.1.1_r20android-5.1.1_r2android-5.1.1_r19android-5.1.1_r16android-5.1.1_r15android-5.1.1_r14android-5.1.1_r10android-5.1.1_r1lollipop-mr1-releaselollipop-mr1-cts-release
Bug: 19536065
Change-Id: Idda0ff64336b16d6b28a7f68eb2d8246985b0fa9
-rw-r--r-- | Settings/res/drawable-hdpi/ic_settings_home.png | bin | 0 -> 2778 bytes | |||
-rw-r--r-- | Settings/res/drawable-mdpi/ic_settings_home.png | bin | 0 -> 2055 bytes | |||
-rw-r--r-- | Settings/res/drawable-xhdpi/ic_settings_home.png | bin | 0 -> 3706 bytes | |||
-rw-r--r-- | Settings/res/drawable-xxhdpi/ic_settings_home.png | bin | 0 -> 4326 bytes | |||
-rw-r--r-- | Settings/res/values/strings.xml | 2 | ||||
-rw-r--r-- | Settings/res/xml/preferences.xml | 6 | ||||
-rw-r--r-- | Settings/src/com/android/tv/settings/BrowseInfo.java | 34 |
7 files changed, 42 insertions, 0 deletions
diff --git a/Settings/res/drawable-hdpi/ic_settings_home.png b/Settings/res/drawable-hdpi/ic_settings_home.png Binary files differnew file mode 100644 index 000000000..09d384abd --- /dev/null +++ b/Settings/res/drawable-hdpi/ic_settings_home.png diff --git a/Settings/res/drawable-mdpi/ic_settings_home.png b/Settings/res/drawable-mdpi/ic_settings_home.png Binary files differnew file mode 100644 index 000000000..5965e314e --- /dev/null +++ b/Settings/res/drawable-mdpi/ic_settings_home.png diff --git a/Settings/res/drawable-xhdpi/ic_settings_home.png b/Settings/res/drawable-xhdpi/ic_settings_home.png Binary files differnew file mode 100644 index 000000000..693d81f7b --- /dev/null +++ b/Settings/res/drawable-xhdpi/ic_settings_home.png diff --git a/Settings/res/drawable-xxhdpi/ic_settings_home.png b/Settings/res/drawable-xxhdpi/ic_settings_home.png Binary files differnew file mode 100644 index 000000000..9c6d5c524 --- /dev/null +++ b/Settings/res/drawable-xxhdpi/ic_settings_home.png diff --git a/Settings/res/values/strings.xml b/Settings/res/values/strings.xml index b208f1ee3..edf91531d 100644 --- a/Settings/res/values/strings.xml +++ b/Settings/res/values/strings.xml @@ -197,6 +197,8 @@ <string name="system_language">Language</string> <!-- Preference which manages input method settings. [CHAR LIMIT=50] --> <string name="system_keyboard">Keyboard</string> + <!-- Preference which manages home screen settings. [CHAR LIMIT=50] --> + <string name="system_home">Home screen</string> <!-- Preference which manages search and google now settings. [CHAR LIMIT=50] --> <string name="system_search">Search</string> <!-- Preference which manages security settings. [CHAR LIMIT=50] --> diff --git a/Settings/res/xml/preferences.xml b/Settings/res/xml/preferences.xml index 4666230e0..bb72890f7 100644 --- a/Settings/res/xml/preferences.xml +++ b/Settings/res/xml/preferences.xml @@ -40,6 +40,12 @@ android:targetPackage="com.android.tv.settings" /> </Preference> <Preference + android:icon="@drawable/ic_settings_home" + android:key="home" + android:title="@string/system_home" > + <intent android:action="com.google.android.leanbacklauncher.SETTINGS" /> + </Preference> + <Preference android:icon="@drawable/ic_settings_search" android:key="search" android:title="@string/system_search" > diff --git a/Settings/src/com/android/tv/settings/BrowseInfo.java b/Settings/src/com/android/tv/settings/BrowseInfo.java index 8f38f821b..e453ab600 100644 --- a/Settings/src/com/android/tv/settings/BrowseInfo.java +++ b/Settings/src/com/android/tv/settings/BrowseInfo.java @@ -26,8 +26,10 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.Intent.ShortcutIconResource; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.Resources.NotFoundException; import android.content.res.TypedArray; @@ -175,6 +177,7 @@ public class BrowseInfo extends BrowseInfoBase { private static final String PREF_KEY_WIFI = "network"; private static final String PREF_KEY_DEVELOPER = "developer"; private static final String PREF_KEY_INPUTS = "inputs"; + private static final String PREF_KEY_HOME = "home"; private final Context mContext; private final AuthenticatorHelper mAuthenticatorHelper; @@ -278,6 +281,17 @@ public class BrowseInfo extends BrowseInfoBase { if (PREF_KEY_ADD_ACCOUNT.equals(key)) { mAccountHeaderId = mHeaderId; addAccounts(mRow); + } else if (PREF_KEY_HOME.equals(key)) { + // Only show home screen setting if there's a system app to handle the intent. + Intent recIntent = getIntent(parser, attrs, mHeaderId); + if (systemIntentIsHandled(recIntent)) { + mRow.add(new MenuItem.Builder() + .id(mNextItemId++) + .title(title) + .imageResourceId(mContext, iconRes) + .intent(recIntent) + .build()); + } } else if ((!key.equals(PREF_KEY_DEVELOPER) || mDeveloperEnabled) && (!key.equals(PREF_KEY_INPUTS) || mInputSettingNeeded)) { MenuItem.TextGetter descriptionGetter = getDescriptionTextGetterFromKey(key); @@ -572,4 +586,24 @@ public class BrowseInfo extends BrowseInfoBase { R.drawable.ic_settings_google_account); return UriUtils.getShortcutIconResourceUri(iconResource).toString(); } + + private boolean systemIntentIsHandled(Intent intent) { + if (mContext == null || intent == null) { + return false; + } + + PackageManager pm = mContext.getPackageManager(); + if (pm == null) { + return false; + } + + for (ResolveInfo info : pm.queryIntentActivities(intent, 0)) { + if (info.activityInfo != null && info.activityInfo.enabled && + (info.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == + ApplicationInfo.FLAG_SYSTEM) { + return true; + } + } + return false; + } } |