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

Commit 27e15dfd authored by Anna Zappone's avatar Anna Zappone Committed by Android (Google) Code Review
Browse files

Merge "Add birthdays to People Space tiles"

parents 9c209b73 9daebe07
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.app.people;

import android.annotation.NonNull;
import android.app.Person;
import android.content.Intent;
import android.content.pm.LauncherApps;
import android.content.pm.ShortcutInfo;
@@ -44,6 +45,7 @@ public class PeopleSpaceTile implements Parcelable {
    private int mUid;
    private Uri mContactUri;
    private String mPackageName;
    private String mStatusText;
    private long mLastInteractionTimestamp;
    private boolean mIsImportantConversation;
    private boolean mIsHiddenConversation;
@@ -61,6 +63,7 @@ public class PeopleSpaceTile implements Parcelable {
        mContactUri = b.mContactUri;
        mUid = b.mUid;
        mPackageName = b.mPackageName;
        mStatusText = b.mStatusText;
        mLastInteractionTimestamp = b.mLastInteractionTimestamp;
        mIsImportantConversation = b.mIsImportantConversation;
        mIsHiddenConversation = b.mIsHiddenConversation;
@@ -95,6 +98,10 @@ public class PeopleSpaceTile implements Parcelable {
        return mPackageName;
    }

    public String getStatusText() {
        return mStatusText;
    }

    /** Returns the timestamp of the last interaction. */
    public long getLastInteractionTimestamp() {
        return mLastInteractionTimestamp;
@@ -148,6 +155,7 @@ public class PeopleSpaceTile implements Parcelable {
        builder.setContactUri(mContactUri);
        builder.setUid(mUid);
        builder.setPackageName(mPackageName);
        builder.setStatusText(mStatusText);
        builder.setLastInteractionTimestamp(mLastInteractionTimestamp);
        builder.setIsImportantConversation(mIsImportantConversation);
        builder.setIsHiddenConversation(mIsHiddenConversation);
@@ -165,6 +173,7 @@ public class PeopleSpaceTile implements Parcelable {
        private Uri mContactUri;
        private int mUid;
        private String mPackageName;
        private String mStatusText;
        private long mLastInteractionTimestamp;
        private boolean mIsImportantConversation;
        private boolean mIsHiddenConversation;
@@ -188,6 +197,16 @@ public class PeopleSpaceTile implements Parcelable {
            mUserIcon = convertDrawableToIcon(launcherApps.getShortcutIconDrawable(info, 0));
            mUid = info.getUserId();
            mPackageName = info.getPackage();
            mContactUri = getContactUri(info);
        }

        private Uri getContactUri(ShortcutInfo info) {
            if (info.getPersons() == null || info.getPersons().length != 1) {
                return null;
            }
            // TODO(b/175584929): Update to use the Uri from PeopleService directly
            Person person = info.getPersons()[0];
            return person.getUri() == null ? null : Uri.parse(person.getUri());
        }

        /** Sets the ID for the tile. */
@@ -226,6 +245,12 @@ public class PeopleSpaceTile implements Parcelable {
            return this;
        }

        /** Sets the status text. */
        public Builder setStatusText(String statusText) {
            mStatusText = statusText;
            return this;
        }

        /** Sets the last interaction timestamp. */
        public Builder setLastInteractionTimestamp(long lastInteractionTimestamp) {
            mLastInteractionTimestamp = lastInteractionTimestamp;
@@ -279,8 +304,10 @@ public class PeopleSpaceTile implements Parcelable {
        mId = in.readString();
        mUserName = in.readCharSequence();
        mUserIcon = in.readParcelable(Icon.class.getClassLoader());
        mContactUri = in.readParcelable(Uri.class.getClassLoader());
        mUid = in.readInt();
        mPackageName = in.readString();
        mStatusText = in.readString();
        mLastInteractionTimestamp = in.readLong();
        mIsImportantConversation = in.readBoolean();
        mIsHiddenConversation = in.readBoolean();
@@ -300,8 +327,10 @@ public class PeopleSpaceTile implements Parcelable {
        dest.writeString(mId);
        dest.writeCharSequence(mUserName);
        dest.writeParcelable(mUserIcon, flags);
        dest.writeParcelable(mContactUri, flags);
        dest.writeInt(mUid);
        dest.writeString(mPackageName);
        dest.writeString(mStatusText);
        dest.writeLong(mLastInteractionTimestamp);
        dest.writeBoolean(mIsImportantConversation);
        dest.writeBoolean(mIsHiddenConversation);
+3 −1
Original line number Diff line number Diff line
@@ -169,14 +169,16 @@
            </LinearLayout>
            <LinearLayout
                android:background="@drawable/people_space_content_background"
                android:layout_gravity="center"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <TextView
                    android:id="@+id/content"
                    android:paddingVertical="3dp"
                    android:paddingHorizontal="12dp"
                    android:gravity="center"
                    android:textAppearance="@*android:style/TextAppearance.DeviceDefault.ListItem"
                    android:textSize="14sp"
                    android:textSize="16sp"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:maxLines="2"
+8 −0
Original line number Diff line number Diff line
@@ -2773,6 +2773,14 @@
    <string name="basic_status" translatable="false">Open conversation</string>
    <!-- Status for conversation without interaction data [CHAR LIMIT=120] -->
    <string name="select_conversation_text" translatable="false">Select one conversation to show in your widget:</string>
    <!-- Timestamp for notification with exact time [CHAR LIMIT=120] -->
    <string name="timestamp" translatable="false"><xliff:g id="duration" example="5 hours">%1$s</xliff:g> ago</string>
    <!-- Timestamp for notification when less than a certain time window [CHAR LIMIT=120] -->
    <string name="less_than_timestamp" translatable="false">Less than <xliff:g id="duration" example="5 hours">%1$s</xliff:g> ago</string>
    <!-- Timestamp for notification when over a certain time window [CHAR LIMIT=120] -->
    <string name="over_timestamp" translatable="false">Over <xliff:g id="duration" example="1 week">%1$s</xliff:g> ago</string>
    <!-- Status text for a birthday today [CHAR LIMIT=120] -->
    <string name="birthday_status" translatable="false">Today is their birthday!</string>

    <!-- Title to display in a notification when ACTION_BATTERY_CHANGED.EXTRA_PRESENT field is false
    [CHAR LIMIT=NONE] -->
+6 −8
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ import com.android.systemui.R;
import com.android.systemui.people.widget.PeopleSpaceWidgetProvider;

import java.util.List;
import java.util.Map;

/**
 * Shows the user their tiles for their priority People (go/live-status).
@@ -96,13 +95,12 @@ public class PeopleSpaceActivity extends Activity {
     */
    private void setTileViewsWithPriorityConversations() {
        try {
            List<Map.Entry<Long, PeopleSpaceTile>> tiles = PeopleSpaceUtils.getTiles(
            List<PeopleSpaceTile> tiles = PeopleSpaceUtils.getTiles(
                    mContext, mNotificationManager, mPeopleManager, mLauncherApps);
            for (Map.Entry<Long, PeopleSpaceTile> entry : tiles) {
                PeopleSpaceTile tile = entry.getValue();
            for (PeopleSpaceTile tile : tiles) {
                PeopleSpaceTileView tileView = new PeopleSpaceTileView(mContext, mPeopleSpaceLayout,
                        tile.getId());
                setTileView(tileView, tile, entry.getKey());
                setTileView(tileView, tile);
            }
        } catch (Exception e) {
            Log.e(TAG, "Couldn't retrieve conversations", e);
@@ -110,12 +108,12 @@ public class PeopleSpaceActivity extends Activity {
    }

    /** Sets {@code tileView} with the data in {@code conversation}. */
    private void setTileView(PeopleSpaceTileView tileView, PeopleSpaceTile tile,
            long lastInteraction) {
    private void setTileView(PeopleSpaceTileView tileView, PeopleSpaceTile tile) {
        try {
            String pkg = tile.getPackageName();
            String status =
                    PeopleSpaceUtils.getLastInteractionString(mContext, lastInteraction);
                    PeopleSpaceUtils.getLastInteractionString(mContext,
                            tile.getLastInteractionTimestamp(), true);
            tileView.setStatus(status);

            tileView.setName(tile.getUserName().toString());
+276 −90

File changed.

Preview size limit exceeded, changes collapsed.

Loading