diff --git a/mobile/res/values/strings.xml b/mobile/res/values/strings.xml index 0f84061c..bbbb5fb8 100644 --- a/mobile/res/values/strings.xml +++ b/mobile/res/values/strings.xml @@ -135,6 +135,8 @@ How often IITCm should search for new plugin versions Force plugin update Update all enabled user plugins + Require secure updates + If enabled, only https updates are handled System Bar diff --git a/mobile/res/xml/preferences.xml b/mobile/res/xml/preferences.xml index 5978e5f1..c3d8e6ef 100644 --- a/mobile/res/xml/preferences.xml +++ b/mobile/res/xml/preferences.xml @@ -106,6 +106,11 @@ android:key="pref_force_plugin_update" android:title="@string/pref_force_plugin_update" android:summary="@string/pref_force_plugin_update_sum"/> + { final String downloadURL = mScriptInfo.get("downloadURL"); if (updateURL == null) updateURL = downloadURL; + // check for https protocol + final URL url = new URL(updateURL); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mActivity); + Boolean secureUpdates = prefs.getBoolean("pref_secure_updates", true); + if (!url.getProtocol().equals("https") && secureUpdates) return false; + // get remote script meta information - final File local_file = new File(mFilePath); - final InputStream is = new URL(updateURL).openStream(); - final String local_version = mScriptInfo.get("version"); + final InputStream is = url.openStream(); final String remote_version = IITC_FileManager.getScriptInfo(IITC_FileManager.readStream(is)).get("version"); + final File local_file = new File(mFilePath); + final String local_version = mScriptInfo.get("version"); // update script if neccessary if (local_version.compareTo(remote_version) < 0) {