Skip to content

Commit 814143b

Browse files
author
tiann
committed
[VXP]: install tips when fail.
1 parent 8840d37 commit 814143b

File tree

6 files changed

+73
-29
lines changed

6 files changed

+73
-29
lines changed

VirtualApp/app/src/main/java/io/virtualapp/sys/Installd.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public class Installd {
3535

3636
public interface UpdateListener {
3737
void update(AppData model);
38+
39+
void fail(String msg);
3840
}
3941

4042
public static void addApp(AppInfoLite info, UpdateListener refreshListener) {
@@ -101,7 +103,7 @@ class AddResult {
101103
if (addResult.appData != null) {
102104
// mView.removeAppToLauncher(addResult.appData);
103105
}
104-
throw new IllegalStateException();
106+
throw new IllegalStateException(res.error);
105107
}
106108
}
107109
}).then((res) -> {
@@ -129,6 +131,11 @@ class AddResult {
129131
}
130132
handleOptApp(data, info.packageName, false, refreshListener);
131133
}
134+
}).fail(result -> {
135+
if (refreshListener != null) {
136+
refreshListener.fail(result.getMessage());
137+
138+
}
132139
});
133140
}
134141

VirtualApp/app/src/main/java/io/virtualapp/sys/InstallerActivity.java

Lines changed: 52 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import io.virtualapp.R;
2929
import io.virtualapp.VCommends;
3030
import io.virtualapp.abs.ui.VUiKit;
31+
import io.virtualapp.home.models.AppData;
3132
import io.virtualapp.home.models.AppInfoLite;
3233

3334
/**
@@ -112,31 +113,52 @@ private void handleSelfIntent(ArrayList<AppInfoLite> appList) {
112113
}
113114

114115
private void addApp(AppInfoLite appInfoLite) {
115-
Installd.addApp(appInfoLite, model -> runOnUiThread(() -> {
116-
if (model.isInstalling()) {
117-
mProgressText.setVisibility(View.VISIBLE);
118-
mProgressBar.setVisibility(View.VISIBLE);
119-
mProgressText.setText(getResources().getString(R.string.add_app_installing_tips, model.getName()));
120-
} else if (model.isLoading()) {
121-
mProgressText.setVisibility(View.VISIBLE);
122-
mProgressBar.setVisibility(View.VISIBLE);
123-
mProgressText.setText(getResources().getString(R.string.add_app_loading_tips, model.getName()));
124-
} else {
125-
mInstallCount--;
126-
if (mInstallCount <= 0) {
127-
mInstallCount = 0;
128-
// only dismiss when the app is the last to install.
129-
mProgressText.setText(getResources().getString(R.string.add_app_laoding_complete, model.getName()));
130-
mProgressText.postDelayed(() -> {
131-
mProgressBar.setVisibility(View.GONE);
132-
133-
mRight.setVisibility(View.VISIBLE);
134-
mRight.setText(R.string.install_complete);
135-
mRight.setOnClickListener((vv)-> finish());
136-
}, 500);
116+
Installd.addApp(appInfoLite, new Installd.UpdateListener() {
117+
@Override
118+
public void update(AppData model) {
119+
runOnUiThread(() -> {
120+
if (model.isInstalling()) {
121+
mProgressText.setVisibility(View.VISIBLE);
122+
mProgressBar.setVisibility(View.VISIBLE);
123+
mProgressText.setText(getResources().getString(R.string.add_app_installing_tips, model.getName()));
124+
} else if (model.isLoading()) {
125+
mProgressText.setVisibility(View.VISIBLE);
126+
mProgressBar.setVisibility(View.VISIBLE);
127+
mProgressText.setText(getResources().getString(R.string.add_app_loading_tips, model.getName()));
128+
} else {
129+
mInstallCount--;
130+
if (mInstallCount <= 0) {
131+
mInstallCount = 0;
132+
// only dismiss when the app is the last to install.
133+
mProgressText.setText(getResources().getString(R.string.add_app_laoding_complete, model.getName()));
134+
mProgressText.postDelayed(() -> {
135+
mProgressBar.setVisibility(View.GONE);
136+
137+
mRight.setVisibility(View.VISIBLE);
138+
mRight.setText(R.string.install_complete);
139+
mRight.setOnClickListener((vv) -> finish());
140+
}, 500);
141+
}
142+
}
143+
}
144+
);
145+
}
146+
147+
@Override
148+
public void fail(String msg) {
149+
if (msg == null) {
150+
msg = "Unknown";
137151
}
152+
153+
mProgressText.setText(getResources().getString(R.string.install_fail, msg));
154+
mProgressText.postDelayed(() -> {
155+
mProgressBar.setVisibility(View.GONE);
156+
mRight.setVisibility(View.VISIBLE);
157+
mRight.setText(R.string.install_complete);
158+
mRight.setOnClickListener((vv) -> finish());
159+
}, 500);
138160
}
139-
}));
161+
});
140162
}
141163

142164
private boolean dealUpdate(List<AppInfoLite> appList) {
@@ -289,11 +311,16 @@ private void handleSystemIntent(Intent intent) {
289311
mProgressText.setText(getResources().getString(R.string.add_app_laoding_complete, apkName));
290312
mProgressBar.setVisibility(View.GONE);
291313
mRight.setEnabled(true);
292-
mRight.setText(res.isSuccess ? R.string.install_complete : R.string.install_fail);
314+
mRight.setText(res.isSuccess ? getResources().getString(R.string.install_complete) :
315+
getResources().getString(R.string.install_fail, res.error));
293316
mRight.setOnClickListener((vv) -> finish());
294317
}).fail((res) -> {
318+
String msg = res.getMessage();
319+
if (msg == null) {
320+
msg = "Unknown";
321+
}
295322
mProgressText.setVisibility(View.VISIBLE);
296-
mProgressText.setText(R.string.install_fail);
323+
mProgressText.setText(getResources().getString(R.string.install_fail, msg));
297324
mRight.setEnabled(true);
298325
mProgressBar.setVisibility(View.GONE);
299326
mRight.setText(android.R.string.ok);

VirtualApp/app/src/main/res/values-es/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
<string name="shared_to_vxp_failed">Compartir falló, por favor intentar nuevamente.</string>
113113
<string name="app_installer_label">Agregar a VirtualXposed</string>
114114
<string name="install_complete">Instalación terminada</string>
115-
<string name="install_fail">Fallo en la instalación.</string>
115+
<string name="install_fail">Fallo en la instalación: : %1$s</string>
116116
<string name="install">Instalar</string>
117117
<string name="install_package">Instalar nueva aplicación: %s</string>
118118
<string name="install_package_version_tips">Ha seleccionado una aplicación existente, ¿desea instalarla? \n(Versión instalada %1$s, versión seleccionada: %2$s)</string>

VirtualApp/app/src/main/res/values-zh-rCN/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
<string name="shared_to_vxp_failed">分享失败 :( 请稍后重试…</string>
109109
<string name="app_installer_label">安装到VirtualXposed</string>
110110
<string name="install_complete">完成</string>
111-
<string name="install_fail">安装失败</string>
111+
<string name="install_fail">安装失败:%1$s</string>
112112
<string name="install">安装</string>
113113
<string name="install_package">添加新应用 : %s</string>
114114
<string name="install_package_version_tips">你选择了一个已经安装了的应用,\n\n已经安装的版本:%1$s\n即将安装的版本:%2$s,确认安装?</string>

VirtualApp/app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
<string name="shared_to_vxp_failed">Share failed, please try again.</string>
113113
<string name="app_installer_label">Add to VirtualXposed</string>
114114
<string name="install_complete">Installation complete.</string>
115-
<string name="install_fail">Install failed.</string>
115+
<string name="install_fail">Install failed: %1$s</string>
116116
<string name="install">Install</string>
117117
<string name="install_package">Install new app: %s</string>
118118
<string name="install_package_version_tips">You have chosen an existing app, \n(Installed version %1$s, selected version: %2$s). Install it?</string>

VirtualApp/lib/src/main/java/com/lody/virtual/remote/InstallResult.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,14 @@ public void writeToParcel(Parcel dest, int flags) {
5353
public int describeContents() {
5454
return 0;
5555
}
56+
57+
@Override
58+
public String toString() {
59+
return "InstallResult{" +
60+
"isSuccess=" + isSuccess +
61+
", isUpdate=" + isUpdate +
62+
", packageName='" + packageName + '\'' +
63+
", error='" + error + '\'' +
64+
'}';
65+
}
5666
}

0 commit comments

Comments
 (0)