Browse Source

Added book image creation to book interface

Vadik Sirekanyan 7 years ago
parent
commit
1eb4b08c50

+ 1 - 0
app/build.gradle

@@ -13,6 +13,7 @@ android {
         versionName '0.1.16'
         versionName '0.1.16'
         archivesBaseName = "$applicationId-$versionName-$versionCode"
         archivesBaseName = "$applicationId-$versionName-$versionCode"
         vectorDrawables.useSupportLibrary = true
         vectorDrawables.useSupportLibrary = true
+        buildConfigField "String", "STATIC_SERVER", '"https://knigopis.tk/img"'
     }
     }
     buildTypes {
     buildTypes {
         debug {
         debug {

+ 1 - 0
app/src/main/java/me/vadik/knigopis/feature/notes/NotesAdapter.kt

@@ -34,6 +34,7 @@ class NotesAdapter(
             router.openUserScreen(user.id, user.name, avatar)
             router.openUserScreen(user.id, user.name, avatar)
         }
         }
         holder.setAvatarUrl(avatar)
         holder.setAvatarUrl(avatar)
+        holder.setBookImageUrl(note.bookImageUrl)
     }
     }
 
 
 }
 }

+ 15 - 0
app/src/main/java/me/vadik/knigopis/repository/api/static.kt

@@ -0,0 +1,15 @@
+package me.vadik.knigopis.repository.api
+
+import me.vadik.knigopis.BuildConfig.STATIC_SERVER
+
+fun createUserImageUrl(userId: String): String {
+    return "$STATIC_SERVER/user/$userId.jpg"
+}
+
+fun createBookImageUrl(bookTitle: String): String {
+    val normalizedTitle = bookTitle.toLowerCase()
+        .replace(Regex("\\W+"), "_")
+        .replace(Regex("(^_|_$)"), "")
+        .replace("ё", "е")
+    return "$STATIC_SERVER/book/$normalizedTitle.jpg"
+}

+ 2 - 0
app/src/main/java/me/vadik/knigopis/repository/model/Book.kt

@@ -1,11 +1,13 @@
 package me.vadik.knigopis.repository.model
 package me.vadik.knigopis.repository.model
 
 
 import me.vadik.knigopis.common.orDefault
 import me.vadik.knigopis.common.orDefault
+import me.vadik.knigopis.repository.api.createBookImageUrl
 
 
 interface Book {
 interface Book {
     val id: String
     val id: String
     val title: String
     val title: String
     val author: String
     val author: String
+    val bookImageUrl get() = createBookImageUrl(title)
     val titleOrDefault get() = title.orDefault("(без названия)")
     val titleOrDefault get() = title.orDefault("(без названия)")
     val authorOrDefault get() = author.orDefault("(автор не указан)")
     val authorOrDefault get() = author.orDefault("(автор не указан)")
     val fullTitle
     val fullTitle

+ 2 - 2
app/src/main/java/me/vadik/knigopis/repository/model/note/Identity.kt

@@ -1,6 +1,6 @@
 package me.vadik.knigopis.repository.model.note
 package me.vadik.knigopis.repository.model.note
 
 
-private const val STATIC_SERVER = "https://knigopis.tk/img"
+import me.vadik.knigopis.repository.api.createUserImageUrl
 
 
 class Identity(
 class Identity(
     val id: String,
     val id: String,
@@ -8,5 +8,5 @@ class Identity(
     private val booksCount: Int
     private val booksCount: Int
 ) {
 ) {
     val name get() = nickname ?: id
     val name get() = nickname ?: id
-    val avatarUrl get() = "$STATIC_SERVER/user/$id.jpg"
+    val avatarUrl get() = createUserImageUrl(id)
 }
 }

+ 5 - 4
app/src/main/java/me/vadik/knigopis/repository/model/note/Note.kt

@@ -1,15 +1,16 @@
 package me.vadik.knigopis.repository.model.note
 package me.vadik.knigopis.repository.model.note
 
 
+import me.vadik.knigopis.repository.model.Book
 import java.util.*
 import java.util.*
 
 
 class Note(
 class Note(
-    val id: String,
-    val title: String,
-    val author: String,
+    override val id: String,
+    override val title: String,
+    override val author: String,
     val notes: String,
     val notes: String,
     private val createdAt: Date,
     private val createdAt: Date,
     val user: Identity
     val user: Identity
-) {
+) : Book {
     // TODO https://trello.com/c/UymHYoPK
     // TODO https://trello.com/c/UymHYoPK
     val fixedCreatedAt
     val fixedCreatedAt
         get() = Date(createdAt.time + TimeZone.getDefault().rawOffset)
         get() = Date(createdAt.time + TimeZone.getDefault().rawOffset)