Uses PeopleStoryIconFactory in config activity
Change-Id: I485b6a994e41f19dd9a2ec49ee87ee2db686bb3d Test: manual Bug: 183721209
This commit is contained in:
@@ -35,15 +35,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tile_view_person_icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tile_view_package_icon"
|
||||
android:layout_width="16dp"
|
||||
android:layout_marginStart="-8dp"
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_height="16dp" />
|
||||
android:layout_width="52dp"
|
||||
android:layout_height="52dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
|
||||
@@ -19,6 +19,9 @@ package com.android.systemui.people;
|
||||
import static android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID;
|
||||
import static android.appwidget.AppWidgetManager.INVALID_APPWIDGET_ID;
|
||||
|
||||
import static com.android.systemui.people.PeopleTileViewHelper.getPersonIconBitmap;
|
||||
import static com.android.systemui.people.PeopleTileViewHelper.getSizeInDp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.INotificationManager;
|
||||
import android.app.people.IPeopleManager;
|
||||
@@ -149,11 +152,11 @@ public class PeopleSpaceActivity extends Activity {
|
||||
/** Sets {@code tileView} with the data in {@code conversation}. */
|
||||
private void setTileView(PeopleSpaceTileView tileView, PeopleSpaceTile tile) {
|
||||
try {
|
||||
String pkg = tile.getPackageName();
|
||||
|
||||
tileView.setName(tile.getUserName().toString());
|
||||
tileView.setPackageIcon(mPackageManager.getApplicationIcon(pkg));
|
||||
tileView.setPersonIcon(tile.getUserIcon());
|
||||
tileView.setPersonIcon(getPersonIconBitmap(mContext, tile,
|
||||
getSizeInDp(mContext, R.dimen.avatar_size_for_medium,
|
||||
mContext.getResources().getDisplayMetrics().density)));
|
||||
|
||||
tileView.setOnClickListener(v -> storeWidgetConfiguration(tile));
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Couldn't retrieve shortcut information", e);
|
||||
|
||||
@@ -19,8 +19,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;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.graphics.Bitmap;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -37,7 +36,6 @@ public class PeopleSpaceTileView extends LinearLayout {
|
||||
|
||||
private View mTileView;
|
||||
private TextView mNameView;
|
||||
private ImageView mPackageIconView;
|
||||
private ImageView mPersonIconView;
|
||||
|
||||
public PeopleSpaceTileView(Context context, ViewGroup view, String shortcutId, boolean isLast) {
|
||||
@@ -56,7 +54,6 @@ public class PeopleSpaceTileView extends LinearLayout {
|
||||
}
|
||||
}
|
||||
mNameView = mTileView.findViewById(R.id.tile_view_name);
|
||||
mPackageIconView = mTileView.findViewById(R.id.tile_view_package_icon);
|
||||
mPersonIconView = mTileView.findViewById(R.id.tile_view_person_icon);
|
||||
}
|
||||
|
||||
@@ -65,14 +62,9 @@ public class PeopleSpaceTileView extends LinearLayout {
|
||||
mNameView.setText(name);
|
||||
}
|
||||
|
||||
/** Sets the package drawable on the tile. */
|
||||
public void setPackageIcon(Drawable drawable) {
|
||||
mPackageIconView.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
/** Sets the person bitmap on the tile. */
|
||||
public void setPersonIcon(Icon icon) {
|
||||
mPersonIconView.setImageIcon(icon);
|
||||
/** Sets the person and package drawable on the tile. */
|
||||
public void setPersonIcon(Bitmap bitmap) {
|
||||
mPersonIconView.setImageBitmap(bitmap);
|
||||
}
|
||||
|
||||
/** Sets the click listener of the tile. */
|
||||
|
||||
@@ -192,7 +192,11 @@ class PeopleTileViewHelper {
|
||||
}
|
||||
|
||||
private int getSizeInDp(int dimenResourceId) {
|
||||
return (int) (mContext.getResources().getDimension(dimenResourceId) / mDensity);
|
||||
return getSizeInDp(mContext, dimenResourceId, mDensity);
|
||||
}
|
||||
|
||||
public static int getSizeInDp(Context context, int dimenResourceId, float density) {
|
||||
return (int) (context.getResources().getDimension(dimenResourceId) / density);
|
||||
}
|
||||
|
||||
private int getContentHeightForLayout(int lineHeight) {
|
||||
@@ -278,24 +282,11 @@ class PeopleTileViewHelper {
|
||||
} else {
|
||||
views.setViewVisibility(R.id.availability, View.GONE);
|
||||
}
|
||||
boolean hasNewStory =
|
||||
mTile.getStatuses() != null && mTile.getStatuses().stream().anyMatch(
|
||||
c -> c.getActivity() == ACTIVITY_NEW_STORY);
|
||||
|
||||
views.setTextViewText(R.id.name, mTile.getUserName().toString());
|
||||
views.setBoolean(R.id.image, "setClipToOutline", true);
|
||||
|
||||
Icon icon = mTile.getUserIcon();
|
||||
PeopleStoryIconFactory storyIcon = new PeopleStoryIconFactory(mContext,
|
||||
mContext.getPackageManager(),
|
||||
IconDrawableFactory.newInstance(mContext, false),
|
||||
maxAvatarSize);
|
||||
Drawable drawable = icon.loadDrawable(mContext);
|
||||
Drawable personDrawable = storyIcon.getPeopleTileDrawable(drawable,
|
||||
mTile.getPackageName(), getUserId(mTile), mTile.isImportantConversation(),
|
||||
hasNewStory);
|
||||
Bitmap bitmap = convertDrawableToBitmap(personDrawable);
|
||||
views.setImageViewBitmap(R.id.person_icon, bitmap);
|
||||
|
||||
views.setImageViewBitmap(R.id.person_icon,
|
||||
getPersonIconBitmap(mContext, mTile, maxAvatarSize));
|
||||
return views;
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Failed to set common fields: " + e);
|
||||
@@ -583,4 +574,23 @@ class PeopleTileViewHelper {
|
||||
return R.layout.people_tile_small;
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns a bitmap with the user icon and package icon. */
|
||||
public static Bitmap getPersonIconBitmap(
|
||||
Context context, PeopleSpaceTile tile, int maxAvatarSize) {
|
||||
boolean hasNewStory =
|
||||
tile.getStatuses() != null && tile.getStatuses().stream().anyMatch(
|
||||
c -> c.getActivity() == ACTIVITY_NEW_STORY);
|
||||
|
||||
Icon icon = tile.getUserIcon();
|
||||
PeopleStoryIconFactory storyIcon = new PeopleStoryIconFactory(context,
|
||||
context.getPackageManager(),
|
||||
IconDrawableFactory.newInstance(context, false),
|
||||
maxAvatarSize);
|
||||
Drawable drawable = icon.loadDrawable(context);
|
||||
Drawable personDrawable = storyIcon.getPeopleTileDrawable(drawable,
|
||||
tile.getPackageName(), getUserId(tile), tile.isImportantConversation(),
|
||||
hasNewStory);
|
||||
return convertDrawableToBitmap(personDrawable);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user