}
public void loadModule() {
- SharedPreferences settings = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
-
- int delay = settings.getInt("debounce_delay", 10);
- loadModule(delay);
+ loadModule(getSavedDelay());
}
public synchronized void loadModule(int delay) {
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});
} 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() {
return debounce_delay;
}
+ public synchronized void setDelay(int delay) {
+ if (isLoaded()) {
+ if (getDelay() == delay) {
+ return;
+ }
+
+ unloadModule();
+ }
+
+ loadModule(delay);
+ }
+
+ public synchronized int getSavedDelay() {
+ SharedPreferences settings = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
+
+ return settings.getInt("debounce_delay", 10);
+ }
+
+ public synchronized void setSavedDelay(int delay) {
+ SharedPreferences settings = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = settings.edit();
+
+ editor.putInt("debounce_delay", delay);
+ editor.commit();
+ }
+
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);