From 2893db0065a828007cf47466262dca64ab2ffe33 Mon Sep 17 00:00:00 2001 From: Greg Price Date: Tue, 9 Nov 2021 16:03:31 -0800 Subject: [PATCH] android notif [nfc]: Fold NotificationHelper into NotificationUiManager There's hardly anything left in this file, after #4842 made it unnecessary to maintain our own data structure of conversations because we can use the system's data structures of active notifications. Fold what little is left into the main file that uses it (indeed the only file that uses its one nontrivial item.) Also add some javadoc while we're at it. --- .../notifications/NotificationHelper.kt | 25 ------------------- .../notifications/NotificationUiManager.kt | 24 ++++++++++++++++++ .../notifications/NotificationsModule.java | 2 +- 3 files changed, 25 insertions(+), 26 deletions(-) delete mode 100644 android/app/src/main/java/com/zulipmobile/notifications/NotificationHelper.kt diff --git a/android/app/src/main/java/com/zulipmobile/notifications/NotificationHelper.kt b/android/app/src/main/java/com/zulipmobile/notifications/NotificationHelper.kt deleted file mode 100644 index ec78a16ec6d..00000000000 --- a/android/app/src/main/java/com/zulipmobile/notifications/NotificationHelper.kt +++ /dev/null @@ -1,25 +0,0 @@ -@file:JvmName("NotificationHelper") - -package com.zulipmobile.notifications - -import android.graphics.Bitmap -import android.graphics.BitmapFactory -import java.io.IOException -import java.io.InputStream -import java.net.URL -import com.zulipmobile.ZLog - -@JvmField -val TAG = "ZulipNotif" - -fun fetchBitmap(url: URL): Bitmap? { - return try { - val connection = url.openConnection() - connection.useCaches = true - (connection.content as? InputStream) - ?.let { BitmapFactory.decodeStream(it) } - } catch (e: IOException) { - ZLog.e(TAG, e) - null - } -} diff --git a/android/app/src/main/java/com/zulipmobile/notifications/NotificationUiManager.kt b/android/app/src/main/java/com/zulipmobile/notifications/NotificationUiManager.kt index d035bbcc2a6..9527a61f2bc 100644 --- a/android/app/src/main/java/com/zulipmobile/notifications/NotificationUiManager.kt +++ b/android/app/src/main/java/com/zulipmobile/notifications/NotificationUiManager.kt @@ -9,6 +9,8 @@ import android.app.NotificationManager import android.app.PendingIntent import android.content.Context import android.content.Intent +import android.graphics.Bitmap +import android.graphics.BitmapFactory import android.media.AudioAttributes import android.net.Uri import android.os.Build @@ -24,6 +26,9 @@ import com.zulipmobile.BuildConfig import com.zulipmobile.R import com.zulipmobile.ZLog import me.leolin.shortcutbadger.ShortcutBadger +import java.io.IOException +import java.io.InputStream +import java.net.URL // This file maintains the notifications in the UI, using data from FCM messages. // @@ -46,6 +51,12 @@ import me.leolin.shortcutbadger.ShortcutBadger // The main entry point is `onReceived`, which is called when we receive // an FCM message. +/** An Android logging tag for our notifications code. */ +// (This doesn't particularly belong in this file, but it belongs somewhere +// in the notifications package.) +@JvmField +val TAG = "ZulipNotif" + /** The channel ID we use for our one notification channel, which we use for all notifications. */ private val CHANNEL_ID = "default" @@ -226,6 +237,19 @@ private fun extractMessageKey(fcmMessage: MessageFcmMessage): String { return messageKey } +/** Fetch an image from the given URL. (We use this for sender avatars.) */ +fun fetchBitmap(url: URL): Bitmap? { + return try { + val connection = url.openConnection() + connection.useCaches = true + (connection.content as? InputStream) + ?.let { BitmapFactory.decodeStream(it) } + } catch (e: IOException) { + ZLog.e(TAG, e) + null + } +} + /** Handle a MessageFcmMessage, adding or extending notifications in the UI. */ private fun updateNotification( context: Context, fcmMessage: MessageFcmMessage) { diff --git a/android/app/src/main/java/com/zulipmobile/notifications/NotificationsModule.java b/android/app/src/main/java/com/zulipmobile/notifications/NotificationsModule.java index f7d13749073..d6dfd662e04 100644 --- a/android/app/src/main/java/com/zulipmobile/notifications/NotificationsModule.java +++ b/android/app/src/main/java/com/zulipmobile/notifications/NotificationsModule.java @@ -6,7 +6,7 @@ import com.facebook.react.bridge.*; import com.google.firebase.iid.FirebaseInstanceId; -import static com.zulipmobile.notifications.NotificationHelper.TAG; +import static com.zulipmobile.notifications.NotificationUiManager.TAG; class NotificationsModule extends ReactContextBaseJavaModule {