diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5a60d17..46bdbfd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,7 +5,7 @@
putObject(key: String, obj: T) {
+ try {
+ val jsonString = gson.toJson(obj)
+ val encryptedData = Base64.encodeToString(jsonString.toByteArray(), Base64.DEFAULT)
+ putString(key, encryptedData)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ inline fun getObject(key: String, defaultObj: T? = null): T? {
+ return try {
+ val encryptedData = getString(key)
+ if (encryptedData.isBlank()) return defaultObj
+
+ val jsonString = String(Base64.decode(encryptedData, Base64.DEFAULT))
+ gson.fromJson(jsonString, T::class.java) ?: defaultObj
+ } catch (e: Exception) {
+ e.printStackTrace()
+ defaultObj
+ }
+ }
+
+
+ fun putList(key: String, list: List) {
+ try {
+ val jsonString = gson.toJson(list)
+ val encryptedData = Base64.encodeToString(jsonString.toByteArray(), Base64.DEFAULT)
+ putString(key, encryptedData)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ inline fun getList(key: String): List {
+ return try {
+ val encryptedData = getString(key)
+ if (encryptedData.isBlank()) return emptyList()
+
+ val jsonString = String(Base64.decode(encryptedData, Base64.DEFAULT))
+ val type: Type = object : TypeToken>() {}.type
+ gson.fromJson>(jsonString, type) ?: emptyList()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ emptyList()
+ }
+ }
+
+
+ fun putMap(key: String, map: Map) {
+ try {
+ val jsonString = gson.toJson(map)
+ val encryptedData = Base64.encodeToString(jsonString.toByteArray(), Base64.DEFAULT)
+ putString(key, encryptedData)
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+
+ inline fun getMap(key: String): Map {
+ return try {
+ val encryptedData = getString(key)
+ if (encryptedData.isBlank()) return emptyMap()
+
+ val jsonString = String(Base64.decode(encryptedData, Base64.DEFAULT))
+ val type: Type = object : TypeToken