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

Commit 5093c581 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix history task stack" into rvc-dev

parents 636f2a0e 4368932b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ public interface NotificationActivityStarter {
    void startNotificationGutsIntent(Intent intent, int appUid,
            ExpandableNotificationRow row);

    void startHistoryIntent(boolean showHistory);

    default boolean isCollapsingToShowActivityOverLockscreen() {
        return false;
    }
+3 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.view.View;
import android.view.ViewGroup;

import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.VisibilityLocationProvider;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.SimpleNotificationListContainer;
@@ -194,4 +195,6 @@ public interface NotificationListContainer extends ExpandableView.OnHeightChange
     * @param v the item to remove
     */
    void removeListItem(@NonNull NotificationListItem v);

    void setNotificationActivityStarter(NotificationActivityStarter notificationActivityStarter);
}
+11 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEX

import static java.lang.annotation.RetentionPolicy.SOURCE;

import android.app.TaskStackBuilder;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.TimeAnimator;
@@ -50,6 +51,7 @@ import android.graphics.PointF;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.ServiceManager;
import android.provider.Settings;
@@ -117,6 +119,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.FakeShadowView;
import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationUtils;
@@ -255,6 +258,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd

    private final AmbientState mAmbientState;
    private NotificationGroupManager mGroupManager;
    private NotificationActivityStarter mNotificationActivityStarter;
    private HashSet<ExpandableView> mChildrenToAddAnimated = new HashSet<>();
    private ArrayList<View> mAddedHeadsUpChildren = new ArrayList<>();
    private ArrayList<ExpandableView> mChildrenToRemoveAnimated = new ArrayList<>();
@@ -5699,6 +5703,12 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
        }
    }

    @Override
    public void setNotificationActivityStarter(
            NotificationActivityStarter notificationActivityStarter) {
        mNotificationActivityStarter = notificationActivityStarter;
    }

    @VisibleForTesting
    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    protected void inflateFooterView() {
@@ -5709,10 +5719,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
            clearNotifications(ROWS_ALL, true /* closeShade */);
        });
        footerView.setManageButtonClickListener(v -> {
            Intent intent = footerView.isHistoryShown() ? new Intent(
                    Settings.ACTION_NOTIFICATION_HISTORY) : new Intent(
                    Settings.ACTION_NOTIFICATION_SETTINGS);
            mStatusBar.startActivity(intent, true, true, Intent.FLAG_ACTIVITY_SINGLE_TOP);
            mNotificationActivityStarter.startHistoryIntent(mFooterView.isHistoryShown());
        });
        setFooterView(footerView);
    }
+3 −0
Original line number Diff line number Diff line
@@ -1301,6 +1301,9 @@ public class StatusBar extends SystemUI implements DemoMode,
                        .setNotificationPanelViewController(mNotificationPanelViewController)
                        .build();

        ((NotificationListContainer) mStackScroller)
                .setNotificationActivityStarter(mNotificationActivityStarter);

        mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);

        mNotificationsController.initialize(
+24 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.Settings;
import android.service.dreams.IDreamManager;
import android.service.notification.NotificationStats;
import android.service.notification.StatusBarNotification;
@@ -470,6 +471,29 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit
        }, null, false /* afterKeyguardGone */);
    }

    @Override
    public void startHistoryIntent(boolean showHistory) {
        mActivityStarter.dismissKeyguardThenExecute(() -> {
            AsyncTask.execute(() -> {
                Intent intent = showHistory ? new Intent(
                        Settings.ACTION_NOTIFICATION_HISTORY) : new Intent(
                        Settings.ACTION_NOTIFICATION_SETTINGS);
                TaskStackBuilder tsb = TaskStackBuilder.create(mContext)
                        .addNextIntent(new Intent(Settings.ACTION_NOTIFICATION_SETTINGS));
                if (showHistory) {
                    tsb.addNextIntent(intent);
                }
                tsb.startActivities();
                if (shouldCollapse()) {
                    // Putting it back on the main thread, since we're touching views
                    mMainThreadHandler.post(() -> mCommandQueue.animateCollapsePanels(
                            CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true /* force */));
                }
            });
            return true;
        }, null, false /* afterKeyguardGone */);
    }

    private void handleFullScreenIntent(NotificationEntry entry) {
        if (mNotificationInterruptStateProvider.shouldLaunchFullScreenIntentWhenAdded(entry)) {
            if (shouldSuppressFullScreenIntent(entry)) {
Loading