30
30
import fr .free .nrw .commons .databinding .ActivityLoginBinding ;
31
31
import fr .free .nrw .commons .utils .ActivityUtils ;
32
32
import java .util .Locale ;
33
- import fr .free .nrw .commons .wikidata .mwapi .MwQueryResponse ;
34
33
import fr .free .nrw .commons .auth .login .LoginCallback ;
35
34
35
+ import java .util .Objects ;
36
36
import javax .inject .Inject ;
37
37
import javax .inject .Named ;
38
38
46
46
import fr .free .nrw .commons .utils .SystemThemeUtils ;
47
47
import fr .free .nrw .commons .utils .ViewUtil ;
48
48
import io .reactivex .disposables .CompositeDisposable ;
49
- import retrofit2 .Call ;
50
- import retrofit2 .Callback ;
51
- import retrofit2 .Response ;
52
49
import timber .log .Timber ;
53
50
54
51
import static android .view .KeyEvent .KEYCODE_ENTER ;
@@ -75,7 +72,6 @@ public class LoginActivity extends AccountAuthenticatorActivity {
75
72
private AppCompatDelegate delegate ;
76
73
private LoginTextWatcher textWatcher = new LoginTextWatcher ();
77
74
private CompositeDisposable compositeDisposable = new CompositeDisposable ();
78
- private Call <MwQueryResponse > loginToken ;
79
75
final String saveProgressDailog ="ProgressDailog_state" ;
80
76
final String saveErrorMessage ="errorMessage" ;
81
77
final String saveUsername ="username" ;
@@ -116,7 +112,7 @@ public void onCreate(Bundle savedInstanceState) {
116
112
binding .loginCredentials .setVisibility (View .GONE );
117
113
}
118
114
}
119
- /**
115
+ /**
120
116
* Hides the keyboard if the user's focus is not on the password (hasFocus is false).
121
117
* @param view The keyboard
122
118
* @param hasFocus Set to true if the keyboard has focus
@@ -212,63 +208,52 @@ protected void onDestroy() {
212
208
213
209
public void performLogin () {
214
210
Timber .d ("Login to start!" );
215
- final String username = binding .loginUsername .getText ().toString ();
216
- final String rawUsername = binding .loginUsername .getText ().toString ().trim ();
217
- final String password = binding .loginPassword .getText ().toString ();
218
- String twoFactorCode = binding .loginTwoFactor .getText ().toString ();
211
+ final String username = Objects .requireNonNull (binding .loginUsername .getText ()).toString ();
212
+ final String password = Objects .requireNonNull (binding .loginPassword .getText ()).toString ();
213
+ final String twoFactorCode = Objects .requireNonNull (binding .loginTwoFactor .getText ()).toString ();
219
214
220
215
showLoggingProgressBar ();
221
- doLogin (username , password , twoFactorCode );
216
+ loginClient .doLogin (username , password , twoFactorCode , Locale .getDefault ().getLanguage (),
217
+ new LoginCallback () {
218
+ @ Override
219
+ public void success (@ NonNull LoginResult loginResult ) {
220
+ runOnUiThread (()->{
221
+ Timber .d ("Login Success" );
222
+ hideProgress ();
223
+ onLoginSuccess (loginResult );
224
+ });
225
+ }
226
+
227
+ @ Override
228
+ public void twoFactorPrompt (@ NonNull Throwable caught , @ Nullable String token ) {
229
+ runOnUiThread (()->{
230
+ Timber .d ("Requesting 2FA prompt" );
231
+ hideProgress ();
232
+ askUserForTwoFactorAuth ();
233
+ });
234
+ }
235
+
236
+ @ Override
237
+ public void passwordResetPrompt (@ Nullable String token ) {
238
+ runOnUiThread (()->{
239
+ Timber .d ("Showing password reset prompt" );
240
+ hideProgress ();
241
+ showPasswordResetPrompt ();
242
+ });
243
+ }
244
+
245
+ @ Override
246
+ public void error (@ NonNull Throwable caught ) {
247
+ runOnUiThread (()->{
248
+ Timber .e (caught );
249
+ hideProgress ();
250
+ showMessageAndCancelDialog (caught .getLocalizedMessage ());
251
+ });
252
+ }
253
+ });
222
254
}
223
255
224
- private void doLogin (String username , String password , String twoFactorCode ) {
225
- progressDialog .show ();
226
- loginToken = loginClient .getLoginToken ();
227
- loginToken .enqueue (
228
- new Callback <MwQueryResponse >() {
229
- @ Override
230
- public void onResponse (Call <MwQueryResponse > call ,
231
- Response <MwQueryResponse > response ) {
232
- loginClient .login (username , password , null , twoFactorCode ,
233
- response .body ().query ().loginToken (), Locale .getDefault ().getLanguage (), new LoginCallback () {
234
- @ Override
235
- public void success (@ NonNull LoginResult result ) {
236
- Timber .d ("Login Success" );
237
- onLoginSuccess (result );
238
- }
239
-
240
- @ Override
241
- public void twoFactorPrompt (@ NonNull Throwable caught ,
242
- @ Nullable String token ) {
243
- Timber .d ("Requesting 2FA prompt" );
244
- hideProgress ();
245
- askUserForTwoFactorAuth ();
246
- }
247
-
248
- @ Override
249
- public void passwordResetPrompt (@ Nullable String token ) {
250
- Timber .d ("Showing password reset prompt" );
251
- hideProgress ();
252
- showPasswordResetPrompt ();
253
- }
254
-
255
- @ Override
256
- public void error (@ NonNull Throwable caught ) {
257
- Timber .e (caught );
258
- hideProgress ();
259
- showMessageAndCancelDialog (caught .getLocalizedMessage ());
260
- }
261
- });
262
- }
263
-
264
- @ Override
265
- public void onFailure (Call <MwQueryResponse > call , Throwable t ) {
266
- Timber .e (t );
267
- showMessageAndCancelDialog (t .getLocalizedMessage ());
268
- }
269
- });
270
256
271
- }
272
257
273
258
private void hideProgress () {
274
259
progressDialog .dismiss ();
@@ -299,10 +284,6 @@ private void showLoggingProgressBar() {
299
284
}
300
285
301
286
private void onLoginSuccess (LoginResult loginResult ) {
302
- if (!progressDialog .isShowing ()) {
303
- // no longer attached to activity!
304
- return ;
305
- }
306
287
compositeDisposable .clear ();
307
288
sessionManager .setUserLoggedIn (true );
308
289
sessionManager .updateAccount (loginResult );
0 commit comments