yayan hai 6 meses
pai
achega
08afb8fe0c
Modificáronse 35 ficheiros con 87 adicións e 85 borrados
  1. 0 1
      app/src/main/java/io/nexilis/alpha/ui/main/Friend.kt
  2. 1 1
      cpaas-lite/src/main/java/io/nexilis/service/Api.kt
  3. 4 4
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/BuddyDao.kt
  4. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/CallCenterHistoryDao.kt
  5. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/DiscussionForumDao.kt
  6. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/FollowDao.kt
  7. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/FormDao.kt
  8. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/FormItemDao.kt
  9. 3 3
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/GroupDao.kt
  10. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/GroupMemberDao.kt
  11. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/InquiryDao.kt
  12. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/LinkPreviewDao.kt
  13. 4 4
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/MessageDao.kt
  14. 4 4
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/MessageStatusDao.kt
  15. 3 3
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/MessageSummaryDao.kt
  16. 3 3
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/PrefsDao.kt
  17. 2 2
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/ProgressDao.kt
  18. 3 3
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/PullDao.kt
  19. 3 3
      cpaas-lite/src/main/java/io/nexilis/service/data/daos/WorkingAreaDao.kt
  20. 4 3
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/BuddyRepository.kt
  21. 2 1
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/DiscussionForumRepository.kt
  22. 2 1
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/GroupMemberRepository.kt
  23. 3 2
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/GroupRepository.kt
  24. 2 1
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/LinkPreviewRepository.kt
  25. 6 5
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/MessageRepository.kt
  26. 4 3
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/MessageStatusRepository.kt
  27. 2 1
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/MessageSummaryRepository.kt
  28. 2 1
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/PrefsRepository.kt
  29. 2 1
      cpaas-lite/src/main/java/io/nexilis/service/data/repositories/ProgressRepository.kt
  30. 7 8
      cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/BuddyViewModel.kt
  31. 1 2
      cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/GroupViewModel.kt
  32. 1 2
      cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/MessageStatusViewModel.kt
  33. 2 3
      cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/MessageViewModel.kt
  34. 1 2
      cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/ProgressViewModel.kt
  35. 0 2
      gradle/libs.versions.toml

+ 0 - 1
app/src/main/java/io/nexilis/alpha/ui/main/Friend.kt

@@ -45,7 +45,6 @@ fun Friend(navController: NavHostController) {
     val viewModel: BuddyViewModel = hiltViewModel()
     var text by rememberSaveable { mutableStateOf("") }
     var expanded by rememberSaveable { mutableStateOf(false) }
-    var isSearchActive by remember { mutableStateOf(false) }
     val list = remember { mutableStateListOf<Buddy>() }
     val listSuggestions = remember { mutableStateListOf<Buddy>() }
     val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()

+ 1 - 1
cpaas-lite/src/main/java/io/nexilis/service/Api.kt

@@ -82,7 +82,7 @@ class Api {
                             SecureRandom().nextInt(Int.MAX_VALUE)
                         )
                     val session = preferences.session.ifEmpty { random }
-                    Log.d(tag, "initConnection:$pass,$account,$activity,$session")
+                    Log.d(tag, "initConnection:$pass:$account:$ip:$port:$session")
                     nuSDKService.initConnection(
                         pass,
                         account,

+ 4 - 4
cpaas-lite/src/main/java/io/nexilis/service/data/daos/BuddyDao.kt

@@ -1,24 +1,24 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import androidx.room.Update
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface BuddyDao {
 
     @Query("select * from Buddy where type = '0'")
-    fun getAll(): LiveData<List<Buddy>>
+    fun getAll(): Flow<List<Buddy>>
 
     @Query("select * from Buddy where type = '1'")
-    fun getMe(): LiveData<Buddy>
+    fun getMe(): Flow<Buddy>
 
     @Query("select * from Buddy where f_pin = :pin")
-    fun getBuddy(pin: String): LiveData<Buddy>
+    fun getBuddy(pin: String): Flow<Buddy>
 
     @Query("select * from Buddy where f_pin = :pin")
     fun getBuddySync(pin: String): Buddy?

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/CallCenterHistoryDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface CallCenterHistoryDao {
 
     @Query("select * from CallCenterHistory")
-    fun getAll(): LiveData<List<CallCenterHistory>>
+    fun getAll(): Flow<List<CallCenterHistory>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: CallCenterHistory)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/DiscussionForumDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface DiscussionForumDao {
 
     @Query("select * from DiscussionForum")
-    fun getAll(): LiveData<List<DiscussionForum>>
+    fun getAll(): Flow<List<DiscussionForum>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: DiscussionForum)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/FollowDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface FollowDao {
 
     @Query("select * from Follow")
-    fun getAll(): LiveData<List<Follow>>
+    fun getAll(): Flow<List<Follow>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: Follow)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/FormDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface FormDao {
 
     @Query("select * from Form")
-    fun getAll(): LiveData<List<Form>>
+    fun getAll(): Flow<List<Form>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: Form)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/FormItemDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface FormItemDao {
 
     @Query("select * from FormItem")
-    fun getAll(): LiveData<List<FormItem>>
+    fun getAll(): Flow<List<FormItem>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: FormItem)

+ 3 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/daos/GroupDao.kt

@@ -1,20 +1,20 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface GroupDao {
 
     @Query("select * from `Group`")
-    fun getAll(): LiveData<List<Group>>
+    fun getAll(): Flow<List<Group>>
 
     @Query("select * from `Group` where group_id = :id")
-    fun get(id: String): LiveData<Group>
+    fun get(id: String): Flow<Group>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: Group)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/GroupMemberDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface GroupMemberDao {
 
     @Query("select * from GroupMember")
-    fun getAll(): LiveData<List<GroupMember>>
+    fun getAll(): Flow<List<GroupMember>>
 
     @Query("select * from GroupMember where group_id = :id")
     fun getSync(id: String): List<GroupMember>?

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/InquiryDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface InquiryDao {
 
     @Query("select * from Inquiry")
-    fun getAll(): LiveData<List<Inquiry>>
+    fun getAll(): Flow<List<Inquiry>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: Inquiry)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/LinkPreviewDao.kt

@@ -1,17 +1,17 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface LinkPreviewDao {
 
     @Query("select * from LinkPreview")
-    fun getAll(): LiveData<List<LinkPreview>>
+    fun getAll(): Flow<List<LinkPreview>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: LinkPreview)

+ 4 - 4
cpaas-lite/src/main/java/io/nexilis/service/data/daos/MessageDao.kt

@@ -1,26 +1,26 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 abstract class MessageDao {
 
     @Query("select * from Message")
-    abstract fun getAll(): LiveData<List<Message>>
+    abstract fun getAll(): Flow<List<Message>>
 
     @Query("select * from Message where message_id = :id")
-    abstract fun get(id: String): LiveData<Message>
+    abstract fun get(id: String): Flow<Message>
 
     @Query("select * from Message where message_id = :id")
     abstract fun getSync(id: String): Message?
 
     @Query("select * from (select * from Message where opposite_pin = :pin order by server_date desc limit :limit offset :offset) order by server_date asc")
-    abstract fun getOpposite(pin: String, offset: Int = -1, limit: Int = -1): LiveData<List<Message>>
+    abstract fun getOpposite(pin: String, offset: Int = -1, limit: Int = -1): Flow<List<Message>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     abstract suspend fun _insert(entity: Message)

+ 4 - 4
cpaas-lite/src/main/java/io/nexilis/service/data/daos/MessageStatusDao.kt

@@ -1,26 +1,26 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface MessageStatusDao {
 
     @Query("select * from MessageStatus")
-    fun getAll(): LiveData<List<MessageStatus>>
+    fun getAll(): Flow<List<MessageStatus>>
 
     @Query("select * from MessageStatus where message_id = :id")
-    fun get(id: String): LiveData<List<MessageStatus>>
+    fun get(id: String): Flow<List<MessageStatus>>
 
     @Query("select * from MessageStatus where message_id = :id")
     fun getAsync(id: String): List<MessageStatus>
 
     @Query("select * from MessageStatus where message_id = :id and f_pin = :pin")
-    fun get(id: String, pin: String): LiveData<MessageStatus>
+    fun get(id: String, pin: String): Flow<MessageStatus>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: MessageStatus)

+ 3 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/daos/MessageSummaryDao.kt

@@ -1,20 +1,20 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface MessageSummaryDao {
 
     @Query("select * from MessageSummary order by last_update desc")
-    fun getAll(): LiveData<List<MessageSummary>>
+    fun getAll(): Flow<List<MessageSummary>>
 
     @Query("select * from MessageSummary where l_pin = :pin")
-    fun get(pin: String): LiveData<List<MessageSummary>>
+    fun get(pin: String): Flow<List<MessageSummary>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: MessageSummary)

+ 3 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/daos/PrefsDao.kt

@@ -1,20 +1,20 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface PrefsDao {
 
     @Query("select * from Prefs")
-    fun getAll(): LiveData<List<Prefs>>
+    fun getAll(): Flow<List<Prefs>>
 
     @Query("select * from Prefs where `key` = :key")
-    fun get(key: String): LiveData<List<Prefs>>
+    fun get(key: String): Flow<List<Prefs>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: Prefs)

+ 2 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/daos/ProgressDao.kt

@@ -1,16 +1,16 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Query
 import androidx.room.Upsert
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface ProgressDao {
 
     @Query("select * from Progress where `message_id` = :id")
-    fun get(id: String): LiveData<Progress?>
+    fun get(id: String): Flow<Progress?>
 
     @Upsert
     suspend fun upsert(entity: Progress)

+ 3 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/daos/PullDao.kt

@@ -1,20 +1,20 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface PullDao {
 
     @Query("select * from Pull")
-    fun getAll(): LiveData<List<Pull>>
+    fun getAll(): Flow<List<Pull>>
 
     @Query("select * from Pull where pull_key = :key")
-    fun get(key: String): LiveData<List<Pull>>
+    fun get(key: String): Flow<List<Pull>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: Pull)

+ 3 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/daos/WorkingAreaDao.kt

@@ -1,20 +1,20 @@
 package io.nexilis.service.data.daos
 
-import androidx.lifecycle.LiveData
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import io.nexilis.service.data.entities.*
+import kotlinx.coroutines.flow.Flow
 
 @Dao
 interface WorkingAreaDao {
 
     @Query("select * from WorkingArea")
-    fun getAll(): LiveData<List<WorkingArea>>
+    fun getAll(): Flow<List<WorkingArea>>
 
     @Query("select * from WorkingArea where area_id = :id")
-    fun get(id: String): LiveData<List<WorkingArea>>
+    fun get(id: String): Flow<List<WorkingArea>>
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     suspend fun insert(entity: WorkingArea)

+ 4 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/BuddyRepository.kt

@@ -3,6 +3,7 @@ package io.nexilis.service.data.repositories
 import android.content.Context
 import android.util.Log
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import com.google.android.gms.tasks.OnCompleteListener
 import com.google.firebase.messaging.FirebaseMessaging
 import io.nexilis.service.Api
@@ -26,12 +27,12 @@ import javax.inject.Inject
 class BuddyRepository @Inject constructor(private val context: Context, private val dao: BuddyDao) :
     Repository {
 
-    val all: LiveData<List<Buddy>> = dao.getAll()
+    val all: LiveData<List<Buddy>> = dao.getAll().asLiveData()
 
-    val me: LiveData<Buddy> = dao.getMe()
+    val me: LiveData<Buddy> = dao.getMe().asLiveData()
 
     fun getBuddy(pin: String): LiveData<Buddy> {
-        return dao.getBuddy(pin)
+        return dao.getBuddy(pin).asLiveData()
     }
 
     override suspend fun insert(entity: MainEntity) {

+ 2 - 1
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/DiscussionForumRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.DiscussionForumDao
 import io.nexilis.service.data.entities.DiscussionForum
 import io.nexilis.service.data.entities.MainEntity
@@ -9,7 +10,7 @@ import javax.inject.Inject
 class DiscussionForumRepository @Inject constructor(private val dao: DiscussionForumDao) :
     Repository {
 
-    val all: LiveData<List<DiscussionForum>> = dao.getAll()
+    val all: LiveData<List<DiscussionForum>> = dao.getAll().asLiveData()
 
     override suspend fun insert(entity: MainEntity) {
         dao.insert(entity as DiscussionForum)

+ 2 - 1
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/GroupMemberRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.GroupMemberDao
 import io.nexilis.service.data.entities.GroupMember
 import io.nexilis.service.data.entities.MainEntity
@@ -8,7 +9,7 @@ import javax.inject.Inject
 
 class GroupMemberRepository @Inject constructor(private val dao: GroupMemberDao) : Repository {
 
-    val all: LiveData<List<GroupMember>> = dao.getAll()
+    val all: LiveData<List<GroupMember>> = dao.getAll().asLiveData()
 
     override suspend fun insert(entity: MainEntity) {
         dao.insert(entity as GroupMember)

+ 3 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/GroupRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.GroupDao
 import io.nexilis.service.data.entities.Group
 import io.nexilis.service.data.entities.MainEntity
@@ -8,14 +9,14 @@ import javax.inject.Inject
 
 class GroupRepository @Inject constructor(private val dao: GroupDao) : Repository {
 
-    val all: LiveData<List<Group>> = dao.getAll()
+    val all: LiveData<List<Group>> = dao.getAll().asLiveData()
 
     override suspend fun insert(entity: MainEntity) {
         dao.insert(entity as Group)
     }
 
     fun get(id: String): LiveData<Group> {
-        return dao.get(id)
+        return dao.get(id).asLiveData()
     }
 
 }

+ 2 - 1
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/LinkPreviewRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.LinkPreviewDao
 import io.nexilis.service.data.entities.LinkPreview
 import io.nexilis.service.data.entities.MainEntity
@@ -8,7 +9,7 @@ import javax.inject.Inject
 
 class LinkPreviewRepository @Inject constructor(private val dao: LinkPreviewDao) : Repository {
 
-    val all: LiveData<List<LinkPreview>> = dao.getAll()
+    val all: LiveData<List<LinkPreview>> = dao.getAll().asLiveData()
 
     override suspend fun insert(entity: MainEntity) {
         dao.insert(entity as LinkPreview)

+ 6 - 5
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/MessageRepository.kt

@@ -4,6 +4,7 @@ import android.content.Context
 import android.util.Log
 import androidx.activity.ComponentActivity
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import androidx.work.Data
 import androidx.work.OneTimeWorkRequestBuilder
 import androidx.work.OutOfQuotaPolicy
@@ -35,13 +36,13 @@ class MessageRepository @Inject constructor(
     private val progressDao: ProgressDao
 ) : Repository {
 
-    val all: LiveData<List<Message>> = dao.getAll()
+    val all: LiveData<List<Message>> = dao.getAll().asLiveData()
 
     fun get(id: String): LiveData<Message> {
-        return dao.get(id)
+        return dao.get(id).asLiveData()
     }
     fun getOpposite(pin: String, offset: Int = -1, limit: Int = -1): LiveData<List<Message>> {
-        return dao.getOpposite(pin, offset, limit)
+        return dao.getOpposite(pin, offset, limit).asLiveData()
     }
 
     override suspend fun insert(entity: MainEntity) {
@@ -106,7 +107,7 @@ class MessageRepository @Inject constructor(
                             val messageId = progress.getString("message_id")
                             val value = progress.getLong("progress", 0)
                             val length = progress.getLong("length", 0)
-                            apiScope.launch(Dispatchers.IO) {
+                            apiScope.launch {
                                 messageId?.let {
                                     progressDao.upsert(Progress(it, value.toFloat() / length.toFloat()))
                                 }
@@ -120,7 +121,7 @@ class MessageRepository @Inject constructor(
                                 tag,
                                 "update from work:$messageId:$pin:$status"
                             )
-                            apiScope.launch(Dispatchers.IO) {
+                            apiScope.launch {
                                 if (messageId.isNotEmpty()) {
                                     messageStatusDao.updateStatus(
                                         status,

+ 4 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/MessageStatusRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.MessageStatusDao
 import io.nexilis.service.data.entities.MainEntity
 import io.nexilis.service.data.entities.MessageStatus
@@ -8,14 +9,14 @@ import javax.inject.Inject
 
 class MessageStatusRepository @Inject constructor(private val dao: MessageStatusDao) : Repository {
 
-    val all: LiveData<List<MessageStatus>> = dao.getAll()
+    val all: LiveData<List<MessageStatus>> = dao.getAll().asLiveData()
 
     fun get(id: String) : LiveData<List<MessageStatus>> {
-        return dao.get(id)
+        return dao.get(id).asLiveData()
     }
 
     fun get(id: String, pin: String) : LiveData<MessageStatus> {
-        return dao.get(id, pin)
+        return dao.get(id, pin).asLiveData()
     }
 
     override suspend fun insert(entity: MainEntity) {

+ 2 - 1
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/MessageSummaryRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.MessageSummaryDao
 import io.nexilis.service.data.entities.MainEntity
 import io.nexilis.service.data.entities.MessageSummary
@@ -9,7 +10,7 @@ import javax.inject.Inject
 class MessageSummaryRepository @Inject constructor(private val dao: MessageSummaryDao) :
     Repository {
 
-    val all: LiveData<List<MessageSummary>> = dao.getAll()
+    val all: LiveData<List<MessageSummary>> = dao.getAll().asLiveData()
 
     override suspend fun insert(entity: MainEntity) {
         dao.insert(entity as MessageSummary)

+ 2 - 1
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/PrefsRepository.kt

@@ -1,6 +1,7 @@
 package io.nexilis.service.data.repositories
 
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.data.daos.PrefsDao
 import io.nexilis.service.data.entities.MainEntity
 import io.nexilis.service.data.entities.Prefs
@@ -8,7 +9,7 @@ import javax.inject.Inject
 
 class PrefsRepository @Inject constructor(private val dao: PrefsDao) : Repository {
 
-    val all: LiveData<List<Prefs>> = dao.getAll()
+    val all: LiveData<List<Prefs>> = dao.getAll().asLiveData()
 
     override suspend fun insert(entity: MainEntity) {
         dao.insert(entity as Prefs)

+ 2 - 1
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/ProgressRepository.kt

@@ -2,6 +2,7 @@ package io.nexilis.service.data.repositories
 
 import android.content.Context
 import androidx.lifecycle.LiveData
+import androidx.lifecycle.asLiveData
 import io.nexilis.service.core.Network
 import io.nexilis.service.core.domain
 import io.nexilis.service.core.pref
@@ -17,7 +18,7 @@ class ProgressRepository @Inject constructor(
 ) : Repository {
 
     fun get(id: String): LiveData<Progress?> {
-        return dao.get(id)
+        return dao.get(id).asLiveData()
     }
 
     suspend fun upsert(entity: MainEntity) {

+ 7 - 8
cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/BuddyViewModel.kt

@@ -6,7 +6,6 @@ import androidx.lifecycle.viewModelScope
 import dagger.hilt.android.lifecycle.HiltViewModel
 import io.nexilis.service.data.entities.Buddy
 import io.nexilis.service.data.repositories.BuddyRepository
-import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import java.io.File
 import javax.inject.Inject
@@ -22,12 +21,12 @@ class BuddyViewModel @Inject constructor(private val repository: BuddyRepository
         return repository.getBuddy(pin)
     }
 
-    fun insert(buddy: Buddy) = viewModelScope.launch(Dispatchers.IO) {
+    fun insert(buddy: Buddy) = viewModelScope.launch {
         repository.insert(buddy)
     }
 
     fun signUp(username: String, password: String, completion: (Boolean, String) -> Unit) =
-        viewModelScope.launch(Dispatchers.IO) {
+        viewModelScope.launch {
             repository.signUp(username, password, completion)
         }
 
@@ -38,26 +37,26 @@ class BuddyViewModel @Inject constructor(private val repository: BuddyRepository
         password: String,
         completion: (Boolean, String) -> Unit
     ) =
-        viewModelScope.launch(Dispatchers.IO) {
+        viewModelScope.launch {
             repository.signIn(appName, api, username, password, completion)
         }
 
-    fun addFriend(pin: String) = viewModelScope.launch(Dispatchers.IO) {
+    fun addFriend(pin: String) = viewModelScope.launch {
         repository.addFriend(pin)
     }
 
     fun searchFriend(name: String, completion: (Boolean, String) -> Unit) =
-        viewModelScope.launch(Dispatchers.IO) {
+        viewModelScope.launch {
             repository.searchFriend(name, completion)
         }
 
     fun suggestFriend(lastSequence: String, completion: (Boolean, String) -> Unit) =
-        viewModelScope.launch(Dispatchers.IO) {
+        viewModelScope.launch {
             repository.suggestFriend(lastSequence, completion)
         }
 
     fun changeProfile(me: String, file: File, completion: (Boolean) -> Unit) =
-        viewModelScope.launch(Dispatchers.IO) {
+        viewModelScope.launch {
         repository.changeProfile(me, file, completion)
     }
 }

+ 1 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/GroupViewModel.kt

@@ -8,7 +8,6 @@ import io.nexilis.service.data.entities.Buddy
 import io.nexilis.service.data.entities.Group
 import io.nexilis.service.data.repositories.GroupMemberRepository
 import io.nexilis.service.data.repositories.GroupRepository
-import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import javax.inject.Inject
 
@@ -21,7 +20,7 @@ class GroupViewModel @Inject constructor(private val repository: GroupRepository
         return repository.get(id)
     }
 
-    fun insert(buddy: Buddy) = viewModelScope.launch(Dispatchers.IO) {
+    fun insert(buddy: Buddy) = viewModelScope.launch {
         repository.insert(buddy)
     }
 

+ 1 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/MessageStatusViewModel.kt

@@ -6,7 +6,6 @@ import androidx.lifecycle.viewModelScope
 import dagger.hilt.android.lifecycle.HiltViewModel
 import io.nexilis.service.data.entities.MessageStatus
 import io.nexilis.service.data.repositories.MessageStatusRepository
-import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import javax.inject.Inject
 
@@ -23,7 +22,7 @@ class MessageStatusViewModel @Inject constructor(private val repository: Message
         return repository.get(id, pin)
     }
 
-    fun updateStatus(status: Int, messageId: String, pin: String) = viewModelScope.launch(Dispatchers.IO) {
+    fun updateStatus(status: Int, messageId: String, pin: String) = viewModelScope.launch {
         repository.updateStatus(status = status, messageId = messageId, pin = pin)
     }
 }

+ 2 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/MessageViewModel.kt

@@ -11,7 +11,6 @@ import io.nexilis.service.core.getMimeType
 import io.nexilis.service.core.toFile
 import io.nexilis.service.data.entities.Message
 import io.nexilis.service.data.repositories.MessageRepository
-import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import javax.inject.Inject
 
@@ -41,7 +40,7 @@ class MessageViewModel @Inject constructor(
         return repository.getOpposite(pin = pin, offset = offset, limit = limit)
     }
 
-    fun insert(entity: Message) = viewModelScope.launch(Dispatchers.IO) {
+    fun insert(entity: Message) = viewModelScope.launch {
         repository.insert(entity)
     }
 
@@ -49,7 +48,7 @@ class MessageViewModel @Inject constructor(
         context: Context,
         entity: Message
     ) =
-        viewModelScope.launch(Dispatchers.IO) {
+        viewModelScope.launch {
             if (entity.uri != Uri.EMPTY) {
                 context.contentResolver.openInputStream(entity.uri).use { input ->
                     input?.toFile(context, entity.uri.getFileName(context))

+ 1 - 2
cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/ProgressViewModel.kt

@@ -7,7 +7,6 @@ import dagger.hilt.android.lifecycle.HiltViewModel
 import io.nexilis.service.data.entities.Message
 import io.nexilis.service.data.entities.Progress
 import io.nexilis.service.data.repositories.ProgressRepository
-import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import javax.inject.Inject
 
@@ -21,7 +20,7 @@ class ProgressViewModel @Inject constructor(
         return repository.get(id)
     }
 
-    fun download(message: Message) = viewModelScope.launch(Dispatchers.IO) {
+    fun download(message: Message) = viewModelScope.launch {
         repository.download(message)
     }
 }

+ 0 - 2
gradle/libs.versions.toml

@@ -11,7 +11,6 @@ activityCompose = "1.10.0"
 composeBom = "2025.01.00"
 hilt = "2.49"
 hiltNavigation = "1.2.0"
-gms = "4.3.15"
 navigation = "2.8.5"
 coil = "2.6.0"
 constraintLayout = "1.1.0"
@@ -71,5 +70,4 @@ androidLibrary = { id = "com.android.library", version.ref = "agp" }
 jetbrainsKotlinPluginSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
 googleDaggerHiltAndroid = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
 googleDevtoolsKsp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
-googleGmsGoogleServices = { id = "com.google.gms.google-services", version.ref = "gms" }
 kotlinCompose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }