[automerge] Fix incorrect colored bar when task bar is hidden 2p: 39c8905f4c

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16972170

Change-Id: Iec184e49d8bcb3ccef49a13f0bb24d048103c759
This commit is contained in:
Presubmit Automerger Backend
2022-02-23 10:41:24 +00:00
2 changed files with 27 additions and 3 deletions

View File

@@ -19,7 +19,6 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/settings_homepage_container" android:id="@+id/settings_homepage_container"
android:fitsSystemWindows="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">

View File

@@ -32,12 +32,17 @@ import android.util.ArraySet;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.Toolbar; import android.widget.Toolbar;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
@@ -96,7 +101,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
void onHomepageLoaded(); void onHomepageLoaded();
} }
private interface FragmentBuilder<T extends Fragment> { private interface FragmentBuilder<T extends Fragment> {
T build(); T build();
} }
@@ -149,7 +154,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setupEdgeToEdge();
setContentView(R.layout.settings_homepage_container); setContentView(R.layout.settings_homepage_container);
mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this); mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
mSplitController = SplitController.getInstance(); mSplitController = SplitController.getInstance();
mIsTwoPane = mSplitController.isActivityEmbedded(this); mIsTwoPane = mSplitController.isActivityEmbedded(this);
@@ -224,6 +231,24 @@ public class SettingsHomepageActivity extends FragmentActivity implements
} }
} }
private void setupEdgeToEdge() {
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(android.R.id.content),
(v, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
// Apply the insets as a margin to the view. Here the system is setting
// only the top dimensions.
ViewGroup.MarginLayoutParams mlp =
(ViewGroup.MarginLayoutParams) v.getLayoutParams();
mlp.topMargin = insets.top;
v.setLayoutParams(mlp);
// Return CONSUMED if you don't want the window insets to keep being
// passed down to descendant views.
return WindowInsetsCompat.CONSUMED;
});
}
private void initSearchBarView() { private void initSearchBarView() {
final Toolbar toolbar = findViewById(R.id.search_action_bar); final Toolbar toolbar = findViewById(R.id.search_action_bar);
FeatureFactory.getFactory(this).getSearchFeatureProvider() FeatureFactory.getFactory(this).getSearchFeatureProvider()
@@ -265,7 +290,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
// Update status bar color // Update status bar color
window.setStatusBarColor(color); window.setStatusBarColor(color);
// Update content background. // Update content background.
findViewById(R.id.settings_homepage_container).setBackgroundColor(color); findViewById(android.R.id.content).setBackgroundColor(color);
} }
private void showSuggestionFragment(boolean scrollNeeded) { private void showSuggestionFragment(boolean scrollNeeded) {