diff --git a/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java b/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java index fbfd9bf5d..b4f6d10e4 100644 --- a/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/update/PluginUpdateRunner.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.lang.IllegalArgumentException; import java.net.URI; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Properties; @@ -50,6 +51,7 @@ import net.i2p.util.VersionComparator; class PluginUpdateRunner extends UpdateRunner { private String _appName; + private final String _appDisplayName; private final String _oldVersion; private final URI _uri; private final String _xpi2pURL; @@ -70,6 +72,27 @@ class PluginUpdateRunner extends UpdateRunner { _uri = uris.get(0); _xpi2pURL = _uri.toString(); _appName = appName; + // For new plugin installs, ConsoleUpdateManager gives us a fake appName + // which is a random long. See installPlugin() for why. + // If that's the case, create a better name from the URI. + String appDisplayName = appName; + try { + Long.parseLong(appName); + String s = _uri.getPath(); + if (s != null) { + int p = s.lastIndexOf('/'); + if (p >= 0) + s = s.substring(p + 1); + String slc = s.toLowerCase(Locale.US); + if (slc.endsWith(".su3")) + s = s.substring(0, s.length() - 4); + else if (slc.endsWith(".xpi2p")) + s = s.substring(0, s.length() - 6); + if (s.length() > 0) + appDisplayName = s; + } + } catch (NumberFormatException nfe) {} + _appDisplayName = appDisplayName; _oldVersion = oldVersion; } @@ -143,14 +166,14 @@ class PluginUpdateRunner extends UpdateRunner { @Override public void bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, String url) { long d = currentWrite + bytesTransferred; - String status = "" + _t("Downloading plugin") + ": " + _appName + ""; + String status = "" + _t("Downloading plugin") + ": " + _appDisplayName + ""; _mgr.notifyProgress(this, status, d, d + bytesRemaining); } @Override public void transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified) { if (!(_xpi2pURL.startsWith("file:") || _method == UpdateMethod.FILE)) - updateStatus("" + _t("Plugin downloaded") + ""); + updateStatus("" + _t("Plugin downloaded") + ": " + _appDisplayName + ""); File f = new File(_updateFile); File appDir = new SecureDirectory(_context.getConfigDir(), PLUGIN_DIR); if ((!appDir.exists()) && (!appDir.mkdir())) {