Merge "Make the suggestion view dismissible" into main
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 6cf3061..5510301 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -119,6 +119,7 @@
private SplitControllerCallbackAdapter mSplitControllerAdapter;
private SplitInfoCallback mCallback;
+ private boolean mAllowUpdateSuggestion = true;
/** A listener receiving homepage loaded events. */
public interface HomepageLoadedListener {
@@ -155,15 +156,18 @@
* to avoid the flicker caused by the suggestion suddenly appearing/disappearing.
*/
public void showHomepageWithSuggestion(boolean showSuggestion) {
+ if (mAllowUpdateSuggestion) {
+ Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion);
+ mAllowUpdateSuggestion = false;
+ mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
+ mTwoPaneSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
+ }
+
if (mHomepageView == null) {
return;
}
- Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion);
final View homepageView = mHomepageView;
- mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
- mTwoPaneSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
mHomepageView = null;
-
mLoadedListeners.forEach(listener -> listener.onHomepageLoaded());
mLoadedListeners.clear();
homepageView.setVisibility(View.VISIBLE);
@@ -284,6 +288,7 @@
@Override
protected void onStop() {
super.onStop();
+ mAllowUpdateSuggestion = true;
if (mSplitControllerAdapter != null && mCallback != null) {
mSplitControllerAdapter.removeSplitListener(mCallback);
mCallback = null;
diff --git a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
index 3857e64..27a85fd 100644
--- a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
@@ -169,6 +169,19 @@
}
@Test
+ public void showHomepageWithSuggestion_callAfterOnStop_shouldUpdateVisibility() {
+ final SettingsHomepageActivity activity = Robolectric.buildActivity(
+ SettingsHomepageActivity.class).create().get();
+ final View suggestionTile = activity.findViewById(R.id.suggestion_content);
+
+ activity.showHomepageWithSuggestion(true);
+ activity.onStop();
+ activity.showHomepageWithSuggestion(false);
+
+ assertThat(suggestionTile.getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
public void onStart_isNotDebuggable_shouldHideSystemOverlay() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);