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