Merge "On phones, don't show the avatar icon when it is the only user." into nyc-mr1-dev

This commit is contained in:
Daniel Nishi
2016-06-23 16:15:39 +00:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ public class KeyguardStatusBarView extends RelativeLayout
private BatteryController mBatteryController;
private KeyguardUserSwitcher mKeyguardUserSwitcher;
private UserSwitcherController mUserSwitcherController;
private int mSystemIconsSwitcherHiddenExpandedMargin;
private View mSystemIconsContainer;
@@ -149,6 +150,15 @@ public class KeyguardStatusBarView extends RelativeLayout
} else if (mMultiUserSwitch.getParent() == this && mKeyguardUserSwitcherShowing) {
removeView(mMultiUserSwitch);
}
if (mKeyguardUserSwitcher == null) {
// If we have no keyguard switcher, the screen width is under 600dp. In this case,
// we don't show the multi-user avatar unless there is more than 1 user on the device.
if (mUserSwitcherController.getSwitchableUserCount() > 1) {
mMultiUserSwitch.setVisibility(View.VISIBLE);
} else {
mMultiUserSwitch.setVisibility(View.GONE);
}
}
mBatteryLevel.setVisibility(mBatteryCharging ? View.VISIBLE : View.GONE);
}
@@ -187,6 +197,7 @@ public class KeyguardStatusBarView extends RelativeLayout
}
public void setUserSwitcherController(UserSwitcherController controller) {
mUserSwitcherController = controller;
mMultiUserSwitch.setUserSwitcherController(controller);
}
@@ -287,6 +298,8 @@ public class KeyguardStatusBarView extends RelativeLayout
mSystemIconsSuperContainer.animate().cancel();
mMultiUserSwitch.animate().cancel();
mMultiUserSwitch.setAlpha(1f);
} else {
updateVisibilities();
}
}

View File

@@ -381,6 +381,18 @@ public class UserSwitcherController {
Log.e(TAG, "Couldn't switch to user, id=" + userId);
}
public int getSwitchableUserCount() {
int count = 0;
final int N = mUsers.size();
for (int i = 0; i < N; ++i) {
UserRecord record = mUsers.get(i);
if (record.info != null && record.info.supportsSwitchTo()) {
count++;
}
}
return count;
}
private void switchToUserId(int id) {
try {
pauseRefreshUsers();