Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f04d16f authored by Jason Monk's avatar Jason Monk Committed by Android (Google) Code Review
Browse files

Merge "Plumbing for screen pinning request from sysui" into lmp-mr1-dev

parents 68dcc56a 5565cb42
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -42,5 +42,6 @@ oneway interface IStatusBar
    void toggleRecentApps();
    void preloadRecentApps();
    void cancelPreloadRecentApps();
    void showScreenPinningRequest();
}
+11 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ public class CommandQueue extends IStatusBar.Stub {
    private static final int MSG_BUZZ_BEEP_BLINKED          = 15 << MSG_SHIFT;
    private static final int MSG_NOTIFICATION_LIGHT_OFF     = 16 << MSG_SHIFT;
    private static final int MSG_NOTIFICATION_LIGHT_PULSE   = 17 << MSG_SHIFT;
    private static final int MSG_SHOW_SCREEN_PIN_REQUEST    = 18 << MSG_SHIFT;

    public static final int FLAG_EXCLUDE_NONE = 0;
    public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -97,6 +98,7 @@ public class CommandQueue extends IStatusBar.Stub {
        public void buzzBeepBlinked();
        public void notificationLightOff();
        public void notificationLightPulse(int argb, int onMillis, int offMillis);
        public void showScreenPinningRequest();
    }

    public CommandQueue(Callbacks callbacks, StatusBarIconList list) {
@@ -238,6 +240,12 @@ public class CommandQueue extends IStatusBar.Stub {
        }
    }

    public void showScreenPinningRequest() {
        synchronized (mList) {
            mHandler.sendEmptyMessage(MSG_SHOW_SCREEN_PIN_REQUEST);
        }
    }

    private final class H extends Handler {
        public void handleMessage(Message msg) {
            final int what = msg.what & MSG_MASK;
@@ -317,6 +325,9 @@ public class CommandQueue extends IStatusBar.Stub {
                case MSG_NOTIFICATION_LIGHT_PULSE:
                    mCallbacks.notificationLightPulse((Integer) msg.obj, msg.arg1, msg.arg2);
                    break;
                case MSG_SHOW_SCREEN_PIN_REQUEST:
                    mCallbacks.showScreenPinningRequest();
                    break;
            }
        }
    }
+5 −0
Original line number Diff line number Diff line
@@ -4036,6 +4036,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        notifyUiVisibilityChanged(mSystemUiVisibility);
    }

    @Override
    public void showScreenPinningRequest() {
        // TODO: Show request.
    }

    public boolean hasActiveNotifications() {
        return !mNotificationData.getActiveNotifications().isEmpty();
    }
+4 −0
Original line number Diff line number Diff line
@@ -178,4 +178,8 @@ public class TvStatusBar extends BaseStatusBar {
    @Override
    public void onActivationReset(ActivatableNotificationView view) {
    }

    @Override
    public void showScreenPinningRequest() {
    }
}
+16 −16
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ import com.android.server.Watchdog;
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.firewall.IntentFirewall;
import com.android.server.pm.UserManagerService;
import com.android.server.statusbar.StatusBarManagerInternal;
import com.android.server.wm.AppTransition;
import com.android.server.wm.WindowManagerService;
import com.google.android.collect.Lists;
@@ -199,6 +200,7 @@ import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import dalvik.system.VMRuntime;
import java.io.BufferedInputStream;
@@ -1217,8 +1219,6 @@ public final class ActivityManagerService extends ActivityManagerNative
    CompatModeDialog mCompatModeDialog;
    long mLastMemUsageReportTime = 0;
    private LockToAppRequestDialog mLockToAppRequest;
    /**
     * Flag whether the current user is a "monkey", i.e. whether
     * the UI is driven by a UI automation tool.
@@ -1689,7 +1689,6 @@ public final class ActivityManagerService extends ActivityManagerNative
                        BatteryStats.HistoryItem.EVENT_USER_FOREGROUND_START,
                        Integer.toString(msg.arg1), msg.arg1);
                mSystemServiceManager.switchUser(msg.arg1);
                mLockToAppRequest.clearPrompt();
                break;
            }
            case ENTER_ANIMATION_COMPLETE_MSG: {
@@ -2162,8 +2161,6 @@ public final class ActivityManagerService extends ActivityManagerNative
            }
        };
        mLockToAppRequest = new LockToAppRequestDialog(mContext, this);
        Watchdog.getInstance().addMonitor(this);
        Watchdog.getInstance().addThread(mHandler);
    }
@@ -8684,13 +8681,11 @@ public final class ActivityManagerService extends ActivityManagerNative
        }
        boolean isSystemInitiated = Binder.getCallingUid() == Process.SYSTEM_UID;
        if (!isSystemInitiated && !isLockTaskAuthorized(pkg)) {
            final TaskRecord taskRecord = task;
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    mLockToAppRequest.showLockTaskPrompt(taskRecord);
            StatusBarManagerInternal statusBarManager = LocalServices.getService(
                    StatusBarManagerInternal.class);
            if (statusBarManager != null) {
                statusBarManager.showScreenPinningRequest();
            }
            });
            return;
        }
        long ident = Binder.clearCallingIdentity();
@@ -8752,11 +8747,16 @@ public final class ActivityManagerService extends ActivityManagerNative
    public void startLockTaskModeOnCurrent() throws RemoteException {
        enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
                "startLockTaskModeOnCurrent");
        long ident = Binder.clearCallingIdentity();
        try {
            ActivityRecord r = null;
            synchronized (this) {
                r = mStackSupervisor.topRunningActivityLocked();
            }
            startLockTaskMode(r.task);
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
    }
    @Override
Loading