优化细节

pull/27/head
jenly1314 5 years ago
parent a10687ad07
commit 82a9b36a7d
  1. 4
      app-dialog/src/main/java/com/king/app/dialog/AppDialog.java
  2. 6
      app-dialog/src/main/java/com/king/app/dialog/fragment/AppDialogFragment.java
  3. 5
      app-updater/src/main/java/com/king/app/updater/AppUpdater.java
  4. 13
      app-updater/src/main/java/com/king/app/updater/service/DownloadService.java
  5. 3
      app/src/main/java/com/king/appupdater/MainActivity.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){
if(keyCode == KeyEvent.KEYCODE_BACK){
if(isCancel){
dismissDialog();
}
return true;
}
return false;

@ -26,11 +26,11 @@ public class AppDialogFragment extends BaseDialogFragment {
@Override
public int getRootLayoutId() {
if(config == null){
config = new AppDialogConfig();
}
if(config != null){
return config.getLayoutId();
}
return R.layout.app_dialog;
}
public void init(View rootView){
if(config!=null){

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

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

@ -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);
}
/**

Loading…
Cancel
Save