diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
new file mode 100644
index 0000000..f16cb85
Binary files /dev/null and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..681f41a
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..81aaf37
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..f5c6d9e
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/src/main/java/com/wiseassblog/data/DataExt.kt b/data/src/main/java/com/wiseassblog/data/DataExt.kt
index 7fa6efb..fdc525a 100644
--- a/data/src/main/java/com/wiseassblog/data/DataExt.kt
+++ b/data/src/main/java/com/wiseassblog/data/DataExt.kt
@@ -2,12 +2,14 @@ package com.wiseassblog.data
import android.net.Uri
import com.google.android.gms.tasks.Task
+import com.google.firebase.firestore.QuerySnapshot
import com.wiseassblog.data.datamodels.AnonymousRoomNote
import com.wiseassblog.data.datamodels.RegisteredRoomNote
import com.wiseassblog.data.datamodels.RegisteredRoomTransaction
import com.wiseassblog.data.datamodels.FirebaseNote
import com.wiseassblog.domain.domainmodel.Note
import com.wiseassblog.domain.domainmodel.NoteTransaction
+import com.wiseassblog.domain.domainmodel.Result
import com.wiseassblog.domain.domainmodel.TransactionType
import com.wiseassblog.domain.domainmodel.User
import kotlin.coroutines.resume
@@ -24,6 +26,7 @@ suspend fun awaitTaskResult(task: Task): T = suspendCoroutine { continuat
}
}
}
+
//Wraps Firebase/GMS calls
suspend fun awaitTaskCompletable(task: Task): Unit = suspendCoroutine { continuation ->
task.addOnCompleteListener { task ->
@@ -150,3 +153,14 @@ internal fun List.toNoteListFromRegistered(): List = t
internal fun List.toNoteTransactionListFromRegistered(): List = this.flatMap {
listOf(it.toTransaction)
}
+
+
+internal inline fun resultToList(result: QuerySnapshot?): Result> {
+ val targetList = mutableListOf()
+ result?.forEach { documentSnapshop ->
+ targetList.add(documentSnapshop.toObject(T::class.java))
+ }
+ return Result.build {
+ targetList
+ }
+}
\ No newline at end of file
diff --git a/data/src/main/java/com/wiseassblog/data/note/public/FirestorePublicNoteRepositoryImpl.kt b/data/src/main/java/com/wiseassblog/data/note/public/FirestorePublicNoteRepositoryImpl.kt
index 62fc17e..ebe4f81 100644
--- a/data/src/main/java/com/wiseassblog/data/note/public/FirestorePublicNoteRepositoryImpl.kt
+++ b/data/src/main/java/com/wiseassblog/data/note/public/FirestorePublicNoteRepositoryImpl.kt
@@ -2,8 +2,7 @@ package com.wiseassblog.data.note.public
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.QuerySnapshot
-import com.wiseassblog.data.awaitTaskCompletable
-import com.wiseassblog.data.awaitTaskResult
+import com.wiseassblog.data.*
import com.wiseassblog.data.datamodels.FirebaseNote
import com.wiseassblog.data.toFirebaseNote
import com.wiseassblog.data.toNote
@@ -13,6 +12,7 @@ import com.wiseassblog.domain.repository.IPublicNoteRepository
const val COLLECTION_PUBLIC = "public_notes"
+
object FirestoreRemoteNoteImpl : IPublicNoteRepository {
override suspend fun getNotes(): Result> {
val firestore = FirebaseFirestore.getInstance()
@@ -22,7 +22,7 @@ object FirestoreRemoteNoteImpl : IPublicNoteRepository {
return try {
val task = awaitTaskResult(reference.get())
- return resultToNoteList(task)
+ return resultToList(task)
} catch (exception: Exception) {
Result.build { throw exception }
}
@@ -77,15 +77,4 @@ object FirestoreRemoteNoteImpl : IPublicNoteRepository {
}
}
- private fun resultToNoteList(result: QuerySnapshot?): Result> {
- val noteList = mutableListOf()
-
- result?.forEach { documentSnapshop ->
- noteList.add(documentSnapshop.toObject(FirebaseNote::class.java).toNote)
- }
-
- return Result.build {
- noteList
- }
- }
}
\ No newline at end of file
diff --git a/data/src/main/java/com/wiseassblog/data/note/registered/FirestorePrivateRemoteNoteImpl.kt b/data/src/main/java/com/wiseassblog/data/note/registered/FirestorePrivateRemoteNoteImpl.kt
index 3d1ed79..a47b3ad 100644
--- a/data/src/main/java/com/wiseassblog/data/note/registered/FirestorePrivateRemoteNoteImpl.kt
+++ b/data/src/main/java/com/wiseassblog/data/note/registered/FirestorePrivateRemoteNoteImpl.kt
@@ -2,9 +2,9 @@ package com.wiseassblog.data.note.registered
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.QuerySnapshot
-import com.wiseassblog.data.awaitTaskCompletable
-import com.wiseassblog.data.awaitTaskResult
+import com.wiseassblog.data.*
import com.wiseassblog.data.datamodels.FirebaseNote
+import com.wiseassblog.data.resultToList
import com.wiseassblog.data.toFirebaseNote
import com.wiseassblog.data.toNote
import com.wiseassblog.domain.domainmodel.Note
@@ -28,25 +28,12 @@ class FirestorePrivateRemoteNoteImpl(
return try {
val task = awaitTaskResult(reference.get())
- return resultToNoteList(task)
+ return resultToList(task)
} catch (exception: Exception) {
Result.build { throw exception }
}
}
- private fun resultToNoteList(result: QuerySnapshot?): Result> {
- val noteList = mutableListOf()
-
- result?.forEach { documentSnapshop ->
- noteList.add(documentSnapshop.toObject(FirebaseNote::class.java).toNote)
- }
-
- return Result.build {
- noteList
- }
- }
-
-
override suspend fun getNote(id: String): Result {
var reference = firestore.collection(COLLECTION_NAME)
.document(id)
diff --git a/domain/src/main/java/com/wiseassblog/domain/domainmodel/NoteTransaction.kt b/domain/src/main/java/com/wiseassblog/domain/domainmodel/NoteTransaction.kt
index c25d0d4..eacef3d 100644
--- a/domain/src/main/java/com/wiseassblog/domain/domainmodel/NoteTransaction.kt
+++ b/domain/src/main/java/com/wiseassblog/domain/domainmodel/NoteTransaction.kt
@@ -21,4 +21,4 @@ fun Note.toTransaction(type: TransactionType): NoteTransaction = NoteTransaction
imageUrl,
creator,
type
-)
+ )
diff --git a/domain/src/main/java/com/wiseassblog/domain/error/SpaceNotesError.kt b/domain/src/main/java/com/wiseassblog/domain/error/SpaceNotesError.kt
index af82a34..029c9ea 100644
--- a/domain/src/main/java/com/wiseassblog/domain/error/SpaceNotesError.kt
+++ b/domain/src/main/java/com/wiseassblog/domain/error/SpaceNotesError.kt
@@ -10,8 +10,6 @@ sealed class SpaceNotesError: Exception() {
object AuthError: SpaceNotesError()
object TransactionIOException : SpaceNotesError()
-
-
}
const val ERROR_UPDATE_FAILED = "Update operation unsuccessful."
diff --git a/domain/src/main/java/com/wiseassblog/domain/interactor/PublicNoteSource.kt b/domain/src/main/java/com/wiseassblog/domain/interactor/PublicNoteSource.kt
index ac666ea..85521b3 100644
--- a/domain/src/main/java/com/wiseassblog/domain/interactor/PublicNoteSource.kt
+++ b/domain/src/main/java/com/wiseassblog/domain/interactor/PublicNoteSource.kt
@@ -6,6 +6,7 @@ import com.wiseassblog.domain.domainmodel.Result
class PublicNoteSource {
+
suspend fun getNotes(locator: NoteServiceLocator): Result> = locator
.remotePublic
.getNotes()