From bb0fd6a7c69f439e4896b71cacc7fa33a1ff25d7 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 27 八月 2020 09:21:09 +0800
Subject: [PATCH] 1. 新增BaseDialog,解决关闭dialog时,activity已经关闭导致崩溃问题 2. 修复技防措施界面MenuNewGitActivity在本地查询技防措施时出现null字段导致崩溃问题 3.修复NewSubTaskViewModel根据场景类型刷新展示列表时,由于网络访问耗时操作,导致之前选择的场景类型下标索引越界导致崩溃问题 4.修复MainActivity中fragment切换时可能崩溃问题
---
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/ShareProblemActivity.kt | 2
app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java | 2
app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskViewModel.kt | 4 ++
app/src/main/java/cn/flightfeather/thirdapp/util/DialogUtil.java | 9 ++--
app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java | 16 ++++----
app/src/main/java/cn/flightfeather/thirdapp/module/base/BaseDialog.kt | 44 ++++++++++++++++++++++
app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuNewGitActivity.kt | 8 ++--
app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java | 3 +
.idea/codeStyles/Project.xml | 18 +++++++++
9 files changed, 88 insertions(+), 18 deletions(-)
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 681f41a..0d15693 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,5 +1,23 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
+ <JetCodeStyleSettings>
+ <option name="PACKAGES_TO_USE_STAR_IMPORTS">
+ <value>
+ <package name="java.util" alias="false" withSubpackages="false" />
+ <package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
+ <package name="io.ktor" alias="false" withSubpackages="true" />
+ </value>
+ </option>
+ <option name="PACKAGES_IMPORT_LAYOUT">
+ <value>
+ <package name="" alias="false" withSubpackages="true" />
+ <package name="java" alias="false" withSubpackages="true" />
+ <package name="javax" alias="false" withSubpackages="true" />
+ <package name="kotlin" alias="false" withSubpackages="true" />
+ <package name="" alias="true" withSubpackages="true" />
+ </value>
+ </option>
+ </JetCodeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java b/app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java
index ab64c82..64f6ced 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java
+++ b/app/src/main/java/cn/flightfeather/thirdapp/CommonApplication.java
@@ -27,10 +27,10 @@
public class CommonApplication extends Application {
// private final String ROOTURL="http://106.14.187.51:8801/supervision/";
- private final String ROOTURL="http://192.168.0.200:8080/";
- private final String ROOTURL_IMAGE="http://192.168.0.200:8080/images/";
- private final String ROOTURL_REALEASE = "http://47.100.191.150:9005/";
- public final String ROOTURL_REALEASE_IMAGE = "http://47.100.191.150:9005/images/";
+ public final String ROOT_URL ="http://192.168.0.200:8080/";
+ public final String ROOT_URL_IMAGE ="http://192.168.0.200:8080/images/";
+ public final String ROOT_URL_RELEASE = "http://47.100.191.150:9005/";
+ public final String ROOT_URL_RELEASE_IMAGE = "http://47.100.191.150:9005/images/";
private Retrofit retrofit;
private Retrofit retrofitImage;
private DaoSession daoSession;
@@ -74,13 +74,13 @@
if (released){
retrofit = new Retrofit.Builder()
- .baseUrl(ROOTURL_REALEASE)
+ .baseUrl(ROOT_URL_RELEASE)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}else {
retrofit = new Retrofit.Builder()
- .baseUrl(ROOTURL)
+ .baseUrl(ROOT_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
@@ -102,12 +102,12 @@
.create();
if (released){
retrofitImage = new Retrofit.Builder()
- .baseUrl(ROOTURL_REALEASE_IMAGE)
+ .baseUrl(ROOT_URL_RELEASE_IMAGE)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}else {
retrofitImage = new Retrofit.Builder()
- .baseUrl(ROOTURL_IMAGE)
+ .baseUrl(ROOT_URL_IMAGE)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java b/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java
index 2935097..1b1555f 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java
+++ b/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java
@@ -41,6 +41,9 @@
@Override
public void onBindViewHolder(PhotoListHolder holder, int position) {
Mediafile mediafile = mediafileList.get(position);
+// String url = CommonApplication.getInstance().ROOT_URL_RELEASE_IMAGE + mediafile.getExtension1() + mediafile.getGuid() + ".jpg";
+// Glide.with(context).asDrawable().load(url).override(100,100).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.iv_photo);
+
File file = new File(Environment.getExternalStorageDirectory(),mediafile.getPath()+mediafile.getDescription());
if (file.exists()){
SetImageTask task = new SetImageTask(file,holder.iv_photo);
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java b/app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java
index 672206e..4bb5073 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/MainActivity.java
@@ -185,7 +185,7 @@
fragmentTransaction.show(fragmentList.get(position));
}
fragmentCurrent = fragmentList.get(position);
- fragmentTransaction.commit();
+ fragmentTransaction.commitAllowingStateLoss();
}
}
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/base/BaseDialog.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/base/BaseDialog.kt
new file mode 100644
index 0000000..8559bfd
--- /dev/null
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/base/BaseDialog.kt
@@ -0,0 +1,44 @@
+package cn.flightfeather.thirdapp.module.base
+
+import android.app.Activity
+import android.app.Dialog
+import android.arch.lifecycle.Lifecycle
+import android.arch.lifecycle.LifecycleObserver
+import android.arch.lifecycle.OnLifecycleEvent
+import android.content.Context
+import android.os.Bundle
+import android.support.v4.app.FragmentActivity
+
+/**
+ * @author riku
+ * Date: 2020/8/21
+ * 娣诲姞瀵硅瘽妗嗘樉绀洪殣钘忔椂瀵筧ctivity鐢熷懡鍛ㄦ湡鐨勫垽鏂�
+ */
+class BaseDialog(private val mContext: Context) : Dialog(mContext), LifecycleObserver {
+
+ init {
+ if (mContext is FragmentActivity) {
+ (mContext as FragmentActivity).lifecycle.addObserver(this)
+ }
+ }
+
+
+ override fun dismiss() {
+ if (mContext is Activity && !(mContext as Activity).isFinishing) {
+ super.dismiss()
+ }
+ }
+
+ override fun show() {
+ if (mContext is Activity && !(mContext as Activity).isFinishing) {
+ super.show()
+ }
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
+ fun onDestroy() {
+ if (isShowing) {
+ dismiss()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuNewGitActivity.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuNewGitActivity.kt
index eceb65a..09b094f 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuNewGitActivity.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/MenuNewGitActivity.kt
@@ -154,11 +154,11 @@
et_problemDes.visibility = View.GONE
ll_change_suggestion.visibility = View.GONE
//鍔犺浇棰勭疆鏁版嵁
- val gittypeList = DbFactory.getInstance().gittypeDao.queryBuilder()
+ val gittypeList = DbFactory.getInstance().gittypeDao.queryBuilder()
.where(
- GittypeDao.Properties.Tasktype.eq(subTask?.type) ,
- GittypeDao.Properties.Scensetype.eq(scene?.type),
- GittypeDao.Properties.Districtname.eq(subTask?.districtname)
+ GittypeDao.Properties.Tasktype.eq(subTask?.type ?: ""),
+ GittypeDao.Properties.Scensetype.eq(scene?.type ?: ""),
+ GittypeDao.Properties.Districtname.eq(subTask?.districtname ?: "")
).orderAsc(GittypeDao.Properties.Typeid).list()
if (gittypeList.size == 0) {
val gittype1 = Gittype()
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/ShareProblemActivity.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/ShareProblemActivity.kt
index 6db796b..bc8c569 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/ShareProblemActivity.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/inspection/ShareProblemActivity.kt
@@ -34,7 +34,7 @@
problemVoList?.forEach {vo ->
val mediaFileList = mutableListOf<Pair<Boolean, String>>()
vo.mediafileList.forEach {
- mediaFileList.add(Pair(it.ischanged, CommonApplication.getInstance().ROOTURL_REALEASE_IMAGE + it.extension1 + it.guid + ".jpg"))
+ mediaFileList.add(Pair(it.ischanged, CommonApplication.getInstance().ROOT_URL_RELEASE_IMAGE + it.extension1 + it.guid + ".jpg"))
}
infoList.add(ShareProblemPreViewActivity.Problem(
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskViewModel.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskViewModel.kt
index 3e46fba..7d00dd7 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskViewModel.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/task/NewSubTaskViewModel.kt
@@ -169,6 +169,10 @@
* 鏍规嵁鎵�閫夊満鏅被鍨嬪強鏄惁鐩戠鍒锋柊鍦烘櫙
*/
fun refreshScene() {
+ //sceneTypeList浼氭牴鎹仈缃戣幏鍙栫殑鍦烘櫙鍙樻洿鍐呭锛屾澶勫垽鏂繚璇佷笅鏍囦笉浼氳秺鐣�
+ if (selectedTypeIndex >= sceneTypeList.size) {
+ selectedTypeIndex = 0
+ }
//绛涢�夊満鏅被鍨�
val tmp = ArrayList<Scense>()
if (selectedTypeIndex == 0) {
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/util/DialogUtil.java b/app/src/main/java/cn/flightfeather/thirdapp/util/DialogUtil.java
index b91e19f..6dd6cbb 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/util/DialogUtil.java
+++ b/app/src/main/java/cn/flightfeather/thirdapp/util/DialogUtil.java
@@ -13,6 +13,7 @@
import com.cazaea.sweetalert.SweetAlertDialog;
import cn.flightfeather.thirdapp.R;
+import cn.flightfeather.thirdapp.module.base.BaseDialog;
/**
* Created by feiyu on 2018/8/3.
@@ -21,7 +22,7 @@
public class DialogUtil {
- public static Dialog createLoadingDialog(Context context, String msg) {
+ public static BaseDialog createLoadingDialog(Context context, String msg) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.layout_loading, null);// 寰楀埌鍔犺浇view
LinearLayout layout = (LinearLayout) v
@@ -29,7 +30,7 @@
// TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 鎻愮ず鏂囧瓧
// tipTextView.setTitle(msg);// 璁剧疆鍔犺浇淇℃伅
- Dialog loadingDialog = new Dialog(context);// 鍒涘缓鑷畾涔夋牱寮廳ialog
+ BaseDialog loadingDialog = new BaseDialog(context);// 鍒涘缓鑷畾涔夋牱寮廳ialog
loadingDialog.setCancelable(false); // 鏄惁鍙互鎸夆�滆繑鍥為敭鈥濇秷澶�
loadingDialog.setCanceledOnTouchOutside(false); // 鐐瑰嚮鍔犺浇妗嗕互澶栫殑鍖哄煙
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
@@ -50,8 +51,8 @@
return loadingDialog;
}
- public static Dialog create(Context context, @LayoutRes int id) {
- Dialog dialog = new Dialog(context);
+ public static BaseDialog create(Context context, @LayoutRes int id) {
+ BaseDialog dialog = new BaseDialog(context);
dialog.setContentView(id);
//璁剧疆dialog瀹藉害
Window dialogWindow = dialog.getWindow();
--
Gitblit v1.9.3