summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java69
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java207
3 files changed, 134 insertions, 150 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java b/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
index 4a8775fc5bb4..89b61a3a8dbe 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
@@ -29,6 +29,7 @@ import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT;
import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH;
import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT;
import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH;
+import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_SIZES;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
import static android.util.TypedValue.COMPLEX_UNIT_PX;
@@ -43,7 +44,6 @@ import android.app.people.ConversationStatus;
import android.app.people.PeopleSpaceTile;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
@@ -59,6 +59,7 @@ import android.text.TextUtils;
import android.util.IconDrawableFactory;
import android.util.Log;
import android.util.Pair;
+import android.util.SizeF;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
@@ -85,8 +86,10 @@ import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.Objects;
import java.util.Optional;
+import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -173,28 +176,64 @@ public class PeopleTileViewHelper {
private Locale mLocale;
private NumberFormat mIntegerFormat;
- public PeopleTileViewHelper(Context context, @Nullable PeopleSpaceTile tile,
- int appWidgetId, Bundle options, PeopleTileKey key) {
+ PeopleTileViewHelper(Context context, @Nullable PeopleSpaceTile tile,
+ int appWidgetId, int width, int height, PeopleTileKey key) {
mContext = context;
mTile = tile;
mKey = key;
mAppWidgetId = appWidgetId;
mDensity = mContext.getResources().getDisplayMetrics().density;
- int display = mContext.getResources().getConfiguration().orientation;
- mWidth = display == Configuration.ORIENTATION_PORTRAIT
- ? options.getInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.default_width)) : options.getInt(
- OPTION_APPWIDGET_MAX_WIDTH,
- getSizeInDp(R.dimen.default_width));
- mHeight = display == Configuration.ORIENTATION_PORTRAIT ? options.getInt(
- OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.default_height))
- : options.getInt(OPTION_APPWIDGET_MIN_HEIGHT,
- getSizeInDp(R.dimen.default_height));
+ mWidth = width;
+ mHeight = height;
mLayoutSize = getLayoutSize();
}
- public RemoteViews getViews() {
+ /**
+ * Creates a {@link RemoteViews} for the specified arguments. The RemoteViews will support all
+ * the sizes present in {@code options.}.
+ */
+ public static RemoteViews createRemoteViews(Context context, @Nullable PeopleSpaceTile tile,
+ int appWidgetId, Bundle options, PeopleTileKey key) {
+ List<SizeF> widgetSizes = getWidgetSizes(context, options);
+ Map<SizeF, RemoteViews> sizeToRemoteView =
+ widgetSizes
+ .stream()
+ .distinct()
+ .collect(Collectors.toMap(
+ Function.identity(),
+ size -> new PeopleTileViewHelper(
+ context, tile, appWidgetId,
+ (int) size.getWidth(),
+ (int) size.getHeight(),
+ key)
+ .getViews()));
+ return new RemoteViews(sizeToRemoteView);
+ }
+
+ private static List<SizeF> getWidgetSizes(Context context, Bundle options) {
+ float density = context.getResources().getDisplayMetrics().density;
+ List<SizeF> widgetSizes = options.getParcelableArrayList(OPTION_APPWIDGET_SIZES);
+ // If the full list of sizes was provided in the options bundle, use that.
+ if (widgetSizes != null && !widgetSizes.isEmpty()) return widgetSizes;
+
+ // Otherwise, create a list using the portrait/landscape sizes.
+ int defaultWidth = getSizeInDp(context, R.dimen.default_width, density);
+ int defaultHeight = getSizeInDp(context, R.dimen.default_height, density);
+ widgetSizes = new ArrayList<>(2);
+
+ int portraitWidth = options.getInt(OPTION_APPWIDGET_MIN_WIDTH, defaultWidth);
+ int portraitHeight = options.getInt(OPTION_APPWIDGET_MAX_HEIGHT, defaultHeight);
+ widgetSizes.add(new SizeF(portraitWidth, portraitHeight));
+
+ int landscapeWidth = options.getInt(OPTION_APPWIDGET_MAX_WIDTH, defaultWidth);
+ int landscapeHeight = options.getInt(OPTION_APPWIDGET_MIN_HEIGHT, defaultHeight);
+ widgetSizes.add(new SizeF(landscapeWidth, landscapeHeight));
+
+ return widgetSizes;
+ }
+
+ @VisibleForTesting
+ RemoteViews getViews() {
RemoteViews viewsForTile = getViewForTile();
int maxAvatarSize = getMaxAvatarSize(viewsForTile);
RemoteViews views = setCommonRemoteViewsFields(viewsForTile, maxAvatarSize);
diff --git a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
index 4085df9a8093..62a0df270698 100644
--- a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
+++ b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
@@ -297,8 +297,8 @@ public class PeopleSpaceWidgetManager {
Log.e(TAG, "Cannot update invalid widget");
return;
}
- RemoteViews views = new PeopleTileViewHelper(mContext, tile, appWidgetId,
- options, key).getViews();
+ RemoteViews views = PeopleTileViewHelper.createRemoteViews(mContext, tile, appWidgetId,
+ options, key);
// Tell the AppWidgetManager to perform an update on the current app widget.
mAppWidgetManager.updateAppWidget(appWidgetId, views);
@@ -1031,8 +1031,8 @@ public class PeopleSpaceWidgetManager {
Optional.empty());
if (DEBUG) Log.i(TAG, "Returning tile preview for shortcutId: " + shortcutId);
- return new PeopleTileViewHelper(mContext, augmentedTile, 0, options,
- new PeopleTileKey(augmentedTile)).getViews();
+ return PeopleTileViewHelper.createRemoteViews(mContext, augmentedTile, 0, options,
+ new PeopleTileKey(augmentedTile));
}
protected final BroadcastReceiver mBaseBroadcastReceiver = new BroadcastReceiver() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java
index 75ae9cbdee44..e4e8cf0b0802 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java
@@ -26,8 +26,6 @@ import static android.app.people.PeopleSpaceTile.BLOCK_CONVERSATIONS;
import static android.app.people.PeopleSpaceTile.SHOW_CONTACTS;
import static android.app.people.PeopleSpaceTile.SHOW_IMPORTANT_CONVERSATIONS;
import static android.app.people.PeopleSpaceTile.SHOW_STARRED_CONTACTS;
-import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT;
-import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH;
import static com.android.systemui.people.PeopleSpaceUtils.STARRED_CONTACT;
import static com.android.systemui.people.PeopleSpaceUtils.VALID_CONTACT;
@@ -48,7 +46,6 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Icon;
import android.net.Uri;
-import android.os.Bundle;
import android.os.UserHandle;
import android.testing.AndroidTestingRunner;
import android.util.DisplayMetrics;
@@ -136,15 +133,14 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
@Mock
private PackageManager mPackageManager;
- private Bundle mOptions;
+ private int mWidth;
+ private int mHeight;
private PeopleTileViewHelper mPeopleTileViewHelper;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mOptions = new Bundle();
-
when(mMockContext.getString(R.string.birthday_status)).thenReturn(
mContext.getString(R.string.birthday_status));
when(mMockContext.getPackageManager()).thenReturn(mPackageManager);
@@ -159,25 +155,24 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
TextView textView = mock(TextView.class);
when(textView.getLineHeight()).thenReturn(16);
when(mPackageManager.getApplicationIcon(anyString())).thenReturn(null);
- mPeopleTileViewHelper = getPeopleTileViewHelper(
- PERSON_TILE, mOptions);
+
+ mWidth = getSizeInDp(R.dimen.default_width);
+ mHeight = getSizeInDp(R.dimen.default_height);
+ mPeopleTileViewHelper = getPeopleTileViewHelper(PERSON_TILE);
}
@Test
public void testCreateRemoteViewsWithLastInteractionTimeUnderOneDayHidden() {
- RemoteViews views = getPeopleTileViewHelper(
- PERSON_TILE_WITHOUT_NOTIFICATION, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(PERSON_TILE_WITHOUT_NOTIFICATION).getViews();
View result = views.apply(mContext, null);
// Not showing last interaction.
assertEquals(View.GONE, result.findViewById(R.id.last_interaction).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
RemoteViews largeView = getPeopleTileViewHelper(
- PERSON_TILE_WITHOUT_NOTIFICATION, mOptions).getViews();
+ PERSON_TILE_WITHOUT_NOTIFICATION).getViews();
View largeResult = largeView.apply(mContext, null);
// Not showing last interaction.
@@ -213,8 +208,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
PeopleSpaceTile tileWithLastInteraction =
PERSON_TILE_WITHOUT_NOTIFICATION.toBuilder().setLastInteractionTimestamp(
123445L).build();
- RemoteViews views = getPeopleTileViewHelper(
- tileWithLastInteraction, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tileWithLastInteraction).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -230,10 +224,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// No status.
assertThat((View) result.findViewById(R.id.text_content)).isNull();
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
- RemoteViews smallView = getPeopleTileViewHelper(
- tileWithLastInteraction, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
+ RemoteViews smallView = getPeopleTileViewHelper(tileWithLastInteraction).getViews();
View smallResult = smallView.apply(mContext, null);
// Show name over predefined icon.
@@ -245,12 +237,10 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
RemoteViews largeView = getPeopleTileViewHelper(
- tileWithLastInteraction, mOptions).getViews();
+ tileWithLastInteraction).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -275,8 +265,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
new ConversationStatus.Builder(
PERSON_TILE_WITHOUT_NOTIFICATION.getId(),
ACTIVITY_GAME).build())).build();
- RemoteViews views = getPeopleTileViewHelper(
- tileWithAvailabilityAndNewStory, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tileWithAvailabilityAndNewStory).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -290,10 +279,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// No status.
assertThat((View) result.findViewById(R.id.text_content)).isNull();
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
- RemoteViews smallView = getPeopleTileViewHelper(
- tileWithAvailabilityAndNewStory, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
+ RemoteViews smallView = getPeopleTileViewHelper(tileWithAvailabilityAndNewStory).getViews();
View smallResult = smallView.apply(mContext, null);
// Show name rather than game type.
@@ -305,12 +292,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
- RemoteViews largeView = getPeopleTileViewHelper(
- tileWithAvailabilityAndNewStory, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
+ RemoteViews largeView = getPeopleTileViewHelper(tileWithAvailabilityAndNewStory).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -333,8 +317,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
NEW_STORY_WITH_AVAILABILITY, new ConversationStatus.Builder(
PERSON_TILE_WITHOUT_NOTIFICATION.getId(),
ACTIVITY_BIRTHDAY).build())).build();
- RemoteViews views = getPeopleTileViewHelper(
- tileWithStatusTemplate, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tileWithStatusTemplate).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -351,10 +334,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertEquals(statusContent.getText(), mContext.getString(R.string.birthday_status));
assertThat(statusContent.getMaxLines()).isEqualTo(2);
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
- RemoteViews smallView = getPeopleTileViewHelper(
- tileWithStatusTemplate, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
+ RemoteViews smallView = getPeopleTileViewHelper(tileWithStatusTemplate).getViews();
View smallResult = smallView.apply(mContext, null);
// Show icon instead of name.
@@ -367,12 +348,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
- RemoteViews largeView = getPeopleTileViewHelper(
- tileWithStatusTemplate, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
+ RemoteViews largeView = getPeopleTileViewHelper(tileWithStatusTemplate).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -397,8 +375,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
PERSON_TILE_WITHOUT_NOTIFICATION.toBuilder().setStatuses(
Arrays.asList(GAME_STATUS,
NEW_STORY_WITH_AVAILABILITY)).build();
- RemoteViews views = getPeopleTileViewHelper(
- tileWithStatusTemplate, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tileWithStatusTemplate).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -416,10 +393,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertEquals(statusContent.getText(), GAME_DESCRIPTION);
assertThat(statusContent.getMaxLines()).isEqualTo(2);
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
- RemoteViews smallView = getPeopleTileViewHelper(
- tileWithStatusTemplate, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
+ RemoteViews smallView = getPeopleTileViewHelper(tileWithStatusTemplate).getViews();
View smallResult = smallView.apply(mContext, null);
// Show icon instead of name.
@@ -432,12 +407,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
- RemoteViews largeView = getPeopleTileViewHelper(
- tileWithStatusTemplate, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
+ RemoteViews largeView = getPeopleTileViewHelper(tileWithStatusTemplate).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -466,7 +438,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
ACTIVITY_ANNIVERSARY).setDescription("Anniversary").setAvailability(
AVAILABILITY_AVAILABLE).setIcon(mIcon).build())).build();
RemoteViews views = getPeopleTileViewHelper(
- tileWithIconInStatusTemplate, mOptions).getViews();
+ tileWithIconInStatusTemplate).getViews();
View result = views.apply(mContext, null);
assertEquals(View.GONE, result.findViewById(R.id.subtext).getVisibility());
@@ -482,12 +454,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertEquals(statusContent.getText(), "Anniversary");
assertThat(statusContent.getMaxLines()).isEqualTo(1);
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
- RemoteViews largeView = getPeopleTileViewHelper(
- tileWithIconInStatusTemplate, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
+ RemoteViews largeView = getPeopleTileViewHelper(tileWithIconInStatusTemplate).getViews();
View largeResult = largeView.apply(mContext, null);
assertEquals(View.GONE, largeResult.findViewById(R.id.subtext).getVisibility());
@@ -512,8 +481,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
PeopleSpaceTile tile = PERSON_TILE.toBuilder()
.setIsPackageSuspended(true)
.build();
- RemoteViews views = getPeopleTileViewHelper(
- tile, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tile).getViews();
View result = views.apply(mContext, null);
assertEquals(result.getSourceLayoutResId(), R.layout.people_tile_suppressed_layout);
@@ -524,8 +492,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
PeopleSpaceTile tile = PERSON_TILE.toBuilder()
.setIsUserQuieted(true)
.build();
- RemoteViews views = getPeopleTileViewHelper(
- tile, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tile).getViews();
View result = views.apply(mContext, null);
assertEquals(result.getSourceLayoutResId(), R.layout.people_tile_work_profile_quiet_layout);
@@ -536,8 +503,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
PeopleSpaceTile tileWithDndBlocking = PERSON_TILE.toBuilder()
.setNotificationPolicyState(BLOCK_CONVERSATIONS)
.build();
- RemoteViews views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
View result = views.apply(mContext, null);
assertResourcesEqual(
@@ -548,8 +514,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationPolicyState(BLOCK_CONVERSATIONS)
.setCanBypassDnd(true)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesNotEqual(
@@ -559,8 +524,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
tileWithDndBlocking = PERSON_TILE.toBuilder()
.setNotificationPolicyState(SHOW_IMPORTANT_CONVERSATIONS)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesEqual(
@@ -571,8 +535,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationPolicyState(SHOW_IMPORTANT_CONVERSATIONS)
.setIsImportantConversation(true)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesNotEqual(
@@ -583,8 +546,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationPolicyState(SHOW_STARRED_CONTACTS)
.setContactAffinity(VALID_CONTACT)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesEqual(
@@ -595,8 +557,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationPolicyState(SHOW_STARRED_CONTACTS)
.setContactAffinity(STARRED_CONTACT)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesNotEqual(
@@ -607,8 +568,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationPolicyState(SHOW_CONTACTS)
.setContactAffinity(STARRED_CONTACT)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesNotEqual(
@@ -619,8 +579,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationPolicyState(SHOW_CONTACTS)
.setContactAffinity(VALID_CONTACT)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesNotEqual(
@@ -630,8 +589,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
tileWithDndBlocking = PERSON_TILE.toBuilder()
.setNotificationPolicyState(SHOW_CONTACTS)
.build();
- views = getPeopleTileViewHelper(
- tileWithDndBlocking, mOptions).getViews();
+ views = getPeopleTileViewHelper(tileWithDndBlocking).getViews();
result = views.apply(mContext, null);
assertResourcesEqual(
@@ -648,8 +606,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setNotificationCategory(CATEGORY_MISSED_CALL)
.setNotificationContent(MISSED_CALL)
.build();
- RemoteViews views = getPeopleTileViewHelper(
- tileWithMissedCallNotification, mOptions).getViews();
+ RemoteViews views = getPeopleTileViewHelper(tileWithMissedCallNotification).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -666,10 +623,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertEquals(statusContent.getText(), MISSED_CALL);
assertThat(statusContent.getMaxLines()).isEqualTo(2);
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
RemoteViews smallView = getPeopleTileViewHelper(
- tileWithMissedCallNotification, mOptions).getViews();
+ tileWithMissedCallNotification).getViews();
View smallResult = smallView.apply(mContext, null);
// Show icon instead of name.
@@ -681,12 +637,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
- RemoteViews largeView = getPeopleTileViewHelper(
- tileWithMissedCallNotification, mOptions).getViews();
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
+ RemoteViews largeView = getPeopleTileViewHelper(tileWithMissedCallNotification).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -712,7 +665,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setStatuses(Arrays.asList(GAME_STATUS,
NEW_STORY_WITH_AVAILABILITY)).build();
RemoteViews views = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -733,10 +686,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has a single message, no count shown.
assertEquals(View.GONE, result.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
RemoteViews smallView = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View smallResult = smallView.apply(mContext, null);
// Show icon instead of name.
@@ -750,12 +702,10 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has a single message, no count shown.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
RemoteViews largeView = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -786,7 +736,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
.setStatuses(Arrays.asList(GAME_STATUS,
NEW_STORY_WITH_AVAILABILITY)).build();
RemoteViews views = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -810,10 +760,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has a single message, no count shown.
assertEquals(View.GONE, result.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
RemoteViews smallView = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View smallResult = smallView.apply(mContext, null);
// Show icon instead of name.
@@ -827,12 +776,10 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has a single message, no count shown.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
RemoteViews largeView = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -867,7 +814,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
NEW_STORY_WITH_AVAILABILITY))
.setMessagesCount(2).build();
RemoteViews views = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View result = views.apply(mContext, null);
TextView name = (TextView) result.findViewById(R.id.name);
@@ -887,10 +834,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has two messages, show count.
assertEquals(View.VISIBLE, result.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_medium) - 1);
+ mWidth = getSizeInDp(R.dimen.required_width_for_medium) - 1;
RemoteViews smallView = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View smallResult = smallView.apply(mContext, null);
// Show icon instead of name.
@@ -904,12 +850,10 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has two messages, show count.
assertEquals(View.VISIBLE, smallResult.findViewById(R.id.messages_count).getVisibility());
- mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
- getSizeInDp(R.dimen.required_width_for_large));
- mOptions.putInt(OPTION_APPWIDGET_MAX_HEIGHT,
- getSizeInDp(R.dimen.required_height_for_large));
+ mWidth = getSizeInDp(R.dimen.required_width_for_large);
+ mHeight = getSizeInDp(R.dimen.required_height_for_large);
RemoteViews largeView = getPeopleTileViewHelper(
- tileWithStatusAndNotification, mOptions).getViews();
+ tileWithStatusAndNotification).getViews();
View largeResult = largeView.apply(mContext, null);
name = (TextView) largeResult.findViewById(R.id.name);
@@ -1083,8 +1027,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
/ mContext.getResources().getDisplayMetrics().density);
}
- private PeopleTileViewHelper getPeopleTileViewHelper(PeopleSpaceTile tile, Bundle options) {
- return new PeopleTileViewHelper(mContext, tile, 0, options,
+ private PeopleTileViewHelper getPeopleTileViewHelper(
+ PeopleSpaceTile tile) {
+ return new PeopleTileViewHelper(mContext, tile, 0, mWidth, mHeight,
new PeopleTileKey(tile.getId(), 0, tile.getPackageName()));
}