Răsfoiți Sursa

Show user avatar when open from comments tab

Vadik Sirekanyan 7 ani în urmă
părinte
comite
f583a20365

+ 2 - 7
app/src/main/java/me/vadik/knigopis/MainActivity.kt

@@ -36,7 +36,6 @@ import me.vadik.knigopis.model.CurrentTab
 import me.vadik.knigopis.model.CurrentTab.*
 import me.vadik.knigopis.model.FinishedBook
 import me.vadik.knigopis.model.PlannedBook
-import me.vadik.knigopis.model.note.Identity
 import me.vadik.knigopis.model.note.Note
 import me.vadik.knigopis.model.subscription.Subscription
 import me.vadik.knigopis.profile.createProfileIntent
@@ -159,12 +158,8 @@ class MainActivity : AppCompatActivity(), Router {
         }
     }
 
-    override fun openUserScreen(user: Subscription) {
-        startActivity(createUserIntent(user))
-    }
-
-    override fun openUserScreen(user: Identity) {
-        startActivity(createUserIntent(user))
+    override fun openUserScreen(id: String, name: String, avatar: String?) {
+        startActivity(createUserIntent(id, name, avatar))
     }
 
     override fun openBrowser(uri: Uri) {

+ 1 - 4
app/src/main/java/me/vadik/knigopis/Router.kt

@@ -2,12 +2,9 @@ package me.vadik.knigopis
 
 import android.net.Uri
 import me.vadik.knigopis.model.Book
-import me.vadik.knigopis.model.note.Identity
-import me.vadik.knigopis.model.subscription.Subscription
 
 interface Router {
     fun openEditBookScreen(book: Book)
-    fun openUserScreen(user: Subscription)
-    fun openUserScreen(user: Identity)
+    fun openUserScreen(id: String, name: String, avatar: String?)
     fun openBrowser(uri: Uri)
 }

+ 5 - 3
app/src/main/java/me/vadik/knigopis/adapters/notes/NotesAdapter.kt

@@ -25,15 +25,17 @@ class NotesAdapter(
 
     override fun onBindViewHolder(holder: NoteViewHolder, position: Int) {
         val note = notes[position]
+        val user = note.user
+        val avatar = avatarCache.urls[user.id]
         holder.setTitle(note.title)
         holder.setAuthor(note.author)
         holder.setNotes(note.notes)
         holder.setTimestamp(note.fixedCreatedAt.time)
-        holder.setNickname(note.user.nickname)
+        holder.setNickname(user.name)
         holder.view.setOnClickListener {
-            router.openUserScreen(note.user)
+            router.openUserScreen(user.id, user.name, avatar)
         }
-        holder.setAvatarUrl(avatarCache.urls[note.user.id])
+        holder.setAvatarUrl(avatar)
     }
 
 }

+ 9 - 8
app/src/main/java/me/vadik/knigopis/adapters/users/UsersAdapter.kt

@@ -27,15 +27,16 @@ class UsersAdapter(
     }
 
     override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
-        val user = users[position]
-        holder.setAvatarUrl(user.subUser.avatar)
-        holder.setNickname(user.subUser.name)
-        holder.setBooksCount(user.subUser.booksCount)
-        holder.setNewBooksCount(user.newBooksCount)
+        val subscription = users[position]
+        val user = subscription.subUser
+        holder.setAvatarUrl(user.avatar)
+        holder.setNickname(user.name)
+        holder.setBooksCount(user.booksCount)
+        holder.setNewBooksCount(subscription.newBooksCount)
         holder.view.setOnClickListener {
-            router.openUserScreen(user)
+            router.openUserScreen(user.id, user.name, user.avatar)
         }
-        val dialogItems = user.subUser.profiles
+        val dialogItems = user.profiles
             .map { UriItem(it, resources) }
             .distinctBy(UriItem::title)
             .map { uriItem ->
@@ -44,7 +45,7 @@ class UsersAdapter(
                 }
             }
         holder.view.setOnLongClickListener {
-            dialogs.showDialog(user.subUser.name, *dialogItems.toTypedArray())
+            dialogs.showDialog(user.name, *dialogItems.toTypedArray())
             true
         }
     }

+ 5 - 3
app/src/main/java/me/vadik/knigopis/model/note/Identity.kt

@@ -2,6 +2,8 @@ package me.vadik.knigopis.model.note
 
 class Identity(
     val id: String,
-    val nickname: String,
-    val booksCount: Int
-)
+    private val nickname: String?,
+    private val booksCount: Int
+) {
+    val name get() = nickname ?: id
+}

+ 4 - 15
app/src/main/java/me/vadik/knigopis/user/UserActivity.kt

@@ -3,7 +3,6 @@ package me.vadik.knigopis.user
 import android.content.ClipData
 import android.content.Context
 import android.content.Intent
-import android.net.Uri
 import android.os.Bundle
 import android.support.design.widget.Snackbar
 import android.support.v7.app.AppCompatActivity
@@ -19,27 +18,17 @@ import me.vadik.knigopis.api.Endpoint
 import me.vadik.knigopis.auth.KAuth
 import me.vadik.knigopis.common.setCircleImage
 import me.vadik.knigopis.dialog.DialogFactory
-import me.vadik.knigopis.model.note.Identity
-import me.vadik.knigopis.model.subscription.Subscription
 import org.koin.android.ext.android.inject
 
 private const val EXTRA_USER_ID = "me.vadik.knigopis.extra_user_id"
 private const val EXTRA_USER_NAME = "me.vadik.knigopis.extra_user_name"
 private const val EXTRA_USER_PHOTO = "me.vadik.knigopis.extra_user_photo"
-private const val EXTRA_USER_PROFILES = "me.vadik.knigopis.extra_user_profiles"
 
-fun Context.createUserIntent(user: Subscription): Intent =
+fun Context.createUserIntent(id: String, name: String, avatar: String?): Intent =
     Intent(this, UserActivity::class.java)
-        .putExtra(EXTRA_USER_ID, user.subUser.id)
-        .putExtra(EXTRA_USER_NAME, user.subUser.name)
-        .putExtra(EXTRA_USER_PHOTO, user.subUser.avatar)
-        .putExtra(EXTRA_USER_PROFILES, user.subUser.profiles.toTypedArray())
-
-fun Context.createUserIntent(user: Identity): Intent =
-    Intent(this, UserActivity::class.java)
-        .putExtra(EXTRA_USER_ID, user.id)
-        .putExtra(EXTRA_USER_NAME, user.nickname)
-        .putExtra(EXTRA_USER_PROFILES, arrayOf<Uri>())
+        .putExtra(EXTRA_USER_ID, id)
+        .putExtra(EXTRA_USER_NAME, name)
+        .putExtra(EXTRA_USER_PHOTO, avatar)
 
 class UserActivity : AppCompatActivity() {