版本更新

This commit is contained in:
guozhen
2025-01-21 11:52:45 +08:00
committed by xuhuixiang
parent 5c51203060
commit 9d1e398c58
15 changed files with 420 additions and 33 deletions

View 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);
}
}

View File

@@ -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");

View File

@@ -790,6 +790,7 @@ public class ContactFragment extends BaseFragment {
}
binding.tvIndexfmGrouppull.setVisibility(size > 3 ? View.VISIBLE : View.GONE);
}
teamContactAdapter.sortListByMyTeam(teamContactAdapter.getData());
}
//更新会话数据

View File

@@ -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;

View File

@@ -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;
}