From 3f7db0273d1929d280084981b88d94f016e5d655 Mon Sep 17 00:00:00 2001 From: Vivek Maskara Date: Fri, 11 Oct 2019 23:35:43 +0530 Subject: [PATCH] Fix 2FA login --- app/build.gradle | 2 +- .../free/nrw/commons/auth/LoginActivity.java | 39 ++++++++++++------- .../main/res/layout-land/activity_login.xml | 2 +- .../main/res/layout-xlarge/activity_login.xml | 2 +- app/src/main/res/layout/activity_login.xml | 2 +- 5 files changed, 28 insertions(+), 19 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0e8ab7a8f4..f0f59549a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,7 +30,7 @@ dependencies { implementation 'com.facebook.fresco:fresco:1.13.0' implementation 'com.drewnoakes:metadata-extractor:2.11.0' implementation 'org.apache.commons:commons-lang3:3.8.1' - implementation 'com.github.maskaravivek:wikimedia-android-data-client:v0.0.27' + implementation 'com.github.maskaravivek:wikimedia-android-data-client:v0.0.28' // UI implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar' diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index 27b3f4f1c4..6fb11edbe2 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -1,10 +1,5 @@ package fr.free.nrw.commons.auth; -import static android.view.KeyEvent.KEYCODE_ENTER; -import static android.view.View.VISIBLE; -import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE; -import static fr.free.nrw.commons.di.NetworkingModule.NAMED_COMMONS_WIKI_SITE; - import android.accounts.AccountAuthenticatorActivity; import android.app.ProgressDialog; import android.content.Context; @@ -18,9 +13,11 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; + import androidx.annotation.ColorRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -29,12 +26,25 @@ import androidx.appcompat.app.AppCompatDelegate; import androidx.core.app.NavUtils; import androidx.core.content.ContextCompat; + +import com.google.android.material.textfield.TextInputLayout; + +import org.wikipedia.AppAdapter; +import org.wikipedia.dataclient.ServiceFactory; +import org.wikipedia.dataclient.WikiSite; +import org.wikipedia.dataclient.mwapi.MwQueryResponse; +import org.wikipedia.login.LoginClient; +import org.wikipedia.login.LoginClient.LoginCallback; +import org.wikipedia.login.LoginResult; + +import javax.inject.Inject; +import javax.inject.Named; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.OnEditorAction; import butterknife.OnFocusChange; -import com.google.android.material.textfield.TextInputLayout; import fr.free.nrw.commons.BuildConfig; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; @@ -47,20 +57,16 @@ import fr.free.nrw.commons.utils.ConfigUtils; import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.disposables.CompositeDisposable; -import javax.inject.Inject; -import javax.inject.Named; -import org.wikipedia.AppAdapter; -import org.wikipedia.dataclient.ServiceFactory; -import org.wikipedia.dataclient.WikiSite; -import org.wikipedia.dataclient.mwapi.MwQueryResponse; -import org.wikipedia.login.LoginClient; -import org.wikipedia.login.LoginClient.LoginCallback; -import org.wikipedia.login.LoginResult; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; import timber.log.Timber; +import static android.view.KeyEvent.KEYCODE_ENTER; +import static android.view.View.VISIBLE; +import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE; +import static fr.free.nrw.commons.di.NetworkingModule.NAMED_COMMONS_WIKI_SITE; + public class LoginActivity extends AccountAuthenticatorActivity { @Inject @@ -383,6 +389,9 @@ public void askUserForTwoFactorAuth() { progressDialog.dismiss(); twoFactorContainer.setVisibility(VISIBLE); twoFactorEdit.setVisibility(VISIBLE); + twoFactorEdit.requestFocus(); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); showMessageAndCancelDialog(R.string.login_failed_2fa_needed); } diff --git a/app/src/main/res/layout-land/activity_login.xml b/app/src/main/res/layout-land/activity_login.xml index b9dadb5280..f322e4ce40 100644 --- a/app/src/main/res/layout-land/activity_login.xml +++ b/app/src/main/res/layout-land/activity_login.xml @@ -150,7 +150,7 @@ android:layout_height="wrap_content" android:hint="@string/_2fa_code" android:imeOptions="flagNoExtractUi" - android:inputType="textNoSuggestions" + android:inputType="number" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/main/res/layout-xlarge/activity_login.xml b/app/src/main/res/layout-xlarge/activity_login.xml index 4aa316e6a1..0a445c80ea 100644 --- a/app/src/main/res/layout-xlarge/activity_login.xml +++ b/app/src/main/res/layout-xlarge/activity_login.xml @@ -151,7 +151,7 @@ android:layout_height="wrap_content" android:hint="@string/_2fa_code" android:imeOptions="flagNoExtractUi" - android:inputType="textNoSuggestions" + android:inputType="number" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index b55e88a106..cf351b4ef9 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -156,7 +156,7 @@ android:layout_height="wrap_content" android:hint="@string/_2fa_code" android:imeOptions="flagNoExtractUi" - android:inputType="textNoSuggestions" + android:inputType="number" android:visibility="gone" tools:visibility="visible" />