Skip to content

Commit 460658c

Browse files
committed
添加下载失败重启逻辑
1 parent 92d4296 commit 460658c

19 files changed

+72
-32
lines changed

app/src/main/java/org/lzh/framework/updateplugin/BaseActivity.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.app.Activity;
44
import android.os.Bundle;
5-
import android.widget.Button;
65

76
/**
87
* Created by admin on 16-6-21.

app/src/main/java/org/lzh/framework/updateplugin/MyApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import org.json.JSONObject;
66
import org.lzh.framework.updateplugin.widget.ToastTool;
77
import org.lzh.framework.updatepluginlib.UpdateConfig;
8-
import org.lzh.framework.updatepluginlib.model.Update;
98
import org.lzh.framework.updatepluginlib.base.UpdateParser;
9+
import org.lzh.framework.updatepluginlib.model.Update;
1010

1111
/**
1212
* @author Administrator

app/src/main/java/org/lzh/framework/updateplugin/SampleActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import org.lzh.framework.updateplugin.widget.CheckedView;
2020
import org.lzh.framework.updatepluginlib.UpdateBuilder;
2121
import org.lzh.framework.updatepluginlib.UpdateConfig;
22-
import org.lzh.framework.updatepluginlib.model.Update;
2322
import org.lzh.framework.updatepluginlib.base.UpdateParser;
23+
import org.lzh.framework.updatepluginlib.model.Update;
2424

2525
import butterknife.BindView;
2626
import butterknife.ButterKnife;

app/src/main/java/org/lzh/framework/updateplugin/update/AllDialogShowStrategy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package org.lzh.framework.updateplugin.update;
22

3+
import org.lzh.framework.updatepluginlib.base.UpdateStrategy;
34
import org.lzh.framework.updatepluginlib.impl.WifiFirstStrategy;
45
import org.lzh.framework.updatepluginlib.model.Update;
5-
import org.lzh.framework.updatepluginlib.base.UpdateStrategy;
66

77
/**
88
* 自定义强制显示所有Dialog策略,
99
* 默认使用参考 {@link WifiFirstStrategy}
1010
*/
11-
public class AllDialogShowStrategy implements UpdateStrategy {
11+
public class AllDialogShowStrategy extends UpdateStrategy {
1212
/** 指定是否在判断出有需要更新的版本时。弹出更新提醒弹窗
1313
* @param update 需要更新的版本信息
1414
* @return true 显示弹窗

app/src/main/java/org/lzh/framework/updateplugin/update/NotificationDownloadCreator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* 默认使用参考:{@link DefaultDownloadNotifier}
2121
* </p>
2222
*/
23-
public class NotificationDownloadCreator implements DownloadNotifier {
23+
public class NotificationDownloadCreator extends DownloadNotifier {
2424
@Override
2525
public DownloadCallback create(Update update, Activity activity) {
2626
// 返回一个UpdateDownloadCB对象用于下载时使用来更新界面。

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/base/DownloadNotifier.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import org.lzh.framework.updatepluginlib.UpdateBuilder;
2121
import org.lzh.framework.updatepluginlib.UpdateConfig;
22+
import org.lzh.framework.updatepluginlib.flow.Launcher;
2223
import org.lzh.framework.updatepluginlib.impl.DefaultDownloadNotifier;
2324
import org.lzh.framework.updatepluginlib.model.Update;
2425
import org.lzh.framework.updatepluginlib.util.ActivityManager;
@@ -34,7 +35,20 @@
3435
*
3536
* @author haoge
3637
*/
37-
public interface DownloadNotifier {
38+
public abstract class DownloadNotifier {
39+
40+
protected Update update;
41+
protected UpdateBuilder builder;
42+
43+
public final DownloadNotifier bind(UpdateBuilder builder, Update update) {
44+
this.update = update;
45+
this.builder = builder;
46+
return this;
47+
}
48+
49+
protected final void restartDownload() {
50+
Launcher.getInstance().launchDownload(update, builder);
51+
}
3852

3953
/**
4054
* 创建一个下载任务的下载进度回调。此回调将用于接收下载任务的状态并更新UI。
@@ -43,5 +57,7 @@ public interface DownloadNotifier {
4357
* @param activity 顶部的Activity实例。通过{@link ActivityManager#topActivity()}进行获取
4458
* @return 被创建的回调器。允许为null。
4559
*/
46-
DownloadCallback create(Update update, Activity activity);
60+
public abstract DownloadCallback create(Update update, Activity activity);
61+
62+
4763
}

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/base/InstallStrategy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
import org.lzh.framework.updatepluginlib.UpdateBuilder;
2121
import org.lzh.framework.updatepluginlib.UpdateConfig;
22-
import org.lzh.framework.updatepluginlib.model.Update;
2322
import org.lzh.framework.updatepluginlib.impl.DefaultInstallStrategy;
23+
import org.lzh.framework.updatepluginlib.model.Update;
2424

2525
/**
2626
* 提供一个安装策略。便于针对不同的应用场景。定制不同的安装策略实现。
@@ -31,7 +31,7 @@
3131
*
3232
* @author haoge
3333
*/
34-
public interface InstallStrategy {
34+
public abstract class InstallStrategy {
3535

3636
/**
3737
* 在此定制你自己的安装策略。如:
@@ -42,5 +42,5 @@ public interface InstallStrategy {
4242
* @param filename The apk filename
4343
* @param update 更新数据实体类
4444
*/
45-
void install(Context context, String filename, Update update);
45+
public abstract void install(Context context, String filename, Update update);
4646
}

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/base/UpdateChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@
2929
*
3030
* @author haoge
3131
*/
32-
public interface UpdateChecker {
32+
public abstract class UpdateChecker {
3333

3434
/**
3535
* 对提供的更新实体类进行检查。判断是否需要进行更新。
3636
* @param update 更新数据实体类
3737
* @return True代表检查通过。此版本需要被更新
3838
* @throws Exception error occurs.
3939
*/
40-
boolean check(Update update) throws Exception;
40+
public abstract boolean check(Update update) throws Exception;
4141
}

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/base/UpdateParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*
2727
* @author haoge
2828
*/
29-
public interface UpdateParser {
29+
public abstract class UpdateParser {
3030

3131
/**
3232
* 当更新api网络任务请求成功时。将会触发到此,在此根据网络数据解析创建出对应的更新数据实体类并返回给框架层使用。
@@ -35,5 +35,5 @@ public interface UpdateParser {
3535
* @return 被创建的更新数据实体类。不能为null
3636
* @throws Exception 捕获异常。防止crash并统一异常流程
3737
*/
38-
Update parse(String response) throws Exception;
38+
public abstract Update parse(String response) throws Exception;
3939
}

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/base/UpdateStrategy.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
import org.lzh.framework.updatepluginlib.UpdateBuilder;
1919
import org.lzh.framework.updatepluginlib.UpdateConfig;
20-
import org.lzh.framework.updatepluginlib.model.Update;
2120
import org.lzh.framework.updatepluginlib.impl.WifiFirstStrategy;
21+
import org.lzh.framework.updatepluginlib.model.Update;
2222

2323
/**
2424
* 此接口用于定制更新时各节点通知的显示逻辑。
@@ -37,7 +37,7 @@
3737
*
3838
* @author haoge
3939
*/
40-
public interface UpdateStrategy {
40+
public abstract class UpdateStrategy {
4141

4242
/**
4343
* 当通过{@link UpdateChecker}检测到需要更新时。是否显示界面更新通知
@@ -46,21 +46,21 @@ public interface UpdateStrategy {
4646
* @return True代表需要显示更新。False代表不进行界面更新通知。直接调起后续流程(启动apk文件下载任务)
4747
* @see CheckNotifier
4848
*/
49-
boolean isShowUpdateDialog(Update update);
49+
public abstract boolean isShowUpdateDialog(Update update);
5050

5151
/**
5252
* 在使用{@link DownloadWorker}执行文件下载任务时。是否显示界面进度条通知
5353
*
5454
* @return True代表需要显示下载进度通知,
5555
* @see DownloadNotifier
5656
*/
57-
boolean isShowDownloadDialog();
57+
public abstract boolean isShowDownloadDialog();
5858

5959
/**
6060
* 是否在下载完成后。跳过下载完成的界面通知。直接自动启动安装任务
6161
*
6262
* @return True代表将跳过展示apk下载完成的通知。自动进行安装。
6363
* @see InstallNotifier
6464
*/
65-
boolean isAutoInstall();
65+
public abstract boolean isAutoInstall();
6666
}

0 commit comments

Comments
 (0)