فهرست منبع

Added handling uri links for creating subscriptions

Vadik Sirekanyan 7 سال پیش
والد
کامیت
0c1947c9ad

+ 12 - 0
app/src/main/java/me/vadik/knigopis/MainActivity.kt

@@ -101,6 +101,18 @@ class MainActivity : AppCompatActivity(), Router {
             booksChanged = false
             refresh()
         }
+        intent.data?.also {
+            val normalizedUri = Uri.parse(it.toString().replaceFirst("/#/", "/"))
+            normalizedUri.getQueryParameter("u")?.let { userId ->
+                api.createSubscription(userId, auth.getAccessToken())
+                    .io2main()
+                    .subscribe({
+                        toast("Successfully subscribed")
+                    }, {
+                        Log.e(TAG, "Cannot create subscription", it)
+                    })
+            }
+        }
     }
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

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

@@ -23,7 +23,7 @@ class UsersAdapter(
 
     override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
         val user = users[position]
-        holder.nickname = user.subUser.nickname
+        holder.nickname = user.subUser.name
         holder.avatarUrl = user.subUser.avatar
         holder.profile = "${user.subUser.booksCount} прочитано" + user.newBooksCount?.let {
             " (+$it новых)"

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

@@ -56,7 +56,10 @@ class KAuthImpl(
                 .subscribe({
                     preferences.edit()
                         .putString(ACCESS_TOKEN_KEY, it.accessToken)
-                        .putString(USER_PROFILE, it.user.profile)
+                        .putString(
+                            USER_PROFILE,
+                            "http://www.knigopis.com/#/user/books?u=${it.user.id}"
+                        )
                         .apply()
                     onSuccess()
                 }, {

+ 3 - 1
app/src/main/java/me/vadik/knigopis/model/subscription/SubUser.kt

@@ -14,13 +14,15 @@ private val defaultAvatars = setOf(
 
 class SubUser(
     val id: String,
-    val nickname: String,
+    private val nickname: String?,
     private val photo: String?,
     private val profile: String?,
     private val identity: String?,
     val booksCount: Int
 ) {
 
+    val name get() = nickname ?: id
+
     val profiles: List<Uri>
         get() = listOfNotNull(profile, identity)
             .mapNotNull(String::toUriOrNull)

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

@@ -28,7 +28,7 @@ private const val EXTRA_USER_PROFILES = "me.vadik.knigopis.extra_user_profiles"
 fun Context.createUserIntent(user: Subscription): Intent =
     Intent(this, UserActivity::class.java)
         .putExtra(EXTRA_USER_ID, user.subUser.id)
-        .putExtra(EXTRA_USER_NAME, user.subUser.nickname)
+        .putExtra(EXTRA_USER_NAME, user.subUser.name)
         .putExtra(EXTRA_USER_PHOTO, user.subUser.avatar)
         .putExtra(EXTRA_USER_PROFILES, user.subUser.profiles.toTypedArray())