summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/provider/Settings.java10
-rw-r--r--packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java28
-rw-r--r--services/people/java/com/android/server/people/PeopleService.java2
4 files changed, 31 insertions, 10 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 68d8d82aeb0c..a4212b53c905 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -14551,6 +14551,16 @@ public final class Settings {
public static final String SHOW_PEOPLE_SPACE = "show_people_space";
/**
+ * Which types of conversations to show in People Space.
+ * Values are:
+ * 0: All conversations (default)
+ * 1: Priority conversations only
+ * @hide
+ */
+ public static final String PEOPLE_SPACE_CONVERSATION_TYPE =
+ "people_space_conversation_type";
+
+ /**
* Whether to show new lockscreen & AOD UI.
* Values are:
* 0: Disabled (default)
diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
index 9b0df9625df7..8aad467a2440 100644
--- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
+++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
@@ -408,6 +408,7 @@ public class SettingsBackupTest {
Settings.Global.PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT,
Settings.Global.PDP_WATCHDOG_POLL_INTERVAL_MS,
Settings.Global.PDP_WATCHDOG_TRIGGER_PACKET_COUNT,
+ Settings.Global.PEOPLE_SPACE_CONVERSATION_TYPE,
Settings.Global.POLICY_CONTROL,
Settings.Global.POWER_BUTTON_SUPPRESSION_DELAY_AFTER_GESTURE_WAKE,
Settings.Global.POWER_MANAGER_CONSTANTS,
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java
index eeb93bb7d766..bdaeb137e368 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java
@@ -18,6 +18,7 @@ package com.android.systemui.people;
import android.app.Activity;
import android.app.INotificationManager;
+import android.app.people.ConversationChannel;
import android.app.people.IPeopleManager;
import android.content.Context;
import android.content.pm.LauncherApps;
@@ -29,6 +30,7 @@ import android.icu.util.MeasureUnit;
import android.os.Bundle;
import android.os.ServiceManager;
import android.os.UserHandle;
+import android.provider.Settings;
import android.service.notification.ConversationChannelWrapper;
import android.util.Log;
import android.view.ViewGroup;
@@ -52,7 +54,6 @@ public class PeopleSpaceActivity extends Activity {
private INotificationManager mNotificationManager;
private PackageManager mPackageManager;
private LauncherApps mLauncherApps;
- private List<ConversationChannelWrapper> mConversations;
private Context mContext;
@Override
@@ -77,15 +78,25 @@ public class PeopleSpaceActivity extends Activity {
*/
private void setTileViewsWithPriorityConversations() {
try {
+ boolean showAllConversations = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PEOPLE_SPACE_CONVERSATION_TYPE) == 0;
List<ConversationChannelWrapper> conversations =
mNotificationManager.getConversations(
- true /* priority only */).getList();
- mConversations = conversations.stream().filter(
- c -> shouldKeepConversation(c)).collect(Collectors.toList());
- for (ConversationChannelWrapper conversation : mConversations) {
+ !showAllConversations /* priority only */).getList();
+ List<ShortcutInfo> shortcutInfos = conversations.stream().filter(
+ c -> shouldKeepConversation(c)).map(c -> c.getShortcutInfo()).collect(
+ Collectors.toList());
+ if (showAllConversations) {
+ List<ConversationChannel> recentConversations =
+ mPeopleManager.getRecentConversations().getList();
+ List<ShortcutInfo> recentShortcuts = recentConversations.stream().map(
+ c -> c.getShortcutInfo()).collect(Collectors.toList());
+ shortcutInfos.addAll(recentShortcuts);
+ }
+ for (ShortcutInfo conversation : shortcutInfos) {
PeopleSpaceTileView tileView = new PeopleSpaceTileView(mContext,
mPeopleSpaceLayout,
- conversation.getShortcutInfo().getId());
+ conversation.getId());
setTileView(tileView, conversation);
}
} catch (Exception e) {
@@ -95,11 +106,10 @@ public class PeopleSpaceActivity extends Activity {
/** Sets {@code tileView} with the data in {@code conversation}. */
private void setTileView(PeopleSpaceTileView tileView,
- ConversationChannelWrapper conversation) {
+ ShortcutInfo shortcutInfo) {
try {
- ShortcutInfo shortcutInfo = conversation.getShortcutInfo();
int userId = UserHandle.getUserHandleForUid(
- conversation.getUid()).getIdentifier();
+ shortcutInfo.getUserId()).getIdentifier();
String pkg = shortcutInfo.getPackage();
long lastInteraction = mPeopleManager.getLastInteraction(
diff --git a/services/people/java/com/android/server/people/PeopleService.java b/services/people/java/com/android/server/people/PeopleService.java
index 91cb481a3b23..7c3b7a67178e 100644
--- a/services/people/java/com/android/server/people/PeopleService.java
+++ b/services/people/java/com/android/server/people/PeopleService.java
@@ -122,7 +122,7 @@ public class PeopleService extends SystemService {
@Override
public ParceledListSlice<ConversationChannel> getRecentConversations() {
- enforceSystemOrRoot("get recent conversations");
+ enforceSystemRootOrSystemUI(getContext(), "get recent conversations");
return new ParceledListSlice<>(
mDataManager.getRecentConversations(
Binder.getCallingUserHandle().getIdentifier()));