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 SplitControllerCallbackAdapter mSplitControllerAdapter;
|
||||||
private SplitInfoCallback mCallback;
|
private SplitInfoCallback mCallback;
|
||||||
|
private boolean mAllowUpdateSuggestion = true;
|
||||||
|
|
||||||
/** A listener receiving homepage loaded events. */
|
/** A listener receiving homepage loaded events. */
|
||||||
public interface HomepageLoadedListener {
|
public interface HomepageLoadedListener {
|
||||||
@@ -155,15 +156,18 @@ public class SettingsHomepageActivity extends FragmentActivity implements
|
|||||||
* to avoid the flicker caused by the suggestion suddenly appearing/disappearing.
|
* to avoid the flicker caused by the suggestion suddenly appearing/disappearing.
|
||||||
*/
|
*/
|
||||||
public void showHomepageWithSuggestion(boolean showSuggestion) {
|
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) {
|
if (mHomepageView == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion);
|
|
||||||
final View homepageView = mHomepageView;
|
final View homepageView = mHomepageView;
|
||||||
mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
|
|
||||||
mTwoPaneSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
|
|
||||||
mHomepageView = null;
|
mHomepageView = null;
|
||||||
|
|
||||||
mLoadedListeners.forEach(listener -> listener.onHomepageLoaded());
|
mLoadedListeners.forEach(listener -> listener.onHomepageLoaded());
|
||||||
mLoadedListeners.clear();
|
mLoadedListeners.clear();
|
||||||
homepageView.setVisibility(View.VISIBLE);
|
homepageView.setVisibility(View.VISIBLE);
|
||||||
@@ -284,6 +288,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
|
|||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
mAllowUpdateSuggestion = true;
|
||||||
if (mSplitControllerAdapter != null && mCallback != null) {
|
if (mSplitControllerAdapter != null && mCallback != null) {
|
||||||
mSplitControllerAdapter.removeSplitListener(mCallback);
|
mSplitControllerAdapter.removeSplitListener(mCallback);
|
||||||
mCallback = null;
|
mCallback = null;
|
||||||
|
@@ -168,6 +168,19 @@ public class SettingsHomepageActivityTest {
|
|||||||
assertThat(suggestionTile.getVisibility()).isEqualTo(View.GONE);
|
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
|
@Test
|
||||||
public void onStart_isNotDebuggable_shouldHideSystemOverlay() {
|
public void onStart_isNotDebuggable_shouldHideSystemOverlay() {
|
||||||
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
|
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
|
||||||
|
Reference in New Issue
Block a user