Merge "Uses PeopleStoryIconFactory in config activity" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8b236d0cc4
@@ -35,15 +35,8 @@
|
|||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/tile_view_person_icon"
|
android:id="@+id/tile_view_person_icon"
|
||||||
android:layout_width="48dp"
|
android:layout_width="52dp"
|
||||||
android:layout_height="48dp" />
|
android:layout_height="52dp" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/tile_view_package_icon"
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_marginStart="-8dp"
|
|
||||||
android:layout_marginTop="32dp"
|
|
||||||
android:layout_height="16dp" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
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.EXTRA_APPWIDGET_ID;
|
||||||
import static android.appwidget.AppWidgetManager.INVALID_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.Activity;
|
||||||
import android.app.INotificationManager;
|
import android.app.INotificationManager;
|
||||||
import android.app.people.IPeopleManager;
|
import android.app.people.IPeopleManager;
|
||||||
@@ -149,11 +152,11 @@ public class PeopleSpaceActivity extends Activity {
|
|||||||
/** Sets {@code tileView} with the data in {@code conversation}. */
|
/** Sets {@code tileView} with the data in {@code conversation}. */
|
||||||
private void setTileView(PeopleSpaceTileView tileView, PeopleSpaceTile tile) {
|
private void setTileView(PeopleSpaceTileView tileView, PeopleSpaceTile tile) {
|
||||||
try {
|
try {
|
||||||
String pkg = tile.getPackageName();
|
|
||||||
|
|
||||||
tileView.setName(tile.getUserName().toString());
|
tileView.setName(tile.getUserName().toString());
|
||||||
tileView.setPackageIcon(mPackageManager.getApplicationIcon(pkg));
|
tileView.setPersonIcon(getPersonIconBitmap(mContext, tile,
|
||||||
tileView.setPersonIcon(tile.getUserIcon());
|
getSizeInDp(mContext, R.dimen.avatar_size_for_medium,
|
||||||
|
mContext.getResources().getDisplayMetrics().density)));
|
||||||
|
|
||||||
tileView.setOnClickListener(v -> storeWidgetConfiguration(tile));
|
tileView.setOnClickListener(v -> storeWidgetConfiguration(tile));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(TAG, "Couldn't retrieve shortcut information", 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.app.people.PeopleSpaceTile;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.LauncherApps;
|
import android.content.pm.LauncherApps;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.drawable.Icon;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -37,7 +36,6 @@ public class PeopleSpaceTileView extends LinearLayout {
|
|||||||
|
|
||||||
private View mTileView;
|
private View mTileView;
|
||||||
private TextView mNameView;
|
private TextView mNameView;
|
||||||
private ImageView mPackageIconView;
|
|
||||||
private ImageView mPersonIconView;
|
private ImageView mPersonIconView;
|
||||||
|
|
||||||
public PeopleSpaceTileView(Context context, ViewGroup view, String shortcutId, boolean isLast) {
|
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);
|
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);
|
mPersonIconView = mTileView.findViewById(R.id.tile_view_person_icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,14 +62,9 @@ public class PeopleSpaceTileView extends LinearLayout {
|
|||||||
mNameView.setText(name);
|
mNameView.setText(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the package drawable on the tile. */
|
/** Sets the person and package drawable on the tile. */
|
||||||
public void setPackageIcon(Drawable drawable) {
|
public void setPersonIcon(Bitmap bitmap) {
|
||||||
mPackageIconView.setImageDrawable(drawable);
|
mPersonIconView.setImageBitmap(bitmap);
|
||||||
}
|
|
||||||
|
|
||||||
/** Sets the person bitmap on the tile. */
|
|
||||||
public void setPersonIcon(Icon icon) {
|
|
||||||
mPersonIconView.setImageIcon(icon);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the click listener of the tile. */
|
/** Sets the click listener of the tile. */
|
||||||
|
|||||||
@@ -192,7 +192,11 @@ class PeopleTileViewHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getSizeInDp(int dimenResourceId) {
|
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) {
|
private int getContentHeightForLayout(int lineHeight) {
|
||||||
@@ -278,24 +282,11 @@ class PeopleTileViewHelper {
|
|||||||
} else {
|
} else {
|
||||||
views.setViewVisibility(R.id.availability, View.GONE);
|
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.setTextViewText(R.id.name, mTile.getUserName().toString());
|
||||||
views.setBoolean(R.id.image, "setClipToOutline", true);
|
views.setBoolean(R.id.image, "setClipToOutline", true);
|
||||||
|
views.setImageViewBitmap(R.id.person_icon,
|
||||||
Icon icon = mTile.getUserIcon();
|
getPersonIconBitmap(mContext, mTile, maxAvatarSize));
|
||||||
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);
|
|
||||||
|
|
||||||
return views;
|
return views;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(TAG, "Failed to set common fields: " + e);
|
Log.e(TAG, "Failed to set common fields: " + e);
|
||||||
@@ -583,4 +574,23 @@ class PeopleTileViewHelper {
|
|||||||
return R.layout.people_tile_small;
|
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