diff options
author | Tony Mantler <nicoya@google.com> | 2015-02-26 10:02:20 -0800 |
---|---|---|
committer | Tony Mantler <nicoya@google.com> | 2015-03-26 14:23:34 -0700 |
commit | 14c0f6421be479a1c95b3d3482f3f47f39247170 (patch) | |
tree | 7ee6400a7d32a89512209cd47eddb5570262b0e9 /QuickSettings | |
parent | 86cc097cbcb62a2642759a7561415438509ddba1 (diff) | |
download | android_packages_apps_TvSettings-14c0f6421be479a1c95b3d3482f3f47f39247170.tar.gz android_packages_apps_TvSettings-14c0f6421be479a1c95b3d3482f3f47f39247170.tar.bz2 android_packages_apps_TvSettings-14c0f6421be479a1c95b3d3482f3f47f39247170.zip |
Convert QuickSettings to support lib PreferenceFragment
Change-Id: I427a62c82de3dc7e350dab4f1b2e1d4ed36b2f16
Diffstat (limited to 'QuickSettings')
-rw-r--r-- | QuickSettings/Android.mk | 12 | ||||
-rw-r--r-- | QuickSettings/proguard.cfg | 50 | ||||
-rw-r--r-- | QuickSettings/res/layout/side_quicksettings.xml | 56 | ||||
-rw-r--r-- | QuickSettings/res/values/themes.xml | 4 | ||||
-rw-r--r-- | QuickSettings/res/xml/quick_settings.xml | 91 | ||||
-rw-r--r-- | QuickSettings/src/com/android/tv/quicksettings/ListPreferenceNoClick.java | 45 | ||||
-rw-r--r-- | QuickSettings/src/com/android/tv/quicksettings/QuickSettings.java | 61 | ||||
-rw-r--r-- | QuickSettings/src/com/android/tv/quicksettings/QuickSettingsPreferenceFragment.java (renamed from QuickSettings/src/com/android/tv/quicksettings/QuickSettingsFragment.java) | 21 | ||||
-rw-r--r-- | QuickSettings/src/com/android/tv/quicksettings/SettingsDialog.java | 26 |
9 files changed, 171 insertions, 195 deletions
diff --git a/QuickSettings/Android.mk b/QuickSettings/Android.mk index 6b3f5021..6fd96d00 100644 --- a/QuickSettings/Android.mk +++ b/QuickSettings/Android.mk @@ -5,20 +5,30 @@ LOCAL_PACKAGE_NAME := TvQuickSettings LOCAL_MODULE_TAGS := optional LOCAL_SDK_VERSION := current +LOCAL_PROGUARD_FLAG_FILES := proguard.cfg LOCAL_SRC_FILES := \ $(call all-java-files-under, src) LOCAL_RESOURCE_DIR := \ frameworks/support/v17/leanback/res \ + frameworks/support/v7/preference/res \ + frameworks/support/v14/preference/res \ + frameworks/support/v17/preference-leanback/res \ + frameworks/support/v7/appcompat/res \ $(LOCAL_PATH)/res LOCAL_STATIC_JAVA_LIBRARIES := \ android-support-v4 \ android-support-v7-recyclerview \ + android-support-v7-preference \ + android-support-v7-appcompat \ + android-support-v14-preference \ + android-support-v17-preference-leanback \ android-support-v17-leanback -LOCAL_AAPT_FLAGS += --auto-add-overlay --extra-packages android.support.v17.leanback +LOCAL_AAPT_FLAGS += --auto-add-overlay \ + --extra-packages android.support.v17.leanback:android.support.v7.preference:android.support.v14.preference:android.support.v17.preference:android.support.v7.appcompat LOCAL_CERTIFICATE := platform LOCAL_PRIVILEGED_MODULE := true diff --git a/QuickSettings/proguard.cfg b/QuickSettings/proguard.cfg new file mode 100644 index 00000000..28d53448 --- /dev/null +++ b/QuickSettings/proguard.cfg @@ -0,0 +1,50 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontpreverify +-verbose +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +-keep public class * extends android.support.v7.preference.Preference +-keep public class com.android.vending.licensing.ILicensingService + +-keepclasseswithmembernames class * { + native <methods>; +} + +-keepclasseswithmembers class * { + public <init>(android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembers class * { + public <init>(android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} + +-dontwarn org.bouncycastle.x509.util.LDAPStoreHelper +-dontwarn org.bouncycastle.jce.provider.X509LDAPCertStoreSpi +-dontwarn org.bouncycastle.util.io.pem.AllTests +-dontwarn org.bouncycastle.util.AllTests +-dontwarn android.support.v13.app.FragmentCompatICSMR1 +-dontwarn android.support.v4.view.ViewCompatJellybeanMr1 +-dontwarn org.bouncycastle.x509.X509V3CertificateGenerator +-dontwarn org.bouncycastle.jce.provider.BouncyCastleProvider diff --git a/QuickSettings/res/layout/side_quicksettings.xml b/QuickSettings/res/layout/side_quicksettings.xml deleted file mode 100644 index c9a553b5..00000000 --- a/QuickSettings/res/layout/side_quicksettings.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2014 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="horizontal"> - <Space - android:layout_width="0dp" - android:layout_height="match_parent" - android:layout_weight="1"/> - <LinearLayout - android:id="@+id/main_frame" - android:orientation="vertical" - android:elevation="@dimen/panel_z" - android:background="@color/side_panel_background" - android:layout_width="@dimen/panel_width" - android:layout_height="match_parent"> - - <TextView android:id="@+id/side_panel_title" - android:layout_width="match_parent" - android:layout_height="@dimen/side_panel_title_text_height" - android:background="@color/side_panel_title_background" - android:fontFamily="sans-serif-condensed" - android:gravity="center_vertical" - android:paddingTop="@dimen/side_panel_title_padding_top" - android:paddingStart="@dimen/side_panel_title_padding_start" - android:paddingEnd="@dimen/side_panel_title_padding_end" - android:singleLine="true" - android:text="@string/main_label" - android:textSize="@dimen/side_panel_title_text_size" - android:textColor="@color/menu_default_text_color" - /> - - <FrameLayout - android:id="@+id/side_panel_list" - android:layout_width="match_parent" - android:layout_height="match_parent" - /> - </LinearLayout> -</LinearLayout> diff --git a/QuickSettings/res/values/themes.xml b/QuickSettings/res/values/themes.xml index 18469666..5be77a84 100644 --- a/QuickSettings/res/values/themes.xml +++ b/QuickSettings/res/values/themes.xml @@ -18,7 +18,7 @@ <resources> <!-- Based on Theme.Material.Dialog.NoFrame --> - <style name="Theme.QuickSettings" parent="android:Theme.Material"> + <style name="Theme.QuickSettings" parent="Theme.Leanback"> <item name="android:windowFrame">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> @@ -43,7 +43,7 @@ <item name="android:listPreferredItemPaddingStart">16dip</item> <item name="android:listPreferredItemPaddingEnd">16dip</item> - <item name="@*android:preferencePanelStyle">@*android:style/PreferencePanel.Dialog</item> + <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14</item> </style> <style name="Theme.QuickSettings.Floating"> diff --git a/QuickSettings/res/xml/quick_settings.xml b/QuickSettings/res/xml/quick_settings.xml index 7978cd39..58b4b0ad 100644 --- a/QuickSettings/res/xml/quick_settings.xml +++ b/QuickSettings/res/xml/quick_settings.xml @@ -15,47 +15,50 @@ ~ limitations under the License --> -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> - <com.android.tv.quicksettings.ListPreferenceNoClick - android:key="preset" - android:title="@string/setting_preset_name" - android:entries="@array/setting_preset_choices" - android:entryValues="@array/setting_preset_values" - android:defaultValue="standard" - /> - <Preference - android:key="backlight" - android:title="@string/setting_backlight_name" - android:defaultValue="@integer/standard_setting_backlight" - /> - <Preference - android:key="contrast" - android:title="@string/setting_contrast_name" - android:defaultValue="@integer/standard_setting_contrast" - /> - <Preference - android:key="brightness" - android:title="@string/setting_brightness_name" - android:defaultValue="@integer/standard_setting_brightness" - /> - <Preference - android:key="sharpness" - android:title="@string/setting_sharpness_name" - android:defaultValue="@integer/standard_setting_sharpness" - /> - <Preference - android:key="color" - android:title="@string/setting_color_name" - android:defaultValue="@integer/standard_setting_color" - /> - <Preference - android:key="tint" - android:title="@string/setting_tint_name" - android:defaultValue="@integer/standard_setting_tint" - /> - <Preference - android:key="reset" - android:title="@string/setting_reset_defaults_name" - android:persistent="false" - /> -</PreferenceScreen>
\ No newline at end of file +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + app:title="@string/main_label"> + + <ListPreference + app:key="preset" + app:title="@string/setting_preset_name" + app:entries="@array/setting_preset_choices" + app:entryValues="@array/setting_preset_values" + app:defaultValue="standard" + /> + <Preference + app:key="backlight" + app:title="@string/setting_backlight_name" + app:defaultValue="@integer/standard_setting_backlight" + /> + <Preference + app:key="contrast" + app:title="@string/setting_contrast_name" + app:defaultValue="@integer/standard_setting_contrast" + /> + <Preference + app:key="brightness" + app:title="@string/setting_brightness_name" + app:defaultValue="@integer/standard_setting_brightness" + /> + <Preference + app:key="sharpness" + app:title="@string/setting_sharpness_name" + app:defaultValue="@integer/standard_setting_sharpness" + /> + <Preference + app:key="color" + app:title="@string/setting_color_name" + app:defaultValue="@integer/standard_setting_color" + /> + <Preference + app:key="tint" + app:title="@string/setting_tint_name" + app:defaultValue="@integer/standard_setting_tint" + /> + <Preference + app:key="reset" + app:title="@string/setting_reset_defaults_name" + app:persistent="false" + /> +</PreferenceScreen> diff --git a/QuickSettings/src/com/android/tv/quicksettings/ListPreferenceNoClick.java b/QuickSettings/src/com/android/tv/quicksettings/ListPreferenceNoClick.java deleted file mode 100644 index e1de55f0..00000000 --- a/QuickSettings/src/com/android/tv/quicksettings/ListPreferenceNoClick.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.tv.quicksettings; - -import android.content.Context; -import android.preference.ListPreference; -import android.util.AttributeSet; - -public class ListPreferenceNoClick extends ListPreference { - - public ListPreferenceNoClick(Context context, AttributeSet attrs, - int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - public ListPreferenceNoClick(Context context, AttributeSet attrs, - int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public ListPreferenceNoClick(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public ListPreferenceNoClick(Context context) { - super(context); - } - - @Override - protected void onClick() {} -} diff --git a/QuickSettings/src/com/android/tv/quicksettings/QuickSettings.java b/QuickSettings/src/com/android/tv/quicksettings/QuickSettings.java index 8d46a8dd..8225c57b 100644 --- a/QuickSettings/src/com/android/tv/quicksettings/QuickSettings.java +++ b/QuickSettings/src/com/android/tv/quicksettings/QuickSettings.java @@ -16,51 +16,56 @@ package com.android.tv.quicksettings; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; -import android.view.View; +import android.support.v14.preference.PreferenceFragment; +import android.support.v17.preference.LeanbackPreferenceFragment; +import android.support.v17.preference.LeanbackSettingsFragment; +import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceScreen; public class QuickSettings extends Activity { private static final String TAG = "QuickSettings"; - static final int PRESET_SETTING_INDEX = 0; - static final int INTEGER_SETTING_START_INDEX = 1; - - private int mSlidOutTranslationX; - private View mRootView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.side_quicksettings); - - if (getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { - mSlidOutTranslationX = -getResources().getDimensionPixelSize(R.dimen.panel_width); - } else { - mSlidOutTranslationX = getResources().getDimensionPixelSize(R.dimen.panel_width); - } - - mRootView = getWindow().getDecorView().findViewById(R.id.main_frame); - mRootView.setTranslationX(mSlidOutTranslationX); - if (savedInstanceState == null) { final Fragment f = new QuickSettingsFragment(); - getFragmentManager().beginTransaction().add(R.id.side_panel_list, f).commit(); + getFragmentManager().beginTransaction().add(android.R.id.content, f).commit(); getFragmentManager().executePendingTransactions(); } } - @Override - protected void onResume() { - super.onResume(); - mRootView.animate().cancel(); - mRootView.animate().translationX(0).start(); + public static class QuickSettingsFragment extends LeanbackSettingsFragment { + + @Override + public void onPreferenceStartInitialScreen() { + final Fragment f = new QuickSettingsPreferenceFragment(); + startPreferenceFragment(f, null); + } + + @Override + public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) { + return false; + } + + @Override + public boolean onPreferenceStartScreen(PreferenceFragment caller, PreferenceScreen pref) { + final Fragment f = new SubSettingsFragment(); + final Bundle b = new Bundle(1); + b.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, pref.getKey()); + f.setArguments(b); + startPreferenceFragment(f, null); + return true; + } } - @Override - protected void onPause() { - mRootView.animate().cancel(); - mRootView.animate().translationX(mSlidOutTranslationX).start(); - super.onPause(); + public static class SubSettingsFragment extends LeanbackPreferenceFragment { + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.quick_settings, rootKey); + } } } diff --git a/QuickSettings/src/com/android/tv/quicksettings/QuickSettingsFragment.java b/QuickSettings/src/com/android/tv/quicksettings/QuickSettingsPreferenceFragment.java index b59b4c4d..e98c0b9b 100644 --- a/QuickSettings/src/com/android/tv/quicksettings/QuickSettingsFragment.java +++ b/QuickSettings/src/com/android/tv/quicksettings/QuickSettingsPreferenceFragment.java @@ -22,16 +22,14 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; -import android.preference.ListPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.preference.PreferenceScreen; -import android.support.annotation.NonNull; +import android.support.v17.preference.LeanbackPreferenceFragment; +import android.support.v7.preference.ListPreference; +import android.support.v7.preference.Preference; import java.util.Arrays; import java.util.List; -public class QuickSettingsFragment extends PreferenceFragment implements +public class QuickSettingsPreferenceFragment extends LeanbackPreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener, Preference.OnPreferenceClickListener { private ListPreference mPresetPref; @@ -49,8 +47,11 @@ public class QuickSettingsFragment extends PreferenceFragment implements super.onCreate(savedInstanceState); mPresetSettingsListener = new PresetSettingsListener(getActivity()); + } - addPreferencesFromResource(R.xml.quick_settings); + @Override + public void onCreatePreferences(Bundle savedInstanceState, String key) { + setPreferencesFromResource(R.xml.quick_settings, key); mPresetPref = (ListPreference) findPreference("preset"); mPresetPref.setOnPreferenceClickListener(this); @@ -75,7 +76,6 @@ public class QuickSettingsFragment extends PreferenceFragment implements final Preference resetPreference = findPreference("reset"); resetPreference.setOnPreferenceClickListener(this); - } @Override @@ -173,4 +173,9 @@ public class QuickSettingsFragment extends PreferenceFragment implements } return false; } + + @Override + public void onDisplayPreferenceDialog(Preference preference) { + // Do nothing + } } diff --git a/QuickSettings/src/com/android/tv/quicksettings/SettingsDialog.java b/QuickSettings/src/com/android/tv/quicksettings/SettingsDialog.java index 47af8d9d..5c61def2 100644 --- a/QuickSettings/src/com/android/tv/quicksettings/SettingsDialog.java +++ b/QuickSettings/src/com/android/tv/quicksettings/SettingsDialog.java @@ -37,6 +37,9 @@ import java.util.Arrays; public class SettingsDialog extends Activity { + private static final int PRESET_SETTING_INDEX = 0; + private static final int INTEGER_SETTING_START_INDEX = 1; + private static final String TAG = "SettingsDialog"; private static final boolean DEBUG = true; @@ -101,10 +104,10 @@ public class SettingsDialog extends Activity { @Override public void onClick(DialogInterface dialog, int id) { // User clicked OK button - String[] presetSettingChoices = getResources().getStringArray( - R.array.setting_preset_choices); - mSettings.get(QuickSettings.PRESET_SETTING_INDEX).setValue( - presetSettingChoices[getResources().getInteger( + String[] presetSettingValues = getResources().getStringArray( + R.array.setting_preset_values); + mSettings.get(PRESET_SETTING_INDEX).setValue( + presetSettingValues[getResources().getInteger( R.integer.standard_setting_index)]); } }).setNegativeButton(android.R.string.cancel, @@ -222,8 +225,8 @@ public class SettingsDialog extends Activity { mSeekBar.setProgress(mFocusedSetting.getIntValue()); mSettingValue.setText(Integer.toString(mFocusedSetting.getIntValue())); String[] presetSettingChoices = getResources().getStringArray( - R.array.setting_preset_choices); - mSettings.get(QuickSettings.PRESET_SETTING_INDEX).setValue( + R.array.setting_preset_values); + mSettings.get(PRESET_SETTING_INDEX).setValue( presetSettingChoices[getResources().getInteger(R.integer.custom_setting_index)]); } @@ -234,8 +237,9 @@ public class SettingsDialog extends Activity { String[] presetSettingChoices = getResources().getStringArray( R.array.setting_preset_choices); + String[] presetSettingValues = getResources().getStringArray(R.array.setting_preset_values); - int currentIndex = Arrays.asList(presetSettingChoices).indexOf( + int currentIndex = Arrays.asList(presetSettingValues).indexOf( mFocusedSetting.getStringValue()); switch (keyCode) { case KeyEvent.KEYCODE_DPAD_RIGHT: @@ -247,9 +251,9 @@ public class SettingsDialog extends Activity { default: return super.onKeyUp(keyCode, event); } - int newIndex = (currentIndex + presetSettingChoices.length) % presetSettingChoices.length; - mFocusedSetting.setValue(presetSettingChoices[newIndex]); - mSettingValue.setText(mFocusedSetting.getStringValue()); + int newIndex = (currentIndex + presetSettingValues.length) % presetSettingValues.length; + mFocusedSetting.setValue(presetSettingValues[newIndex]); + mSettingValue.setText(presetSettingChoices[newIndex]); int[] newSettingValues = null; if (newIndex == getResources().getInteger(R.integer.standard_setting_index)) { newSettingValues = getResources().getIntArray(R.array.standard_setting_values); @@ -262,7 +266,7 @@ public class SettingsDialog extends Activity { } if (newSettingValues != null) { for (int i = 0; i < newSettingValues.length; i++) { - mSettings.get(i + QuickSettings.INTEGER_SETTING_START_INDEX).setValue( + mSettings.get(i + INTEGER_SETTING_START_INDEX).setValue( newSettingValues[i]); } } |