fixed tasks NPE

This commit is contained in:
Mariotaku Lee 2016-12-15 08:13:09 +08:00
parent 505e7399c2
commit e2df022f1c
16 changed files with 58 additions and 47 deletions

View File

@ -1607,7 +1607,9 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
}
}
internal class DisplayPlaceNameTask(private val context: ComposeActivity) : AbstractTask<ParcelableLocation, List<Address>, TextView>() {
internal class DisplayPlaceNameTask(
private val context: ComposeActivity
) : AbstractTask<ParcelableLocation, List<Address>, TextView>() {
override fun doLongOperation(location: ParcelableLocation): List<Address>? {
val gcd = Geocoder(context, Locale.getDefault())

View File

@ -426,9 +426,11 @@ class UserProfileEditorFragment : BaseSupportFragment(), OnSizeChangedListener,
}
internal inner class RemoveProfileBannerTaskInternal(private val accountKey: UserKey) : AbstractTask<Any, SingleResponse<Boolean>, UserProfileEditorFragment>() {
internal inner class RemoveProfileBannerTaskInternal(
private val accountKey: UserKey
) : AbstractTask<Any?, SingleResponse<Boolean>, UserProfileEditorFragment>() {
override fun doLongOperation(params: Any): SingleResponse<Boolean> {
override fun doLongOperation(params: Any?): SingleResponse<Boolean> {
return TwitterWrapper.deleteProfileBannerImage(activity, accountKey)
}

View File

@ -285,7 +285,7 @@ class BackgroundOperationService : IntentService("background_operation"), Consta
}
@UiThread
override fun afterExecute(handler: Context?, result: UpdateStatusTask.UpdateStatusResult) {
override fun afterExecute(result: UpdateStatusTask.UpdateStatusResult) {
var failed = false
val exception = result.exception
val exceptions = result.exceptions

View File

@ -28,7 +28,7 @@ import javax.inject.Inject
abstract class AbsFriendshipOperationTask(
protected val context: Context,
@FriendshipTaskEvent.Action protected val action: Int
) : AbstractTask<AbsFriendshipOperationTask.Arguments, SingleResponse<ParcelableUser>, Any>() {
) : AbstractTask<AbsFriendshipOperationTask.Arguments, SingleResponse<ParcelableUser>, Any?>() {
@Inject
lateinit var bus: Bus

View File

@ -31,12 +31,14 @@ import org.mariotaku.twidere.util.TwitterWrapper.TwitterListResponse
import org.mariotaku.twidere.util.content.ContentResolverUtils
import java.util.*
class CacheUsersStatusesTask(private val context: Context) : AbstractTask<TwitterListResponse<Status>, Any, Any>() {
class CacheUsersStatusesTask(
private val context: Context
) : AbstractTask<TwitterListResponse<Status>, Unit, Unit>() {
public override fun doLongOperation(params: TwitterListResponse<Status>): Any? {
public override fun doLongOperation(params: TwitterListResponse<Status>) {
val resolver = context.contentResolver
val extractor = Extractor()
val list = params.data ?: return null
val list = params.data ?: return
var bulkIdx = 0
val totalSize = list.size
while (bulkIdx < totalSize) {
@ -73,7 +75,6 @@ class CacheUsersStatusesTask(private val context: Context) : AbstractTask<Twitte
}
bulkIdx += 100
}
return null
}
}

View File

@ -14,7 +14,6 @@ import org.mariotaku.microblog.library.twitter.model.ErrorInfo
import org.mariotaku.microblog.library.twitter.model.Paging
import org.mariotaku.microblog.library.twitter.model.ResponseList
import org.mariotaku.twidere.BuildConfig
import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.TwidereConstants
import org.mariotaku.twidere.constant.loadItemLimitKey
import org.mariotaku.twidere.model.RefreshTaskParam
@ -29,8 +28,9 @@ import javax.inject.Inject
/**
* Created by mariotaku on 16/2/14.
*/
abstract class GetDirectMessagesTask(protected val context: Context) : AbstractTask<RefreshTaskParam,
List<TwitterWrapper.MessageListResponse>, () -> Unit>(), Constants {
abstract class GetDirectMessagesTask(
protected val context: Context
) : AbstractTask<RefreshTaskParam, List<TwitterWrapper.MessageListResponse>, () -> Unit>() {
@Inject
protected lateinit var errorInfoStore: ErrorInfoStore
@Inject

View File

@ -12,7 +12,11 @@ import org.mariotaku.twidere.provider.TwidereDataStore.CachedTrends
/**
* Created by mariotaku on 16/2/24.
*/
class GetLocalTrendsTask(context: Context, accountKey: UserKey, private val woeid: Int) : GetTrendsTask(context, accountKey) {
class GetLocalTrendsTask(
context: Context,
accountKey: UserKey,
private val woeid: Int
) : GetTrendsTask(context, accountKey) {
@Throws(MicroBlogException::class)
override fun getTrends(twitter: MicroBlog): List<Trends> {

View File

@ -17,9 +17,11 @@ import org.mariotaku.twidere.util.content.ContentResolverUtils
/**
* Created by mariotaku on 16/2/13.
*/
class GetSavedSearchesTask(private val context: Context) : AbstractTask<Array<UserKey>, SingleResponse<Any>, Any>() {
class GetSavedSearchesTask(
private val context: Context
) : AbstractTask<Array<UserKey>, SingleResponse<Unit>, Any?>() {
public override fun doLongOperation(params: Array<UserKey>): SingleResponse<Any> {
public override fun doLongOperation(params: Array<UserKey>): SingleResponse<Unit> {
val cr = context.contentResolver
for (accountKey in params) {
val twitter = MicroBlogAPIFactory.getInstance(context, accountKey) ?: continue
@ -36,8 +38,7 @@ class GetSavedSearchesTask(private val context: Context) : AbstractTask<Array<Us
Log.w(LOGTAG, e)
}
}
}
return SingleResponse.getInstance()
return SingleResponse.getInstance(Unit)
}
}

View File

@ -22,7 +22,10 @@ import javax.inject.Inject
/**
* Created by mariotaku on 16/2/24.
*/
abstract class GetTrendsTask(private val context: Context, private val accountId: UserKey) : AbstractTask<Any, Any, Any>() {
abstract class GetTrendsTask(
private val context: Context,
private val accountId: UserKey
) : AbstractTask<Any?, Unit, Any?>() {
@Inject
lateinit var bus: Bus
@ -34,19 +37,19 @@ abstract class GetTrendsTask(private val context: Context, private val accountId
@Throws(MicroBlogException::class)
abstract fun getTrends(twitter: MicroBlog): List<Trends>
public override fun doLongOperation(param: Any): Any? {
val twitter = MicroBlogAPIFactory.getInstance(context, accountId) ?: return null
public override fun doLongOperation(param: Any?) {
val twitter = MicroBlogAPIFactory.getInstance(context, accountId) ?: return
try {
val trends = getTrends(twitter)
storeTrends(context.contentResolver, contentUri, trends)
return null
return
} catch (e: MicroBlogException) {
return null
return
}
}
override fun afterExecute(handler: Any?, result: Any?) {
override fun afterExecute(handler: Any?, result: Unit) {
bus.post(TrendsRefreshedEvent())
}

View File

@ -19,7 +19,9 @@ import java.io.IOException
/**
* Created by mariotaku on 16/3/8.
*/
class UpdateAccountInfoTask(private val context: Context) : AbstractTask<Pair<AccountDetails, ParcelableUser>, Any, Unit>() {
class UpdateAccountInfoTask(
private val context: Context
) : AbstractTask<Pair<AccountDetails, ParcelableUser>, Unit, Unit?>() {
override fun doLongOperation(params: Pair<AccountDetails, ParcelableUser>) {
val resolver = context.contentResolver

View File

@ -6,7 +6,6 @@ import android.util.Log
import com.squareup.otto.Bus
import org.mariotaku.abstask.library.AbstractTask
import org.mariotaku.microblog.library.MicroBlogException
import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.LOGTAG
import org.mariotaku.twidere.model.ParcelableUser
@ -30,7 +29,7 @@ open class UpdateProfileBackgroundImageTask<ResultHandler>(
private val imageUri: Uri,
private val tile: Boolean,
private val deleteImage: Boolean
) : AbstractTask<Any, SingleResponse<ParcelableUser>, ResultHandler>(), Constants {
) : AbstractTask<Any?, SingleResponse<ParcelableUser>, ResultHandler>() {
@Inject
lateinit var bus: Bus
@ -51,7 +50,7 @@ open class UpdateProfileBackgroundImageTask<ResultHandler>(
}
}
override fun doLongOperation(params: Any): SingleResponse<ParcelableUser> {
override fun doLongOperation(params: Any?): SingleResponse<ParcelableUser> {
try {
val twitter = MicroBlogAPIFactory.getInstance(context, accountKey)!!
TwitterWrapper.updateProfileBackgroundImage(context, twitter, imageUri, tile,

View File

@ -6,7 +6,6 @@ import android.util.Log
import com.squareup.otto.Bus
import org.mariotaku.abstask.library.AbstractTask
import org.mariotaku.microblog.library.MicroBlogException
import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.LOGTAG
import org.mariotaku.twidere.model.ParcelableUser
@ -29,7 +28,7 @@ open class UpdateProfileBannerImageTask<ResultHandler>(
private val accountKey: UserKey,
private val imageUri: Uri,
private val deleteImage: Boolean
) : AbstractTask<Any, SingleResponse<ParcelableUser>, ResultHandler>(), Constants {
) : AbstractTask<Any?, SingleResponse<ParcelableUser>, ResultHandler>() {
@Inject
lateinit var mBus: Bus
@ -50,7 +49,7 @@ open class UpdateProfileBannerImageTask<ResultHandler>(
}
}
override fun doLongOperation(params: Any): SingleResponse<ParcelableUser> {
override fun doLongOperation(params: Any?): SingleResponse<ParcelableUser> {
try {
val twitter = MicroBlogAPIFactory.getInstance(context, accountKey)!!
TwitterWrapper.updateProfileBannerImage(context, twitter, imageUri, deleteImage)

View File

@ -28,7 +28,7 @@ open class UpdateProfileImageTask<ResultHandler>(
private val accountKey: UserKey,
private val imageUri: Uri,
private val deleteImage: Boolean
) : AbstractTask<Unit, SingleResponse<ParcelableUser>, ResultHandler>() {
) : AbstractTask<Any?, SingleResponse<ParcelableUser>, ResultHandler>() {
@Inject
lateinit var bus: Bus
@ -36,10 +36,9 @@ open class UpdateProfileImageTask<ResultHandler>(
init {
@Suppress("UNCHECKED_CAST")
GeneralComponentHelper.build(context).inject(this as UpdateProfileImageTask<Any>)
setParams(Unit)
}
override fun doLongOperation(params: Unit): SingleResponse<ParcelableUser> {
override fun doLongOperation(params: Any?): SingleResponse<ParcelableUser> {
try {
val microBlog = MicroBlogAPIFactory.getInstance(context, accountKey)!!
TwitterWrapper.updateProfileImage(context, microBlog, imageUri, deleteImage)

View File

@ -17,7 +17,6 @@ import org.mariotaku.microblog.library.twitter.model.Paging
import org.mariotaku.microblog.library.twitter.model.ResponseList
import org.mariotaku.sqliteqb.library.Expression
import org.mariotaku.twidere.BuildConfig
import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.TwidereConstants.LOGTAG
import org.mariotaku.twidere.TwidereConstants.QUERY_PARAM_NOTIFY
import org.mariotaku.twidere.constant.loadItemLimitKey
@ -38,7 +37,9 @@ import javax.inject.Inject
/**
* Created by mariotaku on 16/1/4.
*/
abstract class GetActivitiesTask(protected val context: Context) : AbstractTask<RefreshTaskParam, Any, () -> Unit>(), Constants {
abstract class GetActivitiesTask(
protected val context: Context
) : AbstractTask<RefreshTaskParam, Unit, () -> Unit>() {
@Inject
lateinit var preferences: KPreferences
@Inject
@ -54,8 +55,8 @@ abstract class GetActivitiesTask(protected val context: Context) : AbstractTask<
GeneralComponentHelper.build(context).inject(this)
}
public override fun doLongOperation(param: RefreshTaskParam): Any? {
if (param.shouldAbort) return null
public override fun doLongOperation(param: RefreshTaskParam) {
if (param.shouldAbort) return
val accountIds = param.accountKeys
val maxIds = param.maxIds
val maxSortIds = param.maxSortIds
@ -115,7 +116,6 @@ abstract class GetActivitiesTask(protected val context: Context) : AbstractTask<
}
}
return null
}
protected abstract val errorInfoKey: String
@ -195,7 +195,7 @@ abstract class GetActivitiesTask(protected val context: Context) : AbstractTask<
@Throws(MicroBlogException::class)
protected abstract fun getActivities(twitter: MicroBlog, details: AccountDetails, paging: Paging): ResponseList<Activity>
public override fun afterExecute(handler: (() -> Unit)?, result: Any?) {
public override fun afterExecute(handler: (() -> Unit)?, result: Unit) {
context.contentResolver.notifyChange(contentUri, null)
bus.post(GetActivitiesTaskEvent(contentUri, false, null))
}

View File

@ -21,7 +21,6 @@ import org.mariotaku.microblog.library.twitter.model.Status
import org.mariotaku.sqliteqb.library.Columns
import org.mariotaku.sqliteqb.library.Expression
import org.mariotaku.twidere.BuildConfig
import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.TwidereConstants.LOGTAG
import org.mariotaku.twidere.TwidereConstants.QUERY_PARAM_NOTIFY
import org.mariotaku.twidere.constant.loadItemLimitKey
@ -45,8 +44,9 @@ import javax.inject.Inject
/**
* Created by mariotaku on 16/1/2.
*/
abstract class GetStatusesTask(protected val context: Context) :
AbstractTask<RefreshTaskParam, List<TwitterWrapper.StatusListResponse>, () -> Unit>(), Constants {
abstract class GetStatusesTask(
protected val context: Context
) : AbstractTask<RefreshTaskParam, List<TwitterWrapper.StatusListResponse>, () -> Unit>() {
@Inject
lateinit var preferences: KPreferences
@Inject

View File

@ -26,7 +26,6 @@ import org.mariotaku.restfu.http.mime.Body
import org.mariotaku.restfu.http.mime.FileBody
import org.mariotaku.restfu.http.mime.SimpleBody
import org.mariotaku.sqliteqb.library.Expression
import org.mariotaku.twidere.Constants
import org.mariotaku.twidere.R
import org.mariotaku.twidere.TwidereConstants.*
import org.mariotaku.twidere.annotation.AccountType
@ -52,7 +51,7 @@ import javax.inject.Inject
class UpdateStatusTask(
internal val context: Context,
internal val stateCallback: UpdateStatusTask.StateCallback
) : AbstractTask<Pair<String, ParcelableStatusUpdate>, UpdateStatusTask.UpdateStatusResult, Context>(), Constants {
) : AbstractTask<Pair<String, ParcelableStatusUpdate>, UpdateStatusTask.UpdateStatusResult, Any?>() {
@Inject
lateinit var twitterWrapper: AsyncTwitterWrapper
@ -83,8 +82,8 @@ class UpdateStatusTask(
stateCallback.beforeExecute()
}
override fun afterExecute(handler: Context?, result: UpdateStatusResult) {
stateCallback.afterExecute(handler, result)
override fun afterExecute(handler: Any?, result: UpdateStatusResult) {
stateCallback.afterExecute(result)
}
@Throws(UpdateStatusException::class)
@ -660,7 +659,7 @@ class UpdateStatusTask(
fun onUpdatingStatus()
@UiThread
fun afterExecute(handler: Context?, result: UpdateStatusResult)
fun afterExecute(result: UpdateStatusResult)
@UiThread
fun beforeExecute()