Merge "Make the suggestion view dismissible" into main
This commit is contained in:
@@ -119,6 +119,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
|
||||
|
||||
private SplitControllerCallbackAdapter mSplitControllerAdapter;
|
||||
private SplitInfoCallback mCallback;
|
||||
private boolean mAllowUpdateSuggestion = true;
|
||||
|
||||
/** A listener receiving homepage loaded events. */
|
||||
public interface HomepageLoadedListener {
|
||||
@@ -155,15 +156,18 @@ public class SettingsHomepageActivity extends FragmentActivity implements
|
||||
* 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 @@ public class SettingsHomepageActivity extends FragmentActivity implements
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
mAllowUpdateSuggestion = true;
|
||||
if (mSplitControllerAdapter != null && mCallback != null) {
|
||||
mSplitControllerAdapter.removeSplitListener(mCallback);
|
||||
mCallback = null;
|
||||
|
@@ -168,6 +168,19 @@ public class SettingsHomepageActivityTest {
|
||||
assertThat(suggestionTile.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
|
||||
@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);
|
||||
|
Reference in New Issue
Block a user