33
33
public class LoginClient {
34
34
@ Nullable private Call <MwQueryResponse > tokenCall ;
35
35
@ Nullable private Call <LoginResponse > loginCall ;
36
-
36
+ /**
37
+ * userLanguage
38
+ * It holds the value of the user's device language code.
39
+ * For example, if user's device language is English it will hold En
40
+ * The value will be fetched when the user clicks Login Button in the LoginActivity
41
+ */
42
+ @ NonNull private String userLanguage ;
43
+
37
44
public interface LoginCallback {
38
45
void success (@ NonNull LoginResult result );
39
46
void twoFactorPrompt (@ NonNull Throwable caught , @ Nullable String token );
@@ -49,7 +56,8 @@ public void request(@NonNull final WikiSite wiki, @NonNull final String userName
49
56
tokenCall .enqueue (new Callback <MwQueryResponse >() {
50
57
@ Override public void onResponse (@ NonNull Call <MwQueryResponse > call ,
51
58
@ NonNull Response <MwQueryResponse > response ) {
52
- login (wiki , userName , password , null , null , response .body ().query ().loginToken (), cb );
59
+ login (wiki , userName , password , null , null , response .body ().query ().loginToken (),
60
+ userLanguage , cb );
53
61
}
54
62
55
63
@ Override
@@ -64,10 +72,12 @@ public void onFailure(@NonNull Call<MwQueryResponse> call, @NonNull Throwable ca
64
72
65
73
public void login (@ NonNull final WikiSite wiki , @ NonNull final String userName , @ NonNull final String password ,
66
74
@ Nullable final String retypedPassword , @ Nullable final String twoFactorCode ,
67
- @ Nullable final String loginToken , @ NonNull final LoginCallback cb ) {
75
+ @ Nullable final String loginToken , @ NonNull final String userLanguage , @ NonNull final LoginCallback cb ) {
76
+ this .userLanguage = userLanguage ;
68
77
loginCall = TextUtils .isEmpty (twoFactorCode ) && TextUtils .isEmpty (retypedPassword )
69
- ? ServiceFactory .get (wiki ).postLogIn (userName , password , loginToken , Service .WIKIPEDIA_URL )
70
- : ServiceFactory .get (wiki ).postLogIn (userName , password , retypedPassword , twoFactorCode , loginToken , true );
78
+ ? ServiceFactory .get (wiki ).postLogIn (userName , password , loginToken , userLanguage , Service .WIKIPEDIA_URL )
79
+ : ServiceFactory .get (wiki ).postLogIn (userName , password , retypedPassword , twoFactorCode , loginToken ,
80
+ userLanguage , true );
71
81
loginCall .enqueue (new Callback <LoginResponse >() {
72
82
@ Override
73
83
public void onResponse (@ NonNull Call <LoginResponse > call , @ NonNull Response <LoginResponse > response ) {
@@ -114,8 +124,9 @@ public void loginBlocking(@NonNull final WikiSite wiki, @NonNull final String us
114
124
String loginToken = tokenResponse .body ().query ().loginToken ();
115
125
116
126
Call <LoginResponse > tempLoginCall = StringUtils .defaultIfEmpty (twoFactorCode , "" ).isEmpty ()
117
- ? ServiceFactory .get (wiki ).postLogIn (userName , password , loginToken , Service .WIKIPEDIA_URL )
118
- : ServiceFactory .get (wiki ).postLogIn (userName , password , null , twoFactorCode , loginToken , true );
127
+ ? ServiceFactory .get (wiki ).postLogIn (userName , password , loginToken , userLanguage , Service .WIKIPEDIA_URL )
128
+ : ServiceFactory .get (wiki ).postLogIn (userName , password , null , twoFactorCode , loginToken ,
129
+ userLanguage , true );
119
130
Response <LoginResponse > response = tempLoginCall .execute ();
120
131
LoginResponse loginResponse = response .body ();
121
132
if (loginResponse == null ) {
0 commit comments