强更替换为appUpdate库。
This commit is contained in:
@@ -43,11 +43,17 @@ open class Application : CommonAppContext() {
|
||||
var inviteDialog: InviteDialog? = null
|
||||
var currDialogActivity: Activity? = null
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 单例实例
|
||||
companion object {
|
||||
@Volatile
|
||||
private lateinit var instance: Application
|
||||
|
||||
var isKeepScreenOn = false
|
||||
|
||||
// 全局获取 Application 实例
|
||||
fun getInstance(): Application {
|
||||
return instance
|
||||
@@ -232,6 +238,8 @@ open class Application : CommonAppContext() {
|
||||
}
|
||||
|
||||
fun showInviteDialog(activity: Activity?, t: IndexRecommendRoom) {
|
||||
if (isKeepScreenOn)
|
||||
return
|
||||
if (activity != null && activity == currDialogActivity && inviteDialog != null) {
|
||||
inviteDialog?.setData(t)
|
||||
return
|
||||
|
||||
@@ -19,6 +19,7 @@ import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ImageView;
|
||||
@@ -31,6 +32,9 @@ import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.azhon.appupdate.listener.OnButtonClickListener;
|
||||
import com.azhon.appupdate.listener.OnDownloadListener;
|
||||
import com.azhon.appupdate.manager.DownloadManager;
|
||||
import com.blankj.utilcode.util.FragmentUtils;
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
@@ -86,6 +90,7 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -504,6 +509,11 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
||||
MvpPre.activitiesPermission();//获取悬浮框权限
|
||||
|
||||
|
||||
if (manager != null && !manager.getDownloadState()){
|
||||
manager.download();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void requestGpsPermissions() {
|
||||
@@ -647,7 +657,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
||||
CommonAppContext.getInstance().onAppForeground();
|
||||
}
|
||||
|
||||
public void dialogUp(){
|
||||
public void dialogUp() {
|
||||
if (!CommonAppContext.getInstance().isPlaying) {
|
||||
MvpPre.index_recommend_room();
|
||||
}
|
||||
@@ -662,22 +672,97 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
||||
MvpPre.userNews();
|
||||
}
|
||||
|
||||
// 用于记录是否手动设置了禁止息屏,避免影响其他场景
|
||||
|
||||
/**
|
||||
* 控制屏幕是否保持常亮(禁止/恢复自动息屏)
|
||||
*
|
||||
* @param keepOn true=禁止息屏,false=恢复自动息屏
|
||||
*/
|
||||
private void keepScreenOn(boolean keepOn) {
|
||||
if (keepOn == Application.Companion.isKeepScreenOn()) {
|
||||
return; // 避免重复设置
|
||||
}
|
||||
Application.Companion.setKeepScreenOn(keepOn);
|
||||
|
||||
// 获取当前Activity的Window,设置FLAG_KEEP_SCREEN_ON
|
||||
if (keepOn) {
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
} else {
|
||||
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appUpdate(AppUpdateModel appUpdateModel) {
|
||||
if (appUpdateModel.getCode() > getCurrentVersionCode(this)) {
|
||||
if (appUpdateDialog == null) {
|
||||
appUpdateDialog = new AppUpdateDialog(this);
|
||||
appUpdateDialog.setAppUpdateModel(appUpdateModel);
|
||||
if (appUpdateModel.getIs_force().equals("1") || getCurrentVersionCode(this) - appUpdateModel.getCode() >= 2) {
|
||||
appUpdateDialog.setCanceledOnTouchOutside(false);
|
||||
}
|
||||
// 1. 禁止屏幕自动息屏(核心逻辑)
|
||||
keepScreenOn(true);
|
||||
// 初始化DownloadManager(注意:需确保DownloadManager类的包名正确)
|
||||
manager = new DownloadManager.Builder(this)
|
||||
.apkUrl(appUpdateModel.getUrl())
|
||||
.apkName("yusheng.apk")
|
||||
.smallIcon(R.mipmap.ic_launcher_foreground)
|
||||
.showNewerToast(false)
|
||||
.apkVersionCode(appUpdateModel.getCode())
|
||||
.apkVersionName(appUpdateModel.getVersion())
|
||||
.apkDescription(appUpdateModel.getContent())
|
||||
.enableLog(true)
|
||||
.jumpInstallPage(true)
|
||||
.dialogButtonTextColor(Color.WHITE)
|
||||
.showNotification(true)
|
||||
.showBgdToast(false)
|
||||
.dialogImage(com.xscm.moduleutil.R.mipmap.imh_app_update)
|
||||
.forcedUpgrade(appUpdateModel.getIs_force().equals("1"))
|
||||
.onDownloadListener(new OnDownloadListener() {
|
||||
@Override
|
||||
public void start() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloading(int max, int progress) {
|
||||
LogUtils.e("AppUpdate", "downloading:"+progress);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void done(@NonNull File apk) {
|
||||
LogUtils.e("AppUpdate", "done:");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
LogUtils.e("AppUpdate", "cancel:");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(@NonNull Throwable e) {
|
||||
LogUtils.e("AppUpdate", "error:", e);
|
||||
}
|
||||
})
|
||||
.onButtonClickListener(id -> {
|
||||
LogUtils.e("TAG", "onButtonClick: " + id);
|
||||
})
|
||||
.build();
|
||||
|
||||
// 判空后执行下载
|
||||
if (manager != null) {
|
||||
manager.download();
|
||||
}
|
||||
appUpdateDialog.show();
|
||||
|
||||
|
||||
// if (appUpdateDialog == null) {
|
||||
// appUpdateDialog = new AppUpdateDialog(this);
|
||||
// appUpdateDialog.setAppUpdateModel(appUpdateModel);
|
||||
// if (appUpdateModel.getIs_force().equals("1") || getCurrentVersionCode(this) - appUpdateModel.getCode() >= 2) {
|
||||
// appUpdateDialog.setCanceledOnTouchOutside(false);
|
||||
// }
|
||||
// }
|
||||
// appUpdateDialog.show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private DownloadManager manager = null;
|
||||
private String city1;
|
||||
|
||||
@Override
|
||||
@@ -696,7 +781,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
||||
}
|
||||
|
||||
|
||||
public static int getCurrentVersionCode(Context context) {
|
||||
public int getCurrentVersionCode(Context context) {
|
||||
try {
|
||||
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
|
||||
return packageInfo.versionCode;
|
||||
@@ -893,7 +978,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
||||
@Override
|
||||
public void index_recommend_room(IndexRecommendRoom indexRecommendRoom) {
|
||||
if (indexRecommendRoom != null && !Objects.requireNonNull(indexRecommendRoom.getRoom_id()).isEmpty()) {
|
||||
Application.Companion.getInstance().showInviteDialog(this,indexRecommendRoom);
|
||||
Application.Companion.getInstance().showInviteDialog(this, indexRecommendRoom);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user