版本更新
This commit is contained in:
150
app/src/main/java/com/dskj/rbchat/dialog/VersionDialog.java
Normal file
150
app/src/main/java/com/dskj/rbchat/dialog/VersionDialog.java
Normal file
@@ -0,0 +1,150 @@
|
||||
package com.dskj.rbchat.dialog;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.dskj.rbchat.R;
|
||||
import com.dskj.rbchat.databinding.DialogActionVersionBinding;
|
||||
|
||||
/**
|
||||
* 版本弹窗
|
||||
*/
|
||||
public class VersionDialog extends Dialog {
|
||||
private final Context context;
|
||||
String title;
|
||||
String content;
|
||||
String cancel = null;
|
||||
String sure = null;
|
||||
boolean showCancel = true;
|
||||
OnToActionListener onToActionListener;
|
||||
DialogActionVersionBinding actionConfirmBinding;
|
||||
|
||||
public interface OnToActionListener {
|
||||
void toSumbit();
|
||||
|
||||
void toCancel();
|
||||
|
||||
}
|
||||
|
||||
public void setOnToActionListener(OnToActionListener onNextCallListener) {
|
||||
this.onToActionListener = onNextCallListener;
|
||||
}
|
||||
|
||||
public VersionDialog(Context context, String title, String content, boolean showCancel) {
|
||||
super(context, R.style.MaterialDesignDialog);
|
||||
actionConfirmBinding = DialogActionVersionBinding.inflate(getLayoutInflater());
|
||||
setContentView(actionConfirmBinding.getRoot());
|
||||
this.title = title;
|
||||
this.context = context;
|
||||
this.content = content;
|
||||
this.showCancel = showCancel;
|
||||
}
|
||||
|
||||
public VersionDialog(Context context, String content, boolean showCancel) {
|
||||
super(context, R.style.MaterialDesignDialog);
|
||||
actionConfirmBinding = DialogActionVersionBinding.inflate(getLayoutInflater());
|
||||
setContentView(actionConfirmBinding.getRoot());
|
||||
|
||||
this.context = context;
|
||||
this.content = content;
|
||||
this.showCancel = showCancel;
|
||||
}
|
||||
|
||||
public VersionDialog(Context context, String content, String cancel, String sure) {
|
||||
super(context, R.style.MaterialDesignDialog);
|
||||
actionConfirmBinding = DialogActionVersionBinding.inflate(getLayoutInflater());
|
||||
setContentView(actionConfirmBinding.getRoot());
|
||||
|
||||
this.context = context;
|
||||
this.content = content;
|
||||
this.cancel = cancel;
|
||||
this.sure = sure;
|
||||
}
|
||||
|
||||
public VersionDialog(Context context, String title, String content, String cancel, String sure) {
|
||||
super(context, R.style.MaterialDesignDialog);
|
||||
actionConfirmBinding = DialogActionVersionBinding.inflate(getLayoutInflater());
|
||||
setContentView(actionConfirmBinding.getRoot());
|
||||
this.title = title;
|
||||
this.context = context;
|
||||
this.content = content;
|
||||
this.cancel = cancel;
|
||||
this.sure = sure;
|
||||
}
|
||||
|
||||
public VersionDialog(Context context, String title, String content, String cancel, String sure, boolean showCancel) {
|
||||
super(context, R.style.MaterialDesignDialog);
|
||||
actionConfirmBinding = DialogActionVersionBinding.inflate(getLayoutInflater());
|
||||
setContentView(actionConfirmBinding.getRoot());
|
||||
this.title = title;
|
||||
this.context = context;
|
||||
this.content = content;
|
||||
this.cancel = cancel;
|
||||
this.sure = sure;
|
||||
this.showCancel = showCancel;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
actionConfirmBinding.contentTv.setText(content);
|
||||
actionConfirmBinding.contentTv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
|
||||
@Override
|
||||
public boolean onPreDraw() {
|
||||
//这个监听的回调是异步的,在监听完以后一定要把绘制监听移除,不然这个会一直回调,导致界面错乱
|
||||
actionConfirmBinding.contentTv.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||
int line = actionConfirmBinding.contentTv.getLineCount();
|
||||
if (line > 1) {
|
||||
actionConfirmBinding.contentTv.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if (!TextUtils.isEmpty(title)) {
|
||||
actionConfirmBinding.titleTv.setVisibility(View.VISIBLE);
|
||||
actionConfirmBinding.titleTv.setText(title);
|
||||
}
|
||||
if (!TextUtils.isEmpty(cancel)) {
|
||||
actionConfirmBinding.cancelTv.setText(cancel);
|
||||
}
|
||||
if (!TextUtils.isEmpty(sure)) {
|
||||
actionConfirmBinding.sumbitTv.setText(sure);
|
||||
}
|
||||
if (!showCancel) {
|
||||
actionConfirmBinding.cancelTv.setVisibility(View.GONE);
|
||||
// actionConfirmBinding.lineV.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
actionConfirmBinding.sumbitTv.setOnClickListener(v -> {
|
||||
dismiss();
|
||||
if (onToActionListener != null) {
|
||||
onToActionListener.toSumbit();
|
||||
}
|
||||
});
|
||||
actionConfirmBinding.cancelTv.setOnClickListener(v -> {
|
||||
dismiss();
|
||||
if (onToActionListener != null) {
|
||||
onToActionListener.toCancel();
|
||||
}
|
||||
});
|
||||
|
||||
setCanceledOnTouchOutside(false);
|
||||
Window window = getWindow();
|
||||
WindowManager.LayoutParams wlp = window.getAttributes();
|
||||
wlp.gravity = Gravity.CENTER;
|
||||
wlp.width = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
wlp.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
|
||||
window.setAttributes(wlp);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -70,6 +70,7 @@ import com.dskj.rbchat.dialog.ActionConfirmDialog;
|
||||
import com.dskj.rbchat.dialog.ActionConfirmDialog1;
|
||||
import com.dskj.rbchat.dialog.PayCashDialog;
|
||||
import com.dskj.rbchat.dialog.PayCashFingerDialog;
|
||||
import com.dskj.rbchat.dialog.VersionDialog;
|
||||
import com.dskj.rbchat.game.JsBridgeActivity;
|
||||
import com.dskj.rbchat.main.authorize.AuthorizeActivity;
|
||||
import com.dskj.rbchat.main.chat.ChatConversationFragment;
|
||||
@@ -83,6 +84,7 @@ import com.dskj.rbchat.model.ConfigBean;
|
||||
import com.dskj.rbchat.model.LoginBean;
|
||||
import com.dskj.rbchat.model.MessagefcmBean;
|
||||
import com.dskj.rbchat.model.UserShareBean;
|
||||
import com.dskj.rbchat.model.VersionBean;
|
||||
import com.dskj.rbchat.model.WalletBean;
|
||||
import com.dskj.rbchat.network.Api;
|
||||
import com.dskj.rbchat.network.BaseObserver;
|
||||
@@ -108,6 +110,7 @@ import com.google.gson.JsonObject;
|
||||
import com.huawei.hms.hmsscankit.ScanUtilNew;
|
||||
import com.huawei.hms.ml.scan.HmsScan;
|
||||
import com.huawei.hms.ml.scan.HmsScanAnalyzerOptions;
|
||||
import com.king.app.updater.AppUpdater;
|
||||
import com.king.zxing.util.CodeUtils;
|
||||
import com.netease.lava.nertc.sdk.NERtcOption;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
@@ -485,9 +488,87 @@ public class MainActivity extends BaseActivity {
|
||||
shareDateUtils.getAllSessionList();
|
||||
}
|
||||
});
|
||||
getVersion();
|
||||
|
||||
}
|
||||
|
||||
VersionBean versionBean;
|
||||
|
||||
|
||||
private void getVersion() {
|
||||
try {
|
||||
Api.getInstance().version(7, DataUtils.getVersionCode(MainActivity.this), IMUIKitConfig.SUBSTATIONID)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new BaseObserver<>() {
|
||||
@Override
|
||||
public void onSuccess(Result<List<VersionBean>> feedbackResp) {
|
||||
if (feedbackResp.data != null && feedbackResp.data.size() > 0) {
|
||||
versionBean = feedbackResp.data.get(0);
|
||||
try {
|
||||
if (versionBean.getVersionNumber() > DataUtils.getVersionCode(MainActivity.this)) {
|
||||
VersionDialog actionDialog = new VersionDialog(MainActivity.this,
|
||||
String.format(getString(R.string.updateversion_txt), versionBean.getVersionName()),
|
||||
getDownloadText(versionBean), getString(R.string.xiacigengxin_txt),
|
||||
getString(R.string.login_form_have_latest_version_update_now), versionBean.getForceDownload() == 0);
|
||||
actionDialog.setOnToActionListener(new VersionDialog.OnToActionListener() {
|
||||
@Override
|
||||
public void toSumbit() {
|
||||
checkUpdate(versionBean.getDownloadAddress());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toCancel() {
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
actionDialog.show();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int code, String msg) {
|
||||
LogUtils.i("获取到的错误:" + code + "" + msg);
|
||||
ToastX.showShortToast(msg);
|
||||
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkUpdate(String url) {
|
||||
new AppUpdater(MainActivity.this, url).start();
|
||||
}
|
||||
|
||||
private String getDownloadText(VersionBean versionBean) {
|
||||
String name = "";
|
||||
int loc = DataUtils.get(MainActivity.this, "locale", 1);
|
||||
switch (loc) {
|
||||
case 1:
|
||||
name = versionBean.getUpgradeHintZhCn().replace("\\n","\n");
|
||||
break;
|
||||
case 2:
|
||||
name = versionBean.getUpgradeHintEnUs().replace("\\n","\n");
|
||||
break;
|
||||
case 3:
|
||||
name = versionBean.getUpgradeHintJaJp().replace("\\n","\n");
|
||||
break;
|
||||
default:
|
||||
name = versionBean.getUpgradeHintZhTw().replace("\\n","\n");
|
||||
break;
|
||||
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
public int getNavigationBarHeight(Context context) {
|
||||
Resources resources = context.getResources();
|
||||
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
|
||||
@@ -790,6 +790,7 @@ public class ContactFragment extends BaseFragment {
|
||||
}
|
||||
binding.tvIndexfmGrouppull.setVisibility(size > 3 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
teamContactAdapter.sortListByMyTeam(teamContactAdapter.getData());
|
||||
}
|
||||
|
||||
//更新会话数据
|
||||
|
||||
@@ -116,7 +116,7 @@ public class IndexContactAdapter extends RecyclerView.Adapter<IndexContactAdapte
|
||||
return;
|
||||
}
|
||||
dataList.addAll(list);
|
||||
sortListByMyTeam(dataList);
|
||||
// sortListByMyTeam(dataList);
|
||||
notifyDataSetChanged();
|
||||
|
||||
}
|
||||
@@ -152,7 +152,7 @@ public class IndexContactAdapter extends RecyclerView.Adapter<IndexContactAdapte
|
||||
long chattime = teamBean1.getConversationTime() - teamBean2.getConversationTime();
|
||||
return (chattime == 0L ? 0 : (chattime > 0 ? -1 : 1));
|
||||
} else {
|
||||
return teamBean1.data.getCreator().equals(IMKitClient.account()) ? -1 : 0;
|
||||
return teamBean1.data.getCreator().equals(IMKitClient.account()) ? -1 : 1;
|
||||
}
|
||||
} else {
|
||||
result = -1;
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.dskj.rbchat.about.AboutActivity;
|
||||
import com.dskj.rbchat.databinding.FragmentMineBinding;
|
||||
import com.dskj.rbchat.databinding.FragmentMineNewBinding;
|
||||
import com.dskj.rbchat.dialog.ActionConfirmDialog;
|
||||
import com.dskj.rbchat.dialog.VersionDialog;
|
||||
import com.dskj.rbchat.game.JsBridgeActivity;
|
||||
import com.dskj.rbchat.login.PhoneLoginActivity;
|
||||
import com.dskj.rbchat.main.MainActivity;
|
||||
@@ -57,6 +58,7 @@ import com.dskj.rbchat.wallet.PaySettingActivity;
|
||||
import com.dskj.rbchat.wallet.WalletInfoActivity;
|
||||
import com.dskj.rbchat.welcome.WelcomeActivity;
|
||||
//import com.king.app.updater.AppUpdater;
|
||||
import com.king.app.updater.AppUpdater;
|
||||
import com.netease.yunxin.kit.alog.ALog;
|
||||
import com.netease.yunxin.kit.chatkit.ui.common.ChatDataUtils;
|
||||
import com.netease.yunxin.kit.chatkit.ui.data.ChatDatabase;
|
||||
@@ -254,7 +256,8 @@ public class MineFragment extends BaseFragment {
|
||||
intent.putExtra("isGame", true);
|
||||
startActivity(intent);
|
||||
});
|
||||
// binding.versionTv.setOnClickListener((View.OnClickListener) v -> getVersion());
|
||||
binding.versionTv.setOnClickListener((View.OnClickListener) v -> getVersion());
|
||||
binding.versionDescTv.setOnClickListener((View.OnClickListener) v -> getVersion());
|
||||
|
||||
|
||||
}
|
||||
@@ -319,7 +322,7 @@ public class MineFragment extends BaseFragment {
|
||||
|
||||
private void getVersion() {
|
||||
try {
|
||||
Api.getInstance().version(0, DataUtils.getVersionCode(getActivity()), IMUIKitConfig.SUBSTATIONID)
|
||||
Api.getInstance().version(7, DataUtils.getVersionCode(getActivity()), IMUIKitConfig.SUBSTATIONID)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new BaseObserver<>() {
|
||||
@@ -329,11 +332,11 @@ public class MineFragment extends BaseFragment {
|
||||
versionBean = feedbackResp.data.get(0);
|
||||
try {
|
||||
if (versionBean.getVersionNumber() > DataUtils.getVersionCode(getActivity())) {
|
||||
|
||||
ActionConfirmDialog actionDialog = new ActionConfirmDialog(getActivity(),
|
||||
VersionDialog actionDialog = new VersionDialog(getActivity(),
|
||||
String.format(getString(R.string.updateversion_txt), versionBean.getVersionName()),
|
||||
getDownloadText(versionBean), getString(R.string.xiacigengxin_txt),
|
||||
getString(R.string.login_form_have_latest_version_update_now));
|
||||
actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() {
|
||||
getString(R.string.login_form_have_latest_version_update_now),versionBean.getForceDownload()==0);
|
||||
actionDialog.setOnToActionListener(new VersionDialog.OnToActionListener() {
|
||||
@Override
|
||||
public void toSumbit() {
|
||||
checkUpdate(versionBean.getDownloadAddress());
|
||||
@@ -341,6 +344,9 @@ public class MineFragment extends BaseFragment {
|
||||
|
||||
@Override
|
||||
public void toCancel() {
|
||||
// if (versionBean.getForceDownload() == 1) { //如果是強制升級
|
||||
// getActivity().finish();
|
||||
// }
|
||||
|
||||
}
|
||||
});
|
||||
@@ -371,9 +377,7 @@ public class MineFragment extends BaseFragment {
|
||||
}
|
||||
|
||||
private void checkUpdate(String url) {
|
||||
|
||||
// new AppUpdater(getActivity(), url).start();
|
||||
|
||||
new AppUpdater(getActivity(), url).start();
|
||||
|
||||
}
|
||||
|
||||
@@ -383,16 +387,16 @@ public class MineFragment extends BaseFragment {
|
||||
int loc = DataUtils.get(getActivity(), "locale", 1);
|
||||
switch (loc) {
|
||||
case 1:
|
||||
name = versionBean.getUpgradeHintZhCn();
|
||||
name = versionBean.getUpgradeHintZhCn().replace("\\n","\n");
|
||||
break;
|
||||
case 2:
|
||||
name = versionBean.getUpgradeHintEnUs();
|
||||
name = versionBean.getUpgradeHintEnUs().replace("\\n","\n");
|
||||
break;
|
||||
case 3:
|
||||
name = versionBean.getUpgradeHintJaJp();
|
||||
name = versionBean.getUpgradeHintJaJp().replace("\\n","\n");
|
||||
break;
|
||||
default:
|
||||
name = versionBean.getUpgradeHintZhTw();
|
||||
name = versionBean.getUpgradeHintZhTw().replace("\\n","\n");
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user