Loading services/core/java/com/android/server/am/ActivityStackSupervisor.java +56 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.app.PendingIntent; import android.app.ActivityManager.RunningTaskInfo; import android.app.IActivityManager.WaitResult; import android.app.ResultInfo; import android.app.StatusBarManager; import android.content.ComponentName; import android.content.Context; import android.content.IIntentSender; Loading Loading @@ -73,6 +74,7 @@ import android.os.ParcelFileDescriptor; import android.os.PowerManager; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.service.voice.IVoiceInteractionSession; Loading @@ -88,11 +90,13 @@ import android.view.Surface; import com.android.internal.app.HeavyWeightSwitcherActivity; import com.android.internal.app.IVoiceInteractor; import com.android.internal.os.TransferPipe; import com.android.internal.statusbar.IStatusBarService; import com.android.server.LocalServices; import com.android.server.am.ActivityManagerService.PendingActivityLaunch; import com.android.server.am.ActivityStack.ActivityState; import com.android.server.wm.WindowManagerService; import java.io.FileDescriptor; import java.io.IOException; import java.io.PrintWriter; Loading Loading @@ -128,9 +132,15 @@ public final class ActivityStackSupervisor implements DisplayListener { static final int HANDLE_DISPLAY_CHANGED = FIRST_SUPERVISOR_STACK_MSG + 6; static final int HANDLE_DISPLAY_REMOVED = FIRST_SUPERVISOR_STACK_MSG + 7; static final int CONTAINER_CALLBACK_VISIBILITY = FIRST_SUPERVISOR_STACK_MSG + 8; static final int LOCK_TASK_START_MSG = FIRST_SUPERVISOR_STACK_MSG + 9; static final int LOCK_TASK_END_MSG = FIRST_SUPERVISOR_STACK_MSG + 10; private final static String VIRTUAL_DISPLAY_BASE_NAME = "ActivityViewVirtualDisplay"; /** Status Bar Service **/ private IBinder mToken = new Binder(); private IStatusBarService mStatusBarService; // For debugging to make sure the caller when acquiring/releasing our // wake lock is the system process. static final boolean VALIDATE_WAKE_LOCK_CALLER = false; Loading Loading @@ -249,6 +259,21 @@ public final class ActivityStackSupervisor implements DisplayListener { mLaunchingActivity.setReferenceCounted(false); } // This function returns a IStatusBarService. The value is from ServiceManager. // getService and is cached. private IStatusBarService getStatusBarService() { synchronized (mService) { if (mStatusBarService == null) { mStatusBarService = IStatusBarService.Stub.asInterface( ServiceManager.checkService(Context.STATUS_BAR_SERVICE)); if (mStatusBarService == null) { Slog.w("StatusBarManager", "warning: no STATUS_BAR_SERVICE"); } } return mStatusBarService; } } void setWindowManager(WindowManagerService wm) { synchronized (mService) { mWindowManager = wm; Loading Loading @@ -2898,9 +2923,12 @@ public final class ActivityStackSupervisor implements DisplayListener { } void setLockTaskModeLocked(TaskRecord task) { final Message lockTaskMsg = Message.obtain(); if (task == null) { // Take out of lock task mode. mLockTaskModeTask = null; lockTaskMsg.what = LOCK_TASK_END_MSG; mHandler.sendMessage(lockTaskMsg); return; } if (isLockTaskModeViolation(task)) { Loading @@ -2910,6 +2938,8 @@ public final class ActivityStackSupervisor implements DisplayListener { mLockTaskModeTask = task; findTaskToMoveToFrontLocked(task, 0, null); resumeTopActivitiesLocked(); lockTaskMsg.what = LOCK_TASK_START_MSG; mHandler.sendMessage(lockTaskMsg); } boolean isLockTaskModeViolation(TaskRecord task) { Loading Loading @@ -3006,6 +3036,32 @@ public final class ActivityStackSupervisor implements DisplayListener { } catch (RemoteException e) { } } case LOCK_TASK_START_MSG: { // When lock task starts, we disable the status bars. try { if (getStatusBarService() != null) { getStatusBarService().disable (StatusBarManager.DISABLE_MASK ^ StatusBarManager.DISABLE_BACK, mToken, mService.mContext.getPackageName()); } } catch (RemoteException ex) { throw new RuntimeException(ex); } break; } case LOCK_TASK_END_MSG: { // When lock task ends, we enable the status bars. try { if (getStatusBarService() != null) { getStatusBarService().disable (StatusBarManager.DISABLE_NONE, mToken, mService.mContext.getPackageName()); } } catch (RemoteException ex) { throw new RuntimeException(ex); } break; } } } } Loading Loading
services/core/java/com/android/server/am/ActivityStackSupervisor.java +56 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.app.PendingIntent; import android.app.ActivityManager.RunningTaskInfo; import android.app.IActivityManager.WaitResult; import android.app.ResultInfo; import android.app.StatusBarManager; import android.content.ComponentName; import android.content.Context; import android.content.IIntentSender; Loading Loading @@ -73,6 +74,7 @@ import android.os.ParcelFileDescriptor; import android.os.PowerManager; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.service.voice.IVoiceInteractionSession; Loading @@ -88,11 +90,13 @@ import android.view.Surface; import com.android.internal.app.HeavyWeightSwitcherActivity; import com.android.internal.app.IVoiceInteractor; import com.android.internal.os.TransferPipe; import com.android.internal.statusbar.IStatusBarService; import com.android.server.LocalServices; import com.android.server.am.ActivityManagerService.PendingActivityLaunch; import com.android.server.am.ActivityStack.ActivityState; import com.android.server.wm.WindowManagerService; import java.io.FileDescriptor; import java.io.IOException; import java.io.PrintWriter; Loading Loading @@ -128,9 +132,15 @@ public final class ActivityStackSupervisor implements DisplayListener { static final int HANDLE_DISPLAY_CHANGED = FIRST_SUPERVISOR_STACK_MSG + 6; static final int HANDLE_DISPLAY_REMOVED = FIRST_SUPERVISOR_STACK_MSG + 7; static final int CONTAINER_CALLBACK_VISIBILITY = FIRST_SUPERVISOR_STACK_MSG + 8; static final int LOCK_TASK_START_MSG = FIRST_SUPERVISOR_STACK_MSG + 9; static final int LOCK_TASK_END_MSG = FIRST_SUPERVISOR_STACK_MSG + 10; private final static String VIRTUAL_DISPLAY_BASE_NAME = "ActivityViewVirtualDisplay"; /** Status Bar Service **/ private IBinder mToken = new Binder(); private IStatusBarService mStatusBarService; // For debugging to make sure the caller when acquiring/releasing our // wake lock is the system process. static final boolean VALIDATE_WAKE_LOCK_CALLER = false; Loading Loading @@ -249,6 +259,21 @@ public final class ActivityStackSupervisor implements DisplayListener { mLaunchingActivity.setReferenceCounted(false); } // This function returns a IStatusBarService. The value is from ServiceManager. // getService and is cached. private IStatusBarService getStatusBarService() { synchronized (mService) { if (mStatusBarService == null) { mStatusBarService = IStatusBarService.Stub.asInterface( ServiceManager.checkService(Context.STATUS_BAR_SERVICE)); if (mStatusBarService == null) { Slog.w("StatusBarManager", "warning: no STATUS_BAR_SERVICE"); } } return mStatusBarService; } } void setWindowManager(WindowManagerService wm) { synchronized (mService) { mWindowManager = wm; Loading Loading @@ -2898,9 +2923,12 @@ public final class ActivityStackSupervisor implements DisplayListener { } void setLockTaskModeLocked(TaskRecord task) { final Message lockTaskMsg = Message.obtain(); if (task == null) { // Take out of lock task mode. mLockTaskModeTask = null; lockTaskMsg.what = LOCK_TASK_END_MSG; mHandler.sendMessage(lockTaskMsg); return; } if (isLockTaskModeViolation(task)) { Loading @@ -2910,6 +2938,8 @@ public final class ActivityStackSupervisor implements DisplayListener { mLockTaskModeTask = task; findTaskToMoveToFrontLocked(task, 0, null); resumeTopActivitiesLocked(); lockTaskMsg.what = LOCK_TASK_START_MSG; mHandler.sendMessage(lockTaskMsg); } boolean isLockTaskModeViolation(TaskRecord task) { Loading Loading @@ -3006,6 +3036,32 @@ public final class ActivityStackSupervisor implements DisplayListener { } catch (RemoteException e) { } } case LOCK_TASK_START_MSG: { // When lock task starts, we disable the status bars. try { if (getStatusBarService() != null) { getStatusBarService().disable (StatusBarManager.DISABLE_MASK ^ StatusBarManager.DISABLE_BACK, mToken, mService.mContext.getPackageName()); } } catch (RemoteException ex) { throw new RuntimeException(ex); } break; } case LOCK_TASK_END_MSG: { // When lock task ends, we enable the status bars. try { if (getStatusBarService() != null) { getStatusBarService().disable (StatusBarManager.DISABLE_NONE, mToken, mService.mContext.getPackageName()); } } catch (RemoteException ex) { throw new RuntimeException(ex); } break; } } } } Loading