From dcd6fce41e2aed471e160db5616ea219a902015c Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Sat, 17 May 2014 10:54:40 +0200 Subject: [PATCH] cache script info in script update class --- .../iitc_mobile/async/UpdateScript.java | 20 +++++++++++-------- .../prefs/ForceUpdatePreference.java | 5 ----- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/mobile/src/com/cradle/iitc_mobile/async/UpdateScript.java b/mobile/src/com/cradle/iitc_mobile/async/UpdateScript.java index aca03e42..e8b48236 100644 --- a/mobile/src/com/cradle/iitc_mobile/async/UpdateScript.java +++ b/mobile/src/com/cradle/iitc_mobile/async/UpdateScript.java @@ -17,12 +17,14 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.util.HashMap; public class UpdateScript extends AsyncTask { private final Activity mActivity; private String mFilePath; private String mScript; + private HashMap mScriptInfo; public UpdateScript(final Activity activity) { mActivity = activity; @@ -34,20 +36,22 @@ public class UpdateScript extends AsyncTask { mFilePath = urls[0]; // get local script meta information mScript = IITC_FileManager.readStream(new FileInputStream(new File(mFilePath))); - final String updateURL = IITC_FileManager.getScriptInfo(mScript).get("updateURL"); - final String downloadURL = IITC_FileManager.getScriptInfo(mScript).get("downloadURL"); + mScriptInfo = IITC_FileManager.getScriptInfo(mScript); + String updateURL = mScriptInfo.get("updateURL"); + final String downloadURL = mScriptInfo.get("downloadURL"); + if (updateURL == null) updateURL = downloadURL; // get remote script meta information - final File file_old = new File(mFilePath); + final File local_file = new File(mFilePath); final InputStream is = new URL(updateURL).openStream(); - final String old_version = IITC_FileManager.getScriptInfo(mScript).get("version"); - final String new_version = IITC_FileManager.getScriptInfo(IITC_FileManager.readStream(is)).get("version"); + final String local_version = mScriptInfo.get("version"); + final String remote_version = IITC_FileManager.getScriptInfo(IITC_FileManager.readStream(is)).get("version"); // update script if neccessary - if (old_version.compareTo(new_version) < 0) { - Log.d("plugin " + mFilePath + " outdated\n" + old_version + " vs " + new_version); + if (local_version.compareTo(remote_version) < 0) { + Log.d("plugin " + mFilePath + " outdated\n" + local_version + " vs " + remote_version); Log.d("updating file...."); - IITC_FileManager.copyStream(new URL(downloadURL).openStream(), new FileOutputStream(file_old), true); + IITC_FileManager.copyStream(new URL(downloadURL).openStream(), new FileOutputStream(local_file), true); Log.d("...done"); return true; } diff --git a/mobile/src/com/cradle/iitc_mobile/prefs/ForceUpdatePreference.java b/mobile/src/com/cradle/iitc_mobile/prefs/ForceUpdatePreference.java index 1cb5bcb2..f0341b6a 100644 --- a/mobile/src/com/cradle/iitc_mobile/prefs/ForceUpdatePreference.java +++ b/mobile/src/com/cradle/iitc_mobile/prefs/ForceUpdatePreference.java @@ -9,11 +9,6 @@ import android.util.AttributeSet; import com.cradle.iitc_mobile.R; -/** - * The OptionDialogPreference will display a dialog, and will persist the - * true when pressing the positive button and false - * otherwise. It will persist to the android:key specified in xml-preference. - */ public class ForceUpdatePreference extends Preference { public ForceUpdatePreference(Context context, AttributeSet attrs) {