1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-16 03:06:22 +00:00

Closes #84: Android: Ask a validation code on login

This commit is contained in:
jendib
2016-04-14 00:37:01 +02:00
parent e16ce4b4f1
commit 64db701498
6 changed files with 59 additions and 20 deletions

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -61,6 +61,17 @@
android:inputType="textPassword">
</EditText>
<EditText
android:visibility="gone"
android:id="@+id/txtValidationCode"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:ems="10"
android:hint="@string/validation_code"
android:inputType="number">
</EditText>
<Button
android:id="@+id/btnConnect"
android:layout_width="fill_parent"

View File

@@ -131,5 +131,6 @@
<string name="email">E-mail</string>
<string name="storage_quota">Storage quota</string>
<string name="storage_display">%1$d/%2$d MB</string>
<string name="validation_code">Validation code</string>
</resources>