105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski/* 205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * Copyright (C) 2016 The Android Open Source Project 305061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * 405061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * Licensed under the Apache License, Version 2.0 (the "License"); 505061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * you may not use this file except in compliance with the License. 605061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * You may obtain a copy of the License at 705061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * 805061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * http://www.apache.org/licenses/LICENSE-2.0 905061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * 1005061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * Unless required by applicable law or agreed to in writing, software 1105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * distributed under the License is distributed on an "AS IS" BASIS, 1205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1305061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * See the License for the specific language governing permissions and 1405061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski * limitations under the License. 1505061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski */ 1605061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 1705061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskipackage com.android.settings.enterprise; 1805061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 1905061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport android.content.Context; 2005061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport android.provider.SearchIndexableResource; 2105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 2205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport com.android.internal.logging.nano.MetricsProto.MetricsEvent; 239704a28c7b2934d40a70a4529a06641816be3d62Bartosz Fabianowskiimport com.android.settings.R; 2405061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport com.android.settings.dashboard.DashboardFragment; 25cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhangimport com.android.settings.overlay.FeatureFactory; 2605061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport com.android.settings.search.BaseSearchIndexProvider; 27b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhangimport com.android.settings.widget.PreferenceCategoryController; 281d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantlerimport com.android.settingslib.core.AbstractPreferenceController; 2905061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 3062b96811c15d635a475e87ea22c4cedad1567bb6Bartosz Fabianowskiimport java.util.ArrayList; 3105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport java.util.Arrays; 3205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskiimport java.util.List; 3305061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 3405061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowskipublic class EnterprisePrivacySettings extends DashboardFragment { 3505061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 3605061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski static final String TAG = "EnterprisePrivacySettings"; 3705061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 3805061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski @Override 3905061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski public int getMetricsCategory() { 4005061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski return MetricsEvent.ENTERPRISE_PRIVACY_SETTINGS; 4105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski } 4205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 4305061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski @Override 4405061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski protected String getLogTag() { 4505061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski return TAG; 4605061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski } 4705061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 4805061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski @Override 4905061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski protected int getPreferenceScreenResId() { 5005061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski return R.xml.enterprise_privacy_settings; 5105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski } 5205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 5305061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski @Override 54f7843adabd4e8e1cc84a52721daabefa3a1410fdFan Zhang protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { 55b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang return buildPreferenceControllers(context, true /* async */); 565dc168af1add029df23674f60eb4130b82012e70Bartosz Fabianowski } 575dc168af1add029df23674f60eb4130b82012e70Bartosz Fabianowski 581d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantler private static List<AbstractPreferenceController> buildPreferenceControllers(Context context, 59b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang boolean async) { 601d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantler final List<AbstractPreferenceController> controllers = new ArrayList<>(); 612e0b60849592ad65fa7c18468eebd13ec0772f2dBartosz Fabianowski controllers.add(new NetworkLogsPreferenceController(context)); 622e0b60849592ad65fa7c18468eebd13ec0772f2dBartosz Fabianowski controllers.add(new BugReportsPreferenceController(context)); 632e0b60849592ad65fa7c18468eebd13ec0772f2dBartosz Fabianowski controllers.add(new SecurityLogsPreferenceController(context)); 64b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang final List<AbstractPreferenceController> exposureChangesCategoryControllers = 651d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantler new ArrayList<>(); 6655038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add(new EnterpriseInstalledPackagesPreferenceController( 67b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang context, async)); 6855038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add( 69b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang new AdminGrantedLocationPermissionsPreferenceController(context, async)); 7055038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add( 71b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang new AdminGrantedMicrophonePermissionPreferenceController(context, async)); 7255038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add(new AdminGrantedCameraPermissionPreferenceController( 73b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang context, async)); 7455038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add(new EnterpriseSetDefaultAppsPreferenceController( 75b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang context)); 7655038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add(new AlwaysOnVpnCurrentUserPreferenceController( 77b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang context)); 7855038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski exposureChangesCategoryControllers.add(new AlwaysOnVpnManagedProfilePreferenceController( 79b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang context)); 80b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang exposureChangesCategoryControllers.add(new ImePreferenceController(context)); 81b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang exposureChangesCategoryControllers.add(new GlobalHttpProxyPreferenceController(context)); 82b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController(context)); 83c74bbcd3b247c3005d8997de650ade21039c5a96Tony Mak exposureChangesCategoryControllers.add(new CaCertsManagedProfilePreferenceController( 84b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang context)); 85a112226db22f47587a814d1891b2ce137c62b2d5Lenka Trochtova exposureChangesCategoryControllers.add(new BackupsEnabledPreferenceController(context)); 8655038c0a95fee80a1d399c123be7cdde5b1f0d96Bartosz Fabianowski controllers.addAll(exposureChangesCategoryControllers); 87b5c651c9399aa53e0bef296a265a47c825fe12b2Fan Zhang controllers.add(new PreferenceCategoryController(context, "exposure_changes_category") 88b5c651c9399aa53e0bef296a265a47c825fe12b2Fan Zhang .setChildren(exposureChangesCategoryControllers)); 89b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang controllers.add(new FailedPasswordWipeCurrentUserPreferenceController(context)); 90b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang controllers.add(new FailedPasswordWipeManagedProfilePreferenceController(context)); 9162b96811c15d635a475e87ea22c4cedad1567bb6Bartosz Fabianowski return controllers; 9205061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski } 9305061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski 94cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang public static boolean isPageEnabled(Context context) { 95cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang return FeatureFactory.getFactory(context) 96cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang .getEnterprisePrivacyFeatureProvider(context) 97cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang .hasDeviceOwner(); 98cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang } 99cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang 10005061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = 101cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang new BaseSearchIndexProvider() { 102cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang @Override 103cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang protected boolean isPageSearchEnabled(Context context) { 104cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang return isPageEnabled(context); 105cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang } 106cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang 107cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang @Override 108cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang public List<SearchIndexableResource> getXmlResourcesToIndex( 109cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang Context context, boolean enabled) { 110cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang final SearchIndexableResource sir = new SearchIndexableResource(context); 111cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang sir.xmlResId = R.xml.enterprise_privacy_settings; 112cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang return Arrays.asList(sir); 113b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang } 1145dc168af1add029df23674f60eb4130b82012e70Bartosz Fabianowski 115b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang @Override 116aed8994f6f50a6bc0adfaa92b499ebde3a8f2a76Fan Zhang public List<AbstractPreferenceController> createPreferenceControllers( 117b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang Context context) { 118b5f5ffbece14b4f2882144f465ee67b35d5aa567Fan Zhang return buildPreferenceControllers(context, false /* async */); 119cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang } 120cabc509e4f2d43a65910e1c8aa642aa59d781caeFan Zhang }; 12105061fced346b6f60e84c34f08b1957d1003ccdfBartosz Fabianowski} 122