Merge "Update PeopleTile & ConversationChannel"

This commit is contained in:
Anna Zappone
2021-01-26 13:46:36 +00:00
committed by Android (Google) Code Review
9 changed files with 220 additions and 64 deletions

View File

@@ -16,12 +16,16 @@
package android.app.people;
import android.annotation.Nullable;
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.content.pm.ShortcutInfo;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.List;
/**
* The non-customized notification channel of a conversation. It contains the information to render
* the conversation and allows the user to open and customize the conversation setting.
@@ -36,6 +40,8 @@ public final class ConversationChannel implements Parcelable {
private NotificationChannelGroup mParentNotificationChannelGroup;
private long mLastEventTimestamp;
private boolean mHasActiveNotifications;
private boolean mHasBirthdayToday;
private List<ConversationStatus> mStatuses;
public static final Creator<ConversationChannel> CREATOR = new Creator<ConversationChannel>() {
@Override
@@ -61,6 +67,21 @@ public final class ConversationChannel implements Parcelable {
mHasActiveNotifications = hasActiveNotifications;
}
public ConversationChannel(ShortcutInfo shortcutInfo, int uid,
NotificationChannel parentNotificationChannel,
NotificationChannelGroup parentNotificationChannelGroup, long lastEventTimestamp,
boolean hasActiveNotifications, boolean hasBirthdayToday,
List<ConversationStatus> statuses) {
mShortcutInfo = shortcutInfo;
mUid = uid;
mParentNotificationChannel = parentNotificationChannel;
mParentNotificationChannelGroup = parentNotificationChannelGroup;
mLastEventTimestamp = lastEventTimestamp;
mHasActiveNotifications = hasActiveNotifications;
mHasBirthdayToday = hasBirthdayToday;
mStatuses = statuses;
}
public ConversationChannel(Parcel in) {
mShortcutInfo = in.readParcelable(ShortcutInfo.class.getClassLoader());
mUid = in.readInt();
@@ -69,6 +90,9 @@ public final class ConversationChannel implements Parcelable {
in.readParcelable(NotificationChannelGroup.class.getClassLoader());
mLastEventTimestamp = in.readLong();
mHasActiveNotifications = in.readBoolean();
mHasBirthdayToday = in.readBoolean();
mStatuses = new ArrayList<>();
in.readParcelableList(mStatuses, ConversationStatus.class.getClassLoader());
}
@Override
@@ -84,6 +108,8 @@ public final class ConversationChannel implements Parcelable {
dest.writeParcelable(mParentNotificationChannelGroup, flags);
dest.writeLong(mLastEventTimestamp);
dest.writeBoolean(mHasActiveNotifications);
dest.writeBoolean(mHasBirthdayToday);
dest.writeParcelableList(mStatuses, flags);
}
public ShortcutInfo getShortcutInfo() {
@@ -113,4 +139,14 @@ public final class ConversationChannel implements Parcelable {
public boolean hasActiveNotifications() {
return mHasActiveNotifications;
}
/** Whether this conversation has a birthday today, as associated in the Contacts Database. */
public boolean hasBirthdayToday() {
return mHasBirthdayToday;
}
/** Returns statuses associated with the conversation. */
public @Nullable List<ConversationStatus> getStatuses() {
return mStatuses;
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020 The Android Open Source Project
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.systemui.people;
package android.app.people;
import android.annotation.NonNull;
import android.app.Person;
@@ -30,6 +30,9 @@ import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.List;
/**
* The People Space tile contains all relevant information to render a tile in People Space: namely
* the data of any visible conversation notification associated, associated statuses, and the last
@@ -45,16 +48,15 @@ public class PeopleSpaceTile implements Parcelable {
private int mUid;
private Uri mContactUri;
private String mPackageName;
private String mStatusText;
private String mBirthdayText;
private long mLastInteractionTimestamp;
private boolean mIsImportantConversation;
private boolean mIsHiddenConversation;
private String mNotificationKey;
// TODO: add mNotificationTimestamp
private CharSequence mNotificationContent;
private Uri mNotificationDataUri;
private Intent mIntent;
// TODO: add a List of the Status objects once created
private long mNotificationTimestamp;
private List<ConversationStatus> mStatuses;
private PeopleSpaceTile(Builder b) {
mId = b.mId;
@@ -63,14 +65,15 @@ public class PeopleSpaceTile implements Parcelable {
mContactUri = b.mContactUri;
mUid = b.mUid;
mPackageName = b.mPackageName;
mStatusText = b.mStatusText;
mBirthdayText = b.mBirthdayText;
mLastInteractionTimestamp = b.mLastInteractionTimestamp;
mIsImportantConversation = b.mIsImportantConversation;
mIsHiddenConversation = b.mIsHiddenConversation;
mNotificationKey = b.mNotificationKey;
mNotificationContent = b.mNotificationContent;
mNotificationDataUri = b.mNotificationDataUri;
mIntent = b.mIntent;
mNotificationTimestamp = b.mNotificationTimestamp;
mStatuses = b.mStatuses;
}
public String getId() {
@@ -98,8 +101,8 @@ public class PeopleSpaceTile implements Parcelable {
return mPackageName;
}
public String getStatusText() {
return mStatusText;
public String getBirthdayText() {
return mBirthdayText;
}
/** Returns the timestamp of the last interaction. */
@@ -114,13 +117,6 @@ public class PeopleSpaceTile implements Parcelable {
return mIsImportantConversation;
}
/**
* Whether the conversation should be hidden.
*/
public boolean isHiddenConversation() {
return mIsHiddenConversation;
}
/**
* If a notification is currently active that maps to the relevant shortcut ID, provides the
* associated notification's key.
@@ -148,20 +144,32 @@ public class PeopleSpaceTile implements Parcelable {
return mIntent;
}
/** Returns the timestamp of the last notification. */
public long getNotificationTimestamp() {
return mNotificationTimestamp;
}
/** Returns the statuses associated with the tile. */
public List<ConversationStatus> getStatuses() {
return mStatuses;
}
/** Converts a {@link PeopleSpaceTile} into a {@link PeopleSpaceTile.Builder}. */
public PeopleSpaceTile.Builder toBuilder() {
PeopleSpaceTile.Builder builder =
new PeopleSpaceTile.Builder(mId, mUserName.toString(), mUserIcon, mIntent);
public Builder toBuilder() {
Builder builder =
new Builder(mId, mUserName.toString(), mUserIcon, mIntent);
builder.setContactUri(mContactUri);
builder.setUid(mUid);
builder.setPackageName(mPackageName);
builder.setStatusText(mStatusText);
builder.setBirthdayText(mBirthdayText);
builder.setLastInteractionTimestamp(mLastInteractionTimestamp);
builder.setIsImportantConversation(mIsImportantConversation);
builder.setIsHiddenConversation(mIsHiddenConversation);
builder.setNotificationKey(mNotificationKey);
builder.setNotificationContent(mNotificationContent);
builder.setNotificationDataUri(mNotificationDataUri);
builder.setIntent(mIntent);
builder.setNotificationTimestamp(mNotificationTimestamp);
builder.setStatuses(mStatuses);
return builder;
}
@@ -173,14 +181,15 @@ public class PeopleSpaceTile implements Parcelable {
private Uri mContactUri;
private int mUid;
private String mPackageName;
private String mStatusText;
private String mBirthdayText;
private long mLastInteractionTimestamp;
private boolean mIsImportantConversation;
private boolean mIsHiddenConversation;
private String mNotificationKey;
private CharSequence mNotificationContent;
private Uri mNotificationDataUri;
private Intent mIntent;
private long mNotificationTimestamp;
private List<ConversationStatus> mStatuses;
/** Builder for use only if a shortcut is not available for the tile. */
public Builder(String id, String userName, Icon userIcon, Intent intent) {
@@ -200,7 +209,22 @@ public class PeopleSpaceTile implements Parcelable {
mContactUri = getContactUri(info);
}
private Uri getContactUri(ShortcutInfo info) {
public Builder(ConversationChannel channel, LauncherApps launcherApps) {
ShortcutInfo info = channel.getShortcutInfo();
mId = info.getId();
mUserName = info.getLabel();
mUserIcon = convertDrawableToIcon(launcherApps.getShortcutIconDrawable(info, 0));
mUid = info.getUserId();
mPackageName = info.getPackage();
mContactUri = getContactUri(info);
mStatuses = channel.getStatuses();
mLastInteractionTimestamp = channel.getLastEventTimestamp();
mIsImportantConversation = channel.getParentNotificationChannel() != null
&& channel.getParentNotificationChannel().isImportantConversation();
}
/** Returns the Contact's Uri if present. */
public Uri getContactUri(ShortcutInfo info) {
if (info.getPersons() == null || info.getPersons().length != 1) {
return null;
}
@@ -246,8 +270,8 @@ public class PeopleSpaceTile implements Parcelable {
}
/** Sets the status text. */
public Builder setStatusText(String statusText) {
mStatusText = statusText;
public Builder setBirthdayText(String birthdayText) {
mBirthdayText = birthdayText;
return this;
}
@@ -263,12 +287,6 @@ public class PeopleSpaceTile implements Parcelable {
return this;
}
/** Sets whether the conversation is hidden. */
public Builder setIsHiddenConversation(boolean isHiddenConversation) {
mIsHiddenConversation = isHiddenConversation;
return this;
}
/** Sets the associated notification's key. */
public Builder setNotificationKey(String notificationKey) {
mNotificationKey = notificationKey;
@@ -293,6 +311,18 @@ public class PeopleSpaceTile implements Parcelable {
return this;
}
/** Sets the notification timestamp. */
public Builder setNotificationTimestamp(long notificationTimestamp) {
mNotificationTimestamp = notificationTimestamp;
return this;
}
/** Sets the statuses. */
public Builder setStatuses(List<ConversationStatus> statuses) {
mStatuses = statuses;
return this;
}
/** Builds a {@link PeopleSpaceTile}. */
@NonNull
public PeopleSpaceTile build() {
@@ -300,21 +330,23 @@ public class PeopleSpaceTile implements Parcelable {
}
}
private PeopleSpaceTile(Parcel in) {
public PeopleSpaceTile(Parcel in) {
mId = in.readString();
mUserName = in.readCharSequence();
mUserIcon = in.readParcelable(Icon.class.getClassLoader());
mContactUri = in.readParcelable(Uri.class.getClassLoader());
mUid = in.readInt();
mPackageName = in.readString();
mStatusText = in.readString();
mBirthdayText = in.readString();
mLastInteractionTimestamp = in.readLong();
mIsImportantConversation = in.readBoolean();
mIsHiddenConversation = in.readBoolean();
mNotificationKey = in.readString();
mNotificationContent = in.readCharSequence();
mNotificationDataUri = in.readParcelable(Uri.class.getClassLoader());
mIntent = in.readParcelable(Intent.class.getClassLoader());
mNotificationTimestamp = in.readLong();
mStatuses = new ArrayList<>();
in.readParcelableList(mStatuses, ConversationStatus.class.getClassLoader());
}
@Override
@@ -330,14 +362,15 @@ public class PeopleSpaceTile implements Parcelable {
dest.writeParcelable(mContactUri, flags);
dest.writeInt(mUid);
dest.writeString(mPackageName);
dest.writeString(mStatusText);
dest.writeString(mBirthdayText);
dest.writeLong(mLastInteractionTimestamp);
dest.writeBoolean(mIsImportantConversation);
dest.writeBoolean(mIsHiddenConversation);
dest.writeString(mNotificationKey);
dest.writeCharSequence(mNotificationContent);
dest.writeParcelable(mNotificationDataUri, flags);
dest.writeParcelable(mIntent, flags);
dest.writeLong(mNotificationTimestamp);
dest.writeParcelableList(mStatuses, flags);
}
public static final @android.annotation.NonNull

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.systemui.people;
package android.app.people;
import static com.google.common.truth.Truth.assertThat;
@@ -25,6 +25,8 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.LauncherApps;
@@ -34,13 +36,13 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Parcel;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.people.PeopleSpaceTile;
import com.google.common.collect.ImmutableList;
import org.junit.Before;
import org.junit.Test;
@@ -48,10 +50,13 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.List;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class PeopleSpaceTileTest extends SysuiTestCase {
public class PeopleSpaceTileTest {
private Context mContext;
private final Drawable mDrawable = new ColorDrawable(Color.BLUE);
private final Icon mIcon = PeopleSpaceTile.convertDrawableToIcon(mDrawable);
@@ -60,6 +65,7 @@ public class PeopleSpaceTileTest extends SysuiTestCase {
@Before
public void setUp() {
mContext = InstrumentationRegistry.getContext();
MockitoAnnotations.initMocks(this);
when(mLauncherApps.getShortcutIconDrawable(any(), eq(0))).thenReturn(mDrawable);
}
@@ -132,7 +138,7 @@ public class PeopleSpaceTileTest extends SysuiTestCase {
PeopleSpaceTile tile = new PeopleSpaceTile.Builder(
new ShortcutInfo.Builder(mContext, "123").build(), mLauncherApps).build();
// Automatically added by creating a ShortcutInfo.
assertThat(tile.getPackageName()).isEqualTo("com.android.systemui.tests");
assertThat(tile.getPackageName()).isEqualTo("com.android.frameworks.coretests");
tile = new PeopleSpaceTile.Builder(
new ShortcutInfo.Builder(mContext, "123").build(), mLauncherApps).setPackageName(
@@ -171,16 +177,85 @@ public class PeopleSpaceTileTest extends SysuiTestCase {
}
@Test
public void testHiddenConversation() {
public void testStatuses() {
PeopleSpaceTile tile = new PeopleSpaceTile.Builder(
new ShortcutInfo.Builder(mContext, "123").build(), mLauncherApps).build();
assertFalse(tile.isHiddenConversation());
assertThat(tile.getStatuses()).isNull();
List<ConversationStatus> statusList = ImmutableList.of(
new ConversationStatus.Builder("id", ConversationStatus.ACTIVITY_BIRTHDAY).build());
tile = new PeopleSpaceTile
.Builder(new ShortcutInfo.Builder(mContext, "123").build(), mLauncherApps)
.setIsHiddenConversation(true)
.setStatuses(statusList)
.build();
assertTrue(tile.isHiddenConversation());
assertThat(tile.getStatuses()).isEqualTo(statusList);
}
@Test
public void testCreateFromConversationChannel() {
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext, "123").setLongLabel(
"name").build();
ConversationChannel convo = new ConversationChannel(shortcutInfo, 0, null, null,
0L, false, true, null);
PeopleSpaceTile tile = new PeopleSpaceTile.Builder(convo, mLauncherApps).build();
assertThat(tile.getStatuses()).isNull();
assertThat(tile.getId()).isEqualTo("123");
assertThat(tile.getUserName()).isEqualTo("name");
assertFalse(tile.isImportantConversation());
assertThat(tile.getLastInteractionTimestamp()).isEqualTo(0L);
List<ConversationStatus> statuses = ImmutableList.of(
new ConversationStatus.Builder("id", ConversationStatus.ACTIVITY_BIRTHDAY).build());
NotificationChannel notificationChannel = new NotificationChannel("123",
"channel",
NotificationManager.IMPORTANCE_DEFAULT);
notificationChannel.setImportantConversation(true);
convo = new ConversationChannel(shortcutInfo, 0, notificationChannel, null,
123L, false, true, statuses);
tile = new PeopleSpaceTile.Builder(convo, mLauncherApps).build();
assertThat(tile.getStatuses()).isEqualTo(statuses);
assertTrue(tile.isImportantConversation());
assertThat(tile.getLastInteractionTimestamp()).isEqualTo(123L);
}
@Test
public void testWriteThenReadFromParcel() {
List<ConversationStatus> statusList = ImmutableList.of(
new ConversationStatus.Builder("id", ConversationStatus.ACTIVITY_BIRTHDAY).build());
PeopleSpaceTile tile = new PeopleSpaceTile.Builder(
new ShortcutInfo.Builder(mContext, "123").build(), mLauncherApps)
.setUserName("name")
.setUserIcon(mIcon)
.setContactUri(Uri.parse("contact"))
.setUid(42)
.setPackageName("package.name")
.setLastInteractionTimestamp(7L)
.setIsImportantConversation(true)
.setStatuses(statusList).setNotificationKey("key")
.setNotificationContent("content")
.setNotificationDataUri(Uri.parse("data"))
.setIntent(new Intent())
.build();
Parcel parcel = Parcel.obtain();
tile.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
PeopleSpaceTile readTile = PeopleSpaceTile.CREATOR.createFromParcel(parcel);
assertThat(readTile.getId()).isEqualTo(tile.getId());
assertThat(readTile.getUserName()).isEqualTo(tile.getUserName());
assertThat(readTile.getUserIcon().toString()).isEqualTo(tile.getUserIcon().toString());
assertThat(readTile.getContactUri()).isEqualTo(tile.getContactUri());
assertThat(readTile.getUid()).isEqualTo(tile.getUid());
assertThat(readTile.getPackageName()).isEqualTo(tile.getPackageName());
assertThat(readTile.getLastInteractionTimestamp()).isEqualTo(
tile.getLastInteractionTimestamp());
assertThat(readTile.isImportantConversation()).isEqualTo(tile.isImportantConversation());
assertThat(readTile.getStatuses()).isEqualTo(tile.getStatuses());
assertThat(readTile.getNotificationKey()).isEqualTo(tile.getNotificationKey());
assertThat(readTile.getNotificationContent()).isEqualTo(tile.getNotificationContent());
assertThat(readTile.getNotificationDataUri()).isEqualTo(tile.getNotificationDataUri());
assertThat(readTile.getIntent().toString()).isEqualTo(tile.getIntent().toString());
}
@Test
@@ -208,8 +283,8 @@ public class PeopleSpaceTileTest extends SysuiTestCase {
PeopleSpaceTile tile =
new PeopleSpaceTile.Builder(new ShortcutInfo.Builder(mContext, "123").build(),
mLauncherApps)
.setNotificationDataUri(Uri.parse("test"))
.build();
.setNotificationDataUri(Uri.parse("test"))
.build();
assertThat(tile.getNotificationDataUri()).isEqualTo(Uri.parse("test"));
}

View File

@@ -22,6 +22,7 @@ import static android.appwidget.AppWidgetManager.INVALID_APPWIDGET_ID;
import android.app.Activity;
import android.app.INotificationManager;
import android.app.people.IPeopleManager;
import android.app.people.PeopleSpaceTile;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
@@ -134,8 +135,10 @@ public class PeopleSpaceActivity extends Activity {
+ tile.getId() + " for widget ID: "
+ mAppWidgetId);
}
// Ensure updates to app widget can be retrieved from both appWidget Id and tile ID.
editor.putString(String.valueOf(mAppWidgetId), tile.getId());
editor.commit();
editor.putInt(tile.getId(), mAppWidgetId);
editor.apply();
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(mContext);
Bundle options = new Bundle();
options.putParcelable(PeopleSpaceUtils.OPTIONS_PEOPLE_SPACE_TILE, tile);

View File

@@ -16,6 +16,7 @@
package com.android.systemui.people;
import android.app.people.PeopleSpaceTile;
import android.content.Context;
import android.content.pm.LauncherApps;
import android.graphics.drawable.Drawable;

View File

@@ -23,6 +23,7 @@ import android.app.Notification;
import android.app.PendingIntent;
import android.app.people.ConversationChannel;
import android.app.people.IPeopleManager;
import android.app.people.PeopleSpaceTile;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.Intent;
@@ -221,7 +222,7 @@ public class PeopleSpaceUtils {
return tile;
}
return tile.toBuilder()
.setStatusText(storedTile.getStatusText())
.setBirthdayText(storedTile.getBirthdayText())
.setNotificationKey(storedTile.getNotificationKey())
.setNotificationContent(storedTile.getNotificationContent())
.setNotificationDataUri(storedTile.getNotificationDataUri())
@@ -234,6 +235,10 @@ public class PeopleSpaceUtils {
int appWidgetId) {
Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId);
PeopleSpaceTile storedTile = options.getParcelable(OPTIONS_PEOPLE_SPACE_TILE);
if (storedTile == null) {
if (DEBUG) Log.d(TAG, "Could not find stored tile to add notification to");
return;
}
if (notificationAction == PeopleSpaceUtils.NotificationAction.POSTED) {
if (DEBUG) Log.i(TAG, "Adding notification to storage, appWidgetId: " + appWidgetId);
Notification.MessagingStyle.Message message = getLastMessagingStyleMessage(sbn);
@@ -263,6 +268,10 @@ public class PeopleSpaceUtils {
private static void updateAppWidgetOptions(AppWidgetManager appWidgetManager, int appWidgetId,
PeopleSpaceTile tile) {
if (tile == null) {
if (DEBUG) Log.d(TAG, "Requested to store null tile");
return;
}
Bundle newOptions = new Bundle();
newOptions.putParcelable(OPTIONS_PEOPLE_SPACE_TILE, tile);
appWidgetManager.updateAppWidgetOptions(appWidgetId, newOptions);
@@ -274,7 +283,7 @@ public class PeopleSpaceUtils {
RemoteViews views;
if (tile.getNotificationKey() != null) {
views = createNotificationRemoteViews(context, tile);
} else if (tile.getStatusText() != null) {
} else if (tile.getBirthdayText() != null) {
views = createStatusRemoteViews(context, tile);
} else {
views = createLastInteractionRemoteViews(context, tile);
@@ -344,7 +353,7 @@ public class PeopleSpaceUtils {
PeopleSpaceTile tile) {
RemoteViews views = new RemoteViews(
context.getPackageName(), R.layout.people_space_large_avatar_tile);
views.setTextViewText(R.id.status, tile.getStatusText());
views.setTextViewText(R.id.status, tile.getBirthdayText());
return views;
}
@@ -536,11 +545,10 @@ public class PeopleSpaceUtils {
}
private static boolean hasBirthdayStatus(PeopleSpaceTile tile, Context context) {
return tile.getStatusText() != null && tile.getStatusText().equals(
return tile.getBirthdayText() != null && tile.getBirthdayText().equals(
context.getString(R.string.birthday_status));
}
/** Calls to retrieve birthdays on a background thread. */
private static void getBirthdaysOnBackgroundThread(Context context,
AppWidgetManager appWidgetManager,
@@ -581,7 +589,7 @@ public class PeopleSpaceUtils {
if (DEBUG) Log.d(TAG, "Remove " + storedTile.getUserName() + "'s birthday");
updateAppWidgetOptionsAndView(appWidgetManager, context, appWidgetId,
storedTile.toBuilder()
.setStatusText(null)
.setBirthdayText(null)
.build());
}
}
@@ -605,7 +613,7 @@ public class PeopleSpaceUtils {
if (DEBUG) Log.d(TAG, storedTile.getUserName() + "'s birthday today!");
updateAppWidgetOptionsAndView(appWidgetManager, context, appWidgetId,
storedTile.toBuilder()
.setStatusText(context.getString(R.string.birthday_status))
.setBirthdayText(context.getString(R.string.birthday_status))
.build());
return;
}

View File

@@ -18,7 +18,7 @@ package com.android.systemui.people.widget;
import android.app.INotificationManager;
import android.app.people.IPeopleManager;
import com.android.systemui.people.PeopleSpaceTile;
import android.app.people.PeopleSpaceTile;
import android.content.Context;
import android.content.Intent;
import android.content.pm.LauncherApps;

View File

@@ -39,6 +39,7 @@ import android.app.NotificationManager;
import android.app.Person;
import android.app.people.ConversationChannel;
import android.app.people.IPeopleManager;
import android.app.people.PeopleSpaceTile;
import android.appwidget.AppWidgetManager;
import android.content.ContentResolver;
import android.content.Context;
@@ -55,10 +56,9 @@ import android.provider.ContactsContract;
import android.provider.Settings;
import android.service.notification.ConversationChannelWrapper;
import android.service.notification.StatusBarNotification;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
import androidx.test.filters.SmallTest;
import com.android.internal.appwidget.IAppWidgetService;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
@@ -419,7 +419,7 @@ public class PeopleSpaceUtilsTest extends SysuiTestCase {
// Existing tile has a birthday status.
Map<Integer, PeopleSpaceTile> widgetIdToTile = Map.of(WIDGET_ID_WITH_SHORTCUT,
new PeopleSpaceTile.Builder(mShortcutInfoWithoutPerson,
mContext.getSystemService(LauncherApps.class)).setStatusText(
mContext.getSystemService(LauncherApps.class)).setBirthdayText(
mContext.getString(R.string.birthday_status)).build());
PeopleSpaceUtils.getBirthdays(mMockContext, mAppWidgetManager,
widgetIdToTile, widgetIdsArray);
@@ -454,7 +454,7 @@ public class PeopleSpaceUtilsTest extends SysuiTestCase {
// Existing tile has a birthday status.
Map<Integer, PeopleSpaceTile> widgetIdToTile = Map.of(WIDGET_ID_WITH_SHORTCUT,
new PeopleSpaceTile.Builder(mShortcutInfo,
mContext.getSystemService(LauncherApps.class)).setStatusText(
mContext.getSystemService(LauncherApps.class)).setBirthdayText(
mContext.getString(R.string.birthday_status)).build());
PeopleSpaceUtils.getBirthdays(mMockContext, mAppWidgetManager,
widgetIdToTile, widgetIdsArray);
@@ -474,7 +474,7 @@ public class PeopleSpaceUtilsTest extends SysuiTestCase {
// Existing tile has a birthday status.
Map<Integer, PeopleSpaceTile> widgetIdToTile = Map.of(WIDGET_ID_WITH_SHORTCUT,
new PeopleSpaceTile.Builder(mShortcutInfo,
mContext.getSystemService(LauncherApps.class)).setStatusText(
mContext.getSystemService(LauncherApps.class)).setBirthdayText(
mContext.getString(R.string.birthday_status)).build());
PeopleSpaceUtils.getBirthdays(mMockContext, mAppWidgetManager,
widgetIdToTile, widgetIdsArray);

View File

@@ -35,6 +35,7 @@ import android.app.INotificationManager;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.Person;
import android.app.people.PeopleSpaceTile;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -57,7 +58,6 @@ import androidx.test.filters.SmallTest;
import com.android.internal.appwidget.IAppWidgetService;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.people.PeopleSpaceTile;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationListener.NotificationHandler;
import com.android.systemui.statusbar.SbnBuilder;