Loading packages/SystemUI/res/layout/people_space_tile_view.xml +2 −9 Original line number Diff line number Diff line Loading @@ -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" Loading packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java +7 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/people/PeopleSpaceTileView.java +4 −12 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading @@ -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); } Loading @@ -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. */ Loading packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java +27 −17 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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); Loading Loading @@ -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); } } Loading
packages/SystemUI/res/layout/people_space_tile_view.xml +2 −9 Original line number Diff line number Diff line Loading @@ -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" Loading
packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java +7 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/people/PeopleSpaceTileView.java +4 −12 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading @@ -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); } Loading @@ -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. */ Loading
packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java +27 −17 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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); Loading Loading @@ -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); } }