Search in sources :

Example 6 with OnDismissAction

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

the class BaseStatusBar method bindGuts.

private void bindGuts(final ExpandableNotificationRow row) {
    row.inflateGuts();
    final StatusBarNotification sbn = row.getStatusBarNotification();
    PackageManager pmUser = getPackageManagerForUser(mContext, sbn.getUser().getIdentifier());
    row.setTag(sbn.getPackageName());
    final NotificationGuts guts = row.getGuts();
    guts.setClosedListener(this);
    final String pkg = sbn.getPackageName();
    String appname = pkg;
    Drawable pkgicon = null;
    int appUid = -1;
    try {
        final ApplicationInfo info = pmUser.getApplicationInfo(pkg, PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_DISABLED_COMPONENTS);
        if (info != null) {
            appname = String.valueOf(pmUser.getApplicationLabel(info));
            pkgicon = pmUser.getApplicationIcon(info);
            appUid = info.uid;
        }
    } catch (NameNotFoundException e) {
        // app is gone, just show package name and generic icon
        pkgicon = pmUser.getDefaultActivityIcon();
    }
    ((ImageView) guts.findViewById(R.id.app_icon)).setImageDrawable(pkgicon);
    ((TextView) guts.findViewById(R.id.pkgname)).setText(appname);
    final TextView settingsButton = (TextView) guts.findViewById(R.id.more_settings);
    if (appUid >= 0) {
        final int appUidF = appUid;
        settingsButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                MetricsLogger.action(mContext, MetricsEvent.ACTION_NOTE_INFO);
                guts.resetFalsingCheck();
                startAppNotificationSettingsActivity(pkg, appUidF);
            }
        });
        settingsButton.setText(R.string.notification_more_settings);
    } else {
        settingsButton.setVisibility(View.GONE);
    }
    guts.bindImportance(pmUser, sbn, mNonBlockablePkgs, mNotificationData.getImportance(sbn.getKey()));
    final TextView doneButton = (TextView) guts.findViewById(R.id.done);
    doneButton.setText(R.string.notification_done);
    doneButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // If the user has security enabled, show challenge if the setting is changed.
            if (guts.hasImportanceChanged() && isLockscreenPublicMode() && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) {
                OnDismissAction dismissAction = new OnDismissAction() {

                    @Override
                    public boolean onDismiss() {
                        saveImportanceCloseControls(sbn, row, guts, v);
                        return true;
                    }
                };
                onLockedNotificationImportanceChange(dismissAction);
            } else {
                saveImportanceCloseControls(sbn, row, guts, v);
            }
        }
    });
}
Also used : NameNotFoundException(android.content.pm.PackageManager.NameNotFoundException) Drawable(android.graphics.drawable.Drawable) ApplicationInfo(android.content.pm.ApplicationInfo) OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) ImageView(android.widget.ImageView) NotificationPanelView(com.android.systemui.statusbar.phone.NotificationPanelView) View(android.view.View) RemoteInputView(com.android.systemui.statusbar.policy.RemoteInputView) TextView(android.widget.TextView) NavigationBarView(com.android.systemui.statusbar.phone.NavigationBarView) StatusBarNotification(android.service.notification.StatusBarNotification) PackageManager(android.content.pm.PackageManager) TextView(android.widget.TextView) ImageView(android.widget.ImageView)

Example 7 with OnDismissAction

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

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 8 with OnDismissAction

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

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 9 with OnDismissAction

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

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 10 with OnDismissAction

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

the class BaseStatusBar method bindGuts.

private void bindGuts(final ExpandableNotificationRow row) {
    row.inflateGuts();
    final StatusBarNotification sbn = row.getStatusBarNotification();
    PackageManager pmUser = getPackageManagerForUser(mContext, sbn.getUser().getIdentifier());
    row.setTag(sbn.getPackageName());
    final NotificationGuts guts = row.getGuts();
    guts.setClosedListener(this);
    final String pkg = sbn.getPackageName();
    String appname = pkg;
    Drawable pkgicon = null;
    int appUid = -1;
    try {
        final ApplicationInfo info = pmUser.getApplicationInfo(pkg, PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_DISABLED_COMPONENTS);
        if (info != null) {
            appname = String.valueOf(pmUser.getApplicationLabel(info));
            pkgicon = pmUser.getApplicationIcon(info);
            appUid = info.uid;
        }
    } catch (NameNotFoundException e) {
        // app is gone, just show package name and generic icon
        pkgicon = pmUser.getDefaultActivityIcon();
    }
    ((ImageView) guts.findViewById(R.id.app_icon)).setImageDrawable(pkgicon);
    ((TextView) guts.findViewById(R.id.pkgname)).setText(appname);
    final TextView settingsButton = (TextView) guts.findViewById(R.id.more_settings);
    if (appUid >= 0) {
        final int appUidF = appUid;
        settingsButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                MetricsLogger.action(mContext, MetricsEvent.ACTION_NOTE_INFO);
                guts.resetFalsingCheck();
                startAppNotificationSettingsActivity(pkg, appUidF);
            }
        });
        settingsButton.setText(R.string.notification_more_settings);
    } else {
        settingsButton.setVisibility(View.GONE);
    }
    guts.bindImportance(pmUser, sbn, mNonBlockablePkgs, mNotificationData.getImportance(sbn.getKey()));
    final TextView doneButton = (TextView) guts.findViewById(R.id.done);
    doneButton.setText(R.string.notification_done);
    doneButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // If the user has security enabled, show challenge if the setting is changed.
            if (guts.hasImportanceChanged() && isLockscreenPublicMode() && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) {
                OnDismissAction dismissAction = new OnDismissAction() {

                    @Override
                    public boolean onDismiss() {
                        saveImportanceCloseControls(sbn, row, guts, v);
                        return true;
                    }
                };
                onLockedNotificationImportanceChange(dismissAction);
            } else {
                saveImportanceCloseControls(sbn, row, guts, v);
            }
        }
    });
}
Also used : NameNotFoundException(android.content.pm.PackageManager.NameNotFoundException) Drawable(android.graphics.drawable.Drawable) ApplicationInfo(android.content.pm.ApplicationInfo) OnDismissAction(com.android.keyguard.KeyguardHostView.OnDismissAction) ImageView(android.widget.ImageView) View(android.view.View) RemoteInputView(com.android.systemui.statusbar.policy.RemoteInputView) TextView(android.widget.TextView) NavigationBarView(com.android.systemui.statusbar.phone.NavigationBarView) StatusBarNotification(android.service.notification.StatusBarNotification) PackageManager(android.content.pm.PackageManager) TextView(android.widget.TextView) ImageView(android.widget.ImageView)

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