From 29cfe52e26779f9a67e1f62daec8c9350523f733 Mon Sep 17 00:00:00 2001
From: Maxime Graulich <maxime.graulich@gmail.com>
Date: Thu, 12 Sep 2013 08:53:36 +0000
Subject: [PATCH] Android: Notify progress

---
 .../src/org/geuz/onelab/MainActivity.java     | 25 ++++++++++++++++---
 .../src/org/geuz/onelab/ModelList.java        |  1 +
 2 files changed, 23 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 994abf8393..4ef8effb28 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
@@ -10,6 +10,7 @@ import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.Notification;
+import android.app.Notification.Builder;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.Context;
@@ -221,6 +222,7 @@ public class MainActivity extends Activity{
     }
 	@Override
 	protected void onPause() {
+		if(_compute) notifyComputing();
 		super.onPause();
 		_notify = true;
 	}
@@ -237,24 +239,41 @@ public class MainActivity extends Activity{
 	@Override
 	protected void onStop() {
 		super.onStop();
+		if(_compute) notifyComputing();
 		_notify = true;
 	}
 	
+	private void notifyComputing() {
+		Intent intent = new Intent(this, MainActivity.class);
+	    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
+	    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
+	    Notification.Builder notifyBuilder = new Notification.Builder(this);
+		notifyBuilder.setContentTitle("ONELAB")
+			.setContentIntent(pendingIntent)
+		    .setContentText("Computing in progress")
+		    .setSmallIcon(R.drawable.ic_launcher)
+		    .setProgress(0, 0, true);
+		NotificationManager mNotificationManager =
+			    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+		mNotificationManager.notify(1337, notifyBuilder.getNotification());
+	}
+	
 	private void notifyEndOfCompute() {
 		Intent intent = new Intent(this, MainActivity.class);
 	    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
 	    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
-		Notification.Builder mBuilder =
+		Notification.Builder notifyBuilder =
 		        new Notification.Builder(this)
 		        .setSmallIcon(R.drawable.ic_launcher)
 		        .setContentIntent(pendingIntent)
 		        .setContentTitle("ONELAB")
 		        .setDefaults(Notification.DEFAULT_ALL)
 		        .setAutoCancel(true)
-		        .setContentText("The compute is finished");
+		        .setProgress(0, 0, false)
+		        .setContentText("The computing is finished");
 		NotificationManager mNotificationManager =
 			    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
-		mNotificationManager.notify(1337, mBuilder.getNotification());
+		mNotificationManager.notify(1337, notifyBuilder.getNotification());
 	}
 
 	private final Handler mainHandler = new Handler(){
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java
index 294f249707..5ea77bd411 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/ModelList.java
@@ -121,6 +121,7 @@ public class ModelList extends Activity {
 	@Override
 	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 		super.onActivityResult(requestCode, resultCode, data);
+		if(resultCode == RESULT_CANCELED) return;
 		switch (requestCode) {
 		case 1:
 			Uri uri = data.getData();
-- 
GitLab