151059c5c9101300c7cd410bfe6582de25145079eFan Zhang/* 251059c5c9101300c7cd410bfe6582de25145079eFan Zhang * Copyright (C) 2017 The Android Open Source Project 351059c5c9101300c7cd410bfe6582de25145079eFan Zhang * 451059c5c9101300c7cd410bfe6582de25145079eFan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 551059c5c9101300c7cd410bfe6582de25145079eFan Zhang * you may not use this file except in compliance with the License. 651059c5c9101300c7cd410bfe6582de25145079eFan Zhang * You may obtain a copy of the License at 751059c5c9101300c7cd410bfe6582de25145079eFan Zhang * 851059c5c9101300c7cd410bfe6582de25145079eFan Zhang * http://www.apache.org/licenses/LICENSE-2.0 951059c5c9101300c7cd410bfe6582de25145079eFan Zhang * 1051059c5c9101300c7cd410bfe6582de25145079eFan Zhang * Unless required by applicable law or agreed to in writing, software 1151059c5c9101300c7cd410bfe6582de25145079eFan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 1251059c5c9101300c7cd410bfe6582de25145079eFan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1351059c5c9101300c7cd410bfe6582de25145079eFan Zhang * See the License for the specific language governing permissions and 1451059c5c9101300c7cd410bfe6582de25145079eFan Zhang * limitations under the License. 1551059c5c9101300c7cd410bfe6582de25145079eFan Zhang */ 1651059c5c9101300c7cd410bfe6582de25145079eFan Zhang 1751059c5c9101300c7cd410bfe6582de25145079eFan Zhangpackage com.android.settings.applications; 1851059c5c9101300c7cd410bfe6582de25145079eFan Zhang 1951059c5c9101300c7cd410bfe6582de25145079eFan Zhangimport android.content.Context; 2051059c5c9101300c7cd410bfe6582de25145079eFan Zhangimport android.os.Bundle; 2151059c5c9101300c7cd410bfe6582de25145079eFan Zhangimport android.support.v7.preference.Preference; 2251059c5c9101300c7cd410bfe6582de25145079eFan Zhangimport android.text.TextUtils; 2351059c5c9101300c7cd410bfe6582de25145079eFan Zhang 241d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantlerimport com.android.settings.core.PreferenceControllerMixin; 251d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantlerimport com.android.settingslib.core.AbstractPreferenceController; 26777ed2535a7fd6f618a0d12f381af99252283574Juan Langimport com.android.settingslib.core.lifecycle.Lifecycle; 27777ed2535a7fd6f618a0d12f381af99252283574Juan Langimport com.android.settingslib.core.lifecycle.LifecycleObserver; 28777ed2535a7fd6f618a0d12f381af99252283574Juan Langimport com.android.settingslib.core.lifecycle.events.OnCreate; 29777ed2535a7fd6f618a0d12f381af99252283574Juan Langimport com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; 3051059c5c9101300c7cd410bfe6582de25145079eFan Zhang 311d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantlerpublic class ResetAppPrefPreferenceController extends AbstractPreferenceController 321d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantler implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnSaveInstanceState { 3351059c5c9101300c7cd410bfe6582de25145079eFan Zhang 3451059c5c9101300c7cd410bfe6582de25145079eFan Zhang private ResetAppsHelper mResetAppsHelper; 3551059c5c9101300c7cd410bfe6582de25145079eFan Zhang 3651059c5c9101300c7cd410bfe6582de25145079eFan Zhang public ResetAppPrefPreferenceController(Context context, Lifecycle lifecycle) { 3751059c5c9101300c7cd410bfe6582de25145079eFan Zhang super(context); 3851059c5c9101300c7cd410bfe6582de25145079eFan Zhang mResetAppsHelper = new ResetAppsHelper(context); 3951059c5c9101300c7cd410bfe6582de25145079eFan Zhang if (lifecycle != null) { 4051059c5c9101300c7cd410bfe6582de25145079eFan Zhang lifecycle.addObserver(this); 4151059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 4251059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 4351059c5c9101300c7cd410bfe6582de25145079eFan Zhang 4451059c5c9101300c7cd410bfe6582de25145079eFan Zhang @Override 4551059c5c9101300c7cd410bfe6582de25145079eFan Zhang public boolean handlePreferenceTreeClick(Preference preference) { 4651059c5c9101300c7cd410bfe6582de25145079eFan Zhang if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) { 4751059c5c9101300c7cd410bfe6582de25145079eFan Zhang return false; 4851059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 4951059c5c9101300c7cd410bfe6582de25145079eFan Zhang mResetAppsHelper.buildResetDialog(); 5051059c5c9101300c7cd410bfe6582de25145079eFan Zhang return true; 5151059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 5251059c5c9101300c7cd410bfe6582de25145079eFan Zhang 5351059c5c9101300c7cd410bfe6582de25145079eFan Zhang @Override 5451059c5c9101300c7cd410bfe6582de25145079eFan Zhang public boolean isAvailable() { 5551059c5c9101300c7cd410bfe6582de25145079eFan Zhang return true; 5651059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 5751059c5c9101300c7cd410bfe6582de25145079eFan Zhang 5851059c5c9101300c7cd410bfe6582de25145079eFan Zhang @Override 5951059c5c9101300c7cd410bfe6582de25145079eFan Zhang public String getPreferenceKey() { 6051059c5c9101300c7cd410bfe6582de25145079eFan Zhang return "reset_app_prefs"; 6151059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 6251059c5c9101300c7cd410bfe6582de25145079eFan Zhang 6351059c5c9101300c7cd410bfe6582de25145079eFan Zhang @Override 6451059c5c9101300c7cd410bfe6582de25145079eFan Zhang public void onCreate(Bundle savedInstanceState) { 6551059c5c9101300c7cd410bfe6582de25145079eFan Zhang mResetAppsHelper.onRestoreInstanceState(savedInstanceState); 6651059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 6751059c5c9101300c7cd410bfe6582de25145079eFan Zhang 6851059c5c9101300c7cd410bfe6582de25145079eFan Zhang @Override 6951059c5c9101300c7cd410bfe6582de25145079eFan Zhang public void onSaveInstanceState(Bundle outState) { 7051059c5c9101300c7cd410bfe6582de25145079eFan Zhang mResetAppsHelper.onSaveInstanceState(outState); 7151059c5c9101300c7cd410bfe6582de25145079eFan Zhang } 7251059c5c9101300c7cd410bfe6582de25145079eFan Zhang} 73