Skip to content

Commit 8a4bb24

Browse files
SUPERCILEXsamtstern
authored andcommitted
Fix broken picker layout on small screens (#711)
1 parent 38b151f commit 8a4bb24

File tree

8 files changed

+74
-58
lines changed

8 files changed

+74
-58
lines changed

auth/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ android {
4545
dependencies {
4646
compile "com.android.support:design:$supportLibraryVersion"
4747
compile "com.android.support:customtabs:$supportLibraryVersion"
48+
compile 'com.android.support.constraint:constraint-layout:1.1.0-beta1'
4849

4950
compile "com.google.firebase:firebase-auth:$firebaseVersion"
5051
compile "com.google.android.gms:play-services-auth:$firebaseVersion"

auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import android.os.Bundle;
2020
import android.support.annotation.Nullable;
2121
import android.support.annotation.RestrictTo;
22+
import android.support.constraint.ConstraintLayout;
23+
import android.support.constraint.ConstraintSet;
2224
import android.util.Log;
2325
import android.view.View;
2426
import android.view.ViewGroup;
@@ -79,7 +81,14 @@ protected void onCreate(Bundle savedInstanceState) {
7981

8082
int logoId = getFlowParams().logoId;
8183
if (logoId == AuthUI.NO_LOGO) {
82-
findViewById(R.id.logo_layout).setVisibility(View.GONE);
84+
findViewById(R.id.logo).setVisibility(View.GONE);
85+
86+
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.root);
87+
ConstraintSet constraints = new ConstraintSet();
88+
constraints.clone(layout);
89+
constraints.setHorizontalBias(R.id.container, 0.5f);
90+
constraints.setVerticalBias(R.id.container, 0.5f);
91+
constraints.applyTo(layout);
8392
} else {
8493
ImageView logo = (ImageView) findViewById(R.id.logo);
8594
logo.setImageResource(logoId);
Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<LinearLayout
2+
<android.support.constraint.ConstraintLayout
33
xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto"
5+
xmlns:tools="http://schemas.android.com/tools"
6+
android:id="@+id/root"
47
android:layout_width="match_parent"
58
android:layout_height="match_parent"
6-
android:baselineAligned="false"
79
android:clipChildren="false"
8-
android:clipToPadding="false"
9-
android:gravity="center|bottom"
10-
android:orientation="horizontal">
10+
android:clipToPadding="false">
1111

12-
<include
13-
layout="@layout/fui_include_auth_method_picker_logo"
14-
android:layout_width="0dp"
15-
android:layout_height="match_parent"
16-
android:layout_weight="1.0" />
17-
18-
<FrameLayout
19-
android:layout_width="0dp"
20-
android:layout_height="match_parent"
21-
android:layout_weight="1.0">
12+
<ImageView
13+
android:id="@+id/logo"
14+
style="@style/FirebaseUI.AuthMethodPicker.Logo"
15+
app:layout_constraintLeft_toLeftOf="parent"
16+
app:layout_constraintRight_toLeftOf="@+id/container"
17+
app:layout_constraintTop_toTopOf="parent"
18+
app:layout_constraintBottom_toBottomOf="parent"
19+
tools:ignore="ContentDescription" /> <!-- TODO remove once the bug is fixed: https://issuetracker.google.com/issues/38281866-->
2220

21+
<ScrollView
22+
android:id="@+id/container"
23+
android:layout_width="wrap_content"
24+
android:layout_height="wrap_content"
25+
app:layout_constraintLeft_toLeftOf="parent"
26+
app:layout_constraintRight_toRightOf="parent"
27+
app:layout_constraintTop_toTopOf="parent"
28+
app:layout_constraintBottom_toBottomOf="parent"
29+
app:layout_constraintHorizontal_bias="0.9">
2330

2431
<LinearLayout
2532
android:id="@+id/btn_holder"
26-
style="@style/FirebaseUI.AuthMethodPicker.ButtonHolder"
27-
android:layout_height="wrap_content"
28-
android:layout_gravity="center"
29-
android:paddingTop="@dimen/fui_auth_method_button_marginBottom" />
33+
style="@style/FirebaseUI.AuthMethodPicker.ButtonHolder" />
3034

31-
</FrameLayout>
35+
</ScrollView>
3236

33-
</LinearLayout>
37+
</android.support.constraint.ConstraintLayout>
Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,37 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<LinearLayout
2+
<android.support.constraint.ConstraintLayout
33
xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto"
5+
xmlns:tools="http://schemas.android.com/tools"
6+
android:id="@+id/root"
47
android:layout_width="match_parent"
58
android:layout_height="match_parent"
69
android:clipChildren="false"
7-
android:clipToPadding="false"
8-
android:gravity="center|bottom"
9-
android:orientation="vertical">
10+
android:clipToPadding="false">
1011

11-
<include layout="@layout/fui_include_auth_method_picker_logo" />
12+
<ImageView
13+
android:id="@+id/logo"
14+
style="@style/FirebaseUI.AuthMethodPicker.Logo"
15+
app:layout_constraintLeft_toLeftOf="parent"
16+
app:layout_constraintRight_toRightOf="parent"
17+
app:layout_constraintTop_toTopOf="parent"
18+
app:layout_constraintBottom_toTopOf="@+id/container"
19+
tools:ignore="ContentDescription" /> <!-- TODO remove once the bug is fixed: https://issuetracker.google.com/issues/38281866-->
1220

13-
<LinearLayout
14-
android:id="@+id/btn_holder"
15-
style="@style/FirebaseUI.AuthMethodPicker.ButtonHolder.Portrait"
16-
android:layout_height="wrap_content" />
21+
<ScrollView
22+
android:id="@+id/container"
23+
android:layout_width="wrap_content"
24+
android:layout_height="wrap_content"
25+
app:layout_constraintLeft_toLeftOf="parent"
26+
app:layout_constraintRight_toRightOf="parent"
27+
app:layout_constraintTop_toTopOf="parent"
28+
app:layout_constraintBottom_toBottomOf="parent"
29+
app:layout_constraintVertical_bias="0.9">
1730

18-
</LinearLayout>
31+
<LinearLayout
32+
android:id="@+id/btn_holder"
33+
style="@style/FirebaseUI.AuthMethodPicker.ButtonHolder" />
34+
35+
</ScrollView>
36+
37+
</android.support.constraint.ConstraintLayout>

auth/src/main/res/layout/fui_include_auth_method_picker_logo.xml

Lines changed: 0 additions & 15 deletions
This file was deleted.

auth/src/main/res/values-sw360dp/dimens.xml

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
33
<dimen name="fui_auth_method_button_width">228dp</dimen>
4-
<dimen name="fui_auth_method_button_marginBottom">24dp</dimen>
4+
<dimen name="fui_auth_method_button_margin">12dp</dimen>
55
<dimen name="fui_auth_method_button_drawablePadding">20dp</dimen>
66

77
<dimen name="fui_body_padding_bottom">16dp</dimen>

auth/src/main/res/values/dimens.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
33
<dimen name="fui_auth_method_button_width">208dp</dimen>
4-
<dimen name="fui_auth_method_button_marginBottom">8dp</dimen>
4+
<dimen name="fui_auth_method_button_margin">4dp</dimen>
55
<dimen name="fui_auth_method_button_drawablePadding">12dp</dimen>
66

77
<dimen name="fui_body_padding_bottom">12dp</dimen>

auth/src/main/res/values/styles.xml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -167,22 +167,20 @@
167167

168168
<style name="FirebaseUI.AuthMethodPicker.Logo">
169169
<item name="android:layout_width">wrap_content</item>
170-
<item name="android:layout_height">wrap_content</item>
171-
<item name="android:layout_gravity">center</item>
170+
<item name="android:layout_height">0dp</item>
171+
<item name="android:contentDescription">@string/fui_accessibility_logo</item>
172172
</style>
173173

174174
<style name="FirebaseUI.AuthMethodPicker.ButtonHolder">
175-
<item name="android:layout_width">@dimen/fui_auth_method_button_width</item>
175+
<item name="android:layout_width">wrap_content</item>
176+
<item name="android:layout_height">wrap_content</item>
177+
<item name="android:minWidth">@dimen/fui_auth_method_button_width</item>
176178
<item name="android:orientation">vertical</item>
177179
<item name="android:clipToPadding">false</item>
178180
<item name="android:paddingLeft">4dp</item>
179181
<item name="android:paddingRight">4dp</item>
180182
</style>
181183

182-
<style name="FirebaseUI.AuthMethodPicker.ButtonHolder.Portrait" parent="FirebaseUI.AuthMethodPicker.ButtonHolder">
183-
<item name="android:paddingBottom">56dp</item>
184-
</style>
185-
186184
<style name="FirebaseUI.Button.AccountChooser">
187185
<item name="android:layout_width">match_parent</item>
188186
<item name="android:layout_height">wrap_content</item>
@@ -191,8 +189,8 @@
191189
<item name="android:textStyle">bold</item>
192190
<item name="android:paddingLeft">12dp</item>
193191
<item name="android:paddingRight">12dp</item>
194-
<item name="android:layout_marginBottom">@dimen/fui_auth_method_button_marginBottom</item>
195-
<item name="android:layout_gravity">left</item>
192+
<item name="android:layout_marginTop">@dimen/fui_auth_method_button_margin</item>
193+
<item name="android:layout_marginBottom">@dimen/fui_auth_method_button_margin</item>
196194
<item name="android:gravity">left|center_vertical</item>
197195
<item name="android:typeface">normal</item>
198196
<item name="android:foreground">?android:attr/selectableItemBackground</item>

0 commit comments

Comments
 (0)