summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java14
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java93
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java62
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java11
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardPresentationTest.java16
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewControllerTest.java10
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java20
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java5
8 files changed, 136 insertions, 95 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
index 33985bcb8c49..be21d203411e 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java
@@ -131,6 +131,7 @@ public class KeyguardDisplayManager {
Presentation presentation = mPresentations.get(displayId);
if (presentation == null) {
final Presentation newPresentation = new KeyguardPresentation(mContext, display,
+ mKeyguardStatusViewComponentFactory,
mInjectableInflater.injectable(LayoutInflater.from(mContext)));
newPresentation.setOnDismissListener(dialog -> {
if (newPresentation.equals(mPresentations.get(displayId))) {
@@ -145,9 +146,6 @@ public class KeyguardDisplayManager {
presentation = null;
}
if (presentation != null) {
- mKeyguardStatusViewComponentFactory
- .build(presentation.findViewById(R.id.clock))
- .getKeyguardClockSwitchController().init();
mPresentations.append(displayId, presentation);
return true;
}
@@ -251,7 +249,9 @@ public class KeyguardDisplayManager {
static final class KeyguardPresentation extends Presentation {
private static final int VIDEO_SAFE_REGION = 80; // Percentage of display width & height
private static final int MOVE_CLOCK_TIMEOUT = 10000; // 10s
+ private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory;
private final LayoutInflater mInjectableLayoutInflater;
+ private KeyguardClockSwitchController mKeyguardClockSwitchController;
private View mClock;
private int mUsableWidth;
private int mUsableHeight;
@@ -269,8 +269,10 @@ public class KeyguardDisplayManager {
};
KeyguardPresentation(Context context, Display display,
+ KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory,
LayoutInflater injectionLayoutInflater) {
super(context, display, R.style.Theme_SystemUI_KeyguardPresentation);
+ mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory;
mInjectableLayoutInflater = injectionLayoutInflater;
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
setCancelable(false);
@@ -312,6 +314,12 @@ public class KeyguardDisplayManager {
// Avoid screen burn in
mClock.post(mMoveTextRunnable);
+
+ mKeyguardClockSwitchController = mKeyguardStatusViewComponentFactory
+ .build(findViewById(R.id.clock))
+ .getKeyguardClockSwitchController();
+
+ mKeyguardClockSwitchController.init();
}
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index 95a048baa332..a479bca56c2a 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -16,9 +16,6 @@
package com.android.keyguard;
-import static android.app.slice.Slice.HINT_LIST_ITEM;
-import static android.view.Display.INVALID_DISPLAY;
-
import android.animation.LayoutTransition;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
@@ -41,11 +38,8 @@ import android.view.animation.Animation;
import android.widget.LinearLayout;
import android.widget.TextView;
-import androidx.lifecycle.LiveData;
-import androidx.slice.Slice;
import androidx.slice.SliceItem;
import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.ListContent;
import androidx.slice.widget.RowContent;
import androidx.slice.widget.SliceContent;
@@ -55,27 +49,23 @@ import com.android.settingslib.Utils;
import com.android.systemui.Dependency;
import com.android.systemui.Interpolators;
import com.android.systemui.R;
-import com.android.systemui.keyguard.KeyguardSliceProvider;
-import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.util.wakelock.KeepAwakeAnimationListener;
import java.io.FileDescriptor;
import java.io.PrintWriter;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* View visible under the clock on the lock screen and AoD.
*/
-public class KeyguardSliceView extends LinearLayout implements View.OnClickListener {
+public class KeyguardSliceView extends LinearLayout {
private static final String TAG = "KeyguardSliceView";
public static final int DEFAULT_ANIM_DURATION = 550;
- private final HashMap<View, PendingIntent> mClickActions;
- private ActivityStarter mActivityStarter;
private final LayoutTransition mLayoutTransition;
@VisibleForTesting
TextView mTitle;
@@ -83,8 +73,6 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
private int mTextColor;
private float mDarkAmount = 0;
- private LiveData<Slice> mLiveData;
- private int mDisplayId = INVALID_DISPLAY;
private int mIconSize;
private int mIconSizeWithHeader;
/**
@@ -96,13 +84,12 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
private final int mRowPadding;
private float mRowTextSize;
private float mRowWithHeaderTextSize;
- private KeyguardSliceViewController mController;
+ private View.OnClickListener mOnClickListener;
public KeyguardSliceView(Context context, AttributeSet attrs) {
super(context, attrs);
Resources resources = context.getResources();
- mClickActions = new HashMap<>();
mRowPadding = resources.getDimensionPixelSize(R.dimen.subtitle_clock_padding);
mRowWithHeaderPadding = resources.getDimensionPixelSize(R.dimen.header_subtitle_padding);
@@ -130,7 +117,6 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
R.dimen.widget_label_font_size);
mRowWithHeaderTextSize = mContext.getResources().getDimensionPixelSize(
R.dimen.header_row_font_size);
- mTitle.setOnClickListener(this);
mTitle.setBreakStrategy(LineBreaker.BREAK_STRATEGY_BALANCED);
}
@@ -147,44 +133,31 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
return mHasHeader;
}
- void showSlice(Slice slice) {
- Trace.beginSection("KeyguardSliceView#showSlice");
- if (slice == null) {
- mTitle.setVisibility(GONE);
- mRow.setVisibility(GONE);
- mHasHeader = false;
- if (mContentChangeListener != null) {
- mContentChangeListener.run();
- }
- Trace.endSection();
- return;
- }
- mClickActions.clear();
-
- ListContent lc = new ListContent(getContext(), slice);
- SliceContent headerContent = lc.getHeader();
- mHasHeader = headerContent != null && !headerContent.getSliceItem().hasHint(HINT_LIST_ITEM);
- List<SliceContent> subItems = new ArrayList<>();
- for (int i = 0; i < lc.getRowItems().size(); i++) {
- SliceContent subItem = lc.getRowItems().get(i);
- String itemUri = subItem.getSliceItem().getSlice().getUri().toString();
- // Filter out the action row
- if (!KeyguardSliceProvider.KEYGUARD_ACTION_URI.equals(itemUri)) {
- subItems.add(subItem);
- }
+ void hideSlice() {
+ mTitle.setVisibility(GONE);
+ mRow.setVisibility(GONE);
+ mHasHeader = false;
+ if (mContentChangeListener != null) {
+ mContentChangeListener.run();
}
+ }
+
+ Map<View, PendingIntent> showSlice(RowContent header, List<SliceContent> subItems) {
+ Trace.beginSection("KeyguardSliceView#showSlice");
+ mHasHeader = header != null;
+ Map<View, PendingIntent> clickActions = new HashMap<>();
+
if (!mHasHeader) {
mTitle.setVisibility(GONE);
} else {
mTitle.setVisibility(VISIBLE);
- RowContent header = lc.getHeader();
SliceItem mainTitle = header.getTitleItem();
CharSequence title = mainTitle != null ? mainTitle.getText() : null;
mTitle.setText(title);
if (header.getPrimaryAction() != null
&& header.getPrimaryAction().getAction() != null) {
- mClickActions.put(mTitle, header.getPrimaryAction().getAction());
+ clickActions.put(mTitle, header.getPrimaryAction().getAction());
}
}
@@ -214,7 +187,7 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
if (rc.getPrimaryAction() != null) {
pendingIntent = rc.getPrimaryAction().getAction();
}
- mClickActions.put(button, pendingIntent);
+ clickActions.put(button, pendingIntent);
final SliceItem titleItem = rc.getTitleItem();
button.setText(titleItem == null ? null : titleItem.getText());
@@ -235,14 +208,14 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
}
}
button.setCompoundDrawables(iconDrawable, null, null, null);
- button.setOnClickListener(this);
+ button.setOnClickListener(mOnClickListener);
button.setClickable(pendingIntent != null);
}
// Removing old views
for (int i = 0; i < mRow.getChildCount(); i++) {
View child = mRow.getChildAt(i);
- if (!mClickActions.containsKey(child)) {
+ if (!clickActions.containsKey(child)) {
mRow.removeView(child);
i--;
}
@@ -252,6 +225,8 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
mContentChangeListener.run();
}
Trace.endSection();
+
+ return clickActions;
}
public void setDarkAmount(float darkAmount) {
@@ -272,14 +247,6 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
}
}
- @Override
- public void onClick(View v) {
- final PendingIntent action = mClickActions.get(v);
- if (action != null && mActivityStarter != null) {
- mActivityStarter.startPendingIntentDismissingKeyguard(action);
- }
- }
-
/**
* Runnable that gets invoked every time the title or the row visibility changes.
* @param contentChangeListener The listener.
@@ -308,13 +275,8 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
R.dimen.header_row_font_size);
}
- public void refresh() {
- mController.refresh();
- }
-
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.println("KeyguardSliceView:");
- pw.println(" mClickActions: " + mClickActions);
pw.println(" mTitle: " + (mTitle == null ? "null" : mTitle.getVisibility() == VISIBLE));
pw.println(" mRow: " + (mRow == null ? "null" : mRow.getVisibility() == VISIBLE));
pw.println(" mTextColor: " + Integer.toHexString(mTextColor));
@@ -322,13 +284,10 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
pw.println(" mHasHeader: " + mHasHeader);
}
- public void setActivityStarter(ActivityStarter activityStarter) {
- mActivityStarter = activityStarter;
- }
-
- public void setController(KeyguardSliceViewController keyguardSliceViewController) {
- // TODO: remove this method.
- mController = keyguardSliceViewController;
+ @Override
+ public void setOnClickListener(View.OnClickListener onClickListener) {
+ mOnClickListener = onClickListener;
+ mTitle.setOnClickListener(onClickListener);
}
public static class Row extends LinearLayout {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java
index 68fa0b010a3e..35a2392ba1cf 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java
@@ -16,8 +16,10 @@
package com.android.keyguard;
+import static android.app.slice.Slice.HINT_LIST_ITEM;
import static android.view.Display.DEFAULT_DISPLAY;
+import android.app.PendingIntent;
import android.net.Uri;
import android.os.Trace;
import android.provider.Settings;
@@ -30,6 +32,9 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.slice.Slice;
import androidx.slice.SliceViewManager;
+import androidx.slice.widget.ListContent;
+import androidx.slice.widget.RowContent;
+import androidx.slice.widget.SliceContent;
import androidx.slice.widget.SliceLiveData;
import com.android.keyguard.dagger.KeyguardStatusViewScope;
@@ -42,15 +47,19 @@ import com.android.systemui.tuner.TunerService;
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
import javax.inject.Inject;
/** Controller for a {@link KeyguardSliceView}. */
@KeyguardStatusViewScope
public class KeyguardSliceViewController implements Dumpable {
- private static final String TAG = "KeyguardSliceViewController";
+ private static final String TAG = "KeyguardSliceViewCtrl";
private final KeyguardSliceView mView;
+ private final KeyguardStatusView mKeyguardStatusView;
private final ActivityStarter mActivityStarter;
private final ConfigurationController mConfigurationController;
private final TunerService mTunerService;
@@ -59,6 +68,7 @@ public class KeyguardSliceViewController implements Dumpable {
private LiveData<Slice> mLiveData;
private Uri mKeyguardSliceUri;
private Slice mSlice;
+ private Map<View, PendingIntent> mClickActions;
private final View.OnAttachStateChangeListener mOnAttachStateChangeListener =
new View.OnAttachStateChangeListener() {
@@ -106,15 +116,27 @@ public class KeyguardSliceViewController implements Dumpable {
@Override
public void onChanged(Slice slice) {
mSlice = slice;
- mView.showSlice(slice);
+ showSlice(slice);
+ }
+ };
+
+ private View.OnClickListener mOnClickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final PendingIntent action = mClickActions.get(v);
+ if (action != null && mActivityStarter != null) {
+ mActivityStarter.startPendingIntentDismissingKeyguard(action);
+ }
}
};
@Inject
public KeyguardSliceViewController(KeyguardSliceView keyguardSliceView,
- ActivityStarter activityStarter, ConfigurationController configurationController,
- TunerService tunerService, DumpManager dumpManager) {
+ KeyguardStatusView keyguardStatusView, ActivityStarter activityStarter,
+ ConfigurationController configurationController, TunerService tunerService,
+ DumpManager dumpManager) {
mView = keyguardSliceView;
+ mKeyguardStatusView = keyguardStatusView;
mActivityStarter = activityStarter;
mConfigurationController = configurationController;
mTunerService = tunerService;
@@ -127,8 +149,9 @@ public class KeyguardSliceViewController implements Dumpable {
mOnAttachStateChangeListener.onViewAttachedToWindow(mView);
}
mView.addOnAttachStateChangeListener(mOnAttachStateChangeListener);
- mView.setActivityStarter(mActivityStarter);
- mView.setController(this); // TODO: remove this.
+ mView.setOnClickListener(mOnClickListener);
+ // TODO: remove the line below.
+ mKeyguardStatusView.setKeyguardSliceViewController(this);
}
/**
@@ -177,8 +200,35 @@ public class KeyguardSliceViewController implements Dumpable {
Trace.endSection();
}
+ void showSlice(Slice slice) {
+ Trace.beginSection("KeyguardSliceViewController#showSlice");
+ if (slice == null) {
+ mView.hideSlice();
+ Trace.endSection();
+ return;
+ }
+
+ ListContent lc = new ListContent(slice);
+ RowContent headerContent = lc.getHeader();
+ boolean hasHeader =
+ headerContent != null && !headerContent.getSliceItem().hasHint(HINT_LIST_ITEM);
+
+ List<SliceContent> subItems = lc.getRowItems().stream().filter(sliceContent -> {
+ String itemUri = sliceContent.getSliceItem().getSlice().getUri().toString();
+ // Filter out the action row
+ return !KeyguardSliceProvider.KEYGUARD_ACTION_URI.equals(itemUri);
+ }).collect(Collectors.toList());
+
+
+ mClickActions = mView.showSlice(hasHeader ? headerContent : null, subItems);
+
+ Trace.endSection();
+ }
+
+
@Override
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
pw.println(" mSlice: " + mSlice);
+ pw.println(" mClickActions: " + mClickActions);
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 4c6aafb0058a..6e111745627f 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -32,7 +32,6 @@ import android.util.Slog;
import android.util.TypedValue;
import android.view.View;
import android.widget.GridLayout;
-import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.core.graphics.ColorUtils;
@@ -56,7 +55,6 @@ public class KeyguardStatusView extends GridLayout implements
private final LockPatternUtils mLockPatternUtils;
private final IActivityManager mIActivityManager;
- private LinearLayout mStatusViewContainer;
private TextView mLogoutView;
private KeyguardClockSwitch mClockView;
private TextView mOwnerInfo;
@@ -64,6 +62,7 @@ public class KeyguardStatusView extends GridLayout implements
private View mNotificationIcons;
private Runnable mPendingMarqueeStart;
private Handler mHandler;
+ private KeyguardSliceViewController mKeyguardSliceViewController;
private boolean mPulsing;
private float mDarkAmount = 0;
@@ -179,7 +178,6 @@ public class KeyguardStatusView extends GridLayout implements
@Override
protected void onFinishInflate() {
super.onFinishInflate();
- mStatusViewContainer = findViewById(R.id.status_view_container);
mLogoutView = findViewById(R.id.logout);
mNotificationIcons = findViewById(R.id.clock_notification_icon_container);
if (mLogoutView != null) {
@@ -250,7 +248,7 @@ public class KeyguardStatusView extends GridLayout implements
public void dozeTimeTick() {
refreshTime();
- mKeyguardSlice.refresh();
+ mKeyguardSliceViewController.refresh();
}
private void refreshTime() {
@@ -456,4 +454,9 @@ public class KeyguardStatusView extends GridLayout implements
Log.e(TAG, "Failed to logout user", re);
}
}
+
+ // TODO: remove this method when a controller is available.
+ void setKeyguardSliceViewController(KeyguardSliceViewController keyguardSliceViewController) {
+ mKeyguardSliceViewController = keyguardSliceViewController;
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPresentationTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPresentationTest.java
index 446b1228f1bb..559284ac0672 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPresentationTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPresentationTest.java
@@ -16,6 +16,7 @@
package com.android.keyguard;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -28,6 +29,7 @@ import android.view.View;
import androidx.test.filters.SmallTest;
import com.android.keyguard.KeyguardDisplayManager.KeyguardPresentation;
+import com.android.keyguard.dagger.KeyguardStatusViewComponent;
import com.android.systemui.R;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.SysuiTestCase;
@@ -51,6 +53,12 @@ public class KeyguardPresentationTest extends SysuiTestCase {
KeyguardSliceView mMockKeyguardSliceView;
@Mock
KeyguardStatusView mMockKeyguardStatusView;
+ @Mock
+ private KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory;
+ @Mock
+ private KeyguardStatusViewComponent mKeyguardStatusViewComponent;
+ @Mock
+ private KeyguardClockSwitchController mKeyguardClockSwitchController;
LayoutInflater mLayoutInflater;
@@ -62,6 +70,11 @@ public class KeyguardPresentationTest extends SysuiTestCase {
when(mMockKeyguardSliceView.getContext()).thenReturn(mContext);
when(mMockKeyguardStatusView.getContext()).thenReturn(mContext);
when(mMockKeyguardStatusView.findViewById(R.id.clock)).thenReturn(mMockKeyguardStatusView);
+ when(mKeyguardStatusViewComponentFactory.build(any(KeyguardStatusView.class)))
+ .thenReturn(mKeyguardStatusViewComponent);
+ when(mKeyguardStatusViewComponent.getKeyguardClockSwitchController())
+ .thenReturn(mKeyguardClockSwitchController);
+
allowTestableLooperAsMainThread();
InjectionInflationController inflationController = new InjectionInflationController(
@@ -99,7 +112,8 @@ public class KeyguardPresentationTest extends SysuiTestCase {
@Test
public void testInflation_doesntCrash() {
KeyguardPresentation keyguardPresentation = new KeyguardPresentation(mContext,
- mContext.getDisplayNoVerify(), mLayoutInflater);
+ mContext.getDisplayNoVerify(), mKeyguardStatusViewComponentFactory,
+ mLayoutInflater);
keyguardPresentation.onCreate(null /*savedInstanceState */);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewControllerTest.java
index 991d99588127..b7bcaa3c3566 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewControllerTest.java
@@ -44,7 +44,9 @@ import org.mockito.MockitoAnnotations;
@RunWithLooper(setAsMainLooper = true)
public class KeyguardSliceViewControllerTest extends SysuiTestCase {
@Mock
- private KeyguardSliceView mView;
+ private KeyguardSliceView mView;;
+ @Mock
+ private KeyguardStatusView mKeyguardStatusView;
@Mock
private TunerService mTunerService;
@Mock
@@ -61,15 +63,15 @@ public class KeyguardSliceViewControllerTest extends SysuiTestCase {
when(mView.isAttachedToWindow()).thenReturn(true);
when(mView.getContext()).thenReturn(mContext);
mController = new KeyguardSliceViewController(
- mView, mActivityStarter, mConfigurationController, mTunerService, mDumpManager);
+ mView, mKeyguardStatusView, mActivityStarter, mConfigurationController,
+ mTunerService, mDumpManager);
mController.setupUri(KeyguardSliceProvider.KEYGUARD_SLICE_URI);
}
-
@Test
public void refresh_replacesSliceContentAndNotifiesListener() {
mController.refresh();
- verify(mView).showSlice(null);
+ verify(mView).hideSlice();
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
index f388ad02647d..1ab08c27088a 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
@@ -22,9 +22,11 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper.RunWithLooper;
import android.view.LayoutInflater;
+import androidx.slice.Slice;
import androidx.slice.SliceProvider;
import androidx.slice.SliceSpecs;
import androidx.slice.builders.ListBuilder;
+import androidx.slice.widget.RowContent;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
@@ -34,7 +36,6 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.Collections;
@@ -47,8 +48,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class KeyguardSliceViewTest extends SysuiTestCase {
private KeyguardSliceView mKeyguardSliceView;
private Uri mSliceUri;
- @Mock
- private KeyguardSliceViewController mKeyguardSliceViewController;
@Before
public void setUp() throws Exception {
@@ -56,7 +55,6 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
mKeyguardSliceView = (KeyguardSliceView) layoutInflater
.inflate(R.layout.keyguard_status_area, null);
- mKeyguardSliceView.setController(mKeyguardSliceViewController);
mSliceUri = Uri.parse(KeyguardSliceProvider.KEYGUARD_SLICE_URI);
SliceProvider.setSpecs(new HashSet<>(Collections.singletonList(SliceSpecs.LIST)));
}
@@ -64,9 +62,13 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
@Test
public void showSlice_notifiesListener() {
ListBuilder builder = new ListBuilder(getContext(), mSliceUri, ListBuilder.INFINITY);
+ builder.setHeader(new ListBuilder.HeaderBuilder().setTitle("header title!"));
+ Slice slice = builder.build();
+ RowContent rowContent = new RowContent(slice.getItemArray()[0], 0);
+
AtomicBoolean notified = new AtomicBoolean();
mKeyguardSliceView.setContentChangeListener(()-> notified.set(true));
- mKeyguardSliceView.showSlice(builder.build());
+ mKeyguardSliceView.showSlice(rowContent, Collections.EMPTY_LIST);
Assert.assertTrue("Listener should be notified about slice changes.",
notified.get());
}
@@ -75,7 +77,7 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
public void showSlice_emptySliceNotifiesListener() {
AtomicBoolean notified = new AtomicBoolean();
mKeyguardSliceView.setContentChangeListener(()-> notified.set(true));
- mKeyguardSliceView.showSlice(null);
+ mKeyguardSliceView.showSlice(null, Collections.EMPTY_LIST);
Assert.assertTrue("Listener should be notified about slice changes.",
notified.get());
}
@@ -83,11 +85,13 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
@Test
public void hasHeader_readsSliceData() {
ListBuilder builder = new ListBuilder(getContext(), mSliceUri, ListBuilder.INFINITY);
- mKeyguardSliceView.showSlice(builder.build());
+ mKeyguardSliceView.showSlice(null, Collections.EMPTY_LIST);
Assert.assertFalse("View should not have a header", mKeyguardSliceView.hasHeader());
builder.setHeader(new ListBuilder.HeaderBuilder().setTitle("header title!"));
- mKeyguardSliceView.showSlice(builder.build());
+ Slice slice = builder.build();
+ RowContent rowContent = new RowContent(slice.getItemArray()[0], 0);
+ mKeyguardSliceView.showSlice(rowContent, Collections.EMPTY_LIST);
Assert.assertTrue("View should have a header", mKeyguardSliceView.hasHeader());
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java
index 0bf137689aa1..0431704778c3 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.java
@@ -40,7 +40,8 @@ import org.mockito.Mock;
public class KeyguardStatusViewTest extends SysuiTestCase {
@Mock
- KeyguardSliceView mKeyguardSlice;
+ KeyguardSliceViewController mKeyguardSliceViewController;
+
@Mock
KeyguardClockSwitch mClockView;
@InjectMocks
@@ -64,7 +65,7 @@ public class KeyguardStatusViewTest extends SysuiTestCase {
@Test
public void dozeTimeTick_updatesSlice() {
mKeyguardStatusView.dozeTimeTick();
- verify(mKeyguardSlice).refresh();
+ verify(mKeyguardSliceViewController).refresh();
}
@Test