From ab3f7e8260723f7ecb61727420077b63e8cc365b Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Thu, 1 Dec 2016 22:02:10 +0800 Subject: [PATCH] fixed crashes --- .../twidere/model/tab/argument/TabArguments.java | 3 ++- .../org/mariotaku/twidere/model/tab/extra/TabExtras.java | 3 ++- .../java/org/mariotaku/twidere/util/DataStoreUtils.java | 9 ++------- .../twidere/loader/MicroBlogAPIStatusesLoader.kt | 4 ++-- 4 files changed, 8 insertions(+), 11 deletions(-) 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 8c96c6ecf..5f47187f0 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 @@ -74,7 +74,8 @@ public class TabArguments implements TwidereConstants { } @Nullable - public static TabArguments parse(@NonNull @CustomTabType String type, String json) throws IOException { + public static TabArguments parse(@NonNull @CustomTabType String type, @Nullable String json) throws IOException { + if (json == null) return null; switch (type) { case CustomTabType.HOME_TIMELINE: case CustomTabType.NOTIFICATIONS_TIMELINE: 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 6d854710e..cbcbaa852 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 @@ -24,7 +24,8 @@ public abstract class TabExtras implements Parcelable { } @Nullable - public static TabExtras parse(@NonNull @CustomTabType String type, String json) throws IOException { + public static TabExtras parse(@NonNull @CustomTabType String type, @Nullable String json) throws IOException { + if (json == null) return null; switch (type) { case CustomTabType.NOTIFICATIONS_TIMELINE: { return LoganSquare.parse(json, InteractionsTabExtras.class); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java index 0c678f853..b5883ade4 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/DataStoreUtils.java @@ -35,9 +35,9 @@ import android.support.v4.util.LongSparseArray; import android.text.TextUtils; import com.bluelinelabs.logansquare.JsonMapper; +import com.bluelinelabs.logansquare.LoganSquare; import org.apache.commons.lang3.ArrayUtils; -import org.mariotaku.commons.logansquare.LoganSquareMapperFinder; import org.mariotaku.microblog.library.twitter.model.Activity; import org.mariotaku.sqliteqb.library.ArgsArray; import org.mariotaku.sqliteqb.library.Columns; @@ -559,12 +559,7 @@ public class DataStoreUtils implements Constants { final Cursor cur = resolver.query(uri, projection, selection.getSQL(), selectionArgs, null); if (cur == null) return -1; try { - final JsonMapper mapper; - try { - mapper = LoganSquareMapperFinder.mapperFor(UserFollowState.class); - } catch (LoganSquareMapperFinder.ClassLoaderDeadLockException e) { - return -1; - } + final JsonMapper mapper = LoganSquare.mapperFor(UserFollowState.class); int total = 0; cur.moveToFirst(); while (!cur.isAfterLast()) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/MicroBlogAPIStatusesLoader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/MicroBlogAPIStatusesLoader.kt index 4db571209..8f51bb0f4 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/MicroBlogAPIStatusesLoader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/MicroBlogAPIStatusesLoader.kt @@ -23,8 +23,8 @@ import android.content.Context import android.database.sqlite.SQLiteDatabase import android.support.annotation.WorkerThread import android.util.Log +import com.bluelinelabs.logansquare.LoganSquare import com.nostra13.universalimageloader.cache.disc.DiskCache -import org.mariotaku.commons.logansquare.LoganSquareMapperFinder import org.mariotaku.microblog.library.MicroBlog import org.mariotaku.microblog.library.MicroBlogException import org.mariotaku.microblog.library.twitter.model.Paging @@ -227,7 +227,7 @@ abstract class MicroBlogAPIStatusesLoader( val pos = PipedOutputStream() val pis = PipedInputStream(pos) val future = pool.submit(Callable { - LoganSquareMapperFinder.mapperFor(ParcelableStatus::class.java).serialize(statuses, pos) + LoganSquare.serialize(statuses, pos) null }) val saved = fileCache.save(key, pis) { current, total -> !future.isDone }