Skip to content

Commit f87451d

Browse files
committed
Update UI to reflect changes in signInSilently and Smart Lock options. Add Credentials Manager checkbox.
1 parent de3f6fe commit f87451d

File tree

8 files changed

+31
-85
lines changed

8 files changed

+31
-85
lines changed

app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java

+2-16
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
141141

142142
mBinding.signIn.setOnClickListener(view -> signIn());
143143

144-
mBinding.signInSilent.setOnClickListener(view -> silentSignIn());
145-
146144
if (ConfigurationUtils.isGoogleMisconfigured(this)
147145
|| ConfigurationUtils.isFacebookMisconfigured(this)) {
148146
showSnackbar(R.string.configuration_required);
@@ -195,9 +193,8 @@ private Intent getSignInIntent(@Nullable String link) {
195193
AuthUI.SignInIntentBuilder builder = getAuthUI().createSignInIntentBuilder()
196194
.setTheme(getSelectedTheme())
197195
.setLogo(getSelectedLogo())
198-
.setAvailableProviders(getSelectedProviders())
199-
.setIsSmartLockEnabled(mBinding.credentialSelectorEnabled.isChecked(),
200-
mBinding.hintSelectorEnabled.isChecked());
196+
.setAvailableProviders(getSelectedProviders());
197+
//.setIsCredentialsManagerEnabled(mBinding.credentialsManagerEnabled.isChecked());
201198

202199
if (mBinding.customLayout.isChecked()) {
203200
AuthMethodPickerLayout customLayout = new AuthMethodPickerLayout
@@ -229,17 +226,6 @@ private Intent getSignInIntent(@Nullable String link) {
229226
return builder.build();
230227
}
231228

232-
public void silentSignIn() {
233-
getAuthUI().silentSignIn(this, getSelectedProviders())
234-
.addOnCompleteListener(this, task -> {
235-
if (task.isSuccessful()) {
236-
startSignedInActivity(null);
237-
} else {
238-
showSnackbar(R.string.sign_in_failed);
239-
}
240-
});
241-
}
242-
243229
@Override
244230
protected void onResume() {
245231
super.onResume();

app/src/main/res/layout/auth_ui_layout.xml

+4-18
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,6 @@
3838
android:layout_marginTop="16dp"
3939
android:text="@string/sign_in_start" />
4040

41-
<Button
42-
android:id="@+id/sign_in_silent"
43-
style="@style/Widget.MaterialComponents.Button"
44-
android:layout_width="wrap_content"
45-
android:layout_height="wrap_content"
46-
android:layout_gravity="center"
47-
android:layout_marginBottom="16dp"
48-
android:text="@string/sign_in_silent" />
49-
5041
<TextView
5142
style="@style/TextAppearance.MaterialComponents.Subtitle1"
5243
android:layout_width="wrap_content"
@@ -314,18 +305,13 @@
314305
android:text="@string/options_header" />
315306

316307
<CheckBox
317-
android:id="@+id/credential_selector_enabled"
318-
android:layout_width="wrap_content"
319-
android:layout_height="wrap_content"
320-
android:checked="true"
321-
android:text="@string/options_enable_credential_selector" />
322-
323-
<CheckBox
324-
android:id="@+id/hint_selector_enabled"
308+
android:id="@+id/credentials_manager_enabled"
325309
android:layout_width="wrap_content"
326310
android:layout_height="wrap_content"
327311
android:checked="true"
328-
android:text="@string/options_enable_hint_selector" />
312+
android:text="@string/options_enable_credentials_manager"
313+
android:visibility="gone"/>
314+
<!-- TODO (hackathon) change visibility when we support CredMan -->
329315

330316
<CheckBox
331317
android:id="@+id/allow_new_email_accounts"

app/src/main/res/values/strings.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
<!-- Auth UI -->
2121
<string name="launch_title">FirebaseUI Auth Demo</string>
2222
<string name="sign_in_start">Start</string>
23-
<string name="sign_in_silent">Sign in silently</string>
2423

2524
<string name="providers_header">Auth providers</string>
2625
<string name="providers_google">Google</string>
@@ -63,8 +62,7 @@
6362
<string name="facebook_permission_photos">Photos</string>
6463

6564
<string name="options_header">Other Options</string>
66-
<string name="options_enable_credential_selector">Enable Smart Lock\'s credential selector</string>
67-
<string name="options_enable_hint_selector">Enable Smart Lock\'s hint selector</string>
65+
<string name="options_enable_credentials_manager">Enable Credentials Manager</string>
6866
<string name="options_allow_new_email_acccount">Allow new account creation</string>
6967
<string name="options_require_name">Require first/last name with email accounts.</string>
7068
<string name="options_use_auth_emulator">Connect to auth emulator (localhost:9099).</string>

auth/src/main/java/com/firebase/ui/auth/AuthUI.java

+7-26
Original file line numberDiff line numberDiff line change
@@ -1264,8 +1264,7 @@ private abstract class AuthIntentBuilder<T extends AuthIntentBuilder> {
12641264
String mPrivacyPolicyUrl;
12651265
boolean mAlwaysShowProviderChoice = false;
12661266
boolean mLockOrientation = false;
1267-
boolean mEnableCredentials = true;
1268-
boolean mEnableHints = true;
1267+
boolean mEnableCredentialsManager = true;
12691268
AuthMethodPickerLayout mAuthMethodPickerLayout = null;
12701269
ActionCodeSettings mPasswordSettings = null;
12711270

@@ -1390,32 +1389,15 @@ public T setDefaultProvider(@Nullable IdpConfig config) {
13901389
}
13911390

13921391
/**
1393-
* Enables or disables the use of Smart Lock for Passwords in the sign in flow. To
1394-
* (en)disable hint selector and credential selector independently use {@link
1395-
* #setIsSmartLockEnabled(boolean, boolean)}
1392+
* Enables or disables the use of Credentials Manager.
13961393
* <p>
1397-
* <p>SmartLock is enabled by default.
1394+
* <p>Credentials Manager is enabled by default.
13981395
*
1399-
* @param enabled enables smartlock's credential selector and hint selector
1396+
* @param enableCredentialsManager enables credential manager
14001397
*/
14011398
@NonNull
1402-
public T setIsSmartLockEnabled(boolean enabled) {
1403-
return setIsSmartLockEnabled(enabled, enabled);
1404-
}
1405-
1406-
/**
1407-
* Enables or disables the use of Smart Lock for Passwords credential selector and hint
1408-
* selector.
1409-
* <p>
1410-
* <p>Both selectors are enabled by default.
1411-
*
1412-
* @param enableCredentials enables credential selector before signup
1413-
* @param enableHints enable hint selector in respective signup screens
1414-
*/
1415-
@NonNull
1416-
public T setIsSmartLockEnabled(boolean enableCredentials, boolean enableHints) {
1417-
mEnableCredentials = enableCredentials;
1418-
mEnableHints = enableHints;
1399+
public T setIsCredentialsManagerEnabled(boolean enableCredentialsManager) {
1400+
mEnableCredentialsManager = enableCredentialsManager;
14191401
return (T) this;
14201402
}
14211403

@@ -1547,8 +1529,7 @@ protected FlowParameters getFlowParams() {
15471529
mLogo,
15481530
mTosUrl,
15491531
mPrivacyPolicyUrl,
1550-
mEnableCredentials,
1551-
mEnableHints,
1532+
mEnableCredentialsManager,
15521533
mEnableAnonymousUpgrade,
15531534
mAlwaysShowProviderChoice,
15541535
mLockOrientation,

auth/src/main/java/com/firebase/ui/auth/data/model/FlowParameters.java

+6-13
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ public FlowParameters createFromParcel(Parcel in) {
5252
int logoId = in.readInt();
5353
String termsOfServiceUrl = in.readString();
5454
String privacyPolicyUrl = in.readString();
55-
boolean enableCredentials = in.readInt() != 0;
56-
boolean enableHints = in.readInt() != 0;
55+
boolean enableCredentialsManager = in.readInt() != 0;
5756
boolean enableAnonymousUpgrade = in.readInt() != 0;
5857
boolean alwaysShowProviderChoice = in.readInt() != 0;
5958
boolean lockOrientation = in.readInt() != 0;
@@ -69,8 +68,7 @@ public FlowParameters createFromParcel(Parcel in) {
6968
logoId,
7069
termsOfServiceUrl,
7170
privacyPolicyUrl,
72-
enableCredentials,
73-
enableHints,
71+
enableCredentialsManager,
7472
enableAnonymousUpgrade,
7573
alwaysShowProviderChoice,
7674
lockOrientation,
@@ -112,8 +110,7 @@ public FlowParameters[] newArray(int size) {
112110
@Nullable
113111
public final ActionCodeSettings passwordResetSettings;
114112

115-
public final boolean enableCredentials;
116-
public final boolean enableHints;
113+
public final boolean enableCredentialsManager;
117114
public final boolean enableAnonymousUpgrade;
118115
public final boolean alwaysShowProviderChoice;
119116
public final boolean lockOrientation;
@@ -130,7 +127,6 @@ public FlowParameters(
130127
@Nullable String termsOfServiceUrl,
131128
@Nullable String privacyPolicyUrl,
132129
boolean enableCredentials,
133-
boolean enableHints,
134130
boolean enableAnonymousUpgrade,
135131
boolean alwaysShowProviderChoice,
136132
boolean lockOrientation,
@@ -145,8 +141,7 @@ public FlowParameters(
145141
this.logoId = logoId;
146142
this.termsOfServiceUrl = termsOfServiceUrl;
147143
this.privacyPolicyUrl = privacyPolicyUrl;
148-
this.enableCredentials = enableCredentials;
149-
this.enableHints = enableHints;
144+
this.enableCredentialsManager = enableCredentials;
150145
this.enableAnonymousUpgrade = enableAnonymousUpgrade;
151146
this.alwaysShowProviderChoice = alwaysShowProviderChoice;
152147
this.lockOrientation = lockOrientation;
@@ -171,8 +166,7 @@ public void writeToParcel(Parcel dest, int flags) {
171166
dest.writeInt(logoId);
172167
dest.writeString(termsOfServiceUrl);
173168
dest.writeString(privacyPolicyUrl);
174-
dest.writeInt(enableCredentials ? 1 : 0);
175-
dest.writeInt(enableHints ? 1 : 0);
169+
dest.writeInt(enableCredentialsManager ? 1 : 0);
176170
dest.writeInt(enableAnonymousUpgrade ? 1 : 0);
177171
dest.writeInt(alwaysShowProviderChoice ? 1 : 0);
178172
dest.writeInt(lockOrientation ? 1 : 0);
@@ -205,8 +199,7 @@ public boolean isAnonymousUpgradeEnabled() {
205199
public boolean isPlayServicesRequired() {
206200
// Play services only required for Google Sign In and the Credentials API
207201
return isProviderEnabled(GoogleAuthProvider.PROVIDER_ID)
208-
|| enableHints
209-
|| enableCredentials;
202+
|| enableCredentialsManager;
210203
}
211204

212205
public boolean isProviderEnabled(@AuthUI.SupportedProvider String provider) {

auth/src/main/java/com/firebase/ui/auth/ui/email/CheckEmailFragment.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,10 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
9090

9191
ImeHelper.setImeOnDoneListener(mEmailEditText, this);
9292

93-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && getFlowParams().enableHints) {
94-
mEmailEditText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
95-
}
93+
// TODO(hackathon): figure out if we want to have autofill or not.
94+
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && getFlowParams().enableHints) {
95+
// mEmailEditText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
96+
// }
9697

9798
mNextButton.setOnClickListener(this);
9899

@@ -170,7 +171,7 @@ protected void onFailure(@NonNull Exception e) {
170171
if (!TextUtils.isEmpty(email)) {
171172
mEmailEditText.setText(email);
172173
validateAndProceed();
173-
} else if (getFlowParams().enableHints) {
174+
} else if (getFlowParams().enableCredentialsManager) {
174175
// TODO(hackathon): Fetch credential
175176
// mHandler.fetchCredential();
176177
}

auth/src/main/java/com/firebase/ui/auth/ui/email/RegisterEmailFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
171171
// Only show the name field if required
172172
nameInput.setVisibility(requireName ? View.VISIBLE : View.GONE);
173173

174-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && getFlowParams().enableCredentials) {
174+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && getFlowParams().enableCredentialsManager) {
175175
mEmailEditText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
176176
}
177177

auth/src/main/java/com/firebase/ui/auth/ui/phone/CheckPhoneNumberFragment.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,10 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
8989

9090
mSmsTermsText.setText(getString(R.string.fui_sms_terms_of_service,
9191
getString(R.string.fui_verify_phone_number)));
92-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && getFlowParams().enableHints) {
93-
mPhoneEditText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
94-
}
92+
// TODO(hackathon): figure out if we want to have autofill or not.
93+
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && getFlowParams().enableHints) {
94+
// mPhoneEditText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
95+
// }
9596
requireActivity().setTitle(getString(R.string.fui_verify_phone_number_title));
9697

9798
ImeHelper.setImeOnDoneListener(mPhoneEditText, () -> onNext());
@@ -234,7 +235,7 @@ private void setDefaultCountryForSpinner() {
234235
"",
235236
countryIso,
236237
String.valueOf(PhoneNumberUtils.getCountryCode(countryIso))));
237-
} else if (getFlowParams().enableHints) {
238+
} else if (getFlowParams().enableCredentialsManager) {
238239
// TODO(hackathon): fetch user credential
239240
// mCheckPhoneHandler.fetchCredential();
240241
}

0 commit comments

Comments
 (0)