这是indexloc提供的服务,不要输入任何密码
Skip to content

Commit f6e3368

Browse files
Fixed: Handle unlikely case where failed to get version code to generate plugin result bundle
1 parent a5bcd56 commit f6e3368

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

app/src/main/java/com/termux/tasker/EditConfigurationActivity.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import java.util.Arrays;
3131
import java.util.List;
3232

33+
import static com.termux.tasker.utils.TaskerPlugin.Setting.RESULT_CODE_FAILED;
34+
3335
/**
3436
* This is the "Edit" activity for a Locale Plug-in.
3537
* <p>
@@ -190,6 +192,12 @@ public void finish() {
190192
*/
191193
final Bundle resultBundle = PluginBundleManager.generateBundle(getApplicationContext(),
192194
executable, arguments, workingDirectory, inTerminal, waitForResult);
195+
if (resultBundle == null) {
196+
Logger.showToast(this, getString(R.string.error_generate_plugin_bundle_failed), true);
197+
setResult(RESULT_CODE_FAILED, resultIntent);
198+
super.finish();
199+
return;
200+
}
193201

194202
// The blurb is a concise status text to be displayed in the host's UI.
195203
final String blurb = generateBlurb(executable, arguments, inTerminal, waitForResult);

app/src/main/java/com/termux/tasker/PluginBundleManager.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import android.os.Bundle;
66
import android.text.TextUtils;
77

8+
import androidx.annotation.Nullable;
9+
10+
import com.termux.shared.logger.Logger;
811
import com.termux.shared.packages.PackageUtils;
912
import com.termux.shared.termux.TermuxConstants;
1013

@@ -105,6 +108,7 @@ public static String parseBundle(final Context context, final Bundle bundle) {
105108
return null;
106109
}
107110

111+
@Nullable
108112
public static Bundle generateBundle(final Context context, final String executable,
109113
final String arguments, final String workingDirectory,
110114
final boolean inTerminal, final boolean waitForResult) {
@@ -114,7 +118,14 @@ public static Bundle generateBundle(final Context context, final String executab
114118
result.putString(EXTRA_WORKDIR, workingDirectory);
115119
result.putBoolean(EXTRA_TERMINAL, inTerminal);
116120
result.putBoolean(EXTRA_WAIT_FOR_RESULT, waitForResult);
117-
result.putInt(BUNDLE_EXTRA_INT_VERSION_CODE, PackageUtils.getVersionCodeForPackage(context));
121+
122+
Integer versionCode = PackageUtils.getVersionCodeForPackage(context);
123+
if (versionCode == null) {
124+
Logger.showToast(context, context.getString(R.string.error_get_version_code_failed, context.getPackageName()), true);
125+
return null;
126+
}
127+
128+
result.putInt(BUNDLE_EXTRA_INT_VERSION_CODE, versionCode);
118129
return result;
119130
}
120131
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636

3737
<string name="error_plugin_permission_ungranted_warning">The %1$s App (%2$s) has not been granted the \"%3$s\" permission which is required to run the plugin action."</string>
3838
<string name="error_allow_external_apps_ungranted_warning">Absolute paths for executables outside &TERMUX_TASKER_SCRIPTS_DIR_PATH_SHORT; directory require allow-external-apps property to be set to \"true\" in &TERMUX_PROPERTIES_PRIMARY_PATH_SHORT; file.</string>
39+
<string name="error_generate_plugin_bundle_failed">Failed to generate plugin bundle</string>
40+
<string name="error_get_version_code_failed">Failed to get version code for %1$s</string>
3941

4042
<string name="blurb_executable_and_arguments">%1$s %2$s</string>
4143
<string name="blurb_in_terminal">\u2713 Terminal Session</string>

0 commit comments

Comments
 (0)