Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b236d0c authored by Flavio Fiszman's avatar Flavio Fiszman Committed by Android (Google) Code Review
Browse files

Merge "Uses PeopleStoryIconFactory in config activity" into sc-dev

parents b7279f2d 2f71579e
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -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"
+7 −4
Original line number Diff line number Diff line
@@ -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);
+4 −12
Original line number Diff line number Diff line
@@ -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. */
+27 −17
Original line number Diff line number Diff line
@@ -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);
    }
}