Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,51 +14,56 @@

package com.firebase.ui.auth.ui.phone;

import android.app.ProgressDialog;
import android.content.Context;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.firebase.ui.auth.R;

public final class CompletableProgressDialog extends ProgressDialog {
public final class CompletableProgressDialog extends DialogFragment {
private static final String TAG = "ComProgressDialog";

private ProgressBar mProgress;
private TextView mMessageView;
@VisibleForTesting TextView mMessageView;
private CharSequence mMessage;
private ImageView mSuccessImage;

public CompletableProgressDialog(Context context) {
super(context);
}

public CompletableProgressDialog(Context context, int theme) {
super(context, theme);
public static CompletableProgressDialog show(FragmentManager manager) {
CompletableProgressDialog dialog = new CompletableProgressDialog();
dialog.show(manager, TAG);
return dialog;
}

@NonNull
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fui_phone_progress_dialog);
public Dialog onCreateDialog(Bundle savedInstanceState) {
View rootView = View.inflate(getContext(), R.layout.fui_phone_progress_dialog, null);

mProgress = (ProgressBar) findViewById(R.id.progress_bar);
mMessageView = (TextView) findViewById(R.id.progress_msg);
mSuccessImage = (ImageView) findViewById(R.id.progress_success_imaage);
mProgress = (ProgressBar) rootView.findViewById(R.id.progress_bar);
mMessageView = (TextView) rootView.findViewById(R.id.progress_msg);
mSuccessImage = (ImageView) rootView.findViewById(R.id.progress_success_imaage);

if (mMessage != null) {
setMessage(mMessage);
}

return new AlertDialog.Builder(getContext()).setView(rootView).create();
}

public void complete(String msg) {
public void onComplete(String msg) {
setMessage(msg);
mProgress.setVisibility(View.GONE);
mSuccessImage.setVisibility(View.VISIBLE);
}

@Override
public void setMessage(CharSequence message) {
if (mProgress != null) {
mMessageView.setText(message);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private enum VerificationState {
private static final String KEY_STATE = "KEY_STATE";

private AlertDialog mAlertDialog;
private CompletableProgressDialog mProgressDialog;
@VisibleForTesting CompletableProgressDialog mProgressDialog;
private Handler mHandler;
private String mPhoneNumber;
private String mVerificationId;
Expand Down Expand Up @@ -371,21 +371,18 @@ public void onClick(DialogInterface dialog, int which) {

private void completeLoadingDialog(String content) {
if (mProgressDialog != null) {
mProgressDialog.complete(content);
mProgressDialog.onComplete(content);
}
}

private void showLoadingDialog(String message) {
dismissLoadingDialog();

if (mProgressDialog == null) {
mProgressDialog = new CompletableProgressDialog(this);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setTitle("");
mProgressDialog = CompletableProgressDialog.show(getSupportFragmentManager());
}

mProgressDialog.setMessage(message);
mProgressDialog.show();
}

private void dismissLoadingDialog() {
Expand Down
68 changes: 27 additions & 41 deletions auth/src/main/res/layout/fui_phone_progress_dialog.xml
Original file line number Diff line number Diff line change
@@ -1,47 +1,33 @@
<merge
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">

<LinearLayout
android:id="@+id/dgts_body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="8dip"
android:paddingEnd="8dip"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:baselineAligned="false"
android:orientation="horizontal"
tools:ignore="UnusedIds">

<ProgressBar
android:id="@+id/progress_bar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dip"
android:max="10000" />
<ProgressBar
android:id="@+id/progress_bar"
style="@style/Base.Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dp"
android:max="10000" />

<ImageView
android:id="@+id/progress_success_imaage"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dip"
android:contentDescription="@string/fui_done"
android:max="10000"
android:src="@drawable/fui_done_check_mark"
android:visibility="gone" />
<ImageView
android:id="@+id/progress_success_imaage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dp"
android:contentDescription="@string/fui_done"
android:max="10000"
android:src="@drawable/fui_done_check_mark"
android:visibility="gone" />

<TextView
android:id="@+id/progress_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
tools:ignore="SelectableText" />

</LinearLayout>
<TextView
android:id="@+id/progress_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textIsSelectable="false" />

</merge>
</LinearLayout>
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

package com.firebase.ui.auth.ui.phone;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
Expand Down Expand Up @@ -48,7 +47,6 @@
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowLooper;

import java.util.Collections;
Expand All @@ -70,7 +68,6 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.robolectric.Shadows.shadowOf;

@RunWith(CustomRobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 25)
Expand Down Expand Up @@ -155,10 +152,10 @@ public void testVerifyPhoneNumberInvalidPhoneException_showsInlineError() {
reset(AuthHelperShadow.sPhoneAuthProvider);

mActivity.verifyPhoneNumber(PHONE, false);
AlertDialog alert = ShadowAlertDialog.getLatestAlertDialog();
ShadowAlertDialog sAlert = shadowOf(alert);
//was dialog displayed
assertEquals(mActivity.getString(R.string.fui_verifying), sAlert.getMessage());
assertEquals(
mActivity.getString(R.string.fui_verifying),
mActivity.mProgressDialog.mMessageView.getText());

//was upstream method invoked
verify(AuthHelperShadow.sPhoneAuthProvider).verifyPhoneNumber(
Expand Down