diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/Tab.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/Tab.java index 658419cf5..041434488 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/Tab.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/Tab.java @@ -45,9 +45,6 @@ import org.mariotaku.twidere.model.util.TabArgumentsFieldConverter; import org.mariotaku.twidere.model.util.TabExtrasFieldConverter; import org.mariotaku.twidere.provider.TwidereDataStore.Tabs; -/** - * Created by mariotaku on 16/3/6. - */ @ParcelablePlease(allFields = false) @CursorObject(valuesCreator = true, tableInfo = true) @JsonObject diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/argument/TabArguments.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/argument/TabArguments.java index e9f839ab2..d75417fae 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/argument/TabArguments.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/argument/TabArguments.java @@ -34,9 +34,6 @@ import org.mariotaku.twidere.model.UserKey; import java.io.IOException; import java.util.Arrays; -/** - * Created by mariotaku on 16/3/6. - */ @JsonObject public class TabArguments implements TwidereConstants { @JsonField(name = "account_id") diff --git a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/extra/TabExtras.java b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/extra/TabExtras.java index 6b6549d0f..c2ae28e97 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/extra/TabExtras.java +++ b/twidere.component.common/src/main/java/org/mariotaku/twidere/model/tab/extra/TabExtras.java @@ -31,9 +31,6 @@ import org.mariotaku.twidere.annotation.CustomTabType; import java.io.IOException; -/** - * Created by mariotaku on 16/3/6. - */ @JsonObject public abstract class TabExtras implements Parcelable { @CallSuper diff --git a/twidere/src/main/kotlin/org/mariotaku/ktextension/WeakProperty.kt b/twidere/src/main/kotlin/org/mariotaku/ktextension/WeakProperty.kt index 55fa9519e..6f8336074 100644 --- a/twidere/src/main/kotlin/org/mariotaku/ktextension/WeakProperty.kt +++ b/twidere/src/main/kotlin/org/mariotaku/ktextension/WeakProperty.kt @@ -22,10 +22,14 @@ package org.mariotaku.ktextension import java.lang.ref.WeakReference import kotlin.reflect.KProperty -class WeakDelegate { +class WeakDelegate(obj: T?) { private var weakRef: WeakReference? = null + init { + weakRef = if (obj != null) WeakReference(obj) else null + } + operator fun getValue(thisRef: Any?, property: KProperty<*>): T? { return weakRef?.get() } @@ -35,4 +39,4 @@ class WeakDelegate { } } -fun weak(): WeakDelegate = WeakDelegate() \ No newline at end of file +fun weak(obj: T? = null): WeakDelegate = WeakDelegate(obj) \ No newline at end of file diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt index 36977f7dc..ad39dce2b 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/ComposeActivity.kt @@ -108,7 +108,6 @@ import org.mariotaku.twidere.view.ShapedImageView import org.mariotaku.twidere.view.helper.SimpleItemTouchHelperCallback import org.mariotaku.twidere.view.holder.compose.MediaPreviewViewHolder import java.io.IOException -import java.lang.ref.WeakReference import java.text.Normalizer import java.util.* import javax.inject.Inject @@ -1920,11 +1919,10 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener private class ComposeLocationListener(activity: ComposeActivity) : LocationListener { - private val activityRef = WeakReference(activity) + private val activity by weak(activity) override fun onLocationChanged(location: Location) { - val activity = activityRef.get() ?: return - activity.setRecentLocation(ParcelableLocationUtils.fromLocation(location)) + activity?.setRecentLocation(ParcelableLocationUtils.fromLocation(location)) } override fun onStatusChanged(provider: String, status: Int, extras: Bundle) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/text/style/CustomEmojiSpan.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/text/style/CustomEmojiSpan.kt index 3960ea6dd..dcb6989c2 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/text/style/CustomEmojiSpan.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/text/style/CustomEmojiSpan.kt @@ -30,8 +30,8 @@ import com.bumptech.glide.RequestManager import com.bumptech.glide.request.animation.GlideAnimation import com.bumptech.glide.request.target.BaseTarget import com.bumptech.glide.request.target.SizeReadyCallback +import org.mariotaku.ktextension.weak import org.mariotaku.twidere.R -import java.lang.ref.WeakReference class CustomEmojiSpan( val uri: String, @@ -79,14 +79,7 @@ class CustomEmojiSpan( val textSize: Int ) : BaseTarget() { - var drawable: Drawable? - get() = drawableRef?.get() - private set(value) { - drawableRef = if (value != null) WeakReference(value) else null - textView.invalidate() - } - - private var drawableRef: WeakReference? = null + var drawable: Drawable? by weak() override fun onResourceReady(resource: Bitmap, glideAnimation: GlideAnimation) { drawable = BitmapDrawable(textView.resources, resource)