Switch Tuner to support prefs (and some improvements)
Change-Id: I2ef62c0c56d4af69f9f34e1cfd297999d59b7da6
This commit is contained in:
@@ -8,7 +8,11 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-proto-files-unde
|
||||
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := \
|
||||
Keyguard \
|
||||
android-support-v7-recyclerview
|
||||
android-support-v7-recyclerview \
|
||||
android-support-v7-preference \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v14-preference
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := telephony-common
|
||||
|
||||
LOCAL_PACKAGE_NAME := SystemUI
|
||||
@@ -22,10 +26,13 @@ LOCAL_PROGUARD_FLAG_FILES := proguard.flags
|
||||
LOCAL_RESOURCE_DIR := \
|
||||
frameworks/base/packages/Keyguard/res \
|
||||
$(LOCAL_PATH)/res \
|
||||
frameworks/support/v7/preference/res \
|
||||
frameworks/support/v14/preference/res \
|
||||
frameworks/support/v7/appcompat/res \
|
||||
frameworks/support/v7/recyclerview/res
|
||||
|
||||
LOCAL_AAPT_FLAGS := --auto-add-overlay \
|
||||
--extra-packages com.android.keyguard:android.support.v7.recyclerview
|
||||
--extra-packages com.android.keyguard:android.support.v7.recyclerview:android.support.v7.preference:android.support.v14.preference:android.support.v7.appcompat
|
||||
|
||||
ifneq ($(SYSTEM_UI_INCREMENTAL_BUILDS),)
|
||||
LOCAL_PROGUARD_ENABLED := disabled
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
<activity android:name=".tuner.TunerActivity"
|
||||
android:enabled="false"
|
||||
android:icon="@drawable/tuner"
|
||||
android:theme="@android:style/Theme.Material.Settings"
|
||||
android:theme="@style/TunerSettings"
|
||||
android:label="@string/system_ui_tuner"
|
||||
android:process=":tuner"
|
||||
android:exported="true">
|
||||
|
||||
@@ -27,3 +27,9 @@
|
||||
public float getTaskProgress();
|
||||
public void setTaskProgress(float);
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
public <init>(android.content.Context, android.util.AttributeSet);
|
||||
}
|
||||
|
||||
-keep class ** extends android.support.v14.preference.PreferenceFragment
|
||||
|
||||
@@ -315,4 +315,8 @@
|
||||
<item name="android:layout_height">48dp</item>
|
||||
</style>
|
||||
|
||||
<style name="TunerSettings" parent="@android:style/Theme.Material.Settings">
|
||||
<item name="preferenceTheme">@android:style/Theme.Material.Settings</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
sysui:defValue="true" />
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="status_bar"
|
||||
android:title="@string/status_bar" >
|
||||
|
||||
<com.android.systemui.tuner.StatusBarSwitch
|
||||
@@ -70,6 +71,7 @@
|
||||
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="overview"
|
||||
android:title="@string/overview" >
|
||||
|
||||
<com.android.systemui.tuner.TunerSwitch
|
||||
@@ -97,7 +99,8 @@
|
||||
|
||||
<Preference
|
||||
android:key="demo_mode"
|
||||
android:title="@string/demo_mode" />
|
||||
android:title="@string/demo_mode"
|
||||
android:fragment="com.android.systemui.tuner.DemoModeFragment" />
|
||||
|
||||
<!-- Warning, this goes last. -->
|
||||
<Preference
|
||||
|
||||
@@ -22,12 +22,12 @@ import android.database.ContentObserver;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.preference.Preference;
|
||||
import android.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.provider.Settings;
|
||||
import android.support.v14.preference.PreferenceFragment;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
@@ -56,9 +56,7 @@ public class DemoModeFragment extends PreferenceFragment implements OnPreference
|
||||
private SwitchPreference mOnSwitch;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
Context context = getContext();
|
||||
mEnabledSwitch = new SwitchPreference(context);
|
||||
mEnabledSwitch.setTitle(R.string.enable_demo_mode);
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.android.systemui.tuner;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.provider.Settings;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
@@ -38,15 +38,15 @@ public class StatusBarSwitch extends SwitchPreference implements Tunable {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToActivity() {
|
||||
super.onAttachedToActivity();
|
||||
public void onAttached() {
|
||||
super.onAttached();
|
||||
TunerService.get(getContext()).addTunable(this, StatusBarIconController.ICON_BLACKLIST);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromActivity() {
|
||||
public void onDetached() {
|
||||
TunerService.get(getContext()).removeTunable(this);
|
||||
super.onDetachedFromActivity();
|
||||
super.onDetached();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -15,16 +15,64 @@
|
||||
*/
|
||||
package com.android.systemui.tuner;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentTransaction;
|
||||
import android.os.Bundle;
|
||||
import android.support.v14.preference.PreferenceFragment;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.util.Log;
|
||||
|
||||
public class TunerActivity extends Activity {
|
||||
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
||||
import com.android.systemui.R;
|
||||
|
||||
public class TunerActivity extends SettingsDrawerActivity implements
|
||||
PreferenceFragment.OnPreferenceStartFragmentCallback,
|
||||
PreferenceFragment.OnPreferenceStartScreenCallback {
|
||||
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
getFragmentManager().beginTransaction().replace(android.R.id.content, new TunerFragment())
|
||||
getFragmentManager().beginTransaction().replace(R.id.content_frame, new TunerFragment())
|
||||
.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
|
||||
try {
|
||||
Class<?> cls = Class.forName(pref.getFragment());
|
||||
Fragment fragment = (Fragment) cls.newInstance();
|
||||
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack("PreferenceFragment");
|
||||
transaction.commit();
|
||||
return true;
|
||||
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
|
||||
Log.d("TunerActivity", "Problem launching fragment", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceStartScreen(PreferenceFragment caller, PreferenceScreen pref) {
|
||||
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
||||
SubSettingsFragment fragment = new SubSettingsFragment();
|
||||
final Bundle b = new Bundle(1);
|
||||
b.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, pref.getKey());
|
||||
fragment.setArguments(b);
|
||||
fragment.setTargetFragment(caller, 0);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack("PreferenceFragment");
|
||||
transaction.commit();
|
||||
return true;
|
||||
}
|
||||
|
||||
public static class SubSettingsFragment extends PreferenceFragment {
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
setPreferenceScreen((PreferenceScreen) ((PreferenceFragment) getTargetFragment())
|
||||
.getPreferenceScreen().findPreference(rootKey));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,20 +24,19 @@ import android.database.ContentObserver;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.preference.Preference;
|
||||
import android.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.preference.Preference.OnPreferenceClickListener;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.System;
|
||||
import android.support.v14.preference.PreferenceFragment;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.support.v7.preference.Preference.OnPreferenceClickListener;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.qs.QSPanel;
|
||||
import com.android.systemui.tuner.TunerService.Tunable;
|
||||
|
||||
import static com.android.systemui.BatteryMeterDrawable.SHOW_PERCENT_SETTING;
|
||||
|
||||
@@ -45,8 +44,6 @@ public class TunerFragment extends PreferenceFragment {
|
||||
|
||||
private static final String TAG = "TunerFragment";
|
||||
|
||||
private static final String KEY_QS_TUNER = "qs_tuner";
|
||||
private static final String KEY_DEMO_MODE = "demo_mode";
|
||||
private static final String KEY_BATTERY_PCT = "battery_pct";
|
||||
|
||||
public static final String SETTING_SEEN_TUNER_WARNING = "seen_tuner_warning";
|
||||
@@ -59,23 +56,18 @@ public class TunerFragment extends PreferenceFragment {
|
||||
|
||||
private SwitchPreference mBatteryPct;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
addPreferencesFromResource(R.xml.tuner_prefs);
|
||||
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
addPreferencesFromResource(R.xml.tuner_prefs);
|
||||
|
||||
findPreference(KEY_DEMO_MODE).setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
FragmentTransaction ft = getFragmentManager().beginTransaction();
|
||||
ft.replace(android.R.id.content, new DemoModeFragment(), "DemoMode");
|
||||
ft.addToBackStack(null);
|
||||
ft.commit();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
mBatteryPct = (SwitchPreference) findPreference(KEY_BATTERY_PCT);
|
||||
if (Settings.Secure.getInt(getContext().getContentResolver(), SETTING_SEEN_TUNER_WARNING,
|
||||
0) == 0) {
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.android.systemui.tuner;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.provider.Settings;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.android.systemui.R;
|
||||
@@ -21,15 +21,15 @@ public class TunerSwitch extends SwitchPreference implements Tunable {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToActivity() {
|
||||
super.onAttachedToActivity();
|
||||
public void onAttached() {
|
||||
super.onAttached();
|
||||
TunerService.get(getContext()).addTunable(this, getKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromActivity() {
|
||||
public void onDetached() {
|
||||
TunerService.get(getContext()).removeTunable(this);
|
||||
super.onDetachedFromActivity();
|
||||
super.onDetached();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,7 +21,8 @@ LOCAL_PROTOC_OPTIMIZE_TYPE := nano
|
||||
LOCAL_PROTOC_FLAGS := -I$(LOCAL_PATH)/..
|
||||
LOCAL_PROTO_JAVA_OUTPUT_PARAMS := optional_field_style=accessors
|
||||
|
||||
LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.systemui:com.android.keyguard
|
||||
LOCAL_AAPT_FLAGS := --auto-add-overlay \
|
||||
--extra-packages com.android.systemui:com.android.keyguard:android.support.v14.preference:android.support.v7.preference:android.support.v7.appcompat:android.support.v7.recyclerview
|
||||
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
|
||||
$(call all-Iaidl-files-under, src) \
|
||||
@@ -30,6 +31,10 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src) \
|
||||
src/com/android/systemui/EventLogTags.logtags
|
||||
|
||||
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
|
||||
frameworks/support/v7/preference/res \
|
||||
frameworks/support/v14/preference/res \
|
||||
frameworks/support/v7/appcompat/res \
|
||||
frameworks/support/v7/recyclerview/res \
|
||||
frameworks/base/packages/SystemUI/res \
|
||||
frameworks/base/packages/Keyguard/res
|
||||
|
||||
@@ -40,7 +45,10 @@ LOCAL_PACKAGE_NAME := SystemUITests
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := \
|
||||
mockito-target \
|
||||
Keyguard \
|
||||
android-support-v7-recyclerview
|
||||
android-support-v7-recyclerview \
|
||||
android-support-v7-preference \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v14-preference
|
||||
|
||||
# sign this with platform cert, so this test is allowed to inject key events into
|
||||
# UI it doesn't own. This is necessary to allow screenshots to be taken
|
||||
|
||||
Reference in New Issue
Block a user