From 82a9b36a7db86ab05fff56b473f3715058f64e77 Mon Sep 17 00:00:00 2001 From: jenly1314 Date: Wed, 4 Dec 2019 15:20:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/king/app/dialog/AppDialog.java | 6 ++++-- .../king/app/dialog/fragment/AppDialogFragment.java | 6 +++--- .../main/java/com/king/app/updater/AppUpdater.java | 5 +++-- .../king/app/updater/service/DownloadService.java | 13 ++++++++++--- .../main/java/com/king/appupdater/MainActivity.java | 3 ++- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app-dialog/src/main/java/com/king/app/dialog/AppDialog.java b/app-dialog/src/main/java/com/king/app/dialog/AppDialog.java index 0e00ad8..c9eca29 100644 --- a/app-dialog/src/main/java/com/king/app/dialog/AppDialog.java +++ b/app-dialog/src/main/java/com/king/app/dialog/AppDialog.java @@ -233,8 +233,10 @@ public enum AppDialog { mDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - if(keyCode == KeyEvent.KEYCODE_BACK && isCancel){ - dismissDialog(); + if(keyCode == KeyEvent.KEYCODE_BACK){ + if(isCancel){ + dismissDialog(); + } return true; } return false; diff --git a/app-dialog/src/main/java/com/king/app/dialog/fragment/AppDialogFragment.java b/app-dialog/src/main/java/com/king/app/dialog/fragment/AppDialogFragment.java index f3e3481..9f089dc 100644 --- a/app-dialog/src/main/java/com/king/app/dialog/fragment/AppDialogFragment.java +++ b/app-dialog/src/main/java/com/king/app/dialog/fragment/AppDialogFragment.java @@ -26,10 +26,10 @@ public class AppDialogFragment extends BaseDialogFragment { @Override public int getRootLayoutId() { - if(config == null){ - config = new AppDialogConfig(); + if(config != null){ + return config.getLayoutId(); } - return config.getLayoutId(); + return R.layout.app_dialog; } public void init(View rootView){ diff --git a/app-updater/src/main/java/com/king/app/updater/AppUpdater.java b/app-updater/src/main/java/com/king/app/updater/AppUpdater.java index a536c5e..e10c49b 100644 --- a/app-updater/src/main/java/com/king/app/updater/AppUpdater.java +++ b/app-updater/src/main/java/com/king/app/updater/AppUpdater.java @@ -85,8 +85,8 @@ public class AppUpdater { */ public void start(){ if(mConfig!=null && !TextUtils.isEmpty(mConfig.getUrl())){ - //如果mContext是Activity,则默认会校验一次动态权限。 - if(mContext instanceof Activity){ + //如果mContext是Activity,并且配置了下载路径,则默认会校验一次动态权限。 + if(mContext instanceof Activity && !TextUtils.isEmpty(mConfig.getPath())){ PermissionUtils.verifyReadAndWritePermissions((Activity) mContext,Constants.RE_CODE_STORAGE_PERMISSION); } @@ -337,6 +337,7 @@ public class AppUpdater { return this; } + public AppUpdater build(@NonNull Context context){ AppUpdater appUpdater = new AppUpdater(context,mConfig); return appUpdater; diff --git a/app-updater/src/main/java/com/king/app/updater/service/DownloadService.java b/app-updater/src/main/java/com/king/app/updater/service/DownloadService.java index 3b9407a..311f0e6 100644 --- a/app-updater/src/main/java/com/king/app/updater/service/DownloadService.java +++ b/app-updater/src/main/java/com/king/app/updater/service/DownloadService.java @@ -12,6 +12,7 @@ import android.os.Build; import android.os.IBinder; import android.text.TextUtils; import android.util.Log; +import android.widget.RemoteViews; import com.king.app.updater.R; import com.king.app.updater.UpdateConfig; @@ -224,6 +225,8 @@ public class DownloadService extends Service { private boolean isReDownload; + private boolean isDeleteCancelFile; + private UpdateCallback callback; @@ -252,6 +255,7 @@ public class DownloadService extends Service { this.isShowPercentage = config.isShowPercentage(); this.isReDownload = config.isReDownload(); + this.isDeleteCancelFile = config.isDeleteCancelFile(); } @@ -315,7 +319,7 @@ public class DownloadService extends Service { @Override public void onError(Exception e) { - Log.w(Constants.TAG,e); + Log.w(Constants.TAG,"onError:"+ e.getMessage()); isDownloading = false; //支持下载失败重新并最多支持失败下载3次 boolean isReDownload = this.isReDownload && mCount < 3; @@ -339,7 +343,7 @@ public class DownloadService extends Service { if(callback!=null){ callback.onCancel(); } - if(mFile!=null){ + if(isDeleteCancelFile && mFile!=null){ mFile.delete(); } stopService(); @@ -369,6 +373,7 @@ public class DownloadService extends Service { createNotificationChannel(channelId,channelName,isVibrate,isSound); } NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content); + builder.setPriority(NotificationManager.IMPORTANCE_HIGH); if(isVibrate && isSound){ builder.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND); }else if(isVibrate){ @@ -376,6 +381,7 @@ public class DownloadService extends Service { }else if(isSound){ builder.setDefaults(Notification.DEFAULT_SOUND); } + Notification notification = builder.build(); notification.flags = Notification.FLAG_NO_CLEAR | Notification.FLAG_ONLY_ALERT_ONCE; notifyNotification(notifyId,notification); @@ -393,6 +399,7 @@ public class DownloadService extends Service { */ private void showProgressNotification(int notifyId,String channelId,@DrawableRes int icon,CharSequence title,CharSequence content,int progress,int size){ NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content,progress,size); + Notification notification = builder.build(); notification.flags = Notification.FLAG_NO_CLEAR | Notification.FLAG_ONLY_ALERT_ONCE; notifyNotification(notifyId,notification); @@ -479,7 +486,7 @@ public class DownloadService extends Service { */ @RequiresApi(api = Build.VERSION_CODES.O) private void createNotificationChannel(String channelId, String channelName,boolean isVibrate,boolean isSound){ - NotificationChannel channel = new NotificationChannel(channelId,channelName, NotificationManager.IMPORTANCE_DEFAULT); + NotificationChannel channel = new NotificationChannel(channelId,channelName, NotificationManager.IMPORTANCE_HIGH); channel.enableVibration(isVibrate); if(!isSound){ channel.setSound(null,null); diff --git a/app/src/main/java/com/king/appupdater/MainActivity.java b/app/src/main/java/com/king/appupdater/MainActivity.java index 5ef60e3..bae36c8 100644 --- a/app/src/main/java/com/king/appupdater/MainActivity.java +++ b/app/src/main/java/com/king/appupdater/MainActivity.java @@ -193,7 +193,8 @@ public class MainActivity extends AppCompatActivity { AppDialog.INSTANCE.dismissDialog(); } }); - AppDialog.INSTANCE.showDialog(getContext(),AppDialog.INSTANCE.createAppDialogView(getContext(),config),true); + //强制升级,拦截返回 + AppDialog.INSTANCE.showDialog(getContext(),AppDialog.INSTANCE.createAppDialogView(getContext(),config),false); } /**