From 31d695131bdaa46a382eb15cf851e197327ab677 Mon Sep 17 00:00:00 2001
From: Maxime Graulich <maxime.graulich@gmail.com>
Date: Wed, 9 Apr 2014 14:14:37 +0000
Subject: [PATCH] Android: allow user to change value in TextEdit

---
 .../Android/src/org/geuz/onelab/Stepper.java    | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java b/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java
index afcdb6a761..fe0922828b 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/Stepper.java
@@ -5,6 +5,8 @@ import android.view.View;
 import android.widget.LinearLayout;
 import android.widget.Button;
 import android.widget.EditText;
+import android.text.TextWatcher;
+import android.text.Editable;
 
 
 class Stepper extends LinearLayout{
@@ -36,6 +38,16 @@ class Stepper extends LinearLayout{
 				dec();
 			}
 		});
+		_valTxt.addTextChangedListener(new TextWatcher() {
+			public void afterTextChanged(Editable s){}
+			public void beforeTextChanged(CharSequence s, int start, int count, int after){}
+			public void onTextChanged(CharSequence s, int start, int before, int count) {
+				try {
+					setValueButText(Integer.parseInt(s.toString()));
+				}
+				catch (NumberFormatException e) {}
+			}
+		});
 	}
 
 	public interface OnValueChangedListener {
@@ -50,13 +62,16 @@ class Stepper extends LinearLayout{
 	public void setMaximum(int max){_max = max;}
 	public void setMinimum(int min){_min = min;}
 	public void setValue(int val){
+		setValueButText(val);
+		_valTxt.setText(Integer.toString(_val));
+	}
+	public void setValueButText(int val){
 		if(_max > _min) {
 			if(val == _max) _incBtn.setEnabled(false);
 			else if(val == _min) _decBtn.setEnabled(false);
 			else {_incBtn.setEnabled(true); _decBtn.setEnabled(true);} 
 		}
 		_val = val;
-		_valTxt.setText(Integer.toString(_val));
 		if(_listener != null) _listener.onValueChanged();
 	}
 	public int getMaximum(){return _max;}
-- 
GitLab