diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 70beaade8b..8df3c2727b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -53,9 +53,14 @@
+ android:parentActivityName=".ActivityMain">
+
+
+
+
+
+
+
+
+
+
+
.
+
+ Copyright 2018 by Marcel Bokhorst (M66B)
+*/
+
+import android.annotation.TargetApi;
+import android.content.Intent;
+import android.os.Build;
+import android.os.IBinder;
+import android.service.quicksettings.Tile;
+import android.service.quicksettings.TileService;
+import android.util.Log;
+
+import java.util.List;
+
+import androidx.lifecycle.LifecycleService;
+import androidx.lifecycle.Observer;
+
+@TargetApi(Build.VERSION_CODES.N)
+public class ServiceTile extends TileService {
+ LifecycleService owner = new LifecycleService();
+
+ @Override
+ public void onCreate() {
+ owner.onCreate();
+ super.onCreate();
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ owner.onBind(intent);
+ return super.onBind(intent);
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ owner.onStartCommand(intent, flags, startId);
+ return super.onStartCommand(intent, flags, startId);
+ }
+
+ @Override
+ public void onDestroy() {
+ owner.onDestroy();
+ super.onDestroy();
+ }
+
+ public void onStartListening() {
+ Log.i(Helper.TAG, "Tile start");
+
+ DB db = DB.getInstance(this);
+ db.message().liveUnseenUnified().observe(owner, new Observer>() {
+ @Override
+ public void onChanged(List messages) {
+ Tile tile = getQsTile();
+ if (tile != null) {
+ tile.setState(messages.size() > 0 ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE);
+ tile.setLabel(getResources().getQuantityString(
+ R.plurals.title_tile_unseen, messages.size(), messages.size()));
+ tile.updateTile();
+ }
+ }
+ });
+ }
+
+ public void onStopListening() {
+ Log.i(Helper.TAG, "Tile stop");
+
+ DB db = DB.getInstance(this);
+ db.message().liveUnseenUnified().removeObservers(owner);
+ }
+
+ public void onClick() {
+ Log.i(Helper.TAG, "Tile click");
+
+ Intent clear = new Intent(this, ServiceSynchronize.class);
+ clear.setAction("clear");
+ startService(clear);
+ }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4e1e8e5ea7..c437204152 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -31,6 +31,11 @@
- %1$d unsent messages
+
+ - %1$d new
+ - %1$d new
+
+
\'%1$s\' failed
Setup