Browse Source

Moved basic extensions to separate utils package

Vadik Sirekanyan 7 năm trước cách đây
mục cha
commit
f1e7874ac7

+ 3 - 0
app/src/main/java/me/vadik/knigopis/BookActivity.kt

@@ -15,6 +15,9 @@ import me.vadik.knigopis.model.FinishedBookToSend
 import me.vadik.knigopis.model.PlannedBook
 import me.vadik.knigopis.model.PlannedBookToSend
 import me.vadik.knigopis.utils.hideKeyboard
+import me.vadik.knigopis.utils.hideNow
+import me.vadik.knigopis.utils.showNow
+import me.vadik.knigopis.utils.toast
 import org.koin.android.ext.android.inject
 import java.util.*
 

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

@@ -40,6 +40,8 @@ import me.vadik.knigopis.model.note.Note
 import me.vadik.knigopis.model.subscription.Subscription
 import me.vadik.knigopis.profile.createProfileIntent
 import me.vadik.knigopis.user.createUserIntent
+import me.vadik.knigopis.utils.startActivityOrNull
+import me.vadik.knigopis.utils.toast
 import org.koin.android.ext.android.inject
 import retrofit2.HttpException
 

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

@@ -4,7 +4,7 @@ import android.support.annotation.IdRes
 import android.support.v7.widget.RecyclerView
 import android.view.View
 import android.view.ViewGroup
-import me.vadik.knigopis.inflate
+import me.vadik.knigopis.utils.inflate
 
 class Adapter<T>(
     private val items: List<T>,

+ 3 - 0
app/src/main/java/me/vadik/knigopis/adapters/BooksAdapter.kt

@@ -18,6 +18,9 @@ import me.vadik.knigopis.model.Book
 import me.vadik.knigopis.model.BookHeader
 import me.vadik.knigopis.model.FinishedBook
 import me.vadik.knigopis.model.PlannedBook
+import me.vadik.knigopis.utils.hideNow
+import me.vadik.knigopis.utils.showNow
+import me.vadik.knigopis.utils.toast
 
 class BooksAdapter(
     private val coverSearch: BookCoverSearch,

+ 2 - 2
app/src/main/java/me/vadik/knigopis/adapters/books/BookViewHolder.kt

@@ -3,8 +3,8 @@ package me.vadik.knigopis.adapters.books
 import android.support.v7.widget.RecyclerView
 import android.view.View
 import kotlinx.android.synthetic.main.user_book.view.*
-import me.vadik.knigopis.hideNow
-import me.vadik.knigopis.showNow
+import me.vadik.knigopis.utils.hideNow
+import me.vadik.knigopis.utils.showNow
 
 class BookViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
 

+ 1 - 1
app/src/main/java/me/vadik/knigopis/adapters/notes/NoteViewHolder.kt

@@ -4,7 +4,7 @@ import android.support.v7.widget.RecyclerView
 import android.text.format.DateUtils
 import android.view.View
 import kotlinx.android.synthetic.main.note.view.*
-import me.vadik.knigopis.common.setCircleImage
+import me.vadik.knigopis.utils.setCircleImage
 
 class NoteViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
 

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

@@ -5,7 +5,7 @@ import android.view.ViewGroup
 import me.vadik.knigopis.R
 import me.vadik.knigopis.Router
 import me.vadik.knigopis.data.AvatarCache
-import me.vadik.knigopis.inflate
+import me.vadik.knigopis.utils.inflate
 import me.vadik.knigopis.model.note.Note
 
 class NotesAdapter(

+ 2 - 2
app/src/main/java/me/vadik/knigopis/adapters/users/UserViewHolder.kt

@@ -4,9 +4,9 @@ import android.support.v7.widget.RecyclerView
 import android.view.View
 import kotlinx.android.synthetic.main.user.view.*
 import me.vadik.knigopis.R
-import me.vadik.knigopis.common.setCircleImage
+import me.vadik.knigopis.utils.setCircleImage
 import me.vadik.knigopis.getHtmlString
-import me.vadik.knigopis.showNow
+import me.vadik.knigopis.utils.showNow
 
 class UserViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
 

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

@@ -7,7 +7,7 @@ import me.vadik.knigopis.Router
 import me.vadik.knigopis.common.ResourceProvider
 import me.vadik.knigopis.dialog.DialogFactory
 import me.vadik.knigopis.dialog.createDialogItem
-import me.vadik.knigopis.inflate
+import me.vadik.knigopis.utils.inflate
 import me.vadik.knigopis.model.subscription.Subscription
 
 class UsersAdapter(

+ 1 - 1
app/src/main/java/me/vadik/knigopis/common/adapter/AbstractBooksAdapter.kt

@@ -3,7 +3,7 @@ package me.vadik.knigopis.common.adapter
 import android.support.annotation.LayoutRes
 import android.support.v7.widget.RecyclerView
 import android.view.ViewGroup
-import me.vadik.knigopis.inflate
+import me.vadik.knigopis.utils.inflate
 import me.vadik.knigopis.model.Book
 import me.vadik.knigopis.model.BookHeader
 import me.vadik.knigopis.model.FinishedBook

+ 1 - 1
app/src/main/java/me/vadik/knigopis/common/adapter/BookViewHolder.kt

@@ -5,7 +5,7 @@ import android.support.v7.widget.RecyclerView
 import android.view.View
 import kotlinx.android.synthetic.main.header.view.*
 import kotlinx.android.synthetic.main.user_book.view.*
-import me.vadik.knigopis.showNow
+import me.vadik.knigopis.utils.showNow
 
 sealed class BookViewHolder(view: View) : RecyclerView.ViewHolder(view)
 

+ 1 - 1
app/src/main/java/me/vadik/knigopis/dialog/DialogFactory.kt

@@ -5,7 +5,7 @@ import android.support.design.widget.BottomSheetDialog
 import kotlinx.android.synthetic.main.bottom_sheet_dialog_item.view.*
 import kotlinx.android.synthetic.main.bottom_sheet_dialog_view.*
 import me.vadik.knigopis.R
-import me.vadik.knigopis.inflate
+import me.vadik.knigopis.utils.inflate
 
 interface DialogFactory {
 

+ 0 - 36
app/src/main/java/me/vadik/knigopis/extensions.kt

@@ -3,24 +3,17 @@ package me.vadik.knigopis
 import android.animation.ObjectAnimator
 import android.app.Activity
 import android.content.Context
-import android.content.Intent
 import android.net.Uri
 import android.os.Build
 import android.support.annotation.DimenRes
-import android.support.annotation.LayoutRes
-import android.support.annotation.StringRes
-import android.support.design.widget.Snackbar
 import android.support.v4.view.ViewCompat
 import android.support.v4.view.animation.FastOutLinearInInterpolator
 import android.support.v4.view.animation.LinearOutSlowInInterpolator
 import android.text.Html
 import android.text.Spanned
 import android.util.Log
-import android.view.LayoutInflater
 import android.view.View
-import android.view.ViewGroup
 import android.widget.ProgressBar
-import android.widget.Toast
 import com.bumptech.glide.RequestBuilder
 import com.bumptech.glide.load.DataSource
 import com.bumptech.glide.load.engine.GlideException
@@ -34,20 +27,6 @@ import io.reactivex.schedulers.Schedulers
 private const val TAG = "Knigopis"
 private val HTTP_SCHEMES = setOf("http", "https")
 
-fun Context.startActivityOrNull(intent: Intent): Unit? =
-    packageManager.resolveActivity(intent, 0)?.let {
-        startActivity(intent)
-    }
-
-fun Context.toast(@StringRes messageId: Int, vararg args: Any) =
-    Toast.makeText(this, getString(messageId, *args), Toast.LENGTH_SHORT).show()
-
-fun Context.toast(@StringRes messageId: Int) =
-    Toast.makeText(this, messageId, Toast.LENGTH_SHORT).show()
-
-fun View.snackbar(@StringRes messageId: Int) =
-    Snackbar.make(this, messageId, Snackbar.LENGTH_LONG).show()
-
 fun Activity.app() = application as App
 
 @Suppress("unused")
@@ -55,9 +34,6 @@ fun logWarn(message: String) = Log.w(TAG, message)
 
 fun logError(message: String, throwable: Throwable?) = Log.e(TAG, message, throwable)
 
-fun ViewGroup.inflate(@LayoutRes layout: Int): View =
-    LayoutInflater.from(context).inflate(layout, this, false)
-
 fun <T> Single<T>.io2main(): Single<T> =
     subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
 
@@ -93,18 +69,6 @@ fun View.setElevationRes(@DimenRes elevation: Int) {
     ViewCompat.setElevation(this, resources.getDimensionPixelSize(elevation).toFloat())
 }
 
-fun View.showNow() {
-    visibility = View.VISIBLE
-}
-
-fun View.showNow(value: Boolean) {
-    visibility = if (value) View.VISIBLE else View.GONE
-}
-
-fun View.hideNow() {
-    visibility = View.GONE
-}
-
 fun View.show(value: Boolean) {
     if (value) show() else hide()
 }

+ 2 - 3
app/src/main/java/me/vadik/knigopis/profile/ProfileActivity.kt

@@ -15,10 +15,9 @@ import me.vadik.knigopis.auth.KAuth
 import me.vadik.knigopis.common.clearAndAddAll
 import me.vadik.knigopis.common.createTextShareIntent
 import me.vadik.knigopis.common.random
-import me.vadik.knigopis.common.setCircleImage
+import me.vadik.knigopis.utils.setCircleImage
 import me.vadik.knigopis.model.*
-import me.vadik.knigopis.utils.hideKeyboard
-import me.vadik.knigopis.utils.showKeyboard
+import me.vadik.knigopis.utils.*
 import org.koin.android.ext.android.inject
 
 fun Context.createProfileIntent() = Intent(this, ProfileActivity::class.java)

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

@@ -11,10 +11,12 @@ import android.view.MenuItem
 import kotlinx.android.synthetic.main.user_activity.*
 import me.vadik.knigopis.*
 import me.vadik.knigopis.adapters.books.BooksAdapter
-import me.vadik.knigopis.common.setCircleImage
+import me.vadik.knigopis.utils.setCircleImage
 import me.vadik.knigopis.dialog.DialogFactory
 import me.vadik.knigopis.model.Book
+import me.vadik.knigopis.utils.snackbar
 import me.vadik.knigopis.utils.systemClipboardManager
+import me.vadik.knigopis.utils.toast
 import org.koin.android.ext.android.inject
 
 private const val EXTRA_USER_ID = "me.vadik.knigopis.extra_user_id"

+ 16 - 0
app/src/main/java/me/vadik/knigopis/utils/context.kt

@@ -2,7 +2,10 @@ package me.vadik.knigopis.utils
 
 import android.content.ClipboardManager
 import android.content.Context
+import android.content.Intent
+import android.support.annotation.StringRes
 import android.view.inputmethod.InputMethodManager
+import android.widget.Toast
 
 val Context.systemClipboardManager: ClipboardManager
     get() = getAndroidSystemService(Context.CLIPBOARD_SERVICE)
@@ -10,5 +13,18 @@ val Context.systemClipboardManager: ClipboardManager
 val Context.systemInputMethodManager: InputMethodManager
     get() = getAndroidSystemService(Context.INPUT_METHOD_SERVICE)
 
+fun Context.startActivityOrNull(intent: Intent): Unit? =
+    packageManager.resolveActivity(intent, 0)?.let {
+        startActivity(intent)
+    }
+
+fun Context.toast(@StringRes messageId: Int, vararg args: Any) {
+    Toast.makeText(this, getString(messageId, *args), Toast.LENGTH_SHORT).show()
+}
+
+fun Context.toast(@StringRes messageId: Int) {
+    Toast.makeText(this, messageId, Toast.LENGTH_SHORT).show()
+}
+
 private inline fun <reified T> Context.getAndroidSystemService(name: String) =
     getSystemService(name) as T

+ 1 - 1
app/src/main/java/me/vadik/knigopis/common/ImageView.kt → app/src/main/java/me/vadik/knigopis/utils/image_view.kt

@@ -1,4 +1,4 @@
-package me.vadik.knigopis.common
+package me.vadik.knigopis.utils
 
 import android.widget.ImageView
 import com.bumptech.glide.Glide

+ 21 - 0
app/src/main/java/me/vadik/knigopis/utils/view.kt

@@ -0,0 +1,21 @@
+package me.vadik.knigopis.utils
+
+import android.support.annotation.StringRes
+import android.support.design.widget.Snackbar
+import android.view.View
+
+fun View.showNow(value: Boolean) {
+    visibility = if (value) View.VISIBLE else View.GONE
+}
+
+fun View.showNow() {
+    visibility = View.VISIBLE
+}
+
+fun View.hideNow() {
+    visibility = View.GONE
+}
+
+fun View.snackbar(@StringRes messageId: Int) {
+    Snackbar.make(this, messageId, Snackbar.LENGTH_LONG).show()
+}

+ 9 - 0
app/src/main/java/me/vadik/knigopis/utils/view_group.kt

@@ -0,0 +1,9 @@
+package me.vadik.knigopis.utils
+
+import android.support.annotation.LayoutRes
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+
+fun ViewGroup.inflate(@LayoutRes layout: Int): View =
+    LayoutInflater.from(context).inflate(layout, this, false)