aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2015-03-02 12:42:04 +0100
committerDaniel Gultsch <daniel@gultsch.de>2015-05-19 15:21:00 +0200
commit8c3aab3c422ad263a1502889fbf477cc2965679b (patch)
treed18c14aae8f30ccf8151ef3dce4bca8f2017801c /src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java
parentbb603644880f0b32d8a7b54d5158f6fac678aa12 (diff)
ground work for various unread count badges
Diffstat (limited to 'src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java')
-rw-r--r--src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java b/src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java
new file mode 100644
index 00000000..3e194c05
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/utils/UnreadCountBadgeHelper.java
@@ -0,0 +1,64 @@
+package eu.siacs.conversations.utils;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.util.Log;
+
+import eu.siacs.conversations.Config;
+
+public class UnreadCountBadgeHelper {
+
+ private static int count = 0;
+
+ public static void update(final Context context,
+ final int count) {
+ if (UnreadCountBadgeHelper.count != count) {
+ UnreadCountBadgeHelper.count = count;
+ Log.d(Config.LOGTAG, "updating read count to: " + count);
+ final String packageName = context.getPackageName();
+ final String activity = context.getPackageManager().getLaunchIntentForPackage(packageName).getComponent().getClassName();
+ updateTeslaUnreadApi(context, packageName, activity, count);
+ updateApexNotificationApi(context, packageName, activity, count);
+ }
+ }
+
+ /*
+ TeslaUnread API primarily used by Nova Launcher
+ documented here: http://novalauncher.com/teslaunread-api/
+ */
+ private static void updateTeslaUnreadApi(final Context context,
+ final String packageName,
+ final String activity,
+ final int count) {
+ try {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("tag",packageName+"/"+activity);
+ contentValues.put("count",count);
+ context.getContentResolver().insert(
+ Uri.parse("content://com.teslacoilsw.notifier/unread_count"),
+ contentValues
+ );
+ } catch (IllegalArgumentException e) {
+ return;
+ } catch (Exception e) {
+ return;
+ }
+ }
+
+ /*
+ Apex Launcher Notifications API used by Apex Launcher Pro and others (Smart Launcher 2)
+ */
+ private static void updateApexNotificationApi(final Context context,
+ final String packageName,
+ final String activity,
+ final int count) {
+ Intent intent = new Intent("com.anddoes.launcher.COUNTER_CHANGED");
+ intent.putExtra("package",packageName);
+ //intent.putExtra("class",packageName+"."+activity);
+ intent.putExtra("class",activity);
+ intent.putExtra("count",count);
+ context.sendBroadcast(intent);
+ }
+}