Skip to content

Commit 9512018

Browse files
authored
Merge pull request #96 from loban/optionally-skip-dialogs
Add two optional options that are used to skip dialogs
2 parents 856b471 + 4a55030 commit 9512018

File tree

4 files changed

+55
-19
lines changed

4 files changed

+55
-19
lines changed

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,14 @@ Just clone and install this demo.
3333
`cordova plugin add cordova-plugin-app-update --save`
3434

3535
# Usage
36-
- Simple:
36+
37+
- Simple:
3738
```js
3839
var updateUrl = "http://192.168.0.1/version.xml";
3940
window.AppUpdate.checkAppUpdate(onSuccess, onFail, updateUrl);
4041
```
41-
- Verbose
42+
43+
- Verbose
4244
```js
4345
var appUpdate = cordova.require('cordova-plugin-app-update.AppUpdate');
4446
var updateUrl = "http://192.168.0.1/version.xml";
@@ -54,6 +56,14 @@ appUpdate.checkAppUpdate(onSuccess, onFail, updateUrl, {
5456
})
5557
```
5658

59+
- Skip dialog boxes
60+
```js
61+
appUpdate.checkAppUpdate(onSuccess, onFail, updateUrl, {
62+
'skipPromptDialog' : true,
63+
'skipProgressDialog' : true
64+
})
65+
```
66+
5767
### versionCode
5868

5969
You can simply get the versionCode from typing those code in `Console`

src/android/DownloadHandler.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,14 @@ public void updateProgress(int progress) {
6969
}
7070

7171
public void updateMsgDialog() {
72-
mDownloadDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(View.GONE); //Update in background
73-
mDownloadDialog.getButton(DialogInterface.BUTTON_NEUTRAL).setVisibility(View.VISIBLE); //Install Manually
74-
mDownloadDialog.getButton(DialogInterface.BUTTON_POSITIVE).setVisibility(View.VISIBLE); //Download Again
75-
7672
mDownloadDialog.setTitle(msgHelper.getString(MsgHelper.DOWNLOAD_COMPLETE_TITLE));
77-
mDownloadDialog.getButton(DialogInterface.BUTTON_NEUTRAL)
78-
.setOnClickListener(downloadCompleteOnClick);
73+
if (mDownloadDialog.isShowing()) {
74+
mDownloadDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(View.GONE); //Update in background
75+
mDownloadDialog.getButton(DialogInterface.BUTTON_NEUTRAL).setVisibility(View.VISIBLE); //Install Manually
76+
mDownloadDialog.getButton(DialogInterface.BUTTON_POSITIVE).setVisibility(View.VISIBLE); //Download Again
77+
78+
mDownloadDialog.getButton(DialogInterface.BUTTON_NEUTRAL).setOnClickListener(downloadCompleteOnClick);
79+
}
7980
}
8081

8182
private OnClickListener downloadCompleteOnClick = new OnClickListener() {

src/android/MsgBox.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ public Dialog showNoticeDialog(OnClickListener onClickListener) {
6161
*/
6262
public Map<String, Object> showDownloadDialog(OnClickListener onClickListenerNeg,
6363
OnClickListener onClickListenerPos,
64-
OnClickListener onClickListenerNeu) {
64+
OnClickListener onClickListenerNeu,
65+
boolean showDialog) {
6566
if (downloadDialog == null) {
6667
LOG.d(TAG, "showDownloadDialog");
6768

@@ -84,14 +85,16 @@ public Map<String, Object> showDownloadDialog(OnClickListener onClickListenerNeg
8485
downloadDialog = builder.create();
8586
}
8687

87-
if (!downloadDialog.isShowing()) downloadDialog.show();
88+
if (showDialog && !downloadDialog.isShowing()) downloadDialog.show();
8889

8990
downloadDialog.setTitle(msgHelper.getString(MsgHelper.UPDATING));
90-
downloadDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(View.VISIBLE); //Update in background
91-
downloadDialog.getButton(DialogInterface.BUTTON_NEUTRAL).setVisibility(View.GONE); //Install Manually
92-
downloadDialog.getButton(DialogInterface.BUTTON_POSITIVE).setVisibility(View.GONE); //Download Again
93-
9491
downloadDialog.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失
92+
if (downloadDialog.isShowing()) {
93+
downloadDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setVisibility(View.VISIBLE); //Update in background
94+
downloadDialog.getButton(DialogInterface.BUTTON_NEUTRAL).setVisibility(View.GONE); //Install Manually
95+
downloadDialog.getButton(DialogInterface.BUTTON_POSITIVE).setVisibility(View.GONE); //Download Again
96+
}
97+
9598
Map<String, Object> ret = new HashMap<String, Object>();
9699
ret.put("dialog", downloadDialog);
97100
ret.put("progress", downloadDialogProgress);

src/android/UpdateManager.java

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,31 @@ private void compareVersions() {
140140
int versionCodeLocal = version.getLocal();
141141
int versionCodeRemote = version.getRemote();
142142

143+
boolean skipPromptDialog = false;
144+
try {
145+
skipPromptDialog = options.getBoolean("skipPromptDialog");
146+
} catch (JSONException e) {}
147+
148+
boolean skipProgressDialog = false;
149+
try {
150+
skipProgressDialog = options.getBoolean("skipProgressDialog");
151+
} catch (JSONException e) {}
152+
143153
//比对版本号
144154
//检查软件是否有更新版本
145155
if (versionCodeLocal < versionCodeRemote) {
146156
if (isDownloading) {
147-
msgBox.showDownloadDialog(null, null, null);
157+
msgBox.showDownloadDialog(null, null, null, !skipProgressDialog);
148158
mHandler.sendEmptyMessage(Constants.VERSION_UPDATING);
149159
} else {
150160
LOG.d(TAG, "need update");
151-
// 显示提示对话框
152-
msgBox.showNoticeDialog(noticeDialogOnClick);
153-
mHandler.sendEmptyMessage(Constants.VERSION_NEED_UPDATE);
161+
if (skipPromptDialog) {
162+
mHandler.sendEmptyMessage(Constants.DOWNLOAD_CLICK_START);
163+
} else {
164+
// 显示提示对话框
165+
msgBox.showNoticeDialog(noticeDialogOnClick);
166+
mHandler.sendEmptyMessage(Constants.VERSION_NEED_UPDATE);
167+
}
154168
}
155169
} else {
156170
mHandler.sendEmptyMessage(Constants.VERSION_UP_TO_UPDATE);
@@ -169,11 +183,19 @@ public void onClick(DialogInterface dialog, int which) {
169183

170184
private void emitNoticeDialogOnClick() {
171185
isDownloading = true;
186+
187+
boolean skipProgressDialog = false;
188+
try {
189+
skipProgressDialog = options.getBoolean("skipProgressDialog");
190+
} catch (JSONException e) {}
191+
172192
// 显示下载对话框
173193
Map<String, Object> ret = msgBox.showDownloadDialog(
174194
downloadDialogOnClickNeg,
175195
downloadDialogOnClickPos,
176-
downloadDialogOnClickNeu);
196+
downloadDialogOnClickNeu,
197+
!skipProgressDialog);
198+
177199
// 下载文件
178200
downloadApk((AlertDialog) ret.get("dialog"), (ProgressBar) ret.get("progress"));
179201
}

0 commit comments

Comments
 (0)