Loading core/java/android/app/ActivityManagerInternal.java +5 −0 Original line number Diff line number Diff line Loading @@ -826,4 +826,9 @@ public abstract class ActivityManagerInternal { * Register the bind service event listener callback. */ public abstract void addBindServiceEventListener(@NonNull BindServiceEventListener listener); /** * Restart android. */ public abstract void restart(); } core/java/com/android/internal/statusbar/IStatusBarService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,9 @@ interface IStatusBarService void shutdown(); void reboot(boolean safeMode); /** just restarts android without rebooting device. Used for some feature flags. */ void restart(); void addTile(in ComponentName tile); void remTile(in ComponentName tile); void clickTile(in ComponentName tile); Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +14 −1 Original line number Diff line number Diff line Loading @@ -30,11 +30,13 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.os.RemoteException; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; Loading Loading @@ -70,6 +72,7 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { private final Supplier<Map<Integer, Flag<?>>> mFlagsCollector; private final Map<Integer, Boolean> mBooleanFlagCache = new TreeMap<>(); private final Map<Integer, String> mStringFlagCache = new TreeMap<>(); private final IStatusBarService mBarService; @Inject public FeatureFlagsDebug( Loading @@ -78,7 +81,8 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { SecureSettings secureSettings, @Main Resources resources, DumpManager dumpManager, @Nullable Supplier<Map<Integer, Flag<?>>> flagsCollector) { @Nullable Supplier<Map<Integer, Flag<?>>> flagsCollector, IStatusBarService barService) { mFlagManager = flagManager; mSecureSettings = secureSettings; mResources = resources; Loading @@ -91,6 +95,7 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { context.registerReceiver(mReceiver, filter, null, null, Context.RECEIVER_EXPORTED_UNAUDITED); dumpManager.registerDumpable(TAG, this); mBarService = barService; } @Override Loading Loading @@ -212,6 +217,14 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { System.exit(0); } private void restartAndroid() { Log.i(TAG, "Restarting Android"); try { mBarService.restart(); } catch (RemoteException e) { } } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Loading packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugTest.kt +4 −2 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ package com.android.systemui.flags import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.content.pm.PackageManager.NameNotFoundException import android.content.res.Resources import androidx.test.filters.SmallTest import com.android.internal.statusbar.IStatusBarService import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.util.mockito.any Loading Loading @@ -59,6 +59,7 @@ class FeatureFlagsDebugTest : SysuiTestCase() { @Mock private lateinit var mSecureSettings: SecureSettings @Mock private lateinit var mResources: Resources @Mock private lateinit var mDumpManager: DumpManager @Mock private lateinit var mBarService: IStatusBarService private val mFlagMap = mutableMapOf<Int, Flag<*>>() private lateinit var mBroadcastReceiver: BroadcastReceiver private lateinit var mClearCacheAction: Consumer<Int> Loading @@ -72,7 +73,8 @@ class FeatureFlagsDebugTest : SysuiTestCase() { mSecureSettings, mResources, mDumpManager, { mFlagMap } { mFlagMap }, mBarService ) verify(mFlagManager).restartAction = any() mBroadcastReceiver = withArgCaptor { Loading services/core/java/com/android/server/am/ActivityManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -17149,6 +17149,11 @@ public class ActivityManagerService extends IActivityManager.Stub // It's a CopyOnWriteArrayList, so no lock is needed. mBindServiceEventListeners.add(listener); } @Override public void restart() { ActivityManagerService.this.restart(); } } long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) { Loading
core/java/android/app/ActivityManagerInternal.java +5 −0 Original line number Diff line number Diff line Loading @@ -826,4 +826,9 @@ public abstract class ActivityManagerInternal { * Register the bind service event listener callback. */ public abstract void addBindServiceEventListener(@NonNull BindServiceEventListener listener); /** * Restart android. */ public abstract void restart(); }
core/java/com/android/internal/statusbar/IStatusBarService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,9 @@ interface IStatusBarService void shutdown(); void reboot(boolean safeMode); /** just restarts android without rebooting device. Used for some feature flags. */ void restart(); void addTile(in ComponentName tile); void remTile(in ComponentName tile); void clickTile(in ComponentName tile); Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +14 −1 Original line number Diff line number Diff line Loading @@ -30,11 +30,13 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.os.RemoteException; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; Loading Loading @@ -70,6 +72,7 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { private final Supplier<Map<Integer, Flag<?>>> mFlagsCollector; private final Map<Integer, Boolean> mBooleanFlagCache = new TreeMap<>(); private final Map<Integer, String> mStringFlagCache = new TreeMap<>(); private final IStatusBarService mBarService; @Inject public FeatureFlagsDebug( Loading @@ -78,7 +81,8 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { SecureSettings secureSettings, @Main Resources resources, DumpManager dumpManager, @Nullable Supplier<Map<Integer, Flag<?>>> flagsCollector) { @Nullable Supplier<Map<Integer, Flag<?>>> flagsCollector, IStatusBarService barService) { mFlagManager = flagManager; mSecureSettings = secureSettings; mResources = resources; Loading @@ -91,6 +95,7 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { context.registerReceiver(mReceiver, filter, null, null, Context.RECEIVER_EXPORTED_UNAUDITED); dumpManager.registerDumpable(TAG, this); mBarService = barService; } @Override Loading Loading @@ -212,6 +217,14 @@ public class FeatureFlagsDebug implements FeatureFlags, Dumpable { System.exit(0); } private void restartAndroid() { Log.i(TAG, "Restarting Android"); try { mBarService.restart(); } catch (RemoteException e) { } } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Loading
packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugTest.kt +4 −2 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ package com.android.systemui.flags import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.content.pm.PackageManager.NameNotFoundException import android.content.res.Resources import androidx.test.filters.SmallTest import com.android.internal.statusbar.IStatusBarService import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.util.mockito.any Loading Loading @@ -59,6 +59,7 @@ class FeatureFlagsDebugTest : SysuiTestCase() { @Mock private lateinit var mSecureSettings: SecureSettings @Mock private lateinit var mResources: Resources @Mock private lateinit var mDumpManager: DumpManager @Mock private lateinit var mBarService: IStatusBarService private val mFlagMap = mutableMapOf<Int, Flag<*>>() private lateinit var mBroadcastReceiver: BroadcastReceiver private lateinit var mClearCacheAction: Consumer<Int> Loading @@ -72,7 +73,8 @@ class FeatureFlagsDebugTest : SysuiTestCase() { mSecureSettings, mResources, mDumpManager, { mFlagMap } { mFlagMap }, mBarService ) verify(mFlagManager).restartAction = any() mBroadcastReceiver = withArgCaptor { Loading
services/core/java/com/android/server/am/ActivityManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -17149,6 +17149,11 @@ public class ActivityManagerService extends IActivityManager.Stub // It's a CopyOnWriteArrayList, so no lock is needed. mBindServiceEventListeners.add(listener); } @Override public void restart() { ActivityManagerService.this.restart(); } } long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) {