Merge "Import translations. DO NOT MERGE ANYWHERE" into tm-dev
diff --git a/res/layout/color_section_view.xml b/res/layout/color_section_view.xml
index bd892f7..6095c9b 100644
--- a/res/layout/color_section_view.xml
+++ b/res/layout/color_section_view.xml
@@ -33,7 +33,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/color_options_container_top_margin"
- android:paddingHorizontal="@dimen/section_horizontal_padding"
android:clipChildren="false"
android:clipToPadding="false"/>
</com.android.customization.picker.color.ColorSectionView>
diff --git a/src/com/android/customization/model/color/ColorSectionController.java b/src/com/android/customization/model/color/ColorSectionController.java
index c9e062e..afd5ebf 100644
--- a/src/com/android/customization/model/color/ColorSectionController.java
+++ b/src/com/android/customization/model/color/ColorSectionController.java
@@ -35,10 +35,12 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import androidx.lifecycle.LifecycleOwner;
import androidx.recyclerview.widget.RecyclerView;
+import androidx.viewpager2.widget.MarginPageTransformer;
import androidx.viewpager2.widget.ViewPager2;
import com.android.customization.model.CustomizationManager;
@@ -51,6 +53,7 @@
import com.android.wallpaper.model.CustomizationSectionController;
import com.android.wallpaper.model.WallpaperColorsViewModel;
import com.android.wallpaper.module.InjectorProvider;
+import com.android.wallpaper.module.LargeScreenMultiPanesChecker;
import com.android.wallpaper.widget.PageIndicator;
import com.android.wallpaper.widget.SeparatedTabLayout;
@@ -93,6 +96,7 @@
private Optional<Integer> mTabPositionToRestore = Optional.empty();
private long mLastColorApplyingTime = 0L;
private ColorSectionView mColorSectionView;
+ private boolean mIsMultiPane;
private static int getNumPages(int optionsPerPage, int totalOptions) {
return (int) Math.ceil((float) totalOptions / optionsPerPage);
@@ -106,6 +110,7 @@
new OverlayManagerCompat(activity));
mWallpaperColorsViewModel = viewModel;
mLifecycleOwner = lifecycleOwner;
+ mIsMultiPane = new LargeScreenMultiPanesChecker().isMultiPanesEnabled(activity);
if (savedInstanceState != null && savedInstanceState.containsKey(KEY_COLOR_TAB_POSITION)) {
mTabPositionToRestore = Optional.of(savedInstanceState.getInt(KEY_COLOR_TAB_POSITION));
@@ -422,6 +427,16 @@
ColorPageViewHolder(View itemView) {
super(itemView);
mContainer = itemView.findViewById(R.id.color_page_container);
+ /**
+ * Sets page transformer with margin to separate color pages and
+ * sets color pages' padding to not scroll to window boundary if multi-pane case
+ */
+ if (mIsMultiPane) {
+ final int padding = itemView.getContext().getResources().getDimensionPixelSize(
+ R.dimen.section_horizontal_padding);
+ mContainer.setPageTransformer(new MarginPageTransformer(padding * 2));
+ mContainer.setPadding(padding, /* top= */ 0, padding, /* bottom= */ 0);
+ }
mPageIndicator = itemView.findViewById(R.id.color_page_indicator);
if (ColorProvider.themeStyleEnabled) {
mPageIndicator.setVisibility(VISIBLE);
@@ -477,6 +492,15 @@
ColorOptionViewHolder(View itemView) {
super(itemView);
mContainer = itemView.findViewById(R.id.color_option_container);
+ // Sets layout with margins for non multi-pane case to separate color options.
+ if (!mIsMultiPane) {
+ final FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
+ mContainer.getLayoutParams());
+ final int margin = itemView.getContext().getResources().getDimensionPixelSize(
+ R.dimen.section_horizontal_padding);
+ layoutParams.setMargins(margin, /* top= */ 0, margin, /* bottom= */ 0);
+ mContainer.setLayoutParams(layoutParams);
+ }
}
}
}