Fix the action bar shows up problem

- Hide the internal action bar.
- Refine the Utils.setupEdgeToEdge API.
- Rollback the testcases.

Bug: 328622648
Fixes: 331308440
Test: atest com.android.settings.UtilsTest SettingsActivityTest
Change-Id: I7dfbc93def3e772b57bf06b8276315cee7402a9c
This commit is contained in:
Sunny Shao
2024-03-29 08:32:22 +08:00
parent c35fc38be9
commit 8803ae7823
5 changed files with 47 additions and 25 deletions

View File

@@ -46,6 +46,7 @@ import com.android.settings.Utils;
import com.android.settings.core.CategoryMixin.CategoryHandler;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
import com.android.window.flags.Flags;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
@@ -92,8 +93,11 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa
Log.w(TAG, "Devices lock task mode pinned.");
finish();
}
Utils.setupEdgeToEdge(this);
final long startTime = System.currentTimeMillis();
if (Flags.enforceEdgeToEdge()) {
Utils.setupEdgeToEdge(this);
hideInternalActionBar();
}
getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
TextAppearanceConfig.setShouldLoadFontSynchronously(true);
@@ -291,4 +295,18 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa
}
return intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_NONE);
}
/**
* This internal ActionBar will be appeared automatically when the
* Utils.setupEdgeToEdge is invoked.
*
* @see Utils.setupEdgeToEdge
*/
private void hideInternalActionBar() {
final View actionBarContainer =
findViewById(com.android.internal.R.id.action_bar_container);
if (actionBarContainer != null) {
actionBarContainer.setVisibility(View.GONE);
}
}
}