Suppress work-profile search terms when no AfW is on device

- Share the same set of pref controller between main UI and search
  in AccountDashboardFragment.
- Update WorkSoundPreferenceController to actually do something for
  updateNonIndexable() method.
- LockscreenDashboardFragment to also suppress "Work notification" header. I
  think we just missed it previously.

Change-Id: Ifa6f9b2077c9810ffff33f240929f418d4a8a5aa
Fixes: 62167659
Test: robotests
This commit is contained in:
Fan Zhang
2018-06-04 14:27:14 -07:00
parent 0614f76677
commit 3f34335e2e
3 changed files with 45 additions and 22 deletions

View File

@@ -17,7 +17,6 @@ package com.android.settings.accounts;
import static android.provider.Settings.EXTRA_AUTHORITIES; import static android.provider.Settings.EXTRA_AUTHORITIES;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.icu.text.ListFormatter; import android.icu.text.ListFormatter;
import android.os.UserHandle; import android.os.UserHandle;
@@ -27,6 +26,7 @@ import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
@@ -69,15 +69,23 @@ public class AccountDashboardFragment extends DashboardFragment {
@Override @Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
final String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES); final String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES);
return buildPreferenceControllers(context, this /* parent */, authorities);
}
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
SettingsPreferenceFragment parent, String[] authorities) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
final AccountPreferenceController accountPrefController = final AccountPreferenceController accountPrefController =
new AccountPreferenceController(context, this, authorities); new AccountPreferenceController(context, parent, authorities);
getLifecycle().addObserver(accountPrefController); if (parent != null) {
parent.getLifecycle().addObserver(accountPrefController);
}
controllers.add(accountPrefController); controllers.add(accountPrefController);
controllers.add(new AutoSyncDataPreferenceController(context, this /*parent */)); controllers.add(new AutoSyncDataPreferenceController(context, parent));
controllers.add(new AutoSyncPersonalDataPreferenceController(context, this /*parent */)); controllers.add(new AutoSyncPersonalDataPreferenceController(context, parent));
controllers.add(new AutoSyncWorkDataPreferenceController(context, this /* parent */)); controllers.add(new AutoSyncWorkDataPreferenceController(context, parent));
return controllers; return controllers;
} }
@@ -122,13 +130,7 @@ public class AccountDashboardFragment extends DashboardFragment {
} }
public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
= new SummaryLoader.SummaryProviderFactory() { = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
@Override
public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
SummaryLoader summaryLoader) {
return new SummaryProvider(activity, summaryLoader);
}
};
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@@ -139,5 +141,12 @@ public class AccountDashboardFragment extends DashboardFragment {
sir.xmlResId = R.xml.accounts_dashboard_settings; sir.xmlResId = R.xml.accounts_dashboard_settings;
return Arrays.asList(sir); return Arrays.asList(sir);
} }
@Override
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return buildPreferenceControllers(
context, null /* parent */, null /* authorities*/);
}
}; };
} }

View File

@@ -32,11 +32,6 @@ import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.provider.Settings; import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -51,6 +46,14 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnResume;
import java.util.List;
import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;
public class WorkSoundPreferenceController extends AbstractPreferenceController public class WorkSoundPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin, OnPreferenceChangeListener, LifecycleObserver, implements PreferenceControllerMixin, OnPreferenceChangeListener, LifecycleObserver,
OnResume, OnPause { OnResume, OnPause {
@@ -96,10 +99,8 @@ public class WorkSoundPreferenceController extends AbstractPreferenceController
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mWorkPreferenceCategory = (PreferenceGroup) screen.findPreference(KEY_WORK_CATEGORY); mWorkPreferenceCategory = (PreferenceGroup) screen.findPreference(KEY_WORK_CATEGORY);
if (mWorkPreferenceCategory != null) {
mWorkPreferenceCategory.setVisible(isAvailable());
}
} }
@Override @Override
@@ -157,6 +158,18 @@ public class WorkSoundPreferenceController extends AbstractPreferenceController
return true; return true;
} }
@Override
public void updateNonIndexableKeys(List<String> keys) {
if (isAvailable()) {
return;
}
keys.add(KEY_WORK_CATEGORY);
keys.add(KEY_WORK_USE_PERSONAL_SOUNDS);
keys.add(KEY_WORK_NOTIFICATION_RINGTONE);
keys.add(KEY_WORK_PHONE_RINGTONE);
keys.add(KEY_WORK_ALARM_RINGTONE);
}
// === Phone & notification ringtone === // === Phone & notification ringtone ===
private boolean shouldShowRingtoneSettings() { private boolean shouldShowRingtoneSettings() {

View File

@@ -159,6 +159,7 @@ public class LockscreenDashboardFragment extends DashboardFragment
final List<String> niks = super.getNonIndexableKeys(context); final List<String> niks = super.getNonIndexableKeys(context);
niks.add(KEY_ADD_USER_FROM_LOCK_SCREEN); niks.add(KEY_ADD_USER_FROM_LOCK_SCREEN);
niks.add(KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE); niks.add(KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE);
niks.add(KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER);
return niks; return niks;
} }
}; };