Merge "Update to use NAV_BAR_KIDS_MODE settings key for kids mode organizer" into tm-dev
This commit is contained in:
@@ -24,17 +24,17 @@ import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
|
||||
/**
|
||||
* A ContentObserver for listening force show navigation bar relative setting keys:
|
||||
* A ContentObserver for listening kids mode relative setting keys:
|
||||
* - {@link Settings.Secure#NAVIGATION_MODE}
|
||||
* - {@link Settings.Secure#NAV_BAR_FORCE_VISIBLE}
|
||||
* - {@link Settings.Secure#NAV_BAR_KIDS_MODE}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class ForceShowNavigationBarSettingsObserver extends ContentObserver {
|
||||
public class KidsModeSettingsObserver extends ContentObserver {
|
||||
private Context mContext;
|
||||
private Runnable mOnChangeRunnable;
|
||||
|
||||
public ForceShowNavigationBarSettingsObserver(Handler handler, Context context) {
|
||||
public KidsModeSettingsObserver(Handler handler, Context context) {
|
||||
super(handler);
|
||||
mContext = context;
|
||||
}
|
||||
@@ -52,7 +52,7 @@ public class ForceShowNavigationBarSettingsObserver extends ContentObserver {
|
||||
Settings.Secure.getUriFor(Settings.Secure.NAVIGATION_MODE),
|
||||
false, this, UserHandle.USER_ALL);
|
||||
r.registerContentObserver(
|
||||
Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_FORCE_VISIBLE),
|
||||
Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_KIDS_MODE),
|
||||
false, this, UserHandle.USER_ALL);
|
||||
}
|
||||
|
||||
@@ -78,6 +78,6 @@ public class ForceShowNavigationBarSettingsObserver extends ContentObserver {
|
||||
return Settings.Secure.getIntForUser(mContext.getContentResolver(),
|
||||
Settings.Secure.NAVIGATION_MODE, 0, UserHandle.USER_CURRENT) == 0
|
||||
&& Settings.Secure.getIntForUser(mContext.getContentResolver(),
|
||||
Settings.Secure.NAV_BAR_FORCE_VISIBLE, 0, UserHandle.USER_CURRENT) == 1;
|
||||
Settings.Secure.NAV_BAR_KIDS_MODE, 0, UserHandle.USER_CURRENT) == 1;
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,7 @@ import android.window.WindowContainerTransaction;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.policy.ForceShowNavigationBarSettingsObserver;
|
||||
import com.android.internal.policy.KidsModeSettingsObserver;
|
||||
import com.android.wm.shell.ShellTaskOrganizer;
|
||||
import com.android.wm.shell.common.DisplayController;
|
||||
import com.android.wm.shell.common.DisplayInsetsController;
|
||||
@@ -85,7 +85,7 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
|
||||
private int mDisplayWidth;
|
||||
private int mDisplayHeight;
|
||||
|
||||
private ForceShowNavigationBarSettingsObserver mForceShowNavigationBarSettingsObserver;
|
||||
private KidsModeSettingsObserver mKidsModeSettingsObserver;
|
||||
private boolean mEnabled;
|
||||
|
||||
DisplayController.OnDisplaysChangedListener mOnDisplaysChangedListener =
|
||||
@@ -138,14 +138,14 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
|
||||
DisplayController displayController,
|
||||
DisplayInsetsController displayInsetsController,
|
||||
Optional<RecentTasksController> recentTasks,
|
||||
ForceShowNavigationBarSettingsObserver forceShowNavigationBarSettingsObserver) {
|
||||
KidsModeSettingsObserver kidsModeSettingsObserver) {
|
||||
super(taskOrganizerController, mainExecutor, context, /* compatUI= */ null, recentTasks);
|
||||
mContext = context;
|
||||
mMainHandler = mainHandler;
|
||||
mSyncQueue = syncTransactionQueue;
|
||||
mDisplayController = displayController;
|
||||
mDisplayInsetsController = displayInsetsController;
|
||||
mForceShowNavigationBarSettingsObserver = forceShowNavigationBarSettingsObserver;
|
||||
mKidsModeSettingsObserver = kidsModeSettingsObserver;
|
||||
}
|
||||
|
||||
public KidsModeTaskOrganizer(
|
||||
@@ -169,13 +169,13 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
|
||||
*/
|
||||
public void initialize(StartingWindowController startingWindowController) {
|
||||
initStartingWindow(startingWindowController);
|
||||
if (mForceShowNavigationBarSettingsObserver == null) {
|
||||
mForceShowNavigationBarSettingsObserver = new ForceShowNavigationBarSettingsObserver(
|
||||
if (mKidsModeSettingsObserver == null) {
|
||||
mKidsModeSettingsObserver = new KidsModeSettingsObserver(
|
||||
mMainHandler, mContext);
|
||||
}
|
||||
mForceShowNavigationBarSettingsObserver.setOnChangeRunnable(() -> updateKidsModeState());
|
||||
mKidsModeSettingsObserver.setOnChangeRunnable(() -> updateKidsModeState());
|
||||
updateKidsModeState();
|
||||
mForceShowNavigationBarSettingsObserver.register();
|
||||
mKidsModeSettingsObserver.register();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -211,7 +211,7 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
|
||||
|
||||
@VisibleForTesting
|
||||
void updateKidsModeState() {
|
||||
final boolean enabled = mForceShowNavigationBarSettingsObserver.isEnabled();
|
||||
final boolean enabled = mKidsModeSettingsObserver.isEnabled();
|
||||
if (mEnabled == enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ import android.window.WindowContainerTransaction;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.policy.ForceShowNavigationBarSettingsObserver;
|
||||
import com.android.internal.policy.KidsModeSettingsObserver;
|
||||
import com.android.wm.shell.common.DisplayController;
|
||||
import com.android.wm.shell.common.DisplayInsetsController;
|
||||
import com.android.wm.shell.common.ShellExecutor;
|
||||
@@ -72,7 +72,7 @@ public class KidsModeTaskOrganizerTest {
|
||||
@Mock private SurfaceControl mLeash;
|
||||
@Mock private WindowContainerToken mToken;
|
||||
@Mock private WindowContainerTransaction mTransaction;
|
||||
@Mock private ForceShowNavigationBarSettingsObserver mObserver;
|
||||
@Mock private KidsModeSettingsObserver mObserver;
|
||||
@Mock private StartingWindowController mStartingWindowController;
|
||||
@Mock private DisplayInsetsController mDisplayInsetsController;
|
||||
|
||||
|
||||
@@ -138,8 +138,8 @@ import android.window.ClientWindowFrames;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.policy.ForceShowNavigationBarSettingsObserver;
|
||||
import com.android.internal.policy.GestureNavigationSettingsObserver;
|
||||
import com.android.internal.policy.KidsModeSettingsObserver;
|
||||
import com.android.internal.policy.ScreenDecorationsUtils;
|
||||
import com.android.internal.policy.SystemBarUtils;
|
||||
import com.android.internal.protolog.common.ProtoLog;
|
||||
@@ -378,7 +378,7 @@ public class DisplayPolicy {
|
||||
|
||||
private final WindowManagerInternal.AppTransitionListener mAppTransitionListener;
|
||||
|
||||
private final ForceShowNavigationBarSettingsObserver mForceShowNavigationBarSettingsObserver;
|
||||
private final KidsModeSettingsObserver mKidsModeSettingsObserver;
|
||||
private boolean mForceShowNavigationBarEnabled;
|
||||
|
||||
private class PolicyHandler extends Handler {
|
||||
@@ -653,17 +653,17 @@ public class DisplayPolicy {
|
||||
});
|
||||
mHandler.post(mGestureNavigationSettingsObserver::register);
|
||||
|
||||
mForceShowNavigationBarSettingsObserver = new ForceShowNavigationBarSettingsObserver(
|
||||
mKidsModeSettingsObserver = new KidsModeSettingsObserver(
|
||||
mHandler, mContext);
|
||||
mForceShowNavigationBarSettingsObserver.setOnChangeRunnable(() -> {
|
||||
mKidsModeSettingsObserver.setOnChangeRunnable(() -> {
|
||||
synchronized (mLock) {
|
||||
mForceShowNavigationBarEnabled =
|
||||
mForceShowNavigationBarSettingsObserver.isEnabled();
|
||||
mKidsModeSettingsObserver.isEnabled();
|
||||
updateSystemBarAttributes();
|
||||
}
|
||||
});
|
||||
mForceShowNavigationBarEnabled = mForceShowNavigationBarSettingsObserver.isEnabled();
|
||||
mHandler.post(mForceShowNavigationBarSettingsObserver::register);
|
||||
mForceShowNavigationBarEnabled = mKidsModeSettingsObserver.isEnabled();
|
||||
mHandler.post(mKidsModeSettingsObserver::register);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2861,7 +2861,7 @@ public class DisplayPolicy {
|
||||
void release() {
|
||||
mDisplayContent.mTransitionController.unregisterLegacyListener(mAppTransitionListener);
|
||||
mHandler.post(mGestureNavigationSettingsObserver::unregister);
|
||||
mHandler.post(mForceShowNavigationBarSettingsObserver::unregister);
|
||||
mHandler.post(mKidsModeSettingsObserver::unregister);
|
||||
mImmersiveModeConfirmation.release();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user