From a017785ac78d97f5322d2ddbccf78ec9eb87337c Mon Sep 17 00:00:00 2001 From: Daniel Schaal Date: Wed, 14 Jul 2021 07:43:12 +0200 Subject: Use use scope function for TypedArray --- .../main/java/email/schaal/ocreader/ItemPagerActivity.kt | 5 +++-- .../main/java/email/schaal/ocreader/util/FaviconLoader.kt | 7 ++++--- .../java/email/schaal/ocreader/view/ArticleWebView.kt | 8 +++++--- .../email/schaal/ocreader/view/DividerItemDecoration.kt | 8 ++++---- .../java/email/schaal/ocreader/view/ItemViewHolder.kt | 15 +++++---------- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/email/schaal/ocreader/ItemPagerActivity.kt b/app/src/main/java/email/schaal/ocreader/ItemPagerActivity.kt index 949e4c8b..b317e7c9 100644 --- a/app/src/main/java/email/schaal/ocreader/ItemPagerActivity.kt +++ b/app/src/main/java/email/schaal/ocreader/ItemPagerActivity.kt @@ -37,6 +37,7 @@ import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import androidx.annotation.Keep import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.res.use import androidx.core.graphics.ColorUtils import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment @@ -83,10 +84,10 @@ class ItemPagerActivity : AppCompatActivity() { val position = intent.getIntExtra(EXTRA_CURRENT_POSITION, 0) - obtainStyledAttributes(intArrayOf(R.attr.colorPrimary, R.attr.colorAccent)).also { + obtainStyledAttributes(intArrayOf(R.attr.colorPrimary, R.attr.colorAccent)).use { defaultToolbarColor = it.getColor(0, 0) defaultAccent = it.getColor(1, 0) - }.recycle() + } supportActionBar?.setDisplayHomeAsUpEnabled(true) diff --git a/app/src/main/java/email/schaal/ocreader/util/FaviconLoader.kt b/app/src/main/java/email/schaal/ocreader/util/FaviconLoader.kt index 1fab23a2..aae97936 100644 --- a/app/src/main/java/email/schaal/ocreader/util/FaviconLoader.kt +++ b/app/src/main/java/email/schaal/ocreader/util/FaviconLoader.kt @@ -12,6 +12,7 @@ import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.ContextCompat +import androidx.core.content.res.use import androidx.core.graphics.ColorUtils import androidx.palette.graphics.Palette import androidx.palette.graphics.Palette.PaletteAsyncListener @@ -40,9 +41,9 @@ class FaviconLoader private constructor(builder: Builder) { return } if (feed.faviconLink != null) { - val typedArray = context.obtainStyledAttributes(intArrayOf(android.R.attr.colorBackground)) - val colorBackground = typedArray.getColor(0, Color.WHITE) - typedArray.recycle() + val colorBackground = context.obtainStyledAttributes(intArrayOf(android.R.attr.colorBackground)).use { + it.getColor(0, Color.WHITE) + } // load favicon val requestBuilder: RequestBuilder = GlideApp.with(context) .asBitmap() diff --git a/app/src/main/java/email/schaal/ocreader/view/ArticleWebView.kt b/app/src/main/java/email/schaal/ocreader/view/ArticleWebView.kt index 779e5f6f..e332f592 100644 --- a/app/src/main/java/email/schaal/ocreader/view/ArticleWebView.kt +++ b/app/src/main/java/email/schaal/ocreader/view/ArticleWebView.kt @@ -6,6 +6,7 @@ import android.util.AttributeSet import android.util.Log import androidx.annotation.ColorInt import androidx.core.content.ContextCompat +import androidx.core.content.res.use import androidx.preference.PreferenceManager import email.schaal.ocreader.Preferences import email.schaal.ocreader.R @@ -49,12 +50,13 @@ class ArticleWebView(context: Context, attrs: AttributeSet? = null, defStyleAttr } init { - context.obtainStyledAttributes(attrs, R.styleable.ArticleWebView).also { typedArray -> + context.obtainStyledAttributes(attrs, R.styleable.ArticleWebView).use { typedArray -> defaultLinkColor = typedArray.getColor(R.styleable.ArticleWebView_linkColor, 0) fontColor = typedArray.getColor(R.styleable.ArticleWebView_fontColor, 0) backColor = typedArray.getColor(R.styleable.ArticleWebView_backgroundColor, 0) - setBackgroundColor(backColor) - }.recycle() + } + + setBackgroundColor(backColor) settings.apply { javaScriptEnabled = true diff --git a/app/src/main/java/email/schaal/ocreader/view/DividerItemDecoration.kt b/app/src/main/java/email/schaal/ocreader/view/DividerItemDecoration.kt index 0e8dc7bc..4a93869b 100644 --- a/app/src/main/java/email/schaal/ocreader/view/DividerItemDecoration.kt +++ b/app/src/main/java/email/schaal/ocreader/view/DividerItemDecoration.kt @@ -25,6 +25,7 @@ import android.graphics.Rect import android.graphics.drawable.Drawable import android.view.View import androidx.annotation.DimenRes +import androidx.core.content.res.use import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ItemDecoration @@ -69,10 +70,9 @@ class DividerItemDecoration(context: Context, @DimenRes insetRes: Int) : ItemDec } init { - val a = context - .obtainStyledAttributes(intArrayOf(android.R.attr.listDivider)) - mDivider = a.getDrawable(0) - a.recycle() + mDivider = context.obtainStyledAttributes(intArrayOf(android.R.attr.listDivider)).use { + it.getDrawable(0) + } if (mDivider != null) size = mDivider.intrinsicHeight } } \ No newline at end of file diff --git a/app/src/main/java/email/schaal/ocreader/view/ItemViewHolder.kt b/app/src/main/java/email/schaal/ocreader/view/ItemViewHolder.kt index 46252c67..36ee2333 100644 --- a/app/src/main/java/email/schaal/ocreader/view/ItemViewHolder.kt +++ b/app/src/main/java/email/schaal/ocreader/view/ItemViewHolder.kt @@ -22,6 +22,7 @@ package email.schaal.ocreader.view import android.util.Log import android.view.View import androidx.annotation.ColorInt +import androidx.core.content.res.use import androidx.preference.PreferenceManager import androidx.recyclerview.widget.RecyclerView import email.schaal.ocreader.Preferences @@ -37,8 +38,10 @@ import java.util.* * RecyclerView.ViewHolder to display a feed Item. */ class ItemViewHolder(private val binding: ListItemBinding, private val clickListener: OnClickListener) : RecyclerView.ViewHolder(binding.root), FeedColorsListener { - @ColorInt - private var defaultFeedTextColor = 0 + @ColorInt private val defaultFeedTextColor: Int = + itemView.context.obtainStyledAttributes(intArrayOf(android.R.attr.textColorSecondary)).use { + it.getColor(0,0) + } fun bindItem(item: Item, position: Int, selected: Boolean) { binding.textViewTitle.text = item.title @@ -94,12 +97,4 @@ class ItemViewHolder(private val binding: ListItemBinding, private val clickList private val TAG = ItemViewHolder::class.java.name } - init { - val typedArray = itemView.context.obtainStyledAttributes(intArrayOf(android.R.attr.textColorSecondary)) - defaultFeedTextColor = try { - typedArray.getColor(0, 0) - } finally { - typedArray.recycle() - } - } } \ No newline at end of file -- cgit v1.2.3