From 77bd3bd8ff6e5d91373527f7ea7353a3f9190b30 Mon Sep 17 00:00:00 2001
From: Maxime Graulich <maxime.graulich@gmail.com>
Date: Fri, 6 Sep 2013 10:43:22 +0000
Subject: [PATCH] Android: uncheck Post-processing checkbox (when compute)

---
 .../Android/src/org/geuz/onelab/MainActivity.java  |  3 +++
 .../org/geuz/onelab/OptionsDisplayFragment.java    | 14 +++++++++++++-
 .../src/org/geuz/onelab/OptionsFragment.java       |  6 +++++-
 .../src/org/geuz/onelab/SeparatedListView.java     | 14 +++++++++++++-
 4 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
index 659d1f67f9..37b26dc91a 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
@@ -204,6 +204,9 @@ public class MainActivity extends Activity{
 	@Override
 	protected void onResume() {
 		super.onResume();
+		NotificationManager mNotificationManager =
+			    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+		mNotificationManager.cancel(1337);
 		_notify = false;
 	}
 	
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java
index 5dfd3ba2ca..dc758a14b0 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java
@@ -94,7 +94,18 @@ public class OptionsDisplayFragment extends Fragment{
 	public void refresh() {
 		if(_gmsh == null) return;
 		String[] PViews = _gmsh.getPView();
-		for(int i=_listView.itemsCountInSection("Result"); i < PViews.length;i++){
+		for(int i=0; i<_listView.itemsCountInSection("Result"); i++) {
+			View v = (View)_listView.getItemAtPosition(7+i);
+			if(!v.getClass().equals(LinearLayout.class)) continue;
+			for(int j=0; j<((LinearLayout)v).getChildCount(); j++) {
+				View sv = ((LinearLayout)v).getChildAt(j);
+				if(sv.getClass().equals(CheckBox.class)){
+					String[] infos = PViews[i].split("\n");
+					((CheckBox)sv).setChecked(infos[2].equals("1"));
+				}
+			}
+		}
+		for(int i=_listView.itemsCountInSection("Result"); i < PViews.length;i++) {
 			String[] infos = PViews[i].split("\n"); // name / IntervalsType (1=Iso 2=Continous 3=Discrete 4=Numeric)
 			final int myID = i;
 			LinearLayout layout = new LinearLayout(_listView.getContext());
@@ -117,6 +128,7 @@ public class OptionsDisplayFragment extends Fragment{
 				    intent.putExtra("Gmsh", (Parcelable)_gmsh);
 				    intent.putExtra("PView", myID);
 					startActivity(intent);
+					if(mListener != null) mListener.OnModelOptionsChanged();
 				}
 			});
         	button.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsFragment.java
index 000742775b..0a17bc687b 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsFragment.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsFragment.java
@@ -42,12 +42,16 @@ public class OptionsFragment extends Fragment{
 		LinearLayout rootView = (LinearLayout)inflater.inflate(R.layout.fragment_options, container, false);
 		_optionModelFragment = OptionsModelFragment.newInstance(_gmsh);
 		_optionModelFragment.setOnModelOptionsChangedListener(new OptionsModelFragment.OnModelOptionsChangedListener() {
-			
 			public void OnModelOptionsChanged() {
 				if(mListener != null) mListener.OnOptionsChanged();
 			}
 		});
 		_optionDisplayFragment = OptionsDisplayFragment.newInstance(_gmsh);
+		_optionDisplayFragment.setOnModelOptionsChangedListener(new OptionsDisplayFragment.OnModelOptionsChangedListener() {
+			public void OnModelOptionsChanged() {
+				if(mListener != null) mListener.OnOptionsChanged();
+			}
+		});
 		final Button optionModel = (Button) rootView.findViewById(R.id.goto_options_model);
 		final Button optionDisplay = (Button) rootView.findViewById(R.id.goto_options_display);
 		if(_viewN == 0) {
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java b/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java
index 3d69903392..e9a175552a 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/SeparatedListView.java
@@ -116,7 +116,19 @@ public class SeparatedListView extends ListView{
 		}
 		//@Override
 		public Object getItem(int position) {
-			// UNUSED Auto-generated method stub
+			int section = -1,
+					lastPosition = -1;
+			while(lastPosition<position){
+				int itemsCount = sections.get(section+1).getItemsCount();
+				if(lastPosition+1 == position)// this is a section
+					return titles.get(section+1);
+				else if(lastPosition+1+itemsCount >= position){ // the view is in this section
+					if(section<0) return sections.get(section+1).getItem(position-1);
+					return sections.get(section+1).getItem(position-lastPosition-2);
+				}
+				lastPosition+= 1 + itemsCount;
+				section++;
+			}
 			return null;
 		}
 
-- 
GitLab