Adding Prework for Private Space integration in Launcher

This Cl adds the following:
1. Fixes for Quite Mode check maintained by Launcher
2. Addition of new Quite Mode broadcasts
3. Fixes for determining work profile user correctly.

Flag: ACONFIG com.android.launcher3.Flags.enable_private_space DEVELOPMENT
Bug: 289223923
Test: Ran Launcher3 tests
Change-Id: I5f6158b213723339e70ff99e66c5f439f5879e12
This commit is contained in:
Himanshu Gupta
2023-10-12 16:53:00 +01:00
parent 402ca3e3e5
commit 9aab4d4603
13 changed files with 223 additions and 29 deletions
@@ -15,7 +15,9 @@
*/
package com.android.launcher3.model;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_PRIVATE_PROFILE_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_WORK_PROFILE_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.data.WorkspaceItemInfo.FLAG_AUTOINSTALL_ICON;
import static com.android.launcher3.model.data.WorkspaceItemInfo.FLAG_RESTORED_ICON;
@@ -31,6 +33,7 @@ import android.util.Log;
import androidx.annotation.NonNull;
import com.android.launcher3.Flags;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherSettings;
@@ -169,14 +172,24 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
break;
case OP_USER_AVAILABILITY_CHANGE: {
UserManagerState ums = new UserManagerState();
ums.init(UserCache.INSTANCE.get(context),
context.getSystemService(UserManager.class));
UserManager userManager = context.getSystemService(UserManager.class);
ums.init(UserCache.INSTANCE.get(context), userManager);
boolean isUserQuiet = ums.isUserQuiet(mUser);
flagOp = FlagOp.NO_OP.setFlag(
WorkspaceItemInfo.FLAG_DISABLED_QUIET_USER, ums.isUserQuiet(mUser));
WorkspaceItemInfo.FLAG_DISABLED_QUIET_USER, isUserQuiet);
appsList.updateDisabledFlags(matcher, flagOp);
// We are not synchronizing here, as int operations are atomic
appsList.setFlags(FLAG_QUIET_MODE_ENABLED, ums.isAnyProfileQuietModeEnabled());
if (Flags.enablePrivateSpace()) {
UserCache userCache = UserCache.INSTANCE.get(context);
if (userCache.getUserInfo(mUser).isWork()) {
appsList.setFlags(FLAG_WORK_PROFILE_QUIET_MODE_ENABLED, isUserQuiet);
} else if (userCache.getUserInfo(mUser).isPrivate()) {
appsList.setFlags(FLAG_PRIVATE_PROFILE_QUIET_MODE_ENABLED, isUserQuiet);
}
} else {
// We are not synchronizing here, as int operations are atomic
appsList.setFlags(FLAG_QUIET_MODE_ENABLED, ums.isAnyProfileQuietModeEnabled());
}
break;
}
default: