Loading core/java/android/app/people/PeopleSpaceTile.java +29 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading @@ -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; Loading @@ -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. */ Loading Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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); Loading packages/SystemUI/res/layout/people_space_small_avatar_tile.xml +3 −1 Original line number Diff line number Diff line Loading @@ -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" Loading packages/SystemUI/res/values/strings.xml +8 −0 Original line number Diff line number Diff line Loading @@ -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] --> Loading packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java +6 −8 Original line number Diff line number Diff line Loading @@ -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). Loading Loading @@ -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); Loading @@ -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()); Loading packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java +276 −90 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/app/people/PeopleSpaceTile.java +29 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading @@ -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; Loading @@ -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. */ Loading Loading @@ -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; Loading Loading @@ -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(); Loading @@ -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); Loading
packages/SystemUI/res/layout/people_space_small_avatar_tile.xml +3 −1 Original line number Diff line number Diff line Loading @@ -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" Loading
packages/SystemUI/res/values/strings.xml +8 −0 Original line number Diff line number Diff line Loading @@ -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] --> Loading
packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java +6 −8 Original line number Diff line number Diff line Loading @@ -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). Loading Loading @@ -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); Loading @@ -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()); Loading
packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java +276 −90 File changed.Preview size limit exceeded, changes collapsed. Show changes