Skip to content

Commit 704df98

Browse files
committed
AuthMethodPicker
Change-Id: Ia02bdc186239fe32e804f37ac2c3c74ea715dd14
1 parent 526529c commit 704df98

File tree

8 files changed

+55
-16
lines changed

8 files changed

+55
-16
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ protected void onCreate(@Nullable final Bundle savedInstanceState) {
3131
super.onCreate(savedInstanceState);
3232
mKickstarter = ViewModelProviders.of(this).get(SignInKickstarter.class);
3333
mKickstarter.init(getFlowParams());
34-
mKickstarter.getOperation().observe(this, new ResourceObserver<IdpResponse>(
35-
this, R.string.fui_progress_dialog_loading) {
34+
mKickstarter.getOperation().observe(this, new ResourceObserver<IdpResponse>(this) {
3635
@Override
3736
protected void onSuccess(@NonNull IdpResponse response) {
3837
finish(RESULT_OK, response.toIntent());

auth/src/main/java/com/firebase/ui/auth/ui/credentials/CredentialSaveActivity.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import android.util.Log;
1010

1111
import com.firebase.ui.auth.IdpResponse;
12-
import com.firebase.ui.auth.R;
1312
import com.firebase.ui.auth.data.model.FlowParameters;
1413
import com.firebase.ui.auth.data.model.Resource;
1514
import com.firebase.ui.auth.ui.InvisibleActivityBase;
@@ -47,8 +46,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4746
mHandler.init(getFlowParams());
4847
mHandler.setResponse(response);
4948

50-
mHandler.getOperation().observe(this, new ResourceObserver<IdpResponse>(
51-
this, R.string.fui_progress_dialog_loading) {
49+
mHandler.getOperation().observe(this, new ResourceObserver<IdpResponse>(this) {
5250
@Override
5351
protected void onSuccess(@NonNull IdpResponse response) {
5452
finish(RESULT_OK, response.toIntent());

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

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import android.view.View;
2929
import android.view.ViewGroup;
3030
import android.widget.ImageView;
31+
import android.widget.ProgressBar;
3132
import android.widget.Toast;
3233

3334
import com.firebase.ui.auth.AuthUI;
@@ -57,9 +58,13 @@
5758
/** Presents the list of authentication options for this app to the user. */
5859
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
5960
public class AuthMethodPickerActivity extends AppCompatBase {
61+
6062
private SocialProviderResponseHandler mHandler;
6163
private List<ProviderSignInBase<?>> mProviders;
6264

65+
private ProgressBar mProgressBar;
66+
private ViewGroup mProviderHolder;
67+
6368
public static Intent createIntent(Context context, FlowParameters flowParams) {
6469
return createBaseIntent(context, AuthMethodPickerActivity.class, flowParams);
6570
}
@@ -69,6 +74,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
6974
super.onCreate(savedInstanceState);
7075
setContentView(R.layout.fui_auth_method_picker_layout);
7176

77+
mProgressBar = findViewById(R.id.top_progress_bar);
78+
mProviderHolder = findViewById(R.id.btn_holder);
79+
7280
FlowParameters params = getFlowParams();
7381
mHandler = ViewModelProviders.of(this).get(SocialProviderResponseHandler.class);
7482
mHandler.init(params);
@@ -111,7 +119,6 @@ protected void onFailure(@NonNull Exception e) {
111119
private void populateIdpList(List<IdpConfig> providerConfigs,
112120
final SocialProviderResponseHandler handler) {
113121
ViewModelProvider supplier = ViewModelProviders.of(this);
114-
ViewGroup providerHolder = findViewById(R.id.btn_holder);
115122

116123
mProviders = new ArrayList<>();
117124
for (IdpConfig idpConfig : providerConfigs) {
@@ -158,8 +165,7 @@ private void populateIdpList(List<IdpConfig> providerConfigs,
158165
}
159166
mProviders.add(provider);
160167

161-
provider.getOperation().observe(this, new ResourceObserver<IdpResponse>(
162-
this, R.string.fui_progress_dialog_loading) {
168+
provider.getOperation().observe(this, new ResourceObserver<IdpResponse>(this) {
163169
@Override
164170
protected void onSuccess(@NonNull IdpResponse response) {
165171
handleResponse(response);
@@ -186,14 +192,14 @@ private void handleResponse(@NonNull IdpResponse response) {
186192
}
187193
});
188194

189-
View loginButton = getLayoutInflater().inflate(buttonLayout, providerHolder, false);
195+
View loginButton = getLayoutInflater().inflate(buttonLayout, mProviderHolder, false);
190196
loginButton.setOnClickListener(new View.OnClickListener() {
191197
@Override
192198
public void onClick(View view) {
193199
provider.startSignIn(AuthMethodPickerActivity.this);
194200
}
195201
});
196-
providerHolder.addView(loginButton);
202+
mProviderHolder.addView(loginButton);
197203
}
198204
}
199205

@@ -205,4 +211,24 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
205211
provider.onActivityResult(requestCode, resultCode, data);
206212
}
207213
}
214+
215+
@Override
216+
public void showProgress(int message) {
217+
mProgressBar.setVisibility(View.VISIBLE);
218+
for (int i = 0; i < mProviderHolder.getChildCount(); i++) {
219+
View child = mProviderHolder.getChildAt(i);
220+
child.setEnabled(false);
221+
child.setAlpha(0.75f);
222+
}
223+
}
224+
225+
@Override
226+
public void hideProgress() {
227+
mProgressBar.setVisibility(View.INVISIBLE);
228+
for (int i = 0; i < mProviderHolder.getChildCount(); i++) {
229+
View child = mProviderHolder.getChildAt(i);
230+
child.setEnabled(true);
231+
child.setAlpha(1.0f);
232+
}
233+
}
208234
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
7979
throw new IllegalStateException("Invalid provider id: " + provider);
8080
}
8181

82-
mProvider.getOperation().observe(this, new ResourceObserver<IdpResponse>(
83-
this, R.string.fui_progress_dialog_loading) {
82+
mProvider.getOperation().observe(this, new ResourceObserver<IdpResponse>(this) {
8483
@Override
8584
protected void onSuccess(@NonNull IdpResponse response) {
8685
mHandler.startSignIn(response);

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
130130
throw new IllegalStateException("Invalid provider id: " + providerId);
131131
}
132132

133-
mProvider.getOperation().observe(this, new ResourceObserver<IdpResponse>(
134-
this, R.string.fui_progress_dialog_loading) {
133+
mProvider.getOperation().observe(this, new ResourceObserver<IdpResponse>(this) {
135134
@Override
136135
protected void onSuccess(@NonNull IdpResponse response) {
137136
handler.startSignIn(response);
@@ -155,8 +154,7 @@ public void onClick(View view) {
155154
}
156155
});
157156

158-
handler.getOperation().observe(this, new ResourceObserver<IdpResponse>(
159-
this, R.string.fui_progress_dialog_loading) {
157+
handler.getOperation().observe(this, new ResourceObserver<IdpResponse>(this) {
160158
@Override
161159
protected void onSuccess(@NonNull IdpResponse response) {
162160
finish(RESULT_OK, response.toIntent());

auth/src/main/java/com/firebase/ui/auth/viewmodel/ResourceObserver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.support.annotation.RestrictTo;
66
import android.support.annotation.StringRes;
77

8+
import com.firebase.ui.auth.R;
89
import com.firebase.ui.auth.data.model.Resource;
910
import com.firebase.ui.auth.data.model.State;
1011
import com.firebase.ui.auth.ui.FragmentBase;
@@ -20,6 +21,10 @@ public abstract class ResourceObserver<T> implements Observer<Resource<T>> {
2021
private final FragmentBase mFragment;
2122
private final int mLoadingMessage;
2223

24+
protected ResourceObserver(@NonNull HelperActivityBase activity) {
25+
this(activity, null, activity, R.string.fui_progress_dialog_loading);
26+
}
27+
2328
protected ResourceObserver(@NonNull HelperActivityBase activity, @StringRes int message) {
2429
this(activity, null, activity, message);
2530
}

auth/src/main/res/layout-land/fui_auth_method_picker_layout.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@
99
android:clipChildren="false"
1010
android:clipToPadding="false">
1111

12+
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
13+
android:id="@+id/top_progress_bar"
14+
style="@style/FirebaseUI.TopProgressBar"
15+
android:visibility="invisible"
16+
app:layout_constraintTop_toTopOf="parent"
17+
tools:visibility="visible"/>
18+
1219
<ImageView
1320
android:id="@+id/logo"
1421
style="@style/FirebaseUI.AuthMethodPicker.Logo"

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@
99
android:clipChildren="false"
1010
android:clipToPadding="false">
1111

12+
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
13+
android:id="@+id/top_progress_bar"
14+
style="@style/FirebaseUI.TopProgressBar"
15+
android:visibility="invisible"
16+
app:layout_constraintTop_toTopOf="parent"
17+
tools:visibility="visible"/>
18+
1219
<ImageView
1320
android:id="@+id/logo"
1421
style="@style/FirebaseUI.AuthMethodPicker.Logo"

0 commit comments

Comments
 (0)