Merge branch '154-ongoing-notification' into 'master'

Set ongoing notification to minimum priority

Setting the priority of the ongoing notification to PRIORITY_MIN prevents it from being shown in the status bar on Android 4.1 and later. The service still runs in the foreground.

Thanks to @str4d for finding the solution. Closes #154.

See merge request !169
This commit is contained in:
akwizgran
2016-05-03 14:59:19 +00:00
2 changed files with 3 additions and 2 deletions

View File

@@ -12,7 +12,6 @@
<string name="could_not_load_report_data">Could not load report data.</string>
<string name="dev_report_saved">Report saved. It will be sent the next time you log into Briar.</string>
<string name="ongoing_notification_title">Signed into Briar</string>
<string name="ongoing_notification_text">Touch to show the dashboard.</string>
<string name="setup_title">Briar Setup</string>
<string name="choose_nickname">Choose your nickname:</string>
<string name="choose_password">Choose your password:</string>

View File

@@ -28,6 +28,7 @@ import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
import static android.support.v4.app.NotificationCompat.CATEGORY_SERVICE;
import static android.support.v4.app.NotificationCompat.PRIORITY_MIN;
import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET;
import static java.util.logging.Level.WARNING;
import static org.briarproject.api.lifecycle.LifecycleManager.StartResult.ALREADY_RUNNING;
@@ -73,7 +74,7 @@ public class BriarService extends Service {
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.ongoing_notification_icon);
b.setContentTitle(getText(R.string.ongoing_notification_title));
b.setContentText(getText(R.string.ongoing_notification_text));
b.setContentText("");
b.setWhen(0); // Don't show the time
b.setOngoing(true);
Intent i = new Intent(this, NavDrawerActivity.class);
@@ -84,6 +85,7 @@ public class BriarService extends Service {
b.setCategory(CATEGORY_SERVICE);
b.setVisibility(VISIBILITY_SECRET);
}
b.setPriority(PRIORITY_MIN);
startForeground(ONGOING_NOTIFICATION_ID, b.build());
// Start the services in a background thread
new Thread() {