Я переработал checkLogin()
, который живет в классе LoginActivity
, но я все еще думаю, что его можно реорганизовать еще лучше.Пытаюсь реорганизовать еще лучше
private void checkLogin(final String email, final String password) {
// Tag used to cancel the request
String tag_string_req = "req_login";
pDialog.setMessage("Logging in ...");
showDialog();
LoginRequest loginRequest = new LoginRequest(Request.Method.POST, AppConfig.getUrlLogin(), ReqSuccessListener(), ReqErrorListener()) {
protected Map<String, String> getParams() {
// Posting parameters to login url
Map<String, String> params = new HashMap<String, String>();
params.put("email", email);
params.put("password", password);
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(loginRequest, tag_string_req);
}
Реализация ReqSuccessListener()
и ReqErrorListener()
также живет в LoginActivity
классе. Что выглядит так:
private Response.Listener<String> ReqSuccessListener() {
return new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Login Response: " + response.toString());
hideDialog();
try {
session.setLogin(true);
JSONObject jObj = new JSONObject(response);
JSONObject user = jObj.getJSONObject("user");
String uid = user.getString("id");
String name = user.getString("name");
String email = user.getString("email");
// Inserting row in users table
db.addUser(name, email, uid);
// Launch main activity
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
} catch (JSONException e) {
// JSON error
Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
};
}
private Response.ErrorListener ReqErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
int statusCode = error.networkResponse.statusCode;
NetworkResponse response = error.networkResponse;
Log.d("testerror", "" + statusCode + " " + new String(response.data));
if (statusCode != 200) {
Toast.makeText(getApplicationContext(), new String(response.data), Toast.LENGTH_LONG).show();
hideDialog();
}
}
};
}
Мой вопрос простой, как я могу реорганизовать это еще лучше? Или я уже переработал его достаточно хорошо?
Также здесь моя ссылка, чтобы показать вам, как выглядит код до и после того, как я его обработал. Вот ссылка, если вы хотите ее увидеть: https://github.com/superzaky/Kenzup/compare/3b30426bc02873607806525d62d2744921481cd5...command-loginrequest
Итак, на левой стороне находится код перед рефакторингом, а с правой стороны - код после рефакторинга.
Что означает «лучше»? Это кажется довольно субъективным вопросом. – Brucelet
Нужно как-то внедрить 'ReqSuccessListener()' и 'ReqErrorListener()' в 'LoginRequest' или где-то еще. – superkytoz