feat: Store the avatar path also in the shared preferences
This commit is contained in:
		
							parent
							
								
									79938aa177
								
							
						
					
					
						commit
						6896b928e8
					
				| @ -32,6 +32,7 @@ const val SHARED_PREFERENCES_KEY = "me.polynom.moxplatform_android" | ||||
| const val SHARED_PREFERENCES_YOU_KEY = "you" | ||||
| const val SHARED_PREFERENCES_MARK_AS_READ_KEY = "mark_as_read" | ||||
| const val SHARED_PREFERENCES_REPLY_KEY = "reply" | ||||
| const val SHARED_PREFERENCES_AVATAR_KEY = "avatar_path" | ||||
| 
 | ||||
| // TODO: Maybe try again to rewrite the entire plugin in Kotlin | ||||
| //const val METHOD_CHANNEL_KEY = "me.polynom.moxplatform_android" | ||||
|  | ||||
| @ -285,7 +285,7 @@ import kotlin.jvm.functions.Function1; | ||||
| 
 | ||||
|     @Override | ||||
|     public void setNotificationSelfAvatar(@NonNull String path) { | ||||
|         NotificationDataManager.INSTANCE.setAvatarPath(path); | ||||
|         NotificationDataManager.INSTANCE.setAvatarPath(context, path); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  | ||||
| @ -103,10 +103,11 @@ class NotificationReceiver : BroadcastReceiver() { | ||||
|                     setName(NotificationDataManager.getYou(context)) | ||||
| 
 | ||||
|                     // Set an avatar, if we have one | ||||
|                     if (NotificationDataManager.avatarPath != null) { | ||||
|                     val avatarPath = NotificationDataManager.getAvatarPath(context) | ||||
|                     if (avatarPath != null) { | ||||
|                         setIcon( | ||||
|                             Icon.createWithAdaptiveBitmap( | ||||
|                                 BitmapFactory.decodeFile(NotificationDataManager.avatarPath) | ||||
|                                 BitmapFactory.decodeFile(avatarPath) | ||||
|                             ) | ||||
|                         ) | ||||
|                     } | ||||
|  | ||||
| @ -24,7 +24,9 @@ object NotificationDataManager { | ||||
|     private var you: String? = null | ||||
|     private var markAsRead: String? = null | ||||
|     private var reply: String? = null | ||||
|     var avatarPath: String? = null | ||||
| 
 | ||||
|     private var fetchedAvatarPath = false | ||||
|     private var avatarPath: String? = null | ||||
| 
 | ||||
|     private fun getString(context: Context, key: String, fallback: String): String { | ||||
|         return context.getSharedPreferences(SHARED_PREFERENCES_KEY, Context.MODE_PRIVATE)!!.getString(key, fallback)!! | ||||
| @ -66,6 +68,23 @@ object NotificationDataManager { | ||||
|         setString(context, SHARED_PREFERENCES_REPLY_KEY, value) | ||||
|         reply = value | ||||
|     } | ||||
| 
 | ||||
|     fun getAvatarPath(context: Context): String? { | ||||
|         if (avatarPath == null && !fetchedAvatarPath) { | ||||
|             val path = getString(context, SHARED_PREFERENCES_AVATAR_KEY, "") | ||||
|             if (path.isNotEmpty()) { | ||||
|                 avatarPath = path | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return avatarPath | ||||
|     } | ||||
| 
 | ||||
|     fun setAvatarPath(context: Context, value: String) { | ||||
|         setString(context, SHARED_PREFERENCES_AVATAR_KEY, value) | ||||
|         fetchedAvatarPath = true | ||||
|         avatarPath = value | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// Show a messaging style notification described by @notification. | ||||
| @ -144,10 +163,11 @@ fun showMessagingNotification(context: Context, notification: Api.MessagingNotif | ||||
|         setName(NotificationDataManager.getYou(context)) | ||||
| 
 | ||||
|         // Set an avatar, if we have one | ||||
|         if (NotificationDataManager.avatarPath != null) { | ||||
|         val avatarPath = NotificationDataManager.getAvatarPath(context) | ||||
|         if (avatarPath != null) { | ||||
|             setIcon( | ||||
|                 IconCompat.createWithAdaptiveBitmap( | ||||
|                     BitmapFactory.decodeFile(NotificationDataManager.avatarPath), | ||||
|                     BitmapFactory.decodeFile(avatarPath), | ||||
|                 ), | ||||
|             ) | ||||
|         } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user