Commit 2cd758ed authored by wangfugui's avatar wangfugui

下载先行卡时退出页面会导致闪退,增加一层校验。

parent 9c9b509c
...@@ -9,6 +9,7 @@ import com.google.android.material.tabs.TabLayout; ...@@ -9,6 +9,7 @@ import com.google.android.material.tabs.TabLayout;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.activities.BaseActivity; import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.utils.LogUtil; import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.YGOUtil;
public class ExCardActivity extends BaseActivity { public class ExCardActivity extends BaseActivity {
private static final String TAG = String.valueOf(ExCardActivity.class); private static final String TAG = String.valueOf(ExCardActivity.class);
...@@ -47,18 +48,19 @@ public class ExCardActivity extends BaseActivity { ...@@ -47,18 +48,19 @@ public class ExCardActivity extends BaseActivity {
return true; return true;
} }
private int backCounter = 0;
//todo 当未下载完先行卡就退出页面时,会导致软件错误退出。未来通过监听返回事件,判断下载状态,若正在下载则阻拦返回键。 //todo 当未下载完先行卡就退出页面时,会导致软件错误退出。未来通过监听返回事件,判断下载状态,若正在下载则阻拦返回键。
//若发生错误或已完成,则不阻拦返回。 //若发生错误或已完成,则不阻拦返回。
@Override @Override
public void onBackPressed() { public void onBackPressed() {
// 完全由自己控制返回键逻辑,系统不再控制,但是有个前提是: if (ExCardListFragment.downloadState == ExCardListFragment.DownloadState.DOWNLOAD_ING) {
// 不要在Activity的onKeyDown或者OnKeyUp中拦截掉返回键 if (backCounter < 1) {
backCounter++;
// 拦截:就是在OnKeyDown或者OnKeyUp中自己处理了返回键 YGOUtil.showTextToast("下载中,建议不要退出页面,再次按返回键可以退出页面");
//(这里处理之后return true.或者return false都会导致onBackPressed不会执行) return;
}
// 不拦截:在OnKeyDown和OnKeyUp中返回super对应的方法 }
//(如果两个方法都被覆写就分别都要返回super.onKeyDown,super.onKeyUp)
super.onBackPressed(); super.onBackPressed();
} }
......
...@@ -16,7 +16,6 @@ import android.view.View; ...@@ -16,7 +16,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
...@@ -62,7 +61,7 @@ public class ExCardListFragment extends Fragment { ...@@ -62,7 +61,7 @@ public class ExCardListFragment extends Fragment {
NO_DOWNLOAD NO_DOWNLOAD
} }
private DownloadState downloadState; public static DownloadState downloadState;
@Override @Override
...@@ -126,7 +125,7 @@ public class ExCardListFragment extends Fragment { ...@@ -126,7 +125,7 @@ public class ExCardListFragment extends Fragment {
} else if (ServerUtil.exCardState == ServerUtil.ExCardState.ERROR) { } else if (ServerUtil.exCardState == ServerUtil.ExCardState.ERROR) {
/* 查询不到版本号时,提示toast */ /* 查询不到版本号时,提示toast */
textDownload.setText(R.string.Download); textDownload.setText(R.string.Download);
Toast.makeText(getActivity(), R.string.ex_card_check_toast_message_iii, Toast.LENGTH_LONG).show(); YGOUtil.showTextToast("error" + getString(R.string.ex_card_check_toast_message_iii));
//WebActivity.open(getActivity(), getString(R.string.ex_card_list_title), URL_YGO233_ADVANCE); //WebActivity.open(getActivity(), getString(R.string.ex_card_list_title), URL_YGO233_ADVANCE);
} else if (ServerUtil.exCardState == ServerUtil.ExCardState.UNCHECKED) { } else if (ServerUtil.exCardState == ServerUtil.ExCardState.UNCHECKED) {
//do nothing //do nothing
...@@ -149,10 +148,10 @@ public class ExCardListFragment extends Fragment { ...@@ -149,10 +148,10 @@ public class ExCardListFragment extends Fragment {
downloadState = DownloadState.NO_DOWNLOAD; downloadState = DownloadState.NO_DOWNLOAD;
++FailedCount; ++FailedCount;
if (FailedCount <= 2) { if (FailedCount <= 2) {
Toast.makeText(getActivity(), R.string.Ask_to_Change_Other_Way, Toast.LENGTH_SHORT).show(); YGOUtil.showTextToast(getString(R.string.Ask_to_Change_Other_Way));
downloadfromWeb(URL_YGO233_FILE_ALT); downloadfromWeb(URL_YGO233_FILE_ALT);
} }
YGOUtil.showTextToast("error" + getString(R.string.Download_Precard_Failed)); YGOUtil.showTextToast("error:" + getString(R.string.Download_Precard_Failed));
break; break;
// case UnzipUtils.ZIP_READY: // case UnzipUtils.ZIP_READY:
// textDownload.setText(R.string.title_use_ex); // textDownload.setText(R.string.title_use_ex);
...@@ -180,8 +179,7 @@ public class ExCardListFragment extends Fragment { ...@@ -180,8 +179,7 @@ public class ExCardListFragment extends Fragment {
DataManager.get().load(true); DataManager.get().load(true);
Toast.makeText(context, R.string.ypk_installed, Toast.LENGTH_LONG).show(); YGOUtil.showTextToast(getString(R.string.ypk_installed));
LogUtil.i("webCrawler", "Ex-card package is installed"); LogUtil.i("webCrawler", "Ex-card package is installed");
/* 如果未开启先行卡设置,则跳转到设置页面 */ /* 如果未开启先行卡设置,则跳转到设置页面 */
...@@ -190,26 +188,11 @@ public class ExCardListFragment extends Fragment { ...@@ -190,26 +188,11 @@ public class ExCardListFragment extends Fragment {
Intent startSetting = new Intent(context, MainActivity.class); Intent startSetting = new Intent(context, MainActivity.class);
startSetting.putExtra("flag", 4); startSetting.putExtra("flag", 4);
startActivity(startSetting); startActivity(startSetting);
Toast.makeText(context, R.string.ypk_go_setting, Toast.LENGTH_LONG).show(); YGOUtil.showTextToast(getString(R.string.ypk_go_setting));
} }
break; break;
// case UnzipUtils.ZIP_UNZIP_EXCEPTION:
// Toast.makeText(context, getString(R.string.install_failed_bcos) + msg.obj,
// Toast.LENGTH_SHORT).show();
// break;
// case HomeFragment.TYPE_GET_DATA_VER_OK:
// WebActivity.exCardVer = msg.obj.toString();
// String oldVer = SharedPreferenceUtil.getExpansionDataVer();
// if (!TextUtils.isEmpty(WebActivity.exCardVer)) {
// if (!WebActivity.exCardVer.equals(oldVer)) {
// //btn_download展示默认视图
// } else {
// btnDownload.setText(R.string.tip_redownload);
// }
// } else {
// showExNew();
// }
} }
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment