summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUchenna Okoye <uokoye@google.com>2021-07-03 04:39:26 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-07-03 04:39:26 +0000
commitff88ef5d22aec8d60060b237d956434f5a903ef3 (patch)
treeabe9c36eb63a4fcc07540fa5fff0550437b3c0e6
parentdb983929f9bb34cb4694061813543b56ca3d2347 (diff)
parent044c352e183c6951f68fab9b442a7870c7f64c5e (diff)
downloadMessenger-ff88ef5d22aec8d60060b237d956434f5a903ef3.tar.gz
Refresh User Account on Resume to ensure the BT state is accurate. am: 044c352e18
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Car/Messenger/+/15192940 Change-Id: I74829977b560899e757daeea2bd32771cc17669b
-rw-r--r--src/com/android/car/messenger/core/interfaces/DataModel.java6
-rw-r--r--src/com/android/car/messenger/core/ui/launcher/MessageLauncherActivity.java8
-rw-r--r--src/com/android/car/messenger/impl/datamodels/TelephonyDataModel.java5
-rw-r--r--src/com/android/car/messenger/impl/datamodels/UserAccountLiveData.java10
4 files changed, 29 insertions, 0 deletions
diff --git a/src/com/android/car/messenger/core/interfaces/DataModel.java b/src/com/android/car/messenger/core/interfaces/DataModel.java
index 911b2a0..a2bc91b 100644
--- a/src/com/android/car/messenger/core/interfaces/DataModel.java
+++ b/src/com/android/car/messenger/core/interfaces/DataModel.java
@@ -42,6 +42,12 @@ public interface DataModel {
LiveData<Collection<UserAccount>> getAccounts();
/**
+ * Call this to reload user account live data. This is useful when resuming an activity, to
+ * ensure no account changes was missed.
+ */
+ void refreshUserAccounts();
+
+ /**
* Get collection of conversations for the given account.
*
* @param userAccount The account to which data is being queried. This could be the subscription
diff --git a/src/com/android/car/messenger/core/ui/launcher/MessageLauncherActivity.java b/src/com/android/car/messenger/core/ui/launcher/MessageLauncherActivity.java
index 248ac29..ddd227c 100644
--- a/src/com/android/car/messenger/core/ui/launcher/MessageLauncherActivity.java
+++ b/src/com/android/car/messenger/core/ui/launcher/MessageLauncherActivity.java
@@ -23,6 +23,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.annotation.NonNull;
+import com.android.car.messenger.core.interfaces.AppFactory;
import com.android.car.messenger.core.models.UserAccount;
import com.android.car.messenger.core.ui.conversationlist.ConversationListFragment;
import com.android.car.messenger.core.util.L;
@@ -71,6 +72,13 @@ public class MessageLauncherActivity extends FragmentActivity implements InsetsC
pushContentFragment(fragment, fragmentTag);
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ L.d("On Resume of Message Activity.");
+ AppFactory.get().getDataModel().refreshUserAccounts();
+ }
+
private void pushContentFragment(
@NonNull Fragment topContentFragment, @NonNull String fragmentTag) {
getSupportFragmentManager()
diff --git a/src/com/android/car/messenger/impl/datamodels/TelephonyDataModel.java b/src/com/android/car/messenger/impl/datamodels/TelephonyDataModel.java
index e3b25f8..a1816e2 100644
--- a/src/com/android/car/messenger/impl/datamodels/TelephonyDataModel.java
+++ b/src/com/android/car/messenger/impl/datamodels/TelephonyDataModel.java
@@ -51,6 +51,11 @@ public class TelephonyDataModel implements DataModel {
UserAccountLiveData.getInstance(), UserAccountChangeList::getAccounts);
}
+ @Override
+ public void refreshUserAccounts() {
+ UserAccountLiveData.getInstance().refresh();
+ }
+
@NonNull
@Override
public LiveData<Collection<Conversation>> getConversations(@NonNull UserAccount userAccount) {
diff --git a/src/com/android/car/messenger/impl/datamodels/UserAccountLiveData.java b/src/com/android/car/messenger/impl/datamodels/UserAccountLiveData.java
index 8defc5f..1a95a2f 100644
--- a/src/com/android/car/messenger/impl/datamodels/UserAccountLiveData.java
+++ b/src/com/android/car/messenger/impl/datamodels/UserAccountLiveData.java
@@ -79,6 +79,16 @@ public class UserAccountLiveData extends LiveData<UserAccountChangeList> {
loadValue();
}
+ /**
+ * Refresh the user accounts. Updates listeners if a change is found. Useful to call when
+ * something occurs that indicates a change in accounts, such as empty messages. This is useful
+ * as there are occasions when the subscription on change listener is not called after a
+ * subscription is deleted.
+ */
+ public void refresh() {
+ loadValue();
+ }
+
/** Gets the instance of {@link UserAccountLiveData} */
@NonNull
public static UserAccountLiveData getInstance() {