summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUchenna Okoye <uokoye@google.com>2021-07-02 18:43:05 -0700
committerUchenna Okoye <uokoye@google.com>2021-07-03 02:17:05 +0000
commit044c352e183c6951f68fab9b442a7870c7f64c5e (patch)
treeabe9c36eb63a4fcc07540fa5fff0550437b3c0e6
parent9d975a11a7bed2bd51366ff30adf6dfb103f9653 (diff)
downloadMessenger-044c352e183c6951f68fab9b442a7870c7f64c5e.tar.gz
PiperOrigin-RevId: 382848835 Change-Id: Ib62228110fdd634c6ddf2f9660f525c33013ae66 Bug: 185279757
-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() {