From 64db7014989fa23e42804171ba52b3b197fe172c Mon Sep 17 00:00:00 2001 From: jendib Date: Thu, 14 Apr 2016 00:37:01 +0200 Subject: [PATCH] Closes #84: Android: Ask a validation code on login --- docs-android/app/app.iml | 45 +++++++++++++------ docs-android/app/build.gradle | 10 ++--- .../sismics/docs/activity/LoginActivity.java | 9 +++- .../sismics/docs/resource/UserResource.java | 3 +- .../src/main/res/layout/login_activity.xml | 11 +++++ .../app/src/main/res/values/strings.xml | 1 + 6 files changed, 59 insertions(+), 20 deletions(-) diff --git a/docs-android/app/app.iml b/docs-android/app/app.iml index e93ef14d..df2c2c6f 100644 --- a/docs-android/app/app.iml +++ b/docs-android/app/app.iml @@ -47,6 +47,7 @@ + @@ -54,6 +55,7 @@ + @@ -61,6 +63,7 @@ + @@ -68,6 +71,7 @@ + @@ -75,41 +79,56 @@ + + - - - - - - + + + + + + + + + + + + + + + + + + + - + + - - - - + + + - - + + \ No newline at end of file diff --git a/docs-android/app/build.gradle b/docs-android/app/build.gradle index f5b2f334..b99a5b46 100644 --- a/docs-android/app/build.gradle +++ b/docs-android/app/build.gradle @@ -3,7 +3,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0-alpha4' + classpath 'com.android.tools.build:gradle:2.1.0-beta1' } } apply plugin: 'com.android.application' @@ -14,7 +14,7 @@ repositories { android { compileSdkVersion 23 - buildToolsVersion '23.0.2' + buildToolsVersion '23.0.3' defaultConfig { minSdkVersion 14 @@ -50,9 +50,9 @@ android { dependencies { compile fileTree(dir: 'libs', include: '*.jar') - compile 'com.android.support:appcompat-v7:23.2.1' - compile 'com.android.support:recyclerview-v7:23.2.1' - compile 'com.android.support:design:23.2.1' + compile 'com.android.support:appcompat-v7:23.3.0' + compile 'com.android.support:recyclerview-v7:23.3.0' + compile 'com.android.support:design:23.3.0' compile 'it.sephiroth.android.library.imagezoom:imagezoom:1.0.5' compile 'org.greenrobot:eventbus:3.0.0' compile 'com.squareup.picasso:picasso:2.5.2' diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java index 26c030b0..84067867 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/LoginActivity.java @@ -48,6 +48,7 @@ public class LoginActivity extends AppCompatActivity { final EditText txtServer = (EditText) findViewById(R.id.txtServer); final EditText txtUsername = (EditText) findViewById(R.id.txtUsername); final EditText txtPassword = (EditText) findViewById(R.id.txtPassword); + final EditText txtValidationCode = (EditText) findViewById(R.id.txtValidationCode); final Button btnConnect = (Button) findViewById(R.id.btnConnect); loginForm = findViewById(R.id.loginForm); progressBar = findViewById(R.id.progressBar); @@ -87,7 +88,9 @@ public class LoginActivity extends AppCompatActivity { PreferenceUtil.setServerUrl(LoginActivity.this, txtServer.getText().toString()); try { - UserResource.login(getApplicationContext(), txtUsername.getText().toString(), txtPassword.getText().toString(), new HttpCallback() { + UserResource.login(getApplicationContext(), txtUsername.getText().toString(), + txtPassword.getText().toString(), txtValidationCode.getText().toString(), + new HttpCallback() { @Override public void onSuccess(JSONObject json) { // Empty previous user caches @@ -111,6 +114,10 @@ public class LoginActivity extends AppCompatActivity { if (json != null && json.optString("type").equals("ForbiddenError")) { DialogUtil.showOkDialog(LoginActivity.this, R.string.login_fail_title, R.string.login_fail); + } else if (json != null && json.optString("type").equals("ValidationCodeRequired")) { + txtValidationCode.setVisibility(View.VISIBLE); + validator.addValidable(txtValidationCode, new Required()); + validator.validate(); } else { DialogUtil.showOkDialog(LoginActivity.this, R.string.network_error_title, R.string.network_error); } diff --git a/docs-android/app/src/main/java/com/sismics/docs/resource/UserResource.java b/docs-android/app/src/main/java/com/sismics/docs/resource/UserResource.java index 79b245a1..6bc91cd4 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/resource/UserResource.java +++ b/docs-android/app/src/main/java/com/sismics/docs/resource/UserResource.java @@ -24,12 +24,13 @@ public class UserResource extends BaseResource { * @param password Password * @param callback Callback */ - public static void login(Context context, String username, String password, HttpCallback callback) { + public static void login(Context context, String username, String password, String code, HttpCallback callback) { Request request = new Request.Builder() .url(HttpUrl.parse(getApiUrl(context) + "/user/login")) .post(new FormBody.Builder() .add("username", username) .add("password", password) + .add("code", code) .add("remember", "true") .build()) .build(); diff --git a/docs-android/app/src/main/res/layout/login_activity.xml b/docs-android/app/src/main/res/layout/login_activity.xml index eae776b3..546d5afc 100644 --- a/docs-android/app/src/main/res/layout/login_activity.xml +++ b/docs-android/app/src/main/res/layout/login_activity.xml @@ -61,6 +61,17 @@ android:inputType="textPassword"> + + +