Search in sources :

Example 1 with OnDismissAction

use of com.android.keyguard.KeyguardHostView.OnDismissAction in project platform_frameworks_base by android.

the class PhoneStatusBar method executeRunnableDismissingKeyguard.

public void executeRunnableDismissingKeyguard(final Runnable runnable, final Runnable cancelAction, final boolean dismissShade, final boolean afterKeyguardGone, final boolean deferred) {
    final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
    dismissKeyguardThenExecute(new OnDismissAction() {

        @Override
        public boolean onDismiss() {
            AsyncTask.execute(new Runnable() {

                @Override
                public void run() {
                    try {
                        if (keyguardShowing && !afterKeyguardGone) {
                            ActivityManagerNative.getDefault().keyguardWaitingForActivityDrawn();
                        }
                        if (runnable != null) {
                            runnable.run();
                        }
                    } catch (RemoteException e) {
                    }
                }
            });
            if (dismissShade) {
                animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true, /* force */
                true);
            }
            return deferred;
        }
    }, cancelAction, afterKeyguardGone);
}
Also used : OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) RemoteException(android.os.RemoteException)

Example 2 with OnDismissAction

use of com.android.keyguard.KeyguardHostView.OnDismissAction in project platform_frameworks_base by android.

the class BaseStatusBar method startPendingIntentDismissingKeyguard.

public void startPendingIntentDismissingKeyguard(final PendingIntent intent) {
    if (!isDeviceProvisioned())
        return;
    final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
    final boolean afterKeyguardGone = intent.isActivity() && PreviewInflater.wouldLaunchResolverActivity(mContext, intent.getIntent(), mCurrentUserId);
    dismissKeyguardThenExecute(new OnDismissAction() {

        public boolean onDismiss() {
            new Thread() {

                @Override
                public void run() {
                    try {
                        if (keyguardShowing && !afterKeyguardGone) {
                            ActivityManagerNative.getDefault().keyguardWaitingForActivityDrawn();
                        }
                        // The intent we are sending is for the application, which
                        // won't have permission to immediately start an activity after
                        // the user switches to home.  We know it is safe to do at this
                        // point, so make sure new activity switches are now allowed.
                        ActivityManagerNative.getDefault().resumeAppSwitches();
                    } catch (RemoteException e) {
                    }
                    try {
                        intent.send(null, 0, null, null, null, null, getActivityOptions());
                    } catch (PendingIntent.CanceledException e) {
                        // the stack trace isn't very helpful here.
                        // Just log the exception message.
                        Log.w(TAG, "Sending intent failed: " + e);
                    // TODO: Dismiss Keyguard.
                    }
                    if (intent.isActivity()) {
                        mAssistManager.hideAssist();
                        overrideActivityPendingAppTransition(keyguardShowing && !afterKeyguardGone);
                    }
                }
            }.start();
            // close the shade if it was open
            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true, /* force */
            true);
            visibilityChanged(false);
            return true;
        }
    }, afterKeyguardGone);
}
Also used : OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) PendingIntent(android.app.PendingIntent) RemoteException(android.os.RemoteException)

Example 3 with OnDismissAction

use of com.android.keyguard.KeyguardHostView.OnDismissAction in project platform_frameworks_base by android.

the class BaseStatusBar method startNotificationGutsIntent.

private void startNotificationGutsIntent(final Intent intent, final int appUid) {
    final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
    dismissKeyguardThenExecute(new OnDismissAction() {

        @Override
        public boolean onDismiss() {
            AsyncTask.execute(new Runnable() {

                public void run() {
                    try {
                        if (keyguardShowing) {
                            ActivityManagerNative.getDefault().keyguardWaitingForActivityDrawn();
                        }
                        TaskStackBuilder.create(mContext).addNextIntentWithParentStack(intent).startActivities(getActivityOptions(), new UserHandle(UserHandle.getUserId(appUid)));
                        overrideActivityPendingAppTransition(keyguardShowing);
                    } catch (RemoteException e) {
                    }
                }
            });
            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true);
            return true;
        }
    }, false);
}
Also used : UserHandle(android.os.UserHandle) OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) RemoteException(android.os.RemoteException)

Example 4 with OnDismissAction

use of com.android.keyguard.KeyguardHostView.OnDismissAction in project android_frameworks_base by DirtyUnicorns.

the class PhoneStatusBar method executeRunnableDismissingKeyguard.

public void executeRunnableDismissingKeyguard(final Runnable runnable, final Runnable cancelAction, final boolean dismissShade, final boolean afterKeyguardGone, final boolean deferred) {
    final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
    dismissKeyguardThenExecute(new OnDismissAction() {

        @Override
        public boolean onDismiss() {
            AsyncTask.execute(new Runnable() {

                @Override
                public void run() {
                    try {
                        if (keyguardShowing && !afterKeyguardGone) {
                            ActivityManagerNative.getDefault().keyguardWaitingForActivityDrawn();
                        }
                        if (runnable != null) {
                            runnable.run();
                        }
                    } catch (RemoteException e) {
                    }
                }
            });
            if (dismissShade) {
                animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true, /* force */
                true);
            }
            return deferred;
        }
    }, cancelAction, afterKeyguardGone);
}
Also used : OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) RemoteException(android.os.RemoteException)

Example 5 with OnDismissAction

use of com.android.keyguard.KeyguardHostView.OnDismissAction in project android_frameworks_base by DirtyUnicorns.

the class BaseStatusBar method startPendingIntentDismissingKeyguard.

public void startPendingIntentDismissingKeyguard(final PendingIntent intent) {
    if (!isDeviceProvisioned())
        return;
    final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
    final boolean afterKeyguardGone = intent.isActivity() && PreviewInflater.wouldLaunchResolverActivity(mContext, intent.getIntent(), mCurrentUserId);
    dismissKeyguardThenExecute(new OnDismissAction() {

        public boolean onDismiss() {
            new Thread() {

                @Override
                public void run() {
                    try {
                        if (keyguardShowing && !afterKeyguardGone) {
                            ActivityManagerNative.getDefault().keyguardWaitingForActivityDrawn();
                        }
                        // The intent we are sending is for the application, which
                        // won't have permission to immediately start an activity after
                        // the user switches to home.  We know it is safe to do at this
                        // point, so make sure new activity switches are now allowed.
                        ActivityManagerNative.getDefault().resumeAppSwitches();
                    } catch (RemoteException e) {
                    }
                    try {
                        intent.send(null, 0, null, null, null, null, getActivityOptions());
                    } catch (PendingIntent.CanceledException e) {
                        // the stack trace isn't very helpful here.
                        // Just log the exception message.
                        Log.w(TAG, "Sending intent failed: " + e);
                    // TODO: Dismiss Keyguard.
                    }
                    if (intent.isActivity()) {
                        mAssistManager.hideAssist();
                        overrideActivityPendingAppTransition(keyguardShowing && !afterKeyguardGone);
                    }
                }
            }.start();
            // close the shade if it was open
            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true, /* force */
            true);
            visibilityChanged(false);
            return true;
        }
    }, afterKeyguardGone);
}
Also used : OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) PendingIntent(android.app.PendingIntent) RemoteException(android.os.RemoteException)

Aggregations

OnDismissAction (com.android.keyguard.KeyguardHostView.OnDismissAction)20 RemoteException (android.os.RemoteException)15 PendingIntent (android.app.PendingIntent)5 ApplicationInfo (android.content.pm.ApplicationInfo)5 PackageManager (android.content.pm.PackageManager)5 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)5 Drawable (android.graphics.drawable.Drawable)5 UserHandle (android.os.UserHandle)5 StatusBarNotification (android.service.notification.StatusBarNotification)5 View (android.view.View)5 ImageView (android.widget.ImageView)5 TextView (android.widget.TextView)5 NavigationBarView (com.android.systemui.statusbar.phone.NavigationBarView)5 RemoteInputView (com.android.systemui.statusbar.policy.RemoteInputView)5 NotificationPanelView (com.android.systemui.statusbar.phone.NotificationPanelView)2 ActivityManager (android.app.ActivityManager)1 DialogInterface (android.content.DialogInterface)1 ViewGroup (android.view.ViewGroup)1 GestureAnywhereView (com.android.systemui.chaos.lab.gestureanywhere.GestureAnywhereView)1 SystemUIDialog (com.android.systemui.statusbar.phone.SystemUIDialog)1