Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a524200 authored by Chuck Liao's avatar Chuck Liao
Browse files

Apply scalable container to the theme/gird/clock picker.

Bug: 146466073
Bug: 146466371
Bug: 146465782

Change-Id: I84fb72fb5105cad2230ad80f443d994d259cc0ec
parent 5eccd03e
Loading
Loading
Loading
Loading
+119 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2020 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?android:colorPrimary"
    android:orientation="vertical">

    <include layout="@layout/section_header" />

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/scalable_container_behavior">

        <com.android.customization.widget.PreviewPager
            android:id="@+id/clock_preview_pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/preview_pager_background" />
    </FrameLayout>

    <FrameLayout
        android:id="@+id/scalable_content_container"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/content_container_maximum_height"
        app:behavior_peekHeight="@dimen/content_container_minimum_height"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/content_section"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/options_container"
                android:layout_width="match_parent"
                android:layout_height="@dimen/options_container_height"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                app:layout_constraintBottom_toTopOf="@id/placeholder"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="1.0" />

            <Space
                android:id="@+id/placeholder"
                android:layout_width="match_parent"
                android:layout_height="@dimen/min_taptarget_height"
                app:layout_constraintBottom_toTopOf="@id/apply_button"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHeight_min="@dimen/min_taptarget_height"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/options_container"
                app:layout_constraintVertical_bias="1.0" />

            <Button
                android:id="@+id/apply_button"
                style="@style/ActionPrimaryButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginVertical="10dp"
                android:layout_marginEnd="10dp"
                android:layout_weight="1"
                android:text="@string/apply_theme_btn"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </FrameLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.core.widget.ContentLoadingProgressBar
            android:id="@+id/loading_indicator"
            style="@android:style/Widget.DeviceDefault.ProgressBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:layout_marginTop="200dp"
            android:indeterminate="true" />

        <FrameLayout
            android:id="@+id/error_section"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone">

            <TextView
                android:id="@+id/error_message"
                style="@style/TitleTextAppearance"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/something_went_wrong" />
        </FrameLayout>
    </FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
+118 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2020 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?android:colorPrimary"
    android:orientation="vertical">

    <include layout="@layout/section_header" />

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/scalable_container_behavior">

        <com.android.customization.widget.PreviewPager
            android:id="@+id/grid_preview_pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/preview_pager_background"
            app:card_style="screen_aspect_ratio" />
    </FrameLayout>

    <FrameLayout
        android:id="@+id/scalable_content_container"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/content_container_maximum_height"
        app:behavior_peekHeight="@dimen/content_container_minimum_height"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/content_section"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/options_container"
                android:layout_width="match_parent"
                android:layout_height="@dimen/options_container_height"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                app:layout_constraintBottom_toTopOf="@id/placeholder"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="1.0" />

            <Space
                android:id="@+id/placeholder"
                android:layout_width="match_parent"
                android:layout_height="@dimen/min_taptarget_height"
                app:layout_constraintBottom_toTopOf="@id/apply_button"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/options_container"
                app:layout_constraintVertical_bias="1.0" />

            <Button
                android:id="@+id/apply_button"
                style="@style/ActionPrimaryButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginVertical="10dp"
                android:layout_marginEnd="10dp"
                android:layout_weight="1"
                android:text="@string/apply_theme_btn"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent" />

        </androidx.constraintlayout.widget.ConstraintLayout>
    </FrameLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.core.widget.ContentLoadingProgressBar
            android:id="@+id/loading_indicator"
            style="@android:style/Widget.DeviceDefault.ProgressBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:layout_marginTop="200dp"
            android:indeterminate="true" />

        <FrameLayout
            android:id="@+id/error_section"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone">

            <TextView
                android:id="@+id/error_message"
                style="@style/TitleTextAppearance"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/something_went_wrong" />
        </FrameLayout>
    </FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
+124 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2020 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?android:colorPrimary"
    android:orientation="vertical">

    <include layout="@layout/section_header" />

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/scalable_container_behavior">

        <com.android.customization.widget.PreviewPager
            android:id="@+id/theme_preview_pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/preview_pager_background" />
    </FrameLayout>

    <FrameLayout
        android:id="@+id/scalable_content_container"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/content_container_maximum_height"
        app:behavior_peekHeight="@dimen/content_container_minimum_height"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/content_section"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/options_container"
                android:layout_width="match_parent"
                android:layout_height="@dimen/options_container_height"
                android:layout_gravity="bottom|center_horizontal"
                android:layout_marginTop="10dp"
                android:layout_weight="1"
                app:layout_constraintBottom_toTopOf="@id/use_my_wallpaper"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="1.0" />

            <CheckBox
                android:id="@+id/use_my_wallpaper"
                android:layout_width="wrap_content"
                android:layout_height="@dimen/min_taptarget_height"
                android:layout_marginStart="10dp"
                android:ellipsize="end"
                android:gravity="start|center_vertical"
                android:paddingLeft="4dp"
                android:text="@string/keep_my_wallpaper"
                app:layout_constraintBottom_toTopOf="@id/apply_button"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHeight_min="@dimen/min_taptarget_height"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/options_container"
                app:layout_constraintVertical_bias="1.0" />

            <Button
                android:id="@+id/apply_button"
                style="@style/ActionPrimaryButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginEnd="10dp"
                android:layout_marginBottom="10dp"
                android:text="@string/apply_theme_btn"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </FrameLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.core.widget.ContentLoadingProgressBar
            android:id="@+id/loading_indicator"
            style="@android:style/Widget.DeviceDefault.ProgressBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:layout_marginTop="200dp"
            android:indeterminate="true" />

        <FrameLayout
            android:id="@+id/error_section"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone">

            <TextView
                android:id="@+id/error_message"
                style="@style/TitleTextAppearance"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/something_went_wrong" />
        </FrameLayout>
    </FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
+14 −2
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.customization.picker.clock;

import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;

import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
@@ -88,8 +90,18 @@ public class ClockFragment extends ToolbarFragment {
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
            @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(
        View view;
        if (ADD_SCALABLE_HEADER) {
            int orientation = getResources().getConfiguration().orientation;
            view = inflater.inflate(
                    orientation == ORIENTATION_LANDSCAPE
                            ? R.layout.fragment_clock_picker
                            : R.layout.fragment_clock_scalable_picker,
                    container, /* attachToRoot */ false);
        } else {
            view = inflater.inflate(
                    R.layout.fragment_clock_picker, container, /* attachToRoot */ false);
        }
        setUpToolbar(view);
        mContent = view.findViewById(R.id.content_section);
        mPreviewPager = view.findViewById(R.id.clock_preview_pager);
+14 −2
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.customization.picker.grid;

import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
@@ -106,8 +108,18 @@ public class GridFragment extends ToolbarFragment {
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
            @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(
        View view;
        if (ADD_SCALABLE_HEADER) {
            int orientation = getResources().getConfiguration().orientation;
            view = inflater.inflate(
                    orientation == ORIENTATION_LANDSCAPE
                            ? R.layout.fragment_grid_picker
                            : R.layout.fragment_grid_scalable_picker,
                    container, /* attachToRoot */ false);
        } else {
            view = inflater.inflate(
                    R.layout.fragment_grid_picker, container, /* attachToRoot */ false);
        }
        setUpToolbar(view);
        mContent = view.findViewById(R.id.content_section);
        mPreviewPager = view.findViewById(R.id.grid_preview_pager);
Loading