X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/ms2-fixes/blobdiff_plain/08fec0be398954b85575af913448efa8a2e34d19..376c6ac7d45b9cc3c4d2502fdba240b6fc38aa91:/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java?ds=inline diff --git a/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java b/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java index 93fd221..0a764e5 100644 --- a/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java +++ b/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java @@ -30,7 +30,12 @@ public class DebounceModuleHelper extractModule(); - // FIXME: Read settings from database... + SharedPreferences settings = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if (is_safe_to_load()) { + editor.putBoolean("safe_to_load", false); + editor.commit(); + } try { Process insmod = Runtime.getRuntime().exec(new String[]{"su","-c","/system/bin/insmod " + debounce_ko + " debounce_delay=" + delay}); @@ -38,18 +43,18 @@ public class DebounceModuleHelper } catch (Exception e) { return; } + + if (!isLoaded()) { + return; + } if (getDelay() <= 0) { return; } /* Module was obviously loaded, so it is safe to load on boot */ - if (!is_safe_to_load()) { - SharedPreferences settings = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); - SharedPreferences.Editor editor = settings.edit(); - editor.putBoolean("safe_to_load", true); - editor.commit(); - } + editor.putBoolean("safe_to_load", true); + editor.commit(); } public synchronized void unloadModule() { @@ -98,6 +103,18 @@ public class DebounceModuleHelper return debounce_delay; } + public synchronized void setDelay(int delay) { + if (isLoaded()) { + if (getDelay() == delay) { + return; + } + + unloadModule(); + } + + loadModule(delay); + } + public synchronized boolean is_safe_to_load() { SharedPreferences settings = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); boolean safe_to_load = settings.getBoolean("safe_to_load", false);