Uses a resources string for new guest name.
Test: atest CarServiceUnitTest:com.android.car.CarPowerManagementServiceTest
Bug: 151325204
Change-Id: I5be1c23460b597eb4eab819a999516a463e4b0e0
diff --git a/service/res/values/strings.xml b/service/res/values/strings.xml
index 0215f32..30e0a50 100644
--- a/service/res/values/strings.xml
+++ b/service/res/values/strings.xml
@@ -481,4 +481,7 @@
<!-- The ComponentName of the media source that will be selected as the default [CHAR LIMIT=NONE] -->
<string name="default_media_source" translatable="false">com.android.bluetooth/com.android.bluetooth.avrcpcontroller.BluetoothMediaBrowserService</string>
+ <!-- Default name for new guest users [CHAR LIMIT=20] -->
+ <string name="default_guest_name">Guest</string>
+
</resources>
diff --git a/service/src/com/android/car/CarPowerManagementService.java b/service/src/com/android/car/CarPowerManagementService.java
index eb5dcd8..7a463b8 100644
--- a/service/src/com/android/car/CarPowerManagementService.java
+++ b/service/src/com/android/car/CarPowerManagementService.java
@@ -121,6 +121,7 @@
private final boolean mDisableUserSwitchDuringResume;
private final CarUserManagerHelper mCarUserManagerHelper;
private final UserManager mUserManager; // CarUserManagerHelper is deprecated...
+ private final String mNewGuestName;
// TODO: Make this OEM configurable.
private static final int SHUTDOWN_POLLING_INTERVAL_MS = 2000;
@@ -148,13 +149,13 @@
public CarPowerManagementService(Context context, PowerHalService powerHal,
SystemInterface systemInterface, CarUserManagerHelper carUserManagerHelper) {
this(context, context.getResources(), powerHal, systemInterface, carUserManagerHelper,
- UserManager.get(context));
+ UserManager.get(context), context.getString(R.string.default_guest_name));
}
@VisibleForTesting
CarPowerManagementService(Context context, Resources resources, PowerHalService powerHal,
SystemInterface systemInterface, CarUserManagerHelper carUserManagerHelper,
- UserManager userManager) {
+ UserManager userManager, String newGuestName) {
mContext = context;
mHal = powerHal;
mSystemInterface = systemInterface;
@@ -171,23 +172,7 @@
+ MIN_MAX_GARAGE_MODE_DURATION_MS + "(ms), Ignore resource.");
mShutdownPrepareTimeMs = MIN_MAX_GARAGE_MODE_DURATION_MS;
}
- }
-
- // TODO: remove?
- /**
- * Create a dummy instance for unit testing purpose only. Instance constructed in this way
- * is not safe as members expected to be non-null are null.
- */
- @VisibleForTesting
- protected CarPowerManagementService() {
- mContext = null;
- mHal = null;
- mSystemInterface = null;
- mHandlerThread = null;
- mHandler = new PowerHandler(Looper.getMainLooper());
- mCarUserManagerHelper = null;
- mUserManager = null;
- mDisableUserSwitchDuringResume = true;
+ mNewGuestName = newGuestName;
}
@VisibleForTesting
@@ -253,6 +238,7 @@
public void dump(PrintWriter writer) {
synchronized (mLock) {
writer.println("*PowerManagementService*");
+ // TODO: split it in multiple lines
writer.print("mCurrentState:" + mCurrentState);
writer.print(",mProcessingStartTime:" + mProcessingStartTime);
writer.print(",mLastSleepEntryTime:" + mLastSleepEntryTime);
@@ -263,6 +249,7 @@
writer.print(",mShutdownPrepareTimeMs:" + mShutdownPrepareTimeMs);
writer.print(",mDisableUserSwitchDuringResume:" + mDisableUserSwitchDuringResume);
writer.println(",mRebootAfterGarageMode:" + mRebootAfterGarageMode);
+ writer.print("mNewGuestName: "); writer.println(mNewGuestName);
}
}
@@ -486,7 +473,7 @@
return;
}
- UserInfo newGuest = mUserManager.createGuest(mContext, targetUserInfo.name);
+ UserInfo newGuest = mUserManager.createGuest(mContext, mNewGuestName);
if (newGuest != null) {
switchToUser(currentUserId, newGuest.id, "Created new guest");
diff --git a/service/src/com/android/car/user/CarUserService.java b/service/src/com/android/car/user/CarUserService.java
index fedae06..9ce12fa 100644
--- a/service/src/com/android/car/user/CarUserService.java
+++ b/service/src/com/android/car/user/CarUserService.java
@@ -33,6 +33,7 @@
import android.car.userlib.CarUserManagerHelper;
import android.content.Context;
import android.content.pm.UserInfo;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
import android.hardware.automotive.vehicle.V2_0.UsersInfo;
@@ -234,6 +235,12 @@
writer.println();
}
writer.println("EnablePassengerSupport: " + mEnablePassengerSupport);
+ writer.println("Relevant overlayable properties");
+ Resources res = mContext.getResources();
+ writer.printf("%sowner_name=%s\n", indent,
+ res.getString(com.android.internal.R.string.owner_name));
+ writer.printf("%sdefault_guest_name=%s\n", indent,
+ res.getString(R.string.default_guest_name));
}
}
diff --git a/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java b/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
index 7a54cab..d851753 100644
--- a/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
@@ -98,6 +98,7 @@
private static final long WAIT_TIMEOUT_MS = 2000;
private static final long WAIT_TIMEOUT_LONG_MS = 5000;
private static final int NO_USER_INFO_FLAGS = 0;
+ private static final String NEW_GUEST_NAME = "NewestGuestInTheBlock";
private final MockDisplayInterface mDisplayInterface = new MockDisplayInterface();
private final MockSystemStateInterface mSystemStateInterface = new MockSystemStateInterface();
@@ -201,7 +202,7 @@
+ ", maxGarageModeRunningDurationInSecs="
+ mResources.getInteger(R.integer.maxGarageModeRunningDurationInSecs));
mService = new CarPowerManagementService(mContext, mResources, mPowerHal,
- mSystemInterface, mCarUserManagerHelper, mUserManager);
+ mSystemInterface, mCarUserManagerHelper, mUserManager, NEW_GUEST_NAME);
mService.init();
mService.setShutdownTimersForTest(0, 0);
mPowerHal.setSignalListener(mPowerSignalListener);
@@ -452,7 +453,7 @@
setInitialUser(10);
setCurrentUser(10);
expectGuestMarkedForDeletionOk(10);
- expectNewGuestCreated(11, "ElGuesto");
+ expectNewGuestCreated(11);
suspendAndResumeForUserSwitchingTests();
@@ -468,7 +469,7 @@
setInitialUser(11);
setCurrentUser(10);
expectGuestMarkedForDeletionOk(11);
- expectNewGuestCreated(12, "ElGuesto");
+ expectNewGuestCreated(12);
suspendAndResumeForUserSwitchingTests();
@@ -500,7 +501,7 @@
setInitialUser(11);
setCurrentUser(10);
expectGuestMarkedForDeletionOk(11);
- expectNewGuestCreated(12, "ElGuesto");
+ expectNewGuestCreated(12);
suspendAndResumeForUserSwitchingTests();
@@ -588,7 +589,7 @@
setInitialUser(10);
setCurrentUser(10);
expectGuestMarkedForDeletionOk(10);
- expectNewGuestCreated(11, "ElGuesto");
+ expectNewGuestCreated(11);
suspendAndResumeForUserSwitchingTests();
@@ -605,7 +606,7 @@
setInitialUser(11);
setCurrentUser(10);
expectGuestMarkedForDeletionOk(11);
- expectNewGuestCreated(12, "ElGuesto");
+ expectNewGuestCreated(12);
suspendAndResumeForUserSwitchingTests();
@@ -640,7 +641,7 @@
setInitialUser(11);
setCurrentUser(10);
expectGuestMarkedForDeletionOk(11);
- expectNewGuestCreated(12, "ElGuesto");
+ expectNewGuestCreated(12);
suspendAndResumeForUserSwitchingTests();
@@ -830,11 +831,11 @@
when(mUserManager.markGuestForDeletion(userId)).thenReturn(false);
}
- private void expectNewGuestCreated(int userId, String name) {
+ private void expectNewGuestCreated(int userId) {
final UserInfo userInfo = new UserInfo();
userInfo.id = userId;
- userInfo.name = name;
- when(mUserManager.createGuest(notNull(), eq(name))).thenReturn(userInfo);
+ userInfo.name = NEW_GUEST_NAME;
+ when(mUserManager.createGuest(notNull(), eq(NEW_GUEST_NAME))).thenReturn(userInfo);
}
private void expectNewGuestCreationFailed(String name) {