made plugin update interval configurable
This commit is contained in:
		| @@ -130,7 +130,9 @@ | ||||
|         Note: If just want to use the desktop mode use the \'force desktop mode\' setting</string> | ||||
|     <string name="pref_android_menu">Configure IITCm menu</string> | ||||
|     <string name="pref_android_menu_sum">Toggle visibility of IITCm menu entries</string> | ||||
|     <string name="pref_update_plugins_cat">Manage plugin updates</string> | ||||
|     <string name="pref_update_plugins_cat">User plugin updates</string> | ||||
|     <string name="pref_update_plugins_interval">Configure plugin update interval</string> | ||||
|     <string name="pref_update_plugins_interval_sum">How often IITCm should search for new plugin versions</string> | ||||
|     <string name="pref_force_plugin_update">Force plugin update</string> | ||||
|     <string name="pref_force_plugin_update_sum">Update all enabled user plugins</string> | ||||
|  | ||||
| @@ -181,6 +183,22 @@ | ||||
|         <item>2</item> | ||||
|     </string-array> | ||||
|  | ||||
|     <string-array name="pref_update_plugins_interval_titles"> | ||||
|         <item>Disable</item> | ||||
|         <item>1 day</item> | ||||
|         <item>2 days</item> | ||||
|         <item>1 week</item> | ||||
|         <item>2 weeks</item> | ||||
|     </string-array> | ||||
|  | ||||
|     <string-array name="pref_update_plugins_interval_values"> | ||||
|         <item>0</item> | ||||
|         <item>1</item> | ||||
|         <item>2</item> | ||||
|         <item>7</item> | ||||
|         <item>14</item> | ||||
|     </string-array> | ||||
|  | ||||
|     <string name="menu_reload">Reload IITC</string> | ||||
|     <string name="menu_toggle_fullscreen">Toggle fullscreen</string> | ||||
|     <string name="menu_layer_chooser">Layer Chooser</string> | ||||
|   | ||||
| @@ -95,6 +95,13 @@ | ||||
|             <PreferenceCategory | ||||
|                 android:key="pref_update_plugins" | ||||
|                 android:title="@string/pref_update_plugins_cat"> | ||||
|                 <ListPreference | ||||
|                     android:defaultValue="7" | ||||
|                     android:entries="@array/pref_update_plugins_interval_titles" | ||||
|                     android:entryValues="@array/pref_update_plugins_interval_values" | ||||
|                     android:key="pref_update_plugins_interval" | ||||
|                     android:title="@string/pref_update_plugins_interval" | ||||
|                     android:summary="@string/pref_update_plugins_interval_sum"/> | ||||
|                 <com.cradle.iitc_mobile.IITC_ForceUpdatePreference | ||||
|                     android:key="pref_force_plugin_update" | ||||
|                     android:title="@string/pref_force_plugin_update" | ||||
|   | ||||
| @@ -51,9 +51,10 @@ public class IITC_FileManager { | ||||
|             "script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');'));\n" | ||||
|                     + "(document.body || document.head || document.documentElement).appendChild(script);"; | ||||
|  | ||||
|     private long mUpdateInterval = 1000*60*60*24*7; | ||||
|  | ||||
|     public static final String DOMAIN = ".iitcm.localhost"; | ||||
|     // update interval is 2 days by default | ||||
|     public static long updateInterval = 1000*60*60*24*2; | ||||
|  | ||||
|     /** | ||||
|      * copies the contents of a stream into another stream and (optionally) closes the output stream afterwards | ||||
| @@ -319,12 +320,14 @@ public class IITC_FileManager { | ||||
|     } | ||||
|  | ||||
|     public void updatePlugins(boolean force) { | ||||
|         // do nothing if updates are disabled | ||||
|         if (mUpdateInterval == 0 && !force) return; | ||||
|         // check last script update | ||||
|         final long lastUpdated = mPrefs.getLong("pref_last_plugin_update", 0); | ||||
|         final long now = System.currentTimeMillis(); | ||||
|  | ||||
|         // return if no update wanted | ||||
|         if (!force && (now - lastUpdated < updateInterval)) return; | ||||
|         if ((now - lastUpdated < mUpdateInterval) && !force) return; | ||||
|         // get the plugin preferences | ||||
|         final TreeMap<String, ?> all_prefs = new TreeMap<String, Object>(mPrefs.getAll()); | ||||
|  | ||||
| @@ -343,6 +346,10 @@ public class IITC_FileManager { | ||||
|                 .commit(); | ||||
|     } | ||||
|  | ||||
|     public void setUpdateInterval(int interval) { | ||||
|         mUpdateInterval = 1000*60*60*24 * interval; | ||||
|     } | ||||
|  | ||||
|     private class FileRequest extends WebResourceResponse implements ResponseHandler, Runnable { | ||||
|         private Intent mData; | ||||
|         private final String mFunctionName; | ||||
|   | ||||
| @@ -145,6 +145,7 @@ public class IITC_Mobile extends Activity | ||||
|         mIitcWebView.updateFullscreenStatus(); | ||||
|  | ||||
|         mFileManager = new IITC_FileManager(this); | ||||
|         mFileManager.setUpdateInterval(Integer.parseInt(mSharedPrefs.getString("pref_update_plugins_interval", "7"))); | ||||
|  | ||||
|         mUserLocation = new IITC_UserLocation(this); | ||||
|         mUserLocation.setLocationMode(Integer.parseInt(mSharedPrefs.getString("pref_user_location_mode", "0"))); | ||||
| @@ -195,6 +196,10 @@ public class IITC_Mobile extends Activity | ||||
|             Long forceUpdate = sharedPreferences.getLong("pref_last_plugin_update", 0); | ||||
|             if (forceUpdate == 0) mFileManager.updatePlugins(true); | ||||
|             return; | ||||
|         } else if (key.equals("pref_update_plugins_interval")) { | ||||
|             final int interval = Integer.parseInt(mSharedPrefs.getString("pref_update_plugins_interval", "7")); | ||||
|             mFileManager.setUpdateInterval(interval); | ||||
|             return; | ||||
|         } else if (key.equals("pref_press_twice_to_exit") | ||||
|                 || key.equals("pref_share_selected_tab") | ||||
|                 || key.equals("pref_messages") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user