Skip to content

Commit 8428f27

Browse files
committed
Refactoring to use requireNotNull and GenericError with message
1 parent f626044 commit 8428f27

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

WordPress/src/main/java/org/wordpress/android/reader/savedposts/ReaderSavedPostsAnalyticsTracker.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.wordpress.android.reader.savedposts
22

33
import org.wordpress.android.analytics.AnalyticsTracker.Stat
44
import org.wordpress.android.reader.savedposts.ReaderSavedPostsAnalyticsTracker.ErrorType.Companion.ERROR_TYPE
5+
import org.wordpress.android.reader.savedposts.ReaderSavedPostsAnalyticsTracker.ErrorType.Companion.EXPORTED_POSTS
56
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
67
import javax.inject.Inject
78

@@ -10,20 +11,20 @@ class ReaderSavedPostsAnalyticsTracker @Inject constructor(
1011
) {
1112
fun trackStart() = analyticsTracker.track(Stat.READER_SAVED_POSTS_START)
1213

13-
fun trackSuccess() = analyticsTracker.track(Stat.READER_SAVED_POSTS_SUCCESS)
14+
fun trackSuccess(numPosts: Int) = analyticsTracker.track(Stat.READER_SAVED_POSTS_SUCCESS, mapOf(EXPORTED_POSTS to numPosts))
1415

1516
fun trackFailed(errorType: ErrorType) =
1617
analyticsTracker.track(Stat.READER_SAVED_POSTS_FAILED, mapOf(ERROR_TYPE to errorType.value))
1718

18-
sealed class ErrorType(val value: String) {
19-
object NoUserSavedPostsError : ErrorType("no_saved_posts_found_error")
20-
19+
sealed class ErrorType(open val value: String) {
2120
object QuerySavedPostsError : ErrorType("query_saved_posts_error")
2221

23-
object UpdateSavedPostsError : ErrorType("update_saved_posts_error")
22+
class GenericError(errorMessage: String?) : ErrorType("generic_error: ${errorMessage?.take(EXCEPTION_MESSAGE_MAX_LENGTH) ?: ""}")
2423

2524
companion object {
2625
const val ERROR_TYPE = "error_type"
26+
const val EXPORTED_POSTS = "exported_posts"
27+
const val EXCEPTION_MESSAGE_MAX_LENGTH = 100
2728
}
2829
}
2930
}

WordPress/src/main/java/org/wordpress/android/reader/savedposts/resolver/ReaderSavedPostsResolver.kt

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,7 @@ class ReaderSavedPostsResolver @Inject constructor(
4949
if (savedPostsCursor != null) {
5050
val posts = queryResult.getValue<ReaderPostList>(savedPostsCursor) ?: ReaderPostList()
5151

52-
if (posts.isNotEmpty()) {
53-
updateReaderSavedPosts(onSuccess, onFailure, posts)
54-
} else {
55-
readerSavedPostsAnalyticsTracker.trackFailed(ErrorType.NoUserSavedPostsError)
56-
onFailure()
57-
}
52+
updateReaderSavedPosts(onSuccess, onFailure, posts)
5853
} else {
5954
readerSavedPostsAnalyticsTracker.trackFailed(ErrorType.QuerySavedPostsError)
6055
onFailure()
@@ -77,25 +72,29 @@ class ReaderSavedPostsResolver @Inject constructor(
7772
posts: ReaderPostList
7873
) {
7974
try {
80-
readerDatabaseWrapper.reset(false)
81-
readerTagTableWrapper.addOrUpdateTag(
82-
ReaderTag(
83-
"",
84-
contextProvider.getContext().getString(R.string.reader_save_for_later_display_name),
85-
contextProvider.getContext().getString(R.string.reader_save_for_later_title),
86-
"",
87-
BOOKMARKED
88-
)
89-
)
75+
if (posts.isNotEmpty()) {
76+
readerDatabaseWrapper.reset(false)
77+
readerTagTableWrapper.addOrUpdateTag(
78+
ReaderTag(
79+
"",
80+
contextProvider.getContext().getString(R.string.reader_save_for_later_display_name),
81+
contextProvider.getContext().getString(R.string.reader_save_for_later_title),
82+
"",
83+
BOOKMARKED
84+
)
85+
)
9086

91-
readerTagTableWrapper.getBookmarkTags()!!.first().let {
92-
readerPostTableWrapper.addOrUpdatePosts(it, posts)
87+
requireNotNull(readerTagTableWrapper.getBookmarkTags()) {
88+
"unexpected null bookmark tags"
89+
}.first().let {
90+
readerPostTableWrapper.addOrUpdatePosts(it, posts)
91+
}
9392
}
9493

95-
readerSavedPostsAnalyticsTracker.trackSuccess()
94+
readerSavedPostsAnalyticsTracker.trackSuccess(posts.size)
9695
onSuccess()
9796
} catch (exception: Exception) {
98-
readerSavedPostsAnalyticsTracker.trackFailed(ErrorType.UpdateSavedPostsError)
97+
readerSavedPostsAnalyticsTracker.trackFailed(ErrorType.GenericError(exception.message))
9998
onFailure()
10099
}
101100
}

0 commit comments

Comments
 (0)