1cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling/*
2cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * Copyright (C) 2016 The Android Open Source Project
3cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling *
4cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * Licensed under the Apache License, Version 2.0 (the "License");
5cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * you may not use this file except in compliance with the License.
6cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * You may obtain a copy of the License at
7cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling *
8cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling *      http://www.apache.org/licenses/LICENSE-2.0
9cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling *
10cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * Unless required by applicable law or agreed to in writing, software
11cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * distributed under the License is distributed on an "AS IS" BASIS,
12cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * See the License for the specific language governing permissions and
14cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling * limitations under the License.
15cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling */
16cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
17cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingpackage com.android.settings.development;
18cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
19cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingimport android.content.Context;
20cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingimport android.os.UserManager;
21cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingimport android.support.v7.preference.Preference;
22cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingimport android.support.v7.preference.PreferenceScreen;
23cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
24cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingimport com.android.settings.core.PreferenceController;
25cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
26cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Lingpublic class BugReportPreferenceController extends PreferenceController {
27cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
28cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    private static final String KEY_BUGREPORT = "bugreport";
29cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
30cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    private UserManager mUserManager;
31cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    private Preference mPreference;
32cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
33cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    public BugReportPreferenceController(Context context) {
34cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        super(context);
35cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
36cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    }
37cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
38cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    @Override
39cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    public void displayPreference(PreferenceScreen screen) {
40cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        super.displayPreference(screen);
41cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        if (isAvailable()) {
42cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling            mPreference = screen.findPreference(KEY_BUGREPORT);
43cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        }
44cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    }
45cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
46cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    @Override
47cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    public String getPreferenceKey() {
48cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        return KEY_BUGREPORT;
49cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    }
50cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
51cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    @Override
52cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    public boolean isAvailable() {
53cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        return !mUserManager.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
54cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    }
55cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
56cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    public void enablePreference(boolean enabled) {
57cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        if (isAvailable()) {
58cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling            mPreference.setEnabled(enabled);
59cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling        }
60cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling    }
61cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling
62cc20600102f7b61bac8be6160cce64fd4b1dde11Doris Ling}
63