1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.settings.privacy;
17 
18 import android.content.Context;
19 import android.text.TextUtils;
20 
21 import androidx.annotation.NonNull;
22 import androidx.preference.Preference;
23 
24 import com.android.settings.core.BasePreferenceController;
25 import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
26 import com.android.settings.overlay.FeatureFactory;
27 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
28 
29 
30 public class WorkPolicyInfoPreferenceController extends BasePreferenceController {
31 
32     private final @NonNull EnterprisePrivacyFeatureProvider mEnterpriseProvider;
33 
WorkPolicyInfoPreferenceController(Context context, String preferenceKey)34     public WorkPolicyInfoPreferenceController(Context context, String preferenceKey) {
35         super(context, preferenceKey);
36         mEnterpriseProvider =
37                 FeatureFactory.getFeatureFactory().getEnterprisePrivacyFeatureProvider();
38     }
39 
40     @Override
getAvailabilityStatus()41     public int getAvailabilityStatus() {
42         // Your Work policy info will be shown in the Safety Center.
43         // No need to show it in the privacy settings.
44         return !SafetyCenterManagerWrapper.get().isEnabled(mContext)
45                 && mEnterpriseProvider.hasWorkPolicyInfo()
46                 ? AVAILABLE
47                 : UNSUPPORTED_ON_DEVICE;
48     }
49 
50     @Override
handlePreferenceTreeClick(Preference preference)51     public boolean handlePreferenceTreeClick(Preference preference) {
52         if (TextUtils.equals(getPreferenceKey(), preference.getKey())) {
53             mEnterpriseProvider.showWorkPolicyInfo(preference.getContext());
54             return true;
55         }
56         return false;
57     }
58 }
59