updated version
This commit is contained in:
Mariotaku Lee 2017-04-27 23:56:54 +08:00
parent 63e4081ff1
commit 3f793b2193
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
6 changed files with 18 additions and 39 deletions

View File

@ -28,7 +28,7 @@ subprojects {
buildscript { buildscript {
ext { ext {
libVersions = [ libVersions = [
Kotlin : '1.1.1', Kotlin : '1.1.2',
SupportLib : '25.3.1', SupportLib : '25.3.1',
MariotakuCommons : '0.9.15', MariotakuCommons : '0.9.15',
RestFu : '0.9.54', RestFu : '0.9.54',

View File

@ -41,8 +41,8 @@ android {
applicationId "org.mariotaku.twidere" applicationId "org.mariotaku.twidere"
minSdkVersion project.properties['overrideMinSdkVersion'] ?: 14 minSdkVersion project.properties['overrideMinSdkVersion'] ?: 14
targetSdkVersion 25 targetSdkVersion 25
versionCode 348 versionCode 349
versionName '3.5.31' versionName '3.5.32'
multiDexEnabled true multiDexEnabled true
buildConfigField 'boolean', 'LEAK_CANARY_ENABLED', 'Boolean.parseBoolean("true")' buildConfigField 'boolean', 'LEAK_CANARY_ENABLED', 'Boolean.parseBoolean("true")'

View File

@ -26,6 +26,7 @@ import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.support.annotation.CallSuper
import android.support.v4.app.LoaderManager.LoaderCallbacks import android.support.v4.app.LoaderManager.LoaderCallbacks
import android.support.v4.content.Loader import android.support.v4.content.Loader
import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.LinearLayoutManager
@ -445,7 +446,8 @@ abstract class AbsActivitiesFragment protected constructor() :
protected abstract fun onContentLoaded(loader: Loader<List<ParcelableActivity>>, data: List<ParcelableActivity>?) protected abstract fun onContentLoaded(loader: Loader<List<ParcelableActivity>>, data: List<ParcelableActivity>?)
protected fun saveReadPosition(position: Int) { @CallSuper
protected open fun saveReadPosition(position: Int) {
if (host == null) return if (host == null) return
if (position == RecyclerView.NO_POSITION || adapter.getActivityCount(false) <= 0) return if (position == RecyclerView.NO_POSITION || adapter.getActivityCount(false) <= 0) return
val item = adapter.getActivity(position) val item = adapter.getActivity(position)

View File

@ -26,6 +26,7 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
import android.os.Bundle import android.os.Bundle
import android.support.annotation.CallSuper
import android.support.v4.app.Fragment import android.support.v4.app.Fragment
import android.support.v4.app.LoaderManager.LoaderCallbacks import android.support.v4.app.LoaderManager.LoaderCallbacks
import android.support.v4.content.Loader import android.support.v4.content.Loader
@ -475,8 +476,8 @@ abstract class AbsStatusesFragment : AbsContentListRecyclerViewFragment<Parcelab
return StatusesBusCallback() return StatusesBusCallback()
} }
@CallSuper
protected fun saveReadPosition(position: Int) { protected open fun saveReadPosition(position: Int) {
if (host == null) return if (host == null) return
if (position == RecyclerView.NO_POSITION || adapter.getStatusCount(false) <= 0) return if (position == RecyclerView.NO_POSITION || adapter.getStatusCount(false) <= 0) return
val status = adapter.getStatus(position.coerceIn(rangeOfSize(adapter.statusStartIndex, val status = adapter.getStatus(position.coerceIn(rangeOfSize(adapter.statusStartIndex,

View File

@ -28,10 +28,8 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.support.v4.content.Loader import android.support.v4.content.Loader
import android.support.v7.widget.RecyclerView
import android.widget.Toast import android.widget.Toast
import com.squareup.otto.Subscribe import com.squareup.otto.Subscribe
import kotlinx.android.synthetic.main.fragment_content_recyclerview.*
import org.mariotaku.ktextension.addOnAccountsUpdatedListenerSafe import org.mariotaku.ktextension.addOnAccountsUpdatedListenerSafe
import org.mariotaku.ktextension.contains import org.mariotaku.ktextension.contains
import org.mariotaku.ktextension.removeOnAccountsUpdatedListenerSafe import org.mariotaku.ktextension.removeOnAccountsUpdatedListenerSafe
@ -74,14 +72,6 @@ abstract class CursorActivitiesFragment : AbsActivitiesFragment() {
private var contentObserver: ContentObserver? = null private var contentObserver: ContentObserver? = null
private val onScrollListener = object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
clearNotifications()
}
}
}
private val accountListener: OnAccountsUpdateListener = OnAccountsUpdateListener { private val accountListener: OnAccountsUpdateListener = OnAccountsUpdateListener {
reloadActivities() reloadActivities()
} }
@ -100,13 +90,11 @@ abstract class CursorActivitiesFragment : AbsActivitiesFragment() {
context.contentResolver.registerContentObserver(Filters.CONTENT_URI, true, contentObserver) context.contentResolver.registerContentObserver(Filters.CONTENT_URI, true, contentObserver)
} }
AccountManager.get(context).addOnAccountsUpdatedListenerSafe(accountListener, updateImmediately = false) AccountManager.get(context).addOnAccountsUpdatedListenerSafe(accountListener, updateImmediately = false)
recyclerView.addOnScrollListener(onScrollListener)
updateRefreshState() updateRefreshState()
reloadActivities() reloadActivities()
} }
override fun onStop() { override fun onStop() {
recyclerView.removeOnScrollListener(onScrollListener)
if (contentObserver != null) { if (contentObserver != null) {
context.contentResolver.unregisterContentObserver(contentObserver) context.contentResolver.unregisterContentObserver(contentObserver)
contentObserver = null contentObserver = null
@ -115,13 +103,6 @@ abstract class CursorActivitiesFragment : AbsActivitiesFragment() {
super.onStop() super.onStop()
} }
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if (isVisibleToUser) {
clearNotifications()
}
}
override fun onCreateActivitiesLoader(context: Context, args: Bundle, fromUser: Boolean): Loader<List<ParcelableActivity>> { override fun onCreateActivitiesLoader(context: Context, args: Bundle, fromUser: Boolean): Loader<List<ParcelableActivity>> {
val uri = contentUri val uri = contentUri
val table = getTableNameByUri(uri)!! val table = getTableNameByUri(uri)!!
@ -215,6 +196,12 @@ abstract class CursorActivitiesFragment : AbsActivitiesFragment() {
return true return true
} }
override fun saveReadPosition(position: Int) {
super.saveReadPosition(position)
if (position == 0) {
clearNotifications()
}
}
protected fun getFiltersWhere(table: String): Expression? { protected fun getFiltersWhere(table: String): Expression? {
if (!isFilterEnabled) return null if (!isFilterEnabled) return null
return DataStoreUtils.buildActivityFilterWhereClause(table, null) return DataStoreUtils.buildActivityFilterWhereClause(table, null)

View File

@ -27,7 +27,6 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.support.v4.content.Loader import android.support.v4.content.Loader
import android.support.v7.widget.RecyclerView
import android.widget.Toast import android.widget.Toast
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.squareup.otto.Subscribe import com.squareup.otto.Subscribe
@ -85,14 +84,6 @@ abstract class CursorStatusesFragment : AbsStatusesFragment() {
reloadStatuses() reloadStatuses()
} }
private val onScrollListener = object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
clearNotifications()
}
}
}
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
if (contentObserver == null) { if (contentObserver == null) {
@ -104,13 +95,11 @@ abstract class CursorStatusesFragment : AbsStatusesFragment() {
context.contentResolver.registerContentObserver(Filters.CONTENT_URI, true, contentObserver) context.contentResolver.registerContentObserver(Filters.CONTENT_URI, true, contentObserver)
} }
AccountManager.get(context).addOnAccountsUpdatedListenerSafe(accountListener, updateImmediately = false) AccountManager.get(context).addOnAccountsUpdatedListenerSafe(accountListener, updateImmediately = false)
recyclerView.addOnScrollListener(onScrollListener)
updateRefreshState() updateRefreshState()
reloadStatuses() reloadStatuses()
} }
override fun onStop() { override fun onStop() {
recyclerView.removeOnScrollListener(onScrollListener)
if (contentObserver != null) { if (contentObserver != null) {
context.contentResolver.unregisterContentObserver(contentObserver) context.contentResolver.unregisterContentObserver(contentObserver)
contentObserver = null contentObserver = null
@ -207,9 +196,9 @@ abstract class CursorStatusesFragment : AbsStatusesFragment() {
return true return true
} }
override fun setUserVisibleHint(isVisibleToUser: Boolean) { override fun saveReadPosition(position: Int) {
super.setUserVisibleHint(isVisibleToUser) super.saveReadPosition(position)
if (isVisibleToUser) { if (position == 0) {
clearNotifications() clearNotifications()
} }
} }