diff options
author | Uchenna Okoye <uokoye@google.com> | 2021-07-02 18:43:05 -0700 |
---|---|---|
committer | Uchenna Okoye <uokoye@google.com> | 2021-07-03 02:17:05 +0000 |
commit | 044c352e183c6951f68fab9b442a7870c7f64c5e (patch) | |
tree | abe9c36eb63a4fcc07540fa5fff0550437b3c0e6 | |
parent | 9d975a11a7bed2bd51366ff30adf6dfb103f9653 (diff) | |
download | Messenger-044c352e183c6951f68fab9b442a7870c7f64c5e.tar.gz |
Refresh User Account on Resume to ensure the BT state is accurate.android-12.0.0_r32android-12.0.0_r29android-12.0.0_r28android-12.0.0_r27android-12.0.0_r26android-12.0.0_r21android-12.0.0_r20android-12.0.0_r19android-12.0.0_r18android-12.0.0_r16android12-qpr1-releaseandroid12-qpr1-d-s3-releaseandroid12-qpr1-d-s2-releaseandroid12-qpr1-d-s1-releaseandroid12-qpr1-d-releaseandroid12-dev
PiperOrigin-RevId: 382848835
Change-Id: Ib62228110fdd634c6ddf2f9660f525c33013ae66
Bug: 185279757
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() { |