Merge "Fix history task stack" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5093c5816b
@@ -33,6 +33,8 @@ public interface NotificationActivityStarter {
|
||||
void startNotificationGutsIntent(Intent intent, int appUid,
|
||||
ExpandableNotificationRow row);
|
||||
|
||||
void startHistoryIntent(boolean showHistory);
|
||||
|
||||
default boolean isCollapsingToShowActivityOverLockscreen() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -1301,6 +1301,9 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
.setNotificationPanelViewController(mNotificationPanelViewController)
|
||||
.build();
|
||||
|
||||
((NotificationListContainer) mStackScroller)
|
||||
.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||
|
||||
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||
|
||||
mNotificationsController.initialize(
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -43,6 +43,7 @@ import com.android.systemui.bubbles.BubbleController;
|
||||
import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper;
|
||||
import com.android.systemui.statusbar.notification.DynamicChildBindController;
|
||||
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
|
||||
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
@@ -328,6 +329,10 @@ public class NotificationViewHierarchyManagerTest extends SysuiTestCase {
|
||||
removeContainerView(li.getView());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNotificationActivityStarter(
|
||||
NotificationActivityStarter notificationActivityStarter) {}
|
||||
|
||||
@Override
|
||||
public void addContainerView(View v) {
|
||||
mLayout.addView(v);
|
||||
|
||||
Reference in New Issue
Block a user