blob: 853c66b2fae10005c4172b839d1648f320504a7d [file] [log] [blame]
Raff Tsai65866292019-10-05 09:32:19 +08001/*
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
17package com.android.settings.accounts;
18
19import static android.provider.Settings.EXTRA_AUTHORITIES;
20
21import android.app.settings.SettingsEnums;
22import android.content.Context;
23
24import com.android.settings.R;
25import com.android.settings.SettingsPreferenceFragment;
26import com.android.settings.dashboard.DashboardFragment;
27import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
28import com.android.settings.users.AutoSyncDataPreferenceController;
29import com.android.settings.users.AutoSyncWorkDataPreferenceController;
30import com.android.settingslib.core.AbstractPreferenceController;
Raff Tsai65866292019-10-05 09:32:19 +080031
32import java.util.ArrayList;
33import java.util.List;
34
35/**
36 * Account Setting page for work profile.
37 */
Raff Tsai65866292019-10-05 09:32:19 +080038public class AccountWorkProfileDashboardFragment extends DashboardFragment {
39
40 private static final String TAG = "AccountWorkProfileFrag";
41
42 @Override
43 public int getMetricsCategory() {
Raff Tsai50896292019-11-22 16:36:21 +080044 return SettingsEnums.ACCOUNT_WORK;
Raff Tsai65866292019-10-05 09:32:19 +080045 }
46
47 @Override
48 protected String getLogTag() {
49 return TAG;
50 }
51
52 @Override
53 protected int getPreferenceScreenResId() {
54 return R.xml.accounts_work_dashboard_settings;
55 }
56
57 @Override
58 public int getHelpResource() {
59 return R.string.help_url_user_and_account_dashboard;
60 }
61
62 @Override
63 protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
64 final String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES);
65 return buildPreferenceControllers(context, this /* parent */, authorities);
66 }
67
68 private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
69 SettingsPreferenceFragment parent, String[] authorities) {
70 final List<AbstractPreferenceController> controllers = new ArrayList<>();
71
72 final AccountPreferenceController accountPrefController =
73 new AccountPreferenceController(context, parent, authorities,
Raff Tsai1e5d8142019-12-12 11:45:41 +080074 ProfileSelectFragment.ProfileType.WORK);
Raff Tsai65866292019-10-05 09:32:19 +080075 if (parent != null) {
76 parent.getSettingsLifecycle().addObserver(accountPrefController);
77 }
78 controllers.add(accountPrefController);
79 controllers.add(new AutoSyncDataPreferenceController(context, parent));
80 controllers.add(new AutoSyncWorkDataPreferenceController(context, parent));
81 return controllers;
82 }
83
84 // TODO: b/141601408. After featureFlag settings_work_profile is launched, unmark this
85// public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
86// new BaseSearchIndexProvider(R.xml.accounts_work_dashboard_settings) {
87//
88// @Override
89// public List<AbstractPreferenceController> createPreferenceControllers(
90// Context context) {
91// return buildPreferenceControllers(
92// context, null /* parent */, null /* authorities*/);
93// }
94// };
95}