Loading res/layout/settings_homepage_container.xml +2 −3 Original line number Diff line number Diff line Loading @@ -28,12 +28,11 @@ app:layout_behavior="com.android.settings.widget.FloatingAppBarScrollingViewBehavior"> <LinearLayout android:id="@+id/homepage_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:descendantFocusability="blocksDescendants" android:paddingTop="104dp"> <!-- height of status bar(24dp) + height of action bar(48dp) + top/bottom margins(16dp) --> android:descendantFocusability="blocksDescendants"> <FrameLayout android:id="@+id/contextual_cards_content" Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +17 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.view.View; import android.widget.ImageView; import android.widget.Toolbar; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; Loading Loading @@ -50,6 +51,7 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { updateWindowProperties(); setContentView(R.layout.settings_homepage_container); setHomepageContainerPaddingTop(); final Toolbar toolbar = findViewById(R.id.search_action_bar); FeatureFactory.getFactory(this).getSearchFeatureProvider() Loading Loading @@ -86,4 +88,19 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { getWindow().setStatusBarColor(getResources().getColor(R.color.homepage_status_bar_color)); } @VisibleForTesting void setHomepageContainerPaddingTop() { final View view = this.findViewById(R.id.homepage_container); final int statusBarHeight = getResources().getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); final int searchBarHeight = getResources().getDimensionPixelSize(R.dimen.search_bar_height); final int searchBarMargin = getResources().getDimensionPixelSize(R.dimen.search_bar_margin); // The top padding is the height of status bar + height of action bar(48dp) + top/bottom // margins(16dp) final int paddingTop = statusBarHeight + searchBarHeight + searchBarMargin * 2; view.setPadding(0 /* left */, paddingTop, 0 /* right */, 0 /* bottom */); } } No newline at end of file tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -19,7 +19,9 @@ package com.android.settings.homepage; import static com.google.common.truth.Truth.assertThat; import android.util.FeatureFlagUtils; import android.view.View; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.FeatureFlags; Loading @@ -44,4 +46,23 @@ public class SettingsHomepageActivityTest { assertThat(shadowActivity.getNextStartedActivity().getComponent().getClassName()) .isEqualTo(SettingsActivity.class.getName()); } @Test public void setHomepageContainerPaddingTop_shouldBeSetPaddingTop() { final SettingsHomepageActivity activity = Robolectric.buildActivity( SettingsHomepageActivity.class).create().get(); final int statusBarHeight = activity.getResources().getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); final int searchBarHeight = activity.getResources().getDimensionPixelSize( R.dimen.search_bar_height); final int searchBarMargin = activity.getResources().getDimensionPixelSize( R.dimen.search_bar_margin); final View view = activity.findViewById(R.id.homepage_container); activity.setHomepageContainerPaddingTop(); final int actualPaddingTop = view.getPaddingTop(); assertThat(actualPaddingTop).isEqualTo( statusBarHeight + searchBarHeight + searchBarMargin * 2); } } Loading
res/layout/settings_homepage_container.xml +2 −3 Original line number Diff line number Diff line Loading @@ -28,12 +28,11 @@ app:layout_behavior="com.android.settings.widget.FloatingAppBarScrollingViewBehavior"> <LinearLayout android:id="@+id/homepage_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:descendantFocusability="blocksDescendants" android:paddingTop="104dp"> <!-- height of status bar(24dp) + height of action bar(48dp) + top/bottom margins(16dp) --> android:descendantFocusability="blocksDescendants"> <FrameLayout android:id="@+id/contextual_cards_content" Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +17 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.view.View; import android.widget.ImageView; import android.widget.Toolbar; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; Loading Loading @@ -50,6 +51,7 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { updateWindowProperties(); setContentView(R.layout.settings_homepage_container); setHomepageContainerPaddingTop(); final Toolbar toolbar = findViewById(R.id.search_action_bar); FeatureFactory.getFactory(this).getSearchFeatureProvider() Loading Loading @@ -86,4 +88,19 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { getWindow().setStatusBarColor(getResources().getColor(R.color.homepage_status_bar_color)); } @VisibleForTesting void setHomepageContainerPaddingTop() { final View view = this.findViewById(R.id.homepage_container); final int statusBarHeight = getResources().getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); final int searchBarHeight = getResources().getDimensionPixelSize(R.dimen.search_bar_height); final int searchBarMargin = getResources().getDimensionPixelSize(R.dimen.search_bar_margin); // The top padding is the height of status bar + height of action bar(48dp) + top/bottom // margins(16dp) final int paddingTop = statusBarHeight + searchBarHeight + searchBarMargin * 2; view.setPadding(0 /* left */, paddingTop, 0 /* right */, 0 /* bottom */); } } No newline at end of file
tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -19,7 +19,9 @@ package com.android.settings.homepage; import static com.google.common.truth.Truth.assertThat; import android.util.FeatureFlagUtils; import android.view.View; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.FeatureFlags; Loading @@ -44,4 +46,23 @@ public class SettingsHomepageActivityTest { assertThat(shadowActivity.getNextStartedActivity().getComponent().getClassName()) .isEqualTo(SettingsActivity.class.getName()); } @Test public void setHomepageContainerPaddingTop_shouldBeSetPaddingTop() { final SettingsHomepageActivity activity = Robolectric.buildActivity( SettingsHomepageActivity.class).create().get(); final int statusBarHeight = activity.getResources().getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); final int searchBarHeight = activity.getResources().getDimensionPixelSize( R.dimen.search_bar_height); final int searchBarMargin = activity.getResources().getDimensionPixelSize( R.dimen.search_bar_margin); final View view = activity.findViewById(R.id.homepage_container); activity.setHomepageContainerPaddingTop(); final int actualPaddingTop = view.getPaddingTop(); assertThat(actualPaddingTop).isEqualTo( statusBarHeight + searchBarHeight + searchBarMargin * 2); } }