Skip to content

Commit 6985bf1

Browse files
committed
initial commit
1 parent 9245a50 commit 6985bf1

37 files changed

+899
-203
lines changed

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 93 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,106 @@
11
package org.lzh.framework.updateplugin;
22

3-
import android.support.v7.app.AppCompatActivity;
43
import android.os.Bundle;
4+
import android.support.v7.app.AppCompatActivity;
5+
import android.view.View;
6+
import android.widget.Toast;
57

6-
import org.lzh.framework.updatepluginlib.UpdateConfig;
8+
import org.lzh.framework.updatepluginlib.UpdateBuilder;
9+
import org.lzh.framework.updatepluginlib.callback.UpdateCheckCB;
10+
import org.lzh.framework.updatepluginlib.callback.UpdateDownloadCB;
11+
import org.lzh.framework.updatepluginlib.model.Update;
12+
import org.lzh.framework.updatepluginlib.model.UpdateParser;
13+
import org.lzh.framework.updatepluginlib.strategy.UpdateStrategy;
714

8-
public class MainActivity extends AppCompatActivity {
15+
import java.io.File;
916

10-
private String apkFile = "http://p.gdown.baidu.com/1085ce1b0a2b544d716413178475a205238e41494888635bb6045caf844b8853f2e7fd7d0bd810bb03895e733d4425bf03dfa553870944126f7052e6d4071467e1da72015a6fccf3a0b0210b5fe1d1c9af51966a2c61846a013bd61d9bf6ba4b40f61d8d9aea49af1538926fee90cd00a0ecc6fcce156d67fb1b348a0c4f290db899e47d8bc3ff47c7bf4a842d2a80f824d2ca081ba038cea860a4502e62079a745d61e7dc2c385e893a1569d9e87db7";
17+
public class MainActivity extends AppCompatActivity {
1118

19+
private String apkFile = "http://apk.hiapk.com/web/api.do?qt=8051&id=721";
1220
@Override
1321
protected void onCreate(Bundle savedInstanceState) {
1422
super.onCreate(savedInstanceState);
1523
setContentView(R.layout.activity_main);
16-
UpdateConfig.install(this);
24+
findViewById(R.id.update).setOnClickListener(new View.OnClickListener() {
25+
@Override
26+
public void onClick(View v) {
27+
UpdateBuilder.create()
28+
.url("http://www.baidu.com")
29+
.strategy(new UpdateStrategy() {
30+
@Override
31+
public boolean isShowUpdateDialog(Update update) {
32+
return true;
33+
}
34+
35+
@Override
36+
public boolean isAutoInstall() {
37+
return true;
38+
}
39+
40+
@Override
41+
public boolean isShowInstallDialog() {
42+
return true;
43+
}
44+
45+
@Override
46+
public boolean isShowDownloadDialog() {
47+
return true;
48+
}
49+
})
50+
.jsonParser(new UpdateParser() {
51+
@Override
52+
public Update parse(String httpResponse) {
53+
Update update = new Update("");
54+
update.setForced(false);
55+
update.setUpdateContent("测试");
56+
update.setUpdateUrl(apkFile);
57+
update.setVersionCode(3);
58+
update.setVersionName("3.1");
59+
update.setUpdateTime(System.currentTimeMillis());
60+
return update;
61+
}
62+
})
63+
.checkCB(new UpdateCheckCB() {
64+
@Override
65+
public void hasUpdate(Update update) {
66+
67+
}
68+
69+
@Override
70+
public void noUpdate() {
71+
Toast.makeText(MainActivity.this, "noUpdate", Toast.LENGTH_SHORT).show();
72+
}
73+
74+
@Override
75+
public void onCheckError(int code, String errorMsg) {
76+
Toast.makeText(MainActivity.this, "checkError:code:" + code + ",errorMsg:" + errorMsg, Toast.LENGTH_SHORT).show();
77+
}
78+
})
79+
.downloadCB(new UpdateDownloadCB() {
80+
@Override
81+
public void onUpdateStart() {
82+
Toast.makeText(MainActivity.this, "onUpdateStart", Toast.LENGTH_SHORT).show();
83+
}
84+
85+
@Override
86+
public void onUpdateComplete(File file) {
87+
Toast.makeText(MainActivity.this, "onUpdateComplete", Toast.LENGTH_SHORT).show();
88+
}
89+
90+
@Override
91+
public void onUpdateProgress(long current, long total) {
92+
93+
}
94+
95+
@Override
96+
public void onUpdateError(int code, String errorMsg) {
97+
Toast.makeText(MainActivity.this, "更新失败:code:" + code + ",errorMsg:" + errorMsg, Toast.LENGTH_SHORT).show();
98+
}
99+
})
100+
.check(MainActivity.this);
101+
}
102+
});
103+
104+
17105
}
18106
}
Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
4-
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
5-
android:paddingRight="@dimen/activity_horizontal_margin"
6-
android:paddingTop="@dimen/activity_vertical_margin"
7-
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="match_parent"
5+
android:orientation="vertical">
86

9-
<TextView android:text="Hello World!" android:layout_width="wrap_content"
10-
android:layout_height="wrap_content" />
11-
</RelativeLayout>
7+
<Button
8+
android:id="@+id/update"
9+
android:layout_width="match_parent"
10+
android:layout_height="wrap_content"
11+
android:text="update" />
12+
</LinearLayout>

updatepluginlib/src/main/AndroidManifest.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
22
package="org.lzh.framework.updatepluginlib">
3-
3+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
4+
<uses-permission android:name="android.permission.INTERNET"/>
5+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
6+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
47
<application android:allowBackup="true" android:label="@string/app_name"
58
android:supportsRtl="true">
69

updatepluginlib/src/main/java/org/lzh/framework/updatepluginlib/UpdateBuilder.java

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package org.lzh.framework.updatepluginlib;
22

33
import android.app.Activity;
4+
import android.text.TextUtils;
45

6+
import org.lzh.framework.updatepluginlib.business.DownloadWorker;
7+
import org.lzh.framework.updatepluginlib.business.UpdateWorker;
8+
import org.lzh.framework.updatepluginlib.callback.UpdateCheckCB;
9+
import org.lzh.framework.updatepluginlib.callback.UpdateDownloadCB;
510
import org.lzh.framework.updatepluginlib.creator.ApkFileCreator;
611
import org.lzh.framework.updatepluginlib.strategy.UpdateStrategy;
712
import org.lzh.framework.updatepluginlib.creator.DialogCreator;
@@ -14,6 +19,11 @@
1419
*/
1520
public class UpdateBuilder {
1621

22+
private UpdateWorker checkWorker;
23+
private DownloadWorker downloadWorker;
24+
private UpdateCheckCB checkCB;
25+
private UpdateDownloadCB downloadCB;
26+
private String url;
1727
private UpdateStrategy strategy;
1828
private DialogCreator updateDialogCreator;
1929
private InstallCreator installDialogCreator;
@@ -25,6 +35,31 @@ public static UpdateBuilder create() {
2535
return new UpdateBuilder();
2636
}
2737

38+
public UpdateBuilder url(String url) {
39+
this.url = url;
40+
return this;
41+
}
42+
43+
public UpdateBuilder checkWorker(UpdateWorker checkWorker) {
44+
this.checkWorker = checkWorker;
45+
return this;
46+
}
47+
48+
public UpdateBuilder downloadWorker(DownloadWorker downloadWorker) {
49+
this.downloadWorker = downloadWorker;
50+
return this;
51+
}
52+
53+
public UpdateBuilder downloadCB(UpdateDownloadCB downloadCB) {
54+
this.downloadCB = downloadCB;
55+
return this;
56+
}
57+
58+
public UpdateBuilder checkCB (UpdateCheckCB checkCB) {
59+
this.checkCB = checkCB;
60+
return this;
61+
}
62+
2863
public UpdateBuilder jsonParser (UpdateParser jsonParser) {
2964
this.jsonParser = jsonParser;
3065
return this;
@@ -60,26 +95,79 @@ public void check(Activity activity) {
6095
}
6196

6297
public UpdateStrategy getStrategy() {
98+
if (strategy == null) {
99+
strategy = UpdateConfig.getConfig().getStrategy();
100+
}
63101
return strategy;
64102
}
65103

104+
public String getUrl() {
105+
if (TextUtils.isEmpty(url)) {
106+
url = UpdateConfig.getConfig().getUrl();
107+
}
108+
return url;
109+
}
110+
66111
public DialogCreator getUpdateDialogCreator() {
112+
if (updateDialogCreator == null) {
113+
updateDialogCreator = UpdateConfig.getConfig().getUpdateDialogCreator();
114+
}
67115
return updateDialogCreator;
68116
}
69117

70118
public InstallCreator getInstallDialogCreator() {
119+
if (installDialogCreator == null) {
120+
installDialogCreator = UpdateConfig.getConfig().getInstallDialogCreator();
121+
}
71122
return installDialogCreator;
72123
}
73124

74125
public DownloadCreator getDownloadDialogCreator() {
126+
if (downloadDialogCreator == null) {
127+
downloadDialogCreator = UpdateConfig.getConfig().getDownloadDialogCreator();
128+
}
75129
return downloadDialogCreator;
76130
}
77131

78132
public UpdateParser getJsonParser() {
133+
if (jsonParser == null) {
134+
jsonParser = UpdateConfig.getConfig().getJsonParser();
135+
}
79136
return jsonParser;
80137
}
81138

139+
public UpdateWorker getCheckWorker() {
140+
if (checkWorker == null) {
141+
checkWorker = UpdateConfig.getConfig().getCheckWorker();
142+
}
143+
return checkWorker;
144+
}
145+
146+
public DownloadWorker getDownloadWorker() {
147+
if (downloadWorker == null) {
148+
downloadWorker = UpdateConfig.getConfig().getDownloadWorker();
149+
}
150+
return downloadWorker;
151+
}
152+
82153
public ApkFileCreator getFileCreator() {
154+
if (fileCreator == null) {
155+
fileCreator = UpdateConfig.getConfig().getFileCreator();
156+
}
83157
return fileCreator;
84158
}
159+
160+
public UpdateCheckCB getCheckCB() {
161+
if (checkCB == null) {
162+
checkCB = UpdateConfig.getConfig().getCheckCB();
163+
}
164+
return checkCB;
165+
}
166+
167+
public UpdateDownloadCB getDownloadCB() {
168+
if (downloadCB == null) {
169+
downloadCB = UpdateConfig.getConfig().getDownloadCB();
170+
}
171+
return downloadCB;
172+
}
85173
}

0 commit comments

Comments
 (0)