From ffa5fb690e32a8b680f383f012ae4346fc862621 Mon Sep 17 00:00:00 2001 From: Jerry Wu Date: Mon, 16 Jul 2018 17:30:59 +0800 Subject: [PATCH] Network Error handled --- .../tech/goda/studyck/ChpassFragment.java | 40 ++++++++++--------- .../java/tech/goda/studyck/LoginActivity.java | 17 +++++--- .../java/tech/goda/studyck/MainActivity.java | 16 +++++--- 3 files changed, 44 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/tech/goda/studyck/ChpassFragment.java b/app/src/main/java/tech/goda/studyck/ChpassFragment.java index a696f19..93ca2de 100644 --- a/app/src/main/java/tech/goda/studyck/ChpassFragment.java +++ b/app/src/main/java/tech/goda/studyck/ChpassFragment.java @@ -117,26 +117,28 @@ public class ChpassFragment extends Fragment { @Override public void run() { String str = ""; - Document doc = Jsoup.parse(response); - if(!doc.select(".msg_no").isEmpty()){ - Element error = doc.selectFirst(".msg_no").selectFirst("p"); - str = error.text(); - } - else if(!doc.select(".msg_yes").isEmpty()){ - Element success = doc.selectFirst(".msg_yes").selectFirst("p"); - str = success.text(); - // TODO: switch fragment here - /*Fragment fragment = new ChpassFragment(); - FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); - ft.replace(R.id.content_frame, fragment); - ft.commit();*/ - } - else{ - str = "驗證碼錯誤"; - } - Toast.makeText(getContext(), str, Toast.LENGTH_SHORT).show(); + if(response == null) + Toast.makeText(getContext(), "網路異常", Toast.LENGTH_SHORT).show(); + else { + Document doc = Jsoup.parse(response); + if (!doc.select(".msg_no").isEmpty()) { + Element error = doc.selectFirst(".msg_no").selectFirst("p"); + str = error.text(); + } else if (!doc.select(".msg_yes").isEmpty()) { + Element success = doc.selectFirst(".msg_yes").selectFirst("p"); + str = success.text(); + // TODO: switch fragment here + /*Fragment fragment = new ChpassFragment(); + FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); + ft.replace(R.id.content_frame, fragment); + ft.commit();*/ + } else { + str = "驗證碼錯誤"; + } + Toast.makeText(getContext(), str, Toast.LENGTH_SHORT).show(); - Log.e("TAG_INSIDE", response); + Log.e("TAG_INSIDE", response); + } } }); } diff --git a/app/src/main/java/tech/goda/studyck/LoginActivity.java b/app/src/main/java/tech/goda/studyck/LoginActivity.java index 68a732e..777bad4 100644 --- a/app/src/main/java/tech/goda/studyck/LoginActivity.java +++ b/app/src/main/java/tech/goda/studyck/LoginActivity.java @@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter; import android.annotation.TargetApi; import android.content.Intent; import android.content.pm.PackageManager; +import android.provider.SearchRecentSuggestions; import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; @@ -32,7 +33,6 @@ import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -68,6 +68,7 @@ public class LoginActivity extends AppCompatActivity { private View mProgressView; private View mLoginFormView; private String response = null; + private boolean netFlag = true; @Override protected void onCreate(Bundle savedInstanceState) { @@ -271,8 +272,10 @@ public class LoginActivity extends AppCompatActivity { param.put("f_uid", mEmail); param.put("f_pwd", mPassword); response = Network.requestPost(LOGIN_URI, param); - //Thread.sleep(2000); - Log.e("Login", response); + if(response == null) { + netFlag = false; + return false; + } return !response.contains("錯誤"); } @@ -290,8 +293,12 @@ public class LoginActivity extends AppCompatActivity { setResult(RESULT_OK, intent); finish(); } else { - mPasswordView.setError(getString(R.string.error_incorrect_password)); - mPasswordView.requestFocus(); + if(!netFlag) + Toast.makeText(getApplicationContext(), "網路異常", Toast.LENGTH_SHORT).show(); + else{ + mPasswordView.setError(getString(R.string.error_incorrect_password)); + mPasswordView.requestFocus(); + } } } diff --git a/app/src/main/java/tech/goda/studyck/MainActivity.java b/app/src/main/java/tech/goda/studyck/MainActivity.java index 03efbc7..713c12c 100644 --- a/app/src/main/java/tech/goda/studyck/MainActivity.java +++ b/app/src/main/java/tech/goda/studyck/MainActivity.java @@ -172,17 +172,23 @@ public class MainActivity extends AppCompatActivity public void run() { loginResponse = Network.requestPost(Network.LOGIN_URI, param); //Thread.sleep(2000); - Log.e("Login", loginResponse); + runOnUiThread(new Runnable() { @Override public void run() { - if (!loginResponse.contains("錯誤")) { - LoginSuccess(mEmail, mPassword); - } else { - Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_SHORT).show(); + if(loginResponse == null){ + Toast.makeText(getApplicationContext(), "網路異常", Toast.LENGTH_SHORT).show(); callLogin(mEmail, mPassword); } + else{ + if (!loginResponse.contains("錯誤")) { + LoginSuccess(mEmail, mPassword); + } else { + Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_SHORT).show(); + callLogin(mEmail, mPassword); + } + } } }); }