blob: 70f2fdcfa8d34dd43b0e92fc0a985738638e16c1 [file] [log] [blame]
Jason Monk295a3372015-05-11 16:57:15 -04001/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package com.android.systemui.tuner;
17
Jason Monk431ad732015-07-16 08:58:15 -040018import android.app.AlertDialog;
Jason Monk72def0d2015-11-10 16:03:06 -050019import android.app.Dialog;
20import android.app.DialogFragment;
Jason Monk431ad732015-07-16 08:58:15 -040021import android.content.DialogInterface;
John Spurlockf40d08f2015-05-29 10:48:22 -040022import android.database.ContentObserver;
23import android.net.Uri;
Jason Monk295a3372015-05-11 16:57:15 -040024import android.os.Bundle;
John Spurlockf40d08f2015-05-29 10:48:22 -040025import android.os.Handler;
Jason Monk431ad732015-07-16 08:58:15 -040026import android.provider.Settings;
John Spurlockf40d08f2015-05-29 10:48:22 -040027import android.provider.Settings.System;
Jason Monk87ccd552015-12-11 21:39:54 -050028import android.support.v14.preference.PreferenceFragment;
29import android.support.v14.preference.SwitchPreference;
30import android.support.v7.preference.Preference;
31import android.support.v7.preference.Preference.OnPreferenceChangeListener;
Jason Monk431ad732015-07-16 08:58:15 -040032import android.view.Menu;
33import android.view.MenuInflater;
Jason Monk295a3372015-05-11 16:57:15 -040034import android.view.MenuItem;
Jason Monk87ccd552015-12-11 21:39:54 -050035
Jason Monka4031592015-07-16 14:15:50 -040036import com.android.internal.logging.MetricsLogger;
Chris Wrenf6e9228b2016-01-26 18:04:35 -050037import com.android.internal.logging.MetricsProto.MetricsEvent;
Jason Monk295a3372015-05-11 16:57:15 -040038import com.android.systemui.R;
Jason Monkfe7c91b2015-08-13 15:42:28 -040039
Jason Monk295a3372015-05-11 16:57:15 -040040public class TunerFragment extends PreferenceFragment {
41
Jason Monk431ad732015-07-16 08:58:15 -040042 private static final String TAG = "TunerFragment";
43
John Spurlockf40d08f2015-05-29 10:48:22 -040044 private static final String KEY_BATTERY_PCT = "battery_pct";
45
Jason Monk431ad732015-07-16 08:58:15 -040046 public static final String SETTING_SEEN_TUNER_WARNING = "seen_tuner_warning";
47
Jason Monk72def0d2015-11-10 16:03:06 -050048 private static final String WARNING_TAG = "tuner_warning";
49
Jason Monk431ad732015-07-16 08:58:15 -040050 private static final int MENU_REMOVE = Menu.FIRST + 1;
51
Jason Monk87ccd552015-12-11 21:39:54 -050052 @Override
Jason Monk295a3372015-05-11 16:57:15 -040053 public void onCreate(Bundle savedInstanceState) {
54 super.onCreate(savedInstanceState);
55
Jason Monk295a3372015-05-11 16:57:15 -040056 setHasOptionsMenu(true);
Jason Monk87ccd552015-12-11 21:39:54 -050057 }
Jason Monk11a77442015-05-12 19:29:02 -040058
Jason Monk87ccd552015-12-11 21:39:54 -050059 @Override
Jason Monka9f12882016-01-24 12:03:19 -050060 public void onActivityCreated(Bundle savedInstanceState) {
61 super.onActivityCreated(savedInstanceState);
62 getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
63 }
64
65 @Override
Jason Monk87ccd552015-12-11 21:39:54 -050066 public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
67 addPreferencesFromResource(R.xml.tuner_prefs);
68
Jason Monk431ad732015-07-16 08:58:15 -040069 if (Settings.Secure.getInt(getContext().getContentResolver(), SETTING_SEEN_TUNER_WARNING,
70 0) == 0) {
Jason Monk72def0d2015-11-10 16:03:06 -050071 if (getFragmentManager().findFragmentByTag(WARNING_TAG) == null) {
72 new TunerWarningFragment().show(getFragmentManager(), WARNING_TAG);
73 }
Jason Monk431ad732015-07-16 08:58:15 -040074 }
John Spurlockf40d08f2015-05-29 10:48:22 -040075 }
76
77 @Override
78 public void onResume() {
79 super.onResume();
Jason Monkf0c6f642016-01-20 22:24:50 -050080 getActivity().setTitle(R.string.system_ui_tuner);
Jason Monk5e745172015-06-02 19:14:44 -040081
Chris Wrenf6e9228b2016-01-26 18:04:35 -050082 MetricsLogger.visibility(getContext(), MetricsEvent.TUNER, true);
John Spurlockf40d08f2015-05-29 10:48:22 -040083 }
84
85 @Override
86 public void onPause() {
87 super.onPause();
Jason Monk5e745172015-06-02 19:14:44 -040088
Chris Wrenf6e9228b2016-01-26 18:04:35 -050089 MetricsLogger.visibility(getContext(), MetricsEvent.TUNER, false);
Jason Monk5e745172015-06-02 19:14:44 -040090 }
91
Jason Monk295a3372015-05-11 16:57:15 -040092 @Override
Jason Monk431ad732015-07-16 08:58:15 -040093 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
94 menu.add(Menu.NONE, MENU_REMOVE, Menu.NONE, R.string.remove_from_settings);
95 }
96
97 @Override
Jason Monk295a3372015-05-11 16:57:15 -040098 public boolean onOptionsItemSelected(MenuItem item) {
99 switch (item.getItemId()) {
100 case android.R.id.home:
101 getActivity().finish();
102 return true;
Jason Monk431ad732015-07-16 08:58:15 -0400103 case MENU_REMOVE:
104 TunerService.showResetRequest(getContext(), new Runnable() {
105 @Override
106 public void run() {
107 getActivity().finish();
108 }
109 });
110 return true;
Jason Monk295a3372015-05-11 16:57:15 -0400111 }
112 return super.onOptionsItemSelected(item);
113 }
114
Jason Monk72def0d2015-11-10 16:03:06 -0500115 public static class TunerWarningFragment extends DialogFragment {
116 @Override
117 public Dialog onCreateDialog(Bundle savedInstanceState) {
118 return new AlertDialog.Builder(getContext())
119 .setTitle(R.string.tuner_warning_title)
120 .setMessage(R.string.tuner_warning)
121 .setPositiveButton(R.string.got_it, new DialogInterface.OnClickListener() {
122 @Override
123 public void onClick(DialogInterface dialog, int which) {
124 Settings.Secure.putInt(getContext().getContentResolver(),
125 SETTING_SEEN_TUNER_WARNING, 1);
126 }
127 }).show();
128 }
129 }
Jason Monk295a3372015-05-11 16:57:15 -0400130}