summaryrefslogtreecommitdiffstats
path: root/QuickSettings
diff options
context:
space:
mode:
authorTony Mantler <nicoya@google.com>2015-02-26 10:02:20 -0800
committerTony Mantler <nicoya@google.com>2015-03-26 14:23:34 -0700
commit14c0f6421be479a1c95b3d3482f3f47f39247170 (patch)
tree7ee6400a7d32a89512209cd47eddb5570262b0e9 /QuickSettings
parent86cc097cbcb62a2642759a7561415438509ddba1 (diff)
downloadandroid_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.mk12
-rw-r--r--QuickSettings/proguard.cfg50
-rw-r--r--QuickSettings/res/layout/side_quicksettings.xml56
-rw-r--r--QuickSettings/res/values/themes.xml4
-rw-r--r--QuickSettings/res/xml/quick_settings.xml91
-rw-r--r--QuickSettings/src/com/android/tv/quicksettings/ListPreferenceNoClick.java45
-rw-r--r--QuickSettings/src/com/android/tv/quicksettings/QuickSettings.java61
-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.java26
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]);
}
}