Apply top intro preference in Settings app (1/n)

Based on content in footer, we need to convert some footers
to top info prefernce.

Test: Run robo test and see the screens
Bug: 173087905
Change-Id: Ie62a503481f9d385f5468896fba8f607cb3437d3
This commit is contained in:
Tsung-Mao Fang
2020-11-16 18:13:36 +08:00
parent 564eaec283
commit 00956fb4e1
15 changed files with 86 additions and 83 deletions

View File

@@ -78,7 +78,7 @@ public class TetherSettings extends RestrictedSettingsFragment
private static final String KEY_ENABLE_ETHERNET_TETHERING = "enable_ethernet_tethering";
private static final String KEY_DATA_SAVER_FOOTER = "disabled_on_data_saver";
@VisibleForTesting
static final String KEY_TETHER_PREFS_FOOTER = "tether_prefs_footer";
static final String KEY_TETHER_PREFS_TOP_INTRO = "tether_prefs_top_intro";
private static final String TAG = "TetheringSettings";
@@ -155,7 +155,7 @@ public class TetherSettings extends RestrictedSettingsFragment
}
setupTetherPreference();
setFooterPreferenceTitle();
setTopIntroPreferenceTitle();
mDataSaverBackend.addListener(this);
@@ -231,14 +231,14 @@ public class TetherSettings extends RestrictedSettingsFragment
}
@VisibleForTesting
void setFooterPreferenceTitle() {
final Preference footerPreference = findPreference(KEY_TETHER_PREFS_FOOTER);
void setTopIntroPreferenceTitle() {
final Preference topIntroPreference = findPreference(KEY_TETHER_PREFS_TOP_INTRO);
final WifiManager wifiManager =
(WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
if (wifiManager.isStaApConcurrencySupported()) {
footerPreference.setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
topIntroPreference.setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
} else {
footerPreference.setTitle(R.string.tethering_footer_info);
topIntroPreference.setTitle(R.string.tethering_footer_info);
}
}

View File

@@ -33,12 +33,12 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.TopIntroPreference;
/**
* Controller of footer preference for Graphics Driver Preferences dashboard.
* Controller of top info preference for Graphics Driver Preferences dashboard.
*/
public class GraphicsDriverFooterPreferenceController extends BasePreferenceController
public class GraphicsDriverTopIntroPreferenceController extends BasePreferenceController
implements GraphicsDriverContentObserver.OnGraphicsDriverContentChangedListener,
LifecycleObserver, OnStart, OnStop {
@@ -46,9 +46,9 @@ public class GraphicsDriverFooterPreferenceController extends BasePreferenceCont
@VisibleForTesting
GraphicsDriverContentObserver mGraphicsDriverContentObserver;
private FooterPreference mPreference;
private TopIntroPreference mPreference;
public GraphicsDriverFooterPreferenceController(Context context, String key) {
public GraphicsDriverTopIntroPreferenceController(Context context, String key) {
super(context, key);
mContentResolver = context.getContentResolver();
mGraphicsDriverContentObserver =
@@ -83,8 +83,8 @@ public class GraphicsDriverFooterPreferenceController extends BasePreferenceCont
@Override
public void updateState(Preference preference) {
final FooterPreference footerPref = (FooterPreference) preference;
footerPref.setVisible(isAvailable());
final TopIntroPreference topIntroPref = (TopIntroPreference) preference;
topIntroPref.setVisible(isAvailable());
}
@Override

View File

@@ -21,9 +21,13 @@ import android.hardware.display.ColorDisplayManager;
import com.android.settings.core.BasePreferenceController;
public class NightDisplayFooterPreferenceController extends BasePreferenceController {
/**
* NightDisplayTopIntroPreferenceController can control the visibility of night display top info
* preference.
*/
public class NightDisplayTopIntroPreferenceController extends BasePreferenceController {
public NightDisplayFooterPreferenceController(Context context, String key) {
public NightDisplayTopIntroPreferenceController(Context context, String key) {
super(context, key);
}

View File

@@ -23,12 +23,16 @@ import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
public class MultiUserFooterPreferenceController extends BasePreferenceController {
/**
* MultiUserTopIntroPreferenceController can control the visibility of multi user top info
* preference.
*/
public class MultiUserTopIntroPreferenceController extends BasePreferenceController {
@VisibleForTesting
final UserCapabilities mUserCaps;
public MultiUserFooterPreferenceController(Context context, String key) {
public MultiUserTopIntroPreferenceController(Context context, String key) {
super(context, key);
mUserCaps = UserCapabilities.create(context);
}

View File

@@ -110,7 +110,7 @@ public class UserSettings extends SettingsPreferenceFragment
private static final String KEY_ADD_GUEST = "guest_add";
private static final String KEY_ADD_USER = "user_add";
private static final String KEY_ADD_USER_WHEN_LOCKED = "user_settings_add_users_when_locked";
private static final String KEY_MULTIUSER_FOOTER = "multiuser_footer";
private static final String KEY_MULTIUSER_TOP_INTRO = "multiuser_top_intro";
private static final int MENU_REMOVE_USER = Menu.FIRST;
@@ -169,7 +169,7 @@ public class UserSettings extends SettingsPreferenceFragment
private EditUserInfoController mEditUserInfoController =
new EditUserInfoController(Utils.FILE_PROVIDER_AUTHORITY);
private AddUserWhenLockedPreferenceController mAddUserWhenLockedPreferenceController;
private MultiUserFooterPreferenceController mMultiUserFooterPreferenceController;
private MultiUserTopIntroPreferenceController mMultiUserTopIntroPreferenceController;
private UserCreatingDialog mUserCreatingDialog;
private CharSequence mPendingUserName;
@@ -240,12 +240,12 @@ public class UserSettings extends SettingsPreferenceFragment
mAddUserWhenLockedPreferenceController = new AddUserWhenLockedPreferenceController(
activity, KEY_ADD_USER_WHEN_LOCKED);
mMultiUserFooterPreferenceController = new MultiUserFooterPreferenceController(activity,
KEY_MULTIUSER_FOOTER);
mMultiUserTopIntroPreferenceController = new MultiUserTopIntroPreferenceController(activity,
KEY_MULTIUSER_TOP_INTRO);
final PreferenceScreen screen = getPreferenceScreen();
mAddUserWhenLockedPreferenceController.displayPreference(screen);
mMultiUserFooterPreferenceController.displayPreference(screen);
mMultiUserTopIntroPreferenceController.displayPreference(screen);
screen.findPreference(mAddUserWhenLockedPreferenceController.getPreferenceKey())
.setOnPreferenceChangeListener(mAddUserWhenLockedPreferenceController);
@@ -936,14 +936,14 @@ public class UserSettings extends SettingsPreferenceFragment
// Remove everything from mUserListCategory and add new users.
mUserListCategory.removeAll();
// If multi-user is disabled, just show footer and return.
// If multi-user is disabled, just show top info and return.
final Preference addUserOnLockScreen = getPreferenceScreen().findPreference(
mAddUserWhenLockedPreferenceController.getPreferenceKey());
mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
final Preference multiUserFooterPrefence = getPreferenceScreen().findPreference(
mMultiUserFooterPreferenceController.getPreferenceKey());
mMultiUserFooterPreferenceController.updateState(multiUserFooterPrefence);
final Preference multiUserTopIntroPrefence = getPreferenceScreen().findPreference(
mMultiUserTopIntroPreferenceController.getPreferenceKey());
mMultiUserTopIntroPreferenceController.updateState(multiUserTopIntroPrefence);
mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
updateAddGuest(context, users.stream().anyMatch(UserInfo::isGuest));