From 381027a8110a456607a709f3ee374a8d1b6af35f Mon Sep 17 00:00:00 2001
From: Michael Gernoth <michael@gernoth.net>
Date: Mon, 4 Jul 2011 22:46:03 +0200
Subject: [PATCH] it somehow works, but you can't look at it

---
 MS2Debounce/res/layout/main.xml               | 42 +++++++++-
 .../ms2debounce/DebounceModuleHelper.java     |  8 +-
 .../src/de/rmdir/ms2debounce/MS2Debounce.java | 83 +++++++++++++++----
 3 files changed, 110 insertions(+), 23 deletions(-)

diff --git a/MS2Debounce/res/layout/main.xml b/MS2Debounce/res/layout/main.xml
index 5f16f4b..f0ec60e 100644
--- a/MS2Debounce/res/layout/main.xml
+++ b/MS2Debounce/res/layout/main.xml
@@ -22,13 +22,13 @@
     android:enabled="false"
     android:background="@android:drawable/editbox_background"/>
 <Button
-    android:id="@+id/reload"
+    android:id="@+id/set"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignBaseline="@id/delay_label"
     android:layout_toRightOf="@id/debounce_delay"
-    android:onClick="reloadModule"
-    android:text="Reload" />
+    android:onClick="setValues"
+    android:text="Set" />
 <Button
     android:id="@+id/unload"
     android:layout_width="wrap_content"
@@ -45,9 +45,43 @@
     android:layout_toLeftOf="@id/unload"
     android:onClick="loadModule"
     android:text="Load" />
+<TextView
+    android:id="@+id/settle_label"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_below="@id/delay_label"
+    android:text="Settle:"/>
+<EditText
+    android:id="@+id/settle_time"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_toRightOf="@id/settle_label"
+    android:layout_alignBaseline="@id/settle_label"
+    android:numeric="integer"
+    android:maxLength="3"
+    android:text="0"
+    android:enabled="false"
+    android:background="@android:drawable/editbox_background"/>
+<TextView
+    android:id="@+id/poll_label"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_below="@id/settle_label"
+    android:text="Poll:"/>
+<EditText
+    android:id="@+id/poll_time"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_alignBaseline="@id/poll_label"
+    android:layout_toRightOf="@id/poll_label"
+    android:numeric="integer"
+    android:maxLength="2"
+    android:text="0"
+    android:enabled="false"
+    android:background="@android:drawable/editbox_background"/>
 <CheckBox
     android:id="@+id/on_boot"
-    android:layout_below="@id/load"
+    android:layout_below="@id/poll_label"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:onClick="toggle_on_boot"
diff --git a/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java b/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java
index 174f89b..6a46fbb 100644
--- a/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java
+++ b/MS2Debounce/src/de/rmdir/ms2debounce/DebounceModuleHelper.java
@@ -22,13 +22,17 @@ public class DebounceModuleHelper
 		ctx = context;
 	}
 
-	public void loadModule() {
-		_loadModule();
+	public void setAllValues() {
 		setDelay(getSavedDelay());
 		setSettle(getSavedSettle());
 		setPoll(getSavedPoll());
 	}
 
+	public void loadModule() {
+		_loadModule();
+		setAllValues();
+	}
+
 	protected void runAsRoot(String command) throws java.io.IOException,java.lang.InterruptedException {
 		Process rootcmd = Runtime.getRuntime().exec(new String[]{"su","-c","sh"});
 		DataOutputStream sh = new DataOutputStream(rootcmd.getOutputStream());
diff --git a/MS2Debounce/src/de/rmdir/ms2debounce/MS2Debounce.java b/MS2Debounce/src/de/rmdir/ms2debounce/MS2Debounce.java
index 1c14e2c..5fc4c52 100644
--- a/MS2Debounce/src/de/rmdir/ms2debounce/MS2Debounce.java
+++ b/MS2Debounce/src/de/rmdir/ms2debounce/MS2Debounce.java
@@ -25,6 +25,8 @@ public class MS2Debounce extends Activity
 	private boolean loaded;
 	private boolean safe_to_load;
 	private int debounce_delay;
+	private int settle_time;
+	private int poll_time;
 
 	public MS2Debounce()
 	{
@@ -45,13 +47,42 @@ public class MS2Debounce extends Activity
 			public void afterTextChanged(Editable delay) {
 				if (delay.toString().length() > 0) {
 					module.setSavedDelay(Integer.parseInt(delay.toString()));
+				}
+			}
 
-					Button reload = (Button)findViewById(R.id.reload);
-					if (loaded && module.getSavedDelay() != debounce_delay) {
-						reload.setEnabled(true);
-					} else {
-						reload.setEnabled(false);
-					}
+			@Override
+			public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+			}
+
+			@Override
+			public void onTextChanged(CharSequence s, int start, int before, int count) {
+			}
+		});
+
+		EditText textSettle = (EditText)findViewById(R.id.settle_time);
+		textSettle.addTextChangedListener(new TextWatcher() {
+			@Override
+			public void afterTextChanged(Editable settle_time) {
+				if (settle_time.toString().length() > 0) {
+					module.setSavedSettle(Integer.parseInt(settle_time.toString()));
+				}
+			}
+
+			@Override
+			public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+			}
+
+			@Override
+			public void onTextChanged(CharSequence s, int start, int before, int count) {
+			}
+		});
+
+		EditText textPoll = (EditText)findViewById(R.id.poll_time);
+		textPoll.addTextChangedListener(new TextWatcher() {
+			@Override
+			public void afterTextChanged(Editable poll_time) {
+				if (poll_time.toString().length() > 0) {
+					module.setSavedPoll(Integer.parseInt(poll_time.toString()));
 				}
 			}
 
@@ -74,19 +105,33 @@ public class MS2Debounce extends Activity
 		loaded = module.isLoaded();
 		safe_to_load = module.is_safe_to_load();
 		debounce_delay = module.getDelay();
+		settle_time = module.getSettle();
+		poll_time = module.getPoll();
 
 		TextView text = (TextView)findViewById(R.id.text);
-		text.setText("Current status:\n\nModule loaded: " + loaded + "\ndebounce_delay: " + debounce_delay + "ms\nsafe_to_load: " + safe_to_load);
+		text.setText("Current status:\n\nModule loaded: " + loaded + "\n" +
+			"debounce_delay: " + debounce_delay + "ms\n" + 
+			"settle_time: " + settle_time + "us\n" + 
+			"poll_time: " + poll_time + "us\n" + 
+			"safe_to_load: " + safe_to_load + " (module loaded by this app)");
 
 		EditText textDelay = (EditText)findViewById(R.id.debounce_delay);
 		textDelay.setText(Integer.toString(module.getSavedDelay()));
 		textDelay.setEnabled(true);
 
-		Button reload = (Button)findViewById(R.id.reload);
-		if (loaded && module.getSavedDelay() != debounce_delay) {
-			reload.setEnabled(true);
+		EditText textSettle = (EditText)findViewById(R.id.settle_time);
+		textSettle.setText(Integer.toString(module.getSavedSettle()));
+		textSettle.setEnabled(true);
+
+		EditText textPoll = (EditText)findViewById(R.id.poll_time);
+		textPoll.setText(Integer.toString(module.getSavedPoll()));
+		textPoll.setEnabled(true);
+
+		Button set = (Button)findViewById(R.id.set);
+		if (loaded) {
+			set.setEnabled(true);
 		} else {
-			reload.setEnabled(false);
+			set.setEnabled(false);
 		}
 
 		Button load = (Button)findViewById(R.id.load);
@@ -116,8 +161,14 @@ public class MS2Debounce extends Activity
 		EditText textDelay = (EditText)findViewById(R.id.debounce_delay);
 		textDelay.setEnabled(false);
 
-		Button reload = (Button)findViewById(R.id.reload);
-		reload.setEnabled(false);
+		EditText textSettle = (EditText)findViewById(R.id.settle_time);
+		textSettle.setEnabled(false);
+
+		EditText textPoll = (EditText)findViewById(R.id.poll_time);
+		textPoll.setEnabled(false);
+
+		Button set = (Button)findViewById(R.id.set);
+		set.setEnabled(false);
 
 		Button load = (Button)findViewById(R.id.load);
 		load.setEnabled(false);
@@ -145,14 +196,12 @@ public class MS2Debounce extends Activity
 		updateUI();
 	}
 
-	public void reloadModule(View view) {
+	public void setValues(View view) {
 		disableUI();
-		if (module.isLoaded()) {
-			module.unloadModule();
-		}
 		if (!module.isLoaded()) {
 			module.loadModule();
 		}
+		module.setAllValues();
 		updateUI();
 	}
 
-- 
2.39.5