From 1cd7ca657813c2c5705f4aa0efa81d3d285a7fea Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Mon, 29 Sep 2014 13:49:31 +0200 Subject: [PATCH] Added notification when execution is running. [artf417724] --- .../ericsson/uecontrol/gui/MainActivity.java | 3 + .../gui/fragments/ExecNotification.java | 66 +++++++++++++++++++ .../gui/fragments/StatusFragment.java | 1 + 3 files changed, 70 insertions(+) create mode 100755 app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java b/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java index dbf4b93..036669d 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/MainActivity.java @@ -19,6 +19,7 @@ import com.ericsson.uecontrol.core.UeControlExecutor; import com.ericsson.uecontrol.core.behaviour.UeBehaviourSleep; import com.ericsson.uecontrol.core.behaviour.UeBehaviourSurfing; import com.ericsson.uecontrol.gui.fragments.BehaviourListFragment; +import com.ericsson.uecontrol.gui.fragments.ExecNotification; import com.ericsson.uecontrol.gui.fragments.FileBrowserDialog; import com.ericsson.uecontrol.gui.fragments.FileBrowserDialog.OnFileSelectionListener; import com.ericsson.uecontrol.gui.fragments.StatusFragment; @@ -244,6 +245,7 @@ public class MainActivity extends FragmentActivity implements OnSharedPreference if(action_execute != null) { if (currentExecutor.isRunning()) { action_execute.setTitle(R.string.action_stop); + ExecNotification.create(); if(action_mark != null && csvLogger != null) action_mark.setEnabled(true); if(prefs.getBoolean("screen_on", false)) @@ -251,6 +253,7 @@ public class MainActivity extends FragmentActivity implements OnSharedPreference } else { action_execute.setTitle(R.string.action_run); + ExecNotification.dismiss(); action_mark.setEnabled(false); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java new file mode 100755 index 0000000..3ee32c1 --- /dev/null +++ b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java @@ -0,0 +1,66 @@ +package com.ericsson.uecontrol.gui.fragments; + +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.support.v4.app.NotificationCompat; +import android.support.v4.app.TaskStackBuilder; + +import com.ericsson.uecontrol.R; +import com.ericsson.uecontrol.core.util.ThroughputCalculator; +import com.ericsson.uecontrol.gui.MainActivity; + +/** + * Created by ezivkoc on 2014-09-29. + */ +public class ExecNotification { + private static final int NOTIFICATION_ID = 1; + private static NotificationCompat.Builder mBuilder; + + public static void create(){ + mBuilder = createNotification(); + setNotification(mBuilder); + } + + public static void update(double downThroughput, double upThroughput){ + if(mBuilder != null) { + mBuilder.setContentTitle("Exec Behaviour: " + MainActivity.getExecutor().getRunningBehaviour().getName()); + mBuilder.setContentText(" Down: " + ThroughputCalculator.getBitThroughputString(downThroughput) + + " Up: " + ThroughputCalculator.getBitThroughputString(upThroughput)); + setNotification(mBuilder); + } + } + + public static void dismiss(){ + NotificationManager mNotificationManager = + (NotificationManager) MainActivity.getContext().getSystemService(Context.NOTIFICATION_SERVICE); + mNotificationManager.cancel(NOTIFICATION_ID); + mBuilder = null; + } + + + private static NotificationCompat.Builder createNotification(){ + NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(MainActivity.getContext()) + .setSmallIcon(R.drawable.icon) + .setContentTitle("UeControl Executing") + .setContentText("Starting up...") + .setOngoing(true); + + // Creates an explicit intent for an Activity in your app + TaskStackBuilder stackBuilder = TaskStackBuilder.create(MainActivity.getContext()); + stackBuilder.addParentStack(MainActivity.class); + stackBuilder.addNextIntent(new Intent(MainActivity.getContext(), MainActivity.class)); + PendingIntent resultPendingIntent = + stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); + mBuilder.setContentIntent(resultPendingIntent); + + return mBuilder; + } + + private static void setNotification(NotificationCompat.Builder mBuilder){ + NotificationManager mNotificationManager = + (NotificationManager) MainActivity.getContext().getSystemService(Context.NOTIFICATION_SERVICE); + mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); + } +} diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java index d05a5a8..cf96cde 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java @@ -94,6 +94,7 @@ public class StatusFragment extends Fragment { x++; MainActivity.logThroughput(downThroughput, upThroughput); + ExecNotification.update(downThroughput, upThroughput); startActivityTimer(); } });