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">
+
+
+