summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-03-05 00:44:31 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-03-05 00:44:31 +0000
commit0744f4649dd484700fa01510a0e5d43f48b57abc (patch)
tree4420dd649e6d6f9d02eff3627762eddea910f6ed
parentebdeb17775c38f74438ecef0145451780b314b6f (diff)
parentdf2d4de85bdab985d72aecde5cde24fb0b5445e1 (diff)
downloadsetupdesign-0744f4649dd484700fa01510a0e5d43f48b57abc.tar.gz
Snap for 11526283 from df2d4de85bdab985d72aecde5cde24fb0b5445e1 to 24Q2-releaseandroid-14.0.0_r51android-14.0.0_r50
Change-Id: Idf6759f6fc265732d8d0a51618a786893739bb9b
-rw-r--r--lottie_loading_layout/res/layout-sw600dp-v31/sud_glif_fullscreen_loading_template_card.xml1
-rw-r--r--lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_card_two_pane.xml52
-rw-r--r--lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_content_two_pane.xml106
-rw-r--r--lottie_loading_layout/res/layout-v34/sud_glif_loading_template_card_two_pane.xml52
-rw-r--r--lottie_loading_layout/res/layout-v34/sud_glif_loading_template_content_two_pane.xml102
-rw-r--r--lottie_loading_layout/res/layout/sud_glif_fullscreen_loading_embedded_template_card.xml1
-rw-r--r--lottie_loading_layout/res/layout/sud_glif_loading_embedded_template_card.xml1
-rw-r--r--lottie_loading_layout/res/layout/sud_glif_loading_template_card.xml1
-rw-r--r--lottie_loading_layout/res/values-v34/layouts.xml21
-rw-r--r--lottie_loading_layout/res/values-w840dp-v34/layouts.xml21
-rw-r--r--lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java5
-rw-r--r--main/res/layout-sw600dp-v31/sud_glif_preference_template_card.xml1
-rw-r--r--main/res/layout-v34/sud_glif_list_template_card_two_pane.xml52
-rw-r--r--main/res/layout-v34/sud_glif_list_template_content_two_pane.xml81
-rw-r--r--main/res/layout-v34/sud_glif_preference_template_card_two_pane.xml28
-rw-r--r--main/res/layout-v34/sud_glif_preference_template_content_two_pane.xml79
-rw-r--r--main/res/layout-v34/sud_glif_recycler_template_card_two_pane.xml28
-rw-r--r--main/res/layout-v34/sud_glif_recycler_template_content_two_pane.xml82
-rw-r--r--main/res/layout-v34/sud_glif_template_card_two_pane.xml48
-rw-r--r--main/res/layout-v34/sud_glif_template_content_two_pane.xml102
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_list_template_card_two_pane.xml52
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_list_template_content_two_pane.xml81
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_preference_template_card_two_pane.xml28
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_preference_template_content_two_pane.xml79
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_recycler_template_card_two_pane.xml28
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_recycler_template_content_two_pane.xml82
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_template_card_two_pane.xml48
-rw-r--r--main/res/layout-w840dp-v34/sud_glif_template_content_two_pane.xml102
-rw-r--r--main/res/layout/sud_glif_blank_embedded_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_blank_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_embedded_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_list_embedded_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_list_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_recycler_embedded_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_recycler_template_card.xml1
-rw-r--r--main/res/layout/sud_glif_template_card.xml1
-rw-r--r--main/res/values-v34/layouts.xml23
-rw-r--r--main/res/values-w840dp-v34/layouts.xml26
-rw-r--r--main/res/values/layouts.xml7
-rw-r--r--main/src/com/google/android/setupdesign/GlifLayout.java3
-rw-r--r--main/src/com/google/android/setupdesign/GlifListLayout.java3
-rw-r--r--main/src/com/google/android/setupdesign/GlifPreferenceLayout.java3
-rw-r--r--main/src/com/google/android/setupdesign/GlifRecyclerLayout.java3
43 files changed, 1440 insertions, 0 deletions
diff --git a/lottie_loading_layout/res/layout-sw600dp-v31/sud_glif_fullscreen_loading_template_card.xml b/lottie_loading_layout/res/layout-sw600dp-v31/sud_glif_fullscreen_loading_template_card.xml
index 8cd6af2..2aa254d 100644
--- a/lottie_loading_layout/res/layout-sw600dp-v31/sud_glif_fullscreen_loading_template_card.xml
+++ b/lottie_loading_layout/res/layout-sw600dp-v31/sud_glif_fullscreen_loading_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_card_two_pane.xml b/lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_card_two_pane.xml
new file mode 100644
index 0000000..85ea0ff
--- /dev/null
+++ b/lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_card_two_pane.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ style="@style/SudGlifCardBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:fitsSystemWindows="true"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
+ style="@style/SudGlifCardContainer"
+ android:layout_width="@dimen/sud_glif_card_width"
+ android:layout_height="wrap_content"
+ android:height="@dimen/sud_glif_card_height">
+
+ <include layout="@layout/sud_glif_fullscreen_loading_template_content_two_pane" />
+
+ </com.google.android.setupdesign.view.IntrinsicSizeFrameLayout>
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_content_two_pane.xml b/lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_content_two_pane.xml
new file mode 100644
index 0000000..9f1bdf6
--- /dev/null
+++ b/lottie_loading_layout/res/layout-v34/sud_glif_fullscreen_loading_template_content_two_pane.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2021 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true">
+
+ <ViewStub
+ android:id="@+id/sud_loading_layout_lottie_stub"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:inflatedId="@+id/sud_layout_lottie_illustration"
+ android:layout="@layout/sud_loading_fullscreen_lottie_layout" />
+
+ <LinearLayout
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:focusedByDefault="false"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sud_layout_loading_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ViewStub
+ android:id="@+id/sud_loading_layout_illustration_stub"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:inflatedId="@+id/sud_layout_progress_illustration"
+ android:layout="@layout/sud_loading_illustration_layout" />
+
+ <FrameLayout
+ android:id="@+id/sud_layout_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" />
+
+ </FrameLayout>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
+
+</FrameLayout> \ No newline at end of file
diff --git a/lottie_loading_layout/res/layout-v34/sud_glif_loading_template_card_two_pane.xml b/lottie_loading_layout/res/layout-v34/sud_glif_loading_template_card_two_pane.xml
new file mode 100644
index 0000000..9b78dff
--- /dev/null
+++ b/lottie_loading_layout/res/layout-v34/sud_glif_loading_template_card_two_pane.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2021 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ style="@style/SudGlifCardBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:fitsSystemWindows="true"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
+ style="@style/SudGlifCardContainer"
+ android:layout_width="@dimen/sud_glif_card_width"
+ android:layout_height="wrap_content"
+ android:height="@dimen/sud_glif_card_height">
+
+ <include layout="@layout/sud_glif_loading_template_content_two_pane" />
+
+ </com.google.android.setupdesign.view.IntrinsicSizeFrameLayout>
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/lottie_loading_layout/res/layout-v34/sud_glif_loading_template_content_two_pane.xml b/lottie_loading_layout/res/layout-v34/sud_glif_loading_template_content_two_pane.xml
new file mode 100644
index 0000000..8e2a6d8
--- /dev/null
+++ b/lottie_loading_layout/res/layout-v34/sud_glif_loading_template_content_two_pane.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:focusedByDefault="false"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sud_layout_loading_content"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ViewStub
+ android:id="@+id/sud_loading_layout_lottie_stub"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:inflatedId="@+id/sud_layout_lottie_illustration"
+ android:layout="@layout/sud_loading_lottie_layout" />
+
+ <ViewStub
+ android:id="@+id/sud_loading_layout_illustration_stub"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:inflatedId="@+id/sud_layout_progress_illustration"
+ android:layout="@layout/sud_loading_illustration_layout" />
+
+ <FrameLayout
+ android:id="@+id/sud_layout_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" />
+
+ </FrameLayout>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/lottie_loading_layout/res/layout/sud_glif_fullscreen_loading_embedded_template_card.xml b/lottie_loading_layout/res/layout/sud_glif_fullscreen_loading_embedded_template_card.xml
index b24fda4..56c0f9b 100644
--- a/lottie_loading_layout/res/layout/sud_glif_fullscreen_loading_embedded_template_card.xml
+++ b/lottie_loading_layout/res/layout/sud_glif_fullscreen_loading_embedded_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/lottie_loading_layout/res/layout/sud_glif_loading_embedded_template_card.xml b/lottie_loading_layout/res/layout/sud_glif_loading_embedded_template_card.xml
index 9092e1a..6b26c68 100644
--- a/lottie_loading_layout/res/layout/sud_glif_loading_embedded_template_card.xml
+++ b/lottie_loading_layout/res/layout/sud_glif_loading_embedded_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/lottie_loading_layout/res/layout/sud_glif_loading_template_card.xml b/lottie_loading_layout/res/layout/sud_glif_loading_template_card.xml
index 2db095c..a2f907e 100644
--- a/lottie_loading_layout/res/layout/sud_glif_loading_template_card.xml
+++ b/lottie_loading_layout/res/layout/sud_glif_loading_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/lottie_loading_layout/res/values-v34/layouts.xml b/lottie_loading_layout/res/values-v34/layouts.xml
new file mode 100644
index 0000000..5ae5f54
--- /dev/null
+++ b/lottie_loading_layout/res/values-v34/layouts.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+
+<resources xmlns:tools="http://schemas.android.com/tools">
+ <item name="sud_glif_loading_template_two_pane" type="layout" tools:ignore="UnusedResources">@layout/sud_glif_loading_template_compat</item>
+ <item name="sud_glif_fullscreen_loading_template_two_pane" type="layout" tools:ignore="UnusedResources">@layout/sud_glif_loading_template_compat</item>
+</resources>
diff --git a/lottie_loading_layout/res/values-w840dp-v34/layouts.xml b/lottie_loading_layout/res/values-w840dp-v34/layouts.xml
new file mode 100644
index 0000000..ff80def
--- /dev/null
+++ b/lottie_loading_layout/res/values-w840dp-v34/layouts.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+
+<resources xmlns:tools="http://schemas.android.com/tools">
+ <item name="sud_glif_loading_template_two_pane" type="layout" tools:ignore="UnusedResources">@layout/sud_glif_loading_template_card_two_pane</item>
+ <item name="sud_glif_fullscreen_loading_template_two_pane" type="layout" tools:ignore="UnusedResources">@layout/sud_glif_fullscreen_loading_template_card_two_pane</item>
+</resources>
diff --git a/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java b/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java
index 8fe2340..004a20b 100644
--- a/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java
+++ b/lottie_loading_layout/src/com/google/android/setupdesign/GlifLoadingLayout.java
@@ -59,6 +59,7 @@ import com.google.android.setupcompat.partnerconfig.PartnerConfigHelper;
import com.google.android.setupcompat.partnerconfig.ResourceEntry;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.util.BuildCompatUtils;
+import com.google.android.setupcompat.util.ForceTwoPaneHelper;
import com.google.android.setupdesign.lottieloadinglayout.R;
import com.google.android.setupdesign.util.LayoutStyler;
import com.google.android.setupdesign.util.LottieAnimationHelper;
@@ -602,6 +603,8 @@ public class GlifLoadingLayout extends GlifLayout {
// if the activity is embedded should apply an embedded layout.
if (isEmbeddedActivityOnePaneEnabled(context)) {
template = R.layout.sud_glif_fullscreen_loading_embedded_template;
+ } else if (ForceTwoPaneHelper.isForceTwoPaneEnable(getContext())) {
+ template = ForceTwoPaneHelper.getForceTwoPaneStyleLayout(getContext(), template);
}
} else {
template = R.layout.sud_glif_loading_template;
@@ -609,6 +612,8 @@ public class GlifLoadingLayout extends GlifLayout {
// if the activity is embedded should apply an embedded layout.
if (isEmbeddedActivityOnePaneEnabled(context)) {
template = R.layout.sud_glif_loading_embedded_template;
+ } else if (ForceTwoPaneHelper.isForceTwoPaneEnable(getContext())) {
+ template = ForceTwoPaneHelper.getForceTwoPaneStyleLayout(getContext(), template);
}
}
}
diff --git a/main/res/layout-sw600dp-v31/sud_glif_preference_template_card.xml b/main/res/layout-sw600dp-v31/sud_glif_preference_template_card.xml
index 68ea99e..4a4374c 100644
--- a/main/res/layout-sw600dp-v31/sud_glif_preference_template_card.xml
+++ b/main/res/layout-sw600dp-v31/sud_glif_preference_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout-v34/sud_glif_list_template_card_two_pane.xml b/main/res/layout-v34/sud_glif_list_template_card_two_pane.xml
new file mode 100644
index 0000000..9787877
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_list_template_card_two_pane.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ style="@style/SudGlifCardBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:fitsSystemWindows="true"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
+ style="@style/SudGlifCardContainer"
+ android:layout_width="@dimen/sud_glif_card_width"
+ android:layout_height="wrap_content"
+ android:height="@dimen/sud_glif_card_height">
+
+ <include layout="@layout/sud_glif_list_template_content_two_pane" />
+
+ </com.google.android.setupdesign.view.IntrinsicSizeFrameLayout>
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-v34/sud_glif_list_template_content_two_pane.xml b/main/res/layout-v34/sud_glif_list_template_content_two_pane.xml
new file mode 100644
index 0000000..fd14379
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_list_template_content_two_pane.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:filterTouchesWhenObscured="true">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.StickyHeaderListView
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:scrollIndicators="?attr/sudScrollIndicators" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-v34/sud_glif_preference_template_card_two_pane.xml b/main/res/layout-v34/sud_glif_preference_template_card_two_pane.xml
new file mode 100644
index 0000000..6edd79b
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_preference_template_card_two_pane.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<com.google.android.setupcompat.view.StatusBarBackgroundLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true">
+
+ <include layout="@layout/sud_glif_preference_template_content_two_pane" />
+
+</com.google.android.setupcompat.view.StatusBarBackgroundLayout> \ No newline at end of file
diff --git a/main/res/layout-v34/sud_glif_preference_template_content_two_pane.xml b/main/res/layout-v34/sud_glif_preference_template_content_two_pane.xml
new file mode 100644
index 0000000..a14adc8
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_preference_template_content_two_pane.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sud_layout_content"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-v34/sud_glif_recycler_template_card_two_pane.xml b/main/res/layout-v34/sud_glif_recycler_template_card_two_pane.xml
new file mode 100644
index 0000000..2bcf82d
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_recycler_template_card_two_pane.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<com.google.android.setupcompat.view.StatusBarBackgroundLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true">
+
+ <include layout="@layout/sud_glif_recycler_template_content_two_pane" />
+
+</com.google.android.setupcompat.view.StatusBarBackgroundLayout> \ No newline at end of file
diff --git a/main/res/layout-v34/sud_glif_recycler_template_content_two_pane.xml b/main/res/layout-v34/sud_glif_recycler_template_content_two_pane.xml
new file mode 100644
index 0000000..ea47dfc
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_recycler_template_content_two_pane.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.HeaderRecyclerView
+ android:id="@+id/sud_recycler_view"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:scrollbars="vertical"
+ android:scrollIndicators="?attr/sudScrollIndicators" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-v34/sud_glif_template_card_two_pane.xml b/main/res/layout-v34/sud_glif_template_card_two_pane.xml
new file mode 100644
index 0000000..d90b4ee
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_template_card_two_pane.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ style="@style/SudGlifCardBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:fitsSystemWindows="true"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ style="@style/SudGlifCardContainer"
+ android:layout_width="@dimen/sud_glif_card_width"
+ android:layout_height="wrap_content"
+ android:height="@dimen/sud_glif_card_height">
+
+ <include layout="@layout/sud_glif_template_content_two_pane" />
+
+ </com.google.android.setupdesign.view.IntrinsicSizeFrameLayout>
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+</LinearLayout>
diff --git a/main/res/layout-v34/sud_glif_template_content_two_pane.xml b/main/res/layout-v34/sud_glif_template_content_two_pane.xml
new file mode 100644
index 0000000..3aed478
--- /dev/null
+++ b/main/res/layout-v34/sud_glif_template_content_two_pane.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators"
+ android:importantForAccessibility="no">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sud_layout_content"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ <ViewStub
+ android:id="@+id/sud_layout_illustration_progress_stub"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:inflatedId="@+id/sud_layout_progress_illustration"
+ android:layout="@layout/sud_progress_illustration_layout" />
+ </LinearLayout>
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_list_template_card_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_list_template_card_two_pane.xml
new file mode 100644
index 0000000..9787877
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_list_template_card_two_pane.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ style="@style/SudGlifCardBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:fitsSystemWindows="true"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
+ style="@style/SudGlifCardContainer"
+ android:layout_width="@dimen/sud_glif_card_width"
+ android:layout_height="wrap_content"
+ android:height="@dimen/sud_glif_card_height">
+
+ <include layout="@layout/sud_glif_list_template_content_two_pane" />
+
+ </com.google.android.setupdesign.view.IntrinsicSizeFrameLayout>
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_list_template_content_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_list_template_content_two_pane.xml
new file mode 100644
index 0000000..a408da2
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_list_template_content_two_pane.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.StickyHeaderListView
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:scrollIndicators="?attr/sudScrollIndicators" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_preference_template_card_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_preference_template_card_two_pane.xml
new file mode 100644
index 0000000..6edd79b
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_preference_template_card_two_pane.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<com.google.android.setupcompat.view.StatusBarBackgroundLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true">
+
+ <include layout="@layout/sud_glif_preference_template_content_two_pane" />
+
+</com.google.android.setupcompat.view.StatusBarBackgroundLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_preference_template_content_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_preference_template_content_two_pane.xml
new file mode 100644
index 0000000..a14adc8
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_preference_template_content_two_pane.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sud_layout_content"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_recycler_template_card_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_recycler_template_card_two_pane.xml
new file mode 100644
index 0000000..2bcf82d
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_recycler_template_card_two_pane.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<com.google.android.setupcompat.view.StatusBarBackgroundLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true">
+
+ <include layout="@layout/sud_glif_recycler_template_content_two_pane" />
+
+</com.google.android.setupcompat.view.StatusBarBackgroundLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_recycler_template_content_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_recycler_template_content_two_pane.xml
new file mode 100644
index 0000000..ea47dfc
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_recycler_template_content_two_pane.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.HeaderRecyclerView
+ android:id="@+id/sud_recycler_view"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:scrollbars="vertical"
+ android:scrollIndicators="?attr/sudScrollIndicators" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout-w840dp-v34/sud_glif_template_card_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_template_card_two_pane.xml
new file mode 100644
index 0000000..d90b4ee
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_template_card_two_pane.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suc_layout_status"
+ style="@style/SudGlifCardBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:fitsSystemWindows="true"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+ <com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ style="@style/SudGlifCardContainer"
+ android:layout_width="@dimen/sud_glif_card_width"
+ android:layout_height="wrap_content"
+ android:height="@dimen/sud_glif_card_height">
+
+ <include layout="@layout/sud_glif_template_content_two_pane" />
+
+ </com.google.android.setupdesign.view.IntrinsicSizeFrameLayout>
+
+ <View
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:visibility="invisible" />
+
+</LinearLayout>
diff --git a/main/res/layout-w840dp-v34/sud_glif_template_content_two_pane.xml b/main/res/layout-w840dp-v34/sud_glif_template_content_two_pane.xml
new file mode 100644
index 0000000..d02aaee
--- /dev/null
+++ b/main/res/layout-w840dp-v34/sud_glif_template_content_two_pane.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+<!-- Please keep filterTouchesWhenObscured=true; it's to prevent tapjacking.
+ See https://developer.android.com/privacy-and-security/risks/tapjacking -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sud_layout_template_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:filterTouchesWhenObscured="true"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_header_area"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="@dimen/sud_glif_land_header_area_weight"
+ android:orientation="vertical">
+
+ <ViewStub
+ android:id="@+id/sud_layout_sticky_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_header_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators">
+
+ <include layout="@layout/sud_glif_header" />
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/sud_landscape_content_area"
+ style="@style/SudLandContentContianerStyle"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.BottomScrollView
+ android:id="@+id/sud_scroll_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ android:scrollIndicators="?attr/sudScrollIndicators"
+ android:importantForAccessibility="no">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sud_layout_content"
+ android:paddingTop="?attr/sudGlifContentPaddingTop"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ <ViewStub
+ android:id="@+id/sud_layout_illustration_progress_stub"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:inflatedId="@+id/sud_layout_progress_illustration"
+ android:layout="@layout/sud_progress_illustration_layout" />
+ </LinearLayout>
+
+ </com.google.android.setupdesign.view.BottomScrollView>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <ViewStub
+ android:id="@+id/suc_layout_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/res/layout/sud_glif_blank_embedded_template_card.xml b/main/res/layout/sud_glif_blank_embedded_template_card.xml
index 89badcd..b8a63d7 100644
--- a/main/res/layout/sud_glif_blank_embedded_template_card.xml
+++ b/main/res/layout/sud_glif_blank_embedded_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_blank_template_card.xml b/main/res/layout/sud_glif_blank_template_card.xml
index eac860d..bb54318 100644
--- a/main/res/layout/sud_glif_blank_template_card.xml
+++ b/main/res/layout/sud_glif_blank_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_embedded_template_card.xml b/main/res/layout/sud_glif_embedded_template_card.xml
index 381cfcb..0662daa 100644
--- a/main/res/layout/sud_glif_embedded_template_card.xml
+++ b/main/res/layout/sud_glif_embedded_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_list_embedded_template_card.xml b/main/res/layout/sud_glif_list_embedded_template_card.xml
index 45e35b3..29a1d21 100644
--- a/main/res/layout/sud_glif_list_embedded_template_card.xml
+++ b/main/res/layout/sud_glif_list_embedded_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_list_template_card.xml b/main/res/layout/sud_glif_list_template_card.xml
index a1e7a36..4b64ee6 100644
--- a/main/res/layout/sud_glif_list_template_card.xml
+++ b/main/res/layout/sud_glif_list_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_recycler_embedded_template_card.xml b/main/res/layout/sud_glif_recycler_embedded_template_card.xml
index 316abb2..97eb4e6 100644
--- a/main/res/layout/sud_glif_recycler_embedded_template_card.xml
+++ b/main/res/layout/sud_glif_recycler_embedded_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_recycler_template_card.xml b/main/res/layout/sud_glif_recycler_template_card.xml
index a76b47e..09f7b20 100644
--- a/main/res/layout/sud_glif_recycler_template_card.xml
+++ b/main/res/layout/sud_glif_recycler_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/layout/sud_glif_template_card.xml b/main/res/layout/sud_glif_template_card.xml
index 0f2f145..5fbb601 100644
--- a/main/res/layout/sud_glif_template_card.xml
+++ b/main/res/layout/sud_glif_template_card.xml
@@ -31,6 +31,7 @@
android:visibility="invisible" />
<com.google.android.setupdesign.view.IntrinsicSizeFrameLayout
+ android:id="@+id/suc_intrinsic_size_layout"
style="@style/SudGlifCardContainer"
android:layout_width="@dimen/sud_glif_card_width"
android:layout_height="wrap_content"
diff --git a/main/res/values-v34/layouts.xml b/main/res/values-v34/layouts.xml
new file mode 100644
index 0000000..fd9fa12
--- /dev/null
+++ b/main/res/values-v34/layouts.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+
+<resources>
+
+ <!-- Layout for supporting force two pane even if it is portrait mode. -->
+ <item name="sud_glif_preference_template_two_pane" type="layout">@layout/sud_glif_preference_template_compact</item>
+
+</resources>
diff --git a/main/res/values-w840dp-v34/layouts.xml b/main/res/values-w840dp-v34/layouts.xml
new file mode 100644
index 0000000..f19e88b
--- /dev/null
+++ b/main/res/values-w840dp-v34/layouts.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2024 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.
+-->
+
+<resources>
+
+ <!-- Layout for supporting force two pane even if it is portrait mode. -->
+ <item name="sud_glif_template_two_pane" type="layout">@layout/sud_glif_template_card_two_pane</item>
+ <item name="sud_glif_list_template_two_pane" type="layout">@layout/sud_glif_list_template_card_two_pane</item>
+ <item name="sud_glif_recycler_template_two_pane" type="layout">@layout/sud_glif_recycler_template_card_two_pane</item>
+ <item name="sud_glif_preference_template_two_pane" type="layout">@layout/sud_glif_preference_template_card_two_pane</item>
+
+</resources>
diff --git a/main/res/values/layouts.xml b/main/res/values/layouts.xml
index 56f227d..7d3bd57 100644
--- a/main/res/values/layouts.xml
+++ b/main/res/values/layouts.xml
@@ -58,4 +58,11 @@
<item name="sud_glif_preference_embedded_template" type="layout">@layout/sud_glif_blank_embedded_template_compact</item>
<item name="sud_glif_recycler_template" type="layout">@layout/sud_glif_recycler_template_compact</item>
<item name="sud_glif_recycler_embedded_template" type="layout">@layout/sud_glif_recycler_embedded_template_compact</item>
+
+ <!-- The sud_glif_template_two_pane resource is same as sud_glif_template for Phone. -->
+ <item name="sud_glif_template_two_pane" type="layout">@layout/sud_glif_template_compact</item>
+ <item name="sud_glif_list_template_two_pane" type="layout">@layout/sud_glif_list_template_compact</item>
+ <item name="sud_glif_preference_template_two_pane" type="layout">@layout/sud_glif_blank_template_compact</item>
+ <item name="sud_glif_recycler_template_two_pane" type="layout">@layout/sud_glif_recycler_template_compact</item>
+
</resources>
diff --git a/main/src/com/google/android/setupdesign/GlifLayout.java b/main/src/com/google/android/setupdesign/GlifLayout.java
index 61d8329..4f565e1 100644
--- a/main/src/com/google/android/setupdesign/GlifLayout.java
+++ b/main/src/com/google/android/setupdesign/GlifLayout.java
@@ -42,6 +42,7 @@ import com.google.android.setupcompat.PartnerCustomizationLayout;
import com.google.android.setupcompat.partnerconfig.PartnerConfig;
import com.google.android.setupcompat.partnerconfig.PartnerConfigHelper;
import com.google.android.setupcompat.template.StatusBarMixin;
+import com.google.android.setupcompat.util.ForceTwoPaneHelper;
import com.google.android.setupdesign.template.DescriptionMixin;
import com.google.android.setupdesign.template.HeaderMixin;
import com.google.android.setupdesign.template.IconMixin;
@@ -289,6 +290,8 @@ public class GlifLayout extends PartnerCustomizationLayout {
// if the activity is embedded should apply an embedded layout.
if (isEmbeddedActivityOnePaneEnabled(getContext())) {
template = R.layout.sud_glif_embedded_template;
+ } else if (ForceTwoPaneHelper.isForceTwoPaneEnable(getContext())) {
+ template = ForceTwoPaneHelper.getForceTwoPaneStyleLayout(getContext(), template);
}
}
diff --git a/main/src/com/google/android/setupdesign/GlifListLayout.java b/main/src/com/google/android/setupdesign/GlifListLayout.java
index 79b905c..5afb334 100644
--- a/main/src/com/google/android/setupdesign/GlifListLayout.java
+++ b/main/src/com/google/android/setupdesign/GlifListLayout.java
@@ -26,6 +26,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
+import com.google.android.setupcompat.util.ForceTwoPaneHelper;
import com.google.android.setupdesign.template.ListMixin;
import com.google.android.setupdesign.template.ListViewScrollHandlingDelegate;
import com.google.android.setupdesign.template.RequireScrollMixin;
@@ -94,6 +95,8 @@ public class GlifListLayout extends GlifLayout {
// if the activity is embedded should apply an embedded layout.
if (isEmbeddedActivityOnePaneEnabled(getContext())) {
template = R.layout.sud_glif_list_embedded_template;
+ } else if (ForceTwoPaneHelper.isForceTwoPaneEnable(getContext())) {
+ template = ForceTwoPaneHelper.getForceTwoPaneStyleLayout(getContext(), template);
}
}
return super.onInflateTemplate(inflater, template);
diff --git a/main/src/com/google/android/setupdesign/GlifPreferenceLayout.java b/main/src/com/google/android/setupdesign/GlifPreferenceLayout.java
index fb10515..d208a67 100644
--- a/main/src/com/google/android/setupdesign/GlifPreferenceLayout.java
+++ b/main/src/com/google/android/setupdesign/GlifPreferenceLayout.java
@@ -23,6 +23,7 @@ import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import com.google.android.setupcompat.util.ForceTwoPaneHelper;
import com.google.android.setupdesign.template.RecyclerMixin;
/**
@@ -102,6 +103,8 @@ public class GlifPreferenceLayout extends GlifRecyclerLayout {
// if the activity is embedded should apply an embedded layout.
if (isEmbeddedActivityOnePaneEnabled(getContext())) {
template = R.layout.sud_glif_preference_embedded_template;
+ } else if (ForceTwoPaneHelper.isForceTwoPaneEnable(getContext())) {
+ template = ForceTwoPaneHelper.getForceTwoPaneStyleLayout(getContext(), template);
}
}
return super.onInflateTemplate(inflater, template);
diff --git a/main/src/com/google/android/setupdesign/GlifRecyclerLayout.java b/main/src/com/google/android/setupdesign/GlifRecyclerLayout.java
index 484ad50..23d4dca 100644
--- a/main/src/com/google/android/setupdesign/GlifRecyclerLayout.java
+++ b/main/src/com/google/android/setupdesign/GlifRecyclerLayout.java
@@ -27,6 +27,7 @@ import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import com.google.android.setupcompat.util.ForceTwoPaneHelper;
import com.google.android.setupdesign.template.RecyclerMixin;
import com.google.android.setupdesign.template.RecyclerViewScrollHandlingDelegate;
import com.google.android.setupdesign.template.RequireScrollMixin;
@@ -95,6 +96,8 @@ public class GlifRecyclerLayout extends GlifLayout {
// if the activity is embedded should apply an embedded layout.
if (isEmbeddedActivityOnePaneEnabled(getContext())) {
template = R.layout.sud_glif_recycler_embedded_template;
+ } else if (ForceTwoPaneHelper.isForceTwoPaneEnable(getContext())) {
+ template = ForceTwoPaneHelper.getForceTwoPaneStyleLayout(getContext(), template);
}
}
return super.onInflateTemplate(inflater, template);