17f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang/*
27f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * Copyright (C) 2016 The Android Open Source Project
37f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang *
47f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * Licensed under the Apache License, Version 2.0 (the "License");
57f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * you may not use this file except in compliance with the License.
67f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * You may obtain a copy of the License at
77f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang *
87f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang *      http://www.apache.org/licenses/LICENSE-2.0
97f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang *
107f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * Unless required by applicable law or agreed to in writing, software
117f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * distributed under the License is distributed on an "AS IS" BASIS,
127f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * See the License for the specific language governing permissions and
147f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang * limitations under the License.
157f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang */
167f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
177f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuangpackage com.android.settings.development;
187f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
197f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuangimport android.content.Context;
207f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuangimport android.os.UserManager;
217f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
2237df3d6d1f3114fbf4906889f9855de2e11990efjeffreyhuangimport com.android.settings.core.PreferenceControllerMixin;
2337df3d6d1f3114fbf4906889f9855de2e11990efjeffreyhuangimport com.android.settingslib.development.DeveloperOptionsPreferenceController;
2437df3d6d1f3114fbf4906889f9855de2e11990efjeffreyhuang
25e89dc361496aa728f336bf1945553c2f16cb5ba8jeffreyhuangpublic class BugReportPreferenceController extends DeveloperOptionsPreferenceController implements
2637df3d6d1f3114fbf4906889f9855de2e11990efjeffreyhuang        PreferenceControllerMixin {
277f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
287f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    private static final String KEY_BUGREPORT = "bugreport";
297f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
307f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    private final UserManager mUserManager;
317f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
32e89dc361496aa728f336bf1945553c2f16cb5ba8jeffreyhuang    public BugReportPreferenceController(Context context) {
337f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang        super(context);
347f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
357f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
367f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    }
377f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
387f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    @Override
397f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    public boolean isAvailable() {
407f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang        return !mUserManager.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
417f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    }
427f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang
437f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    @Override
447f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    public String getPreferenceKey() {
457f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang        return KEY_BUGREPORT;
467f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang    }
477f578fb1ef3e845f2c7810b2bdaf759b648ed1bfjeffreyhuang}
48