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