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