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 
17 package com.android.settings.accounts;
18 
19 import static android.provider.Settings.EXTRA_AUTHORITIES;
20 
21 import android.app.settings.SettingsEnums;
22 import android.content.Context;
23 
24 import com.android.settings.R;
25 import com.android.settings.SettingsPreferenceFragment;
26 import com.android.settings.dashboard.DashboardFragment;
27 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
28 import com.android.settings.users.AutoSyncDataPreferenceController;
29 import com.android.settings.users.AutoSyncPersonalDataPreferenceController;
30 import com.android.settingslib.core.AbstractPreferenceController;
31 
32 import java.util.ArrayList;
33 import java.util.List;
34 
35 /**
36  * Account Setting page for personal profile.
37  */
38 public class AccountPersonalDashboardFragment extends DashboardFragment {
39 
40     private static final String TAG = "AccountPersonalFrag";
41 
42     @Override
getMetricsCategory()43     public int getMetricsCategory() {
44         return SettingsEnums.ACCOUNT;
45     }
46 
47     @Override
getLogTag()48     protected String getLogTag() {
49         return TAG;
50     }
51 
52     @Override
getPreferenceScreenResId()53     protected int getPreferenceScreenResId() {
54         return R.xml.accounts_personal_dashboard_settings;
55     }
56 
57     @Override
getHelpResource()58     public int getHelpResource() {
59         return R.string.help_url_user_and_account_dashboard;
60     }
61 
62     @Override
createPreferenceControllers(Context context)63     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
64         final String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES);
65         return buildPreferenceControllers(context, this /* parent */, authorities);
66     }
67 
buildPreferenceControllers(Context context, SettingsPreferenceFragment parent, String[] authorities)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,
74                         ProfileSelectFragment.ProfileType.PERSONAL);
75         if (parent != null) {
76             parent.getSettingsLifecycle().addObserver(accountPrefController);
77         }
78         controllers.add(accountPrefController);
79         controllers.add(new AutoSyncDataPreferenceController(context, parent));
80         controllers.add(new AutoSyncPersonalDataPreferenceController(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_personal_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 }
96