update Kotlin to 1.4.10 and fix some warnigs (#1963)

This commit is contained in:
Konrad Pozniak 2020-10-25 18:36:00 +01:00 committed by GitHub
parent e0346a8e88
commit 6d27d822ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 74 additions and 94 deletions

View file

@ -34,7 +34,6 @@ import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityOptionsCompat import androidx.core.app.ActivityOptionsCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.emoji.text.EmojiCompat import androidx.emoji.text.EmojiCompat
import androidx.lifecycle.Observer
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager2.widget.MarginPageTransformer import androidx.viewpager2.widget.MarginPageTransformer
@ -311,7 +310,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
* Subscribe to data loaded at the view model * Subscribe to data loaded at the view model
*/ */
private fun subscribeObservables() { private fun subscribeObservables() {
viewModel.accountData.observe(this, Observer { viewModel.accountData.observe(this) {
when (it) { when (it) {
is Success -> onAccountChanged(it.data) is Success -> onAccountChanged(it.data)
is Error -> { is Error -> {
@ -320,8 +319,8 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
.show() .show()
} }
} }
}) }
viewModel.relationshipData.observe(this, Observer { viewModel.relationshipData.observe(this) {
val relation = it?.data val relation = it?.data
if (relation != null) { if (relation != null) {
onRelationshipChanged(relation) onRelationshipChanged(relation)
@ -333,8 +332,8 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
.show() .show()
} }
}) }
viewModel.accountFieldData.observe(this, Observer { viewModel.accountFieldData.observe(this, {
accountFieldAdapter.fields = it accountFieldAdapter.fields = it
accountFieldAdapter.notifyDataSetChanged() accountFieldAdapter.notifyDataSetChanged()
@ -349,7 +348,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
viewModel.refresh() viewModel.refresh()
adapter.refreshContent() adapter.refreshContent()
} }
viewModel.isRefreshing.observe(this, Observer { isRefreshing -> viewModel.isRefreshing.observe(this, { isRefreshing ->
swipeToRefreshLayout.isRefreshing = isRefreshing == true swipeToRefreshLayout.isRefreshing = isRefreshing == true
}) })
swipeToRefreshLayout.setColorSchemeResources(R.color.tusky_blue) swipeToRefreshLayout.setColorSchemeResources(R.color.tusky_blue)
@ -705,9 +704,10 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
loadedAccount?.let { loadedAccount?.let {
showMuteAccountDialog( showMuteAccountDialog(
this, this,
it.username, it.username
{ notifications -> viewModel.muteAccount(notifications) } ) { notifications ->
) viewModel.muteAccount(notifications)
}
} }
} else { } else {
viewModel.unmuteAccount() viewModel.unmuteAccount()

View file

@ -32,7 +32,6 @@ import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.FitCenter import com.bumptech.glide.load.resource.bitmap.FitCenter
@ -41,8 +40,6 @@ import com.google.android.material.snackbar.Snackbar
import com.keylesspalace.tusky.adapter.AccountFieldEditAdapter import com.keylesspalace.tusky.adapter.AccountFieldEditAdapter
import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.Injectable
import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.entity.Account
import com.keylesspalace.tusky.entity.Instance
import com.keylesspalace.tusky.util.* import com.keylesspalace.tusky.util.*
import com.keylesspalace.tusky.viewmodel.EditProfileViewModel import com.keylesspalace.tusky.viewmodel.EditProfileViewModel
import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.IconicsDrawable
@ -123,7 +120,7 @@ class EditProfileActivity : BaseActivity(), Injectable {
viewModel.obtainProfile() viewModel.obtainProfile()
viewModel.profileData.observe(this, Observer<Resource<Account>> { profileRes -> viewModel.profileData.observe(this) { profileRes ->
when (profileRes) { when (profileRes) {
is Success -> { is Success -> {
val me = profileRes.data val me = profileRes.data
@ -164,10 +161,10 @@ class EditProfileActivity : BaseActivity(), Injectable {
} }
} }
}) }
viewModel.obtainInstance() viewModel.obtainInstance()
viewModel.instanceData.observe(this, Observer<Resource<Instance>> { result -> viewModel.instanceData.observe(this) { result ->
when (result) { when (result) {
is Success -> { is Success -> {
val instance = result.data val instance = result.data
@ -176,12 +173,12 @@ class EditProfileActivity : BaseActivity(), Injectable {
} }
} }
} }
}) }
observeImage(viewModel.avatarData, avatarPreview, avatarProgressBar, true) observeImage(viewModel.avatarData, avatarPreview, avatarProgressBar, true)
observeImage(viewModel.headerData, headerPreview, headerProgressBar, false) observeImage(viewModel.headerData, headerPreview, headerProgressBar, false)
viewModel.saveData.observe(this, Observer<Resource<Nothing>> { viewModel.saveData.observe(this, {
when(it) { when(it) {
is Success -> { is Success -> {
finish() finish()
@ -216,7 +213,7 @@ class EditProfileActivity : BaseActivity(), Injectable {
imageView: ImageView, imageView: ImageView,
progressBar: View, progressBar: View,
roundedCorners: Boolean) { roundedCorners: Boolean) {
liveData.observe(this, Observer<Resource<Bitmap>> { liveData.observe(this, {
when (it) { when (it) {
is Success -> { is Success -> {

View file

@ -41,10 +41,8 @@ import com.keylesspalace.tusky.viewmodel.ListsViewModel.Event.*
import com.keylesspalace.tusky.viewmodel.ListsViewModel.LoadingState.* import com.keylesspalace.tusky.viewmodel.ListsViewModel.LoadingState.*
import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.IconicsDrawable
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
import com.mikepenz.iconics.utils.color
import com.mikepenz.iconics.utils.colorInt import com.mikepenz.iconics.utils.colorInt
import com.mikepenz.iconics.utils.sizeDp import com.mikepenz.iconics.utils.sizeDp
import com.mikepenz.iconics.utils.toIconicsColor
import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider.from import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider.from
import com.uber.autodispose.autoDispose import com.uber.autodispose.autoDispose
import dagger.android.DispatchingAndroidInjector import dagger.android.DispatchingAndroidInjector

View file

@ -46,7 +46,6 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayout.OnTabSelectedListener import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.google.android.material.tabs.TabLayoutMediator.TabConfigurationStrategy
import com.keylesspalace.tusky.appstore.* import com.keylesspalace.tusky.appstore.*
import com.keylesspalace.tusky.components.compose.ComposeActivity import com.keylesspalace.tusky.components.compose.ComposeActivity
import com.keylesspalace.tusky.components.compose.ComposeActivity.Companion.canHandleMimeType import com.keylesspalace.tusky.components.compose.ComposeActivity.Companion.canHandleMimeType
@ -474,7 +473,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
val adapter = MainPagerAdapter(tabs, this) val adapter = MainPagerAdapter(tabs, this)
viewPager.adapter = adapter viewPager.adapter = adapter
TabLayoutMediator(activeTabLayout, viewPager, TabConfigurationStrategy { _: TabLayout.Tab?, _: Int -> }).attach() TabLayoutMediator(activeTabLayout, viewPager) { _: TabLayout.Tab?, _: Int -> }.attach()
activeTabLayout.removeAllTabs() activeTabLayout.removeAllTabs()
for (i in tabs.indices) { for (i in tabs.indices) {
val tab = activeTabLayout.newTab() val tab = activeTabLayout.newTab()

View file

@ -49,7 +49,6 @@ import androidx.core.view.inputmethod.InputConnectionCompat
import androidx.core.view.inputmethod.InputContentInfoCompat import androidx.core.view.inputmethod.InputContentInfoCompat
import androidx.core.view.isGone import androidx.core.view.isGone
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.Observer
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
@ -150,7 +149,7 @@ class ComposeActivity : BaseActivity(),
/* If the composer is started up as a reply to another post, override the "starting" state /* If the composer is started up as a reply to another post, override the "starting" state
* based on what the intent from the reply request passes. */ * based on what the intent from the reply request passes. */
if (intent != null) { if (intent != null) {
this.composeOptions = intent.getParcelableExtra<ComposeOptions?>(COMPOSE_OPTIONS_EXTRA) this.composeOptions = intent.getParcelableExtra(COMPOSE_OPTIONS_EXTRA)
viewModel.setup(composeOptions) viewModel.setup(composeOptions)
setupReplyViews(composeOptions?.replyingStatusAuthor) setupReplyViews(composeOptions?.replyingStatusAuthor)
val tootText = composeOptions?.tootText val tootText = composeOptions?.tootText
@ -682,7 +681,7 @@ class ComposeActivity : BaseActivity(),
} }
private fun updateVisibleCharactersLeft() { private fun updateVisibleCharactersLeft() {
val remainingLength = maximumTootCharacters - calculateTextLength(); val remainingLength = maximumTootCharacters - calculateTextLength()
composeCharactersLeftView.text = String.format(Locale.getDefault(), "%d", remainingLength) composeCharactersLeftView.text = String.format(Locale.getDefault(), "%d", remainingLength)
val textColor = if (remainingLength < 0) { val textColor = if (remainingLength < 0) {
@ -749,7 +748,7 @@ class ComposeActivity : BaseActivity(),
this, getString(R.string.dialog_title_finishing_media_upload), this, getString(R.string.dialog_title_finishing_media_upload),
getString(R.string.dialog_message_uploading_media), true, true) getString(R.string.dialog_message_uploading_media), true, true)
viewModel.sendStatus(contentText, spoilerText).observe(this, Observer { viewModel.sendStatus(contentText, spoilerText).observe(this, {
finishingUploadDialog?.dismiss() finishingUploadDialog?.dismiss()
deleteDraftAndFinish() deleteDraftAndFinish()
}) })

View file

@ -21,8 +21,6 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import androidx.paging.PagedList
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
@ -36,7 +34,10 @@ import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.fragment.SFragment import com.keylesspalace.tusky.fragment.SFragment
import com.keylesspalace.tusky.interfaces.ReselectableFragment import com.keylesspalace.tusky.interfaces.ReselectableFragment
import com.keylesspalace.tusky.interfaces.StatusActionListener import com.keylesspalace.tusky.interfaces.StatusActionListener
import com.keylesspalace.tusky.util.* import com.keylesspalace.tusky.util.CardViewMode
import com.keylesspalace.tusky.util.NetworkState
import com.keylesspalace.tusky.util.StatusDisplayOptions
import com.keylesspalace.tusky.util.hide
import kotlinx.android.synthetic.main.fragment_timeline.* import kotlinx.android.synthetic.main.fragment_timeline.*
import javax.inject.Inject import javax.inject.Inject
@ -83,21 +84,21 @@ class ConversationsFragment : SFragment(), StatusActionListener, Injectable, Res
initSwipeToRefresh() initSwipeToRefresh()
viewModel.conversations.observe(viewLifecycleOwner, Observer<PagedList<ConversationEntity>> { viewModel.conversations.observe(viewLifecycleOwner) {
adapter.submitList(it) adapter.submitList(it)
}) }
viewModel.networkState.observe(viewLifecycleOwner, Observer { viewModel.networkState.observe(viewLifecycleOwner) {
adapter.setNetworkState(it) adapter.setNetworkState(it)
}) }
viewModel.load() viewModel.load()
} }
private fun initSwipeToRefresh() { private fun initSwipeToRefresh() {
viewModel.refreshState.observe(viewLifecycleOwner, Observer { viewModel.refreshState.observe(viewLifecycleOwner) {
swipeRefreshLayout.isRefreshing = it == NetworkState.LOADING swipeRefreshLayout.isRefreshing = it == NetworkState.LOADING
}) }
swipeRefreshLayout.setOnRefreshListener { swipeRefreshLayout.setOnRefreshListener {
viewModel.refresh() viewModel.refresh()
} }

View file

@ -20,7 +20,6 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.MenuItem import android.view.MenuItem
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.lifecycle.Observer
import com.keylesspalace.tusky.BottomSheetActivity import com.keylesspalace.tusky.BottomSheetActivity
import com.keylesspalace.tusky.R import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.components.report.adapter.ReportPagerAdapter import com.keylesspalace.tusky.components.report.adapter.ReportPagerAdapter
@ -77,7 +76,7 @@ class ReportActivity : BottomSheetActivity(), HasAndroidInjector {
} }
private fun subscribeObservables() { private fun subscribeObservables() {
viewModel.navigation.observe(this, Observer { screen -> viewModel.navigation.observe(this) { screen ->
if (screen != null) { if (screen != null) {
viewModel.navigated() viewModel.navigated()
when (screen) { when (screen) {
@ -88,14 +87,14 @@ class ReportActivity : BottomSheetActivity(), HasAndroidInjector {
Screen.Finish -> closeScreen() Screen.Finish -> closeScreen()
} }
} }
}) }
viewModel.checkUrl.observe(this, Observer { viewModel.checkUrl.observe(this) {
if (!it.isNullOrBlank()) { if (!it.isNullOrBlank()) {
viewModel.urlChecked() viewModel.urlChecked()
viewUrl(it) viewUrl(it)
} }
}) }
} }
private fun showPreviousScreen() { private fun showPreviousScreen() {

View file

@ -16,10 +16,8 @@
package com.keylesspalace.tusky.components.report.adapter package com.keylesspalace.tusky.components.report.adapter
import android.view.View import android.view.View
import com.keylesspalace.tusky.entity.Attachment
import com.keylesspalace.tusky.entity.Status import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.interfaces.LinkListener
import java.util.ArrayList
interface AdapterHandler: LinkListener { interface AdapterHandler: LinkListener {
fun showMedia(v: View?, status: Status?, idx: Int) fun showMedia(v: View?, status: Status?, idx: Int)

View file

@ -21,7 +21,6 @@ import androidx.paging.toLiveData
import com.keylesspalace.tusky.entity.Status import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.network.MastodonApi
import com.keylesspalace.tusky.util.BiListing import com.keylesspalace.tusky.util.BiListing
import com.keylesspalace.tusky.util.Listing
import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.CompositeDisposable
import java.util.concurrent.Executors import java.util.concurrent.Executors
import javax.inject.Inject import javax.inject.Inject

View file

@ -22,7 +22,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import com.keylesspalace.tusky.R import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.components.report.ReportViewModel import com.keylesspalace.tusky.components.report.ReportViewModel
import com.keylesspalace.tusky.components.report.Screen import com.keylesspalace.tusky.components.report.Screen
@ -55,7 +54,7 @@ class ReportDoneFragment : Fragment(), Injectable {
} }
private fun subscribeObservables() { private fun subscribeObservables() {
viewModel.muteState.observe(viewLifecycleOwner, Observer { viewModel.muteState.observe(viewLifecycleOwner) {
if (it !is Loading) { if (it !is Loading) {
buttonMute.show() buttonMute.show()
progressMute.show() progressMute.show()
@ -68,9 +67,9 @@ class ReportDoneFragment : Fragment(), Injectable {
true -> R.string.action_unmute true -> R.string.action_unmute
else -> R.string.action_mute else -> R.string.action_mute
}) })
}) }
viewModel.blockState.observe(viewLifecycleOwner, Observer { viewModel.blockState.observe(viewLifecycleOwner) {
if (it !is Loading) { if (it !is Loading) {
buttonBlock.show() buttonBlock.show()
progressBlock.show() progressBlock.show()
@ -83,7 +82,7 @@ class ReportDoneFragment : Fragment(), Injectable {
true -> R.string.action_unblock true -> R.string.action_unblock
else -> R.string.action_block else -> R.string.action_block
}) })
}) }
} }

View file

@ -22,7 +22,6 @@ import android.view.ViewGroup
import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import com.keylesspalace.tusky.R import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.components.report.ReportViewModel import com.keylesspalace.tusky.components.report.ReportViewModel
@ -81,14 +80,14 @@ class ReportNoteFragment : Fragment(), Injectable {
} }
private fun subscribeObservables() { private fun subscribeObservables() {
viewModel.reportingState.observe(viewLifecycleOwner, Observer { viewModel.reportingState.observe(viewLifecycleOwner) {
when (it) { when (it) {
is Success -> viewModel.navigateTo(Screen.Done) is Success -> viewModel.navigateTo(Screen.Done)
is Loading -> showLoading() is Loading -> showLoading()
is Error -> showError(it.cause) is Error -> showError(it.cause)
} }
}) }
} }
private fun showError(error: Throwable?) { private fun showError(error: Throwable?) {

View file

@ -23,8 +23,6 @@ import androidx.core.app.ActivityOptionsCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import androidx.paging.PagedList
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
@ -43,7 +41,10 @@ import com.keylesspalace.tusky.di.Injectable
import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.entity.Attachment import com.keylesspalace.tusky.entity.Attachment
import com.keylesspalace.tusky.entity.Status import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.util.* import com.keylesspalace.tusky.util.CardViewMode
import com.keylesspalace.tusky.util.StatusDisplayOptions
import com.keylesspalace.tusky.util.hide
import com.keylesspalace.tusky.util.show
import com.keylesspalace.tusky.viewdata.AttachmentViewData import com.keylesspalace.tusky.viewdata.AttachmentViewData
import kotlinx.android.synthetic.main.fragment_report_statuses.* import kotlinx.android.synthetic.main.fragment_report_statuses.*
import javax.inject.Inject import javax.inject.Inject
@ -129,11 +130,11 @@ class ReportStatusesFragment : Fragment(), Injectable, AdapterHandler {
recyclerView.adapter = adapter recyclerView.adapter = adapter
(recyclerView.itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false (recyclerView.itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
viewModel.statuses.observe(viewLifecycleOwner, Observer<PagedList<Status>> { viewModel.statuses.observe(viewLifecycleOwner) {
adapter.submitList(it) adapter.submitList(it)
}) }
viewModel.networkStateAfter.observe(viewLifecycleOwner, Observer { viewModel.networkStateAfter.observe(viewLifecycleOwner) {
if (it?.status == com.keylesspalace.tusky.util.Status.RUNNING) if (it?.status == com.keylesspalace.tusky.util.Status.RUNNING)
progressBarBottom.show() progressBarBottom.show()
else else
@ -141,9 +142,9 @@ class ReportStatusesFragment : Fragment(), Injectable, AdapterHandler {
if (it?.status == com.keylesspalace.tusky.util.Status.FAILED) if (it?.status == com.keylesspalace.tusky.util.Status.FAILED)
showError(it.msg) showError(it.msg)
}) }
viewModel.networkStateBefore.observe(viewLifecycleOwner, Observer { viewModel.networkStateBefore.observe(viewLifecycleOwner) {
if (it?.status == com.keylesspalace.tusky.util.Status.RUNNING) if (it?.status == com.keylesspalace.tusky.util.Status.RUNNING)
progressBarTop.show() progressBarTop.show()
else else
@ -151,9 +152,9 @@ class ReportStatusesFragment : Fragment(), Injectable, AdapterHandler {
if (it?.status == com.keylesspalace.tusky.util.Status.FAILED) if (it?.status == com.keylesspalace.tusky.util.Status.FAILED)
showError(it.msg) showError(it.msg)
}) }
viewModel.networkStateRefresh.observe(viewLifecycleOwner, Observer { viewModel.networkStateRefresh.observe(viewLifecycleOwner) {
if (it?.status == com.keylesspalace.tusky.util.Status.RUNNING && !swipeRefreshLayout.isRefreshing) if (it?.status == com.keylesspalace.tusky.util.Status.RUNNING && !swipeRefreshLayout.isRefreshing)
progressBarLoading.show() progressBarLoading.show()
else else
@ -163,7 +164,7 @@ class ReportStatusesFragment : Fragment(), Injectable, AdapterHandler {
swipeRefreshLayout.isRefreshing = false swipeRefreshLayout.isRefreshing = false
if (it?.status == com.keylesspalace.tusky.util.Status.FAILED) if (it?.status == com.keylesspalace.tusky.util.Status.FAILED)
showError(it.msg) showError(it.msg)
}) }
} }
private fun showError(@Suppress("UNUSED_PARAMETER") msg: String?) { private fun showError(@Suppress("UNUSED_PARAMETER") msg: String?) {

View file

@ -19,7 +19,6 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.MenuItem import android.view.MenuItem
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
@ -30,7 +29,6 @@ import com.keylesspalace.tusky.di.Injectable
import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.entity.ScheduledStatus import com.keylesspalace.tusky.entity.ScheduledStatus
import com.keylesspalace.tusky.util.Status import com.keylesspalace.tusky.util.Status
import com.keylesspalace.tusky.util.ThemeUtils
import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.hide
import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.show
import kotlinx.android.synthetic.main.activity_scheduled_toot.* import kotlinx.android.synthetic.main.activity_scheduled_toot.*
@ -68,11 +66,11 @@ class ScheduledTootActivity : BaseActivity(), ScheduledTootActionListener, Injec
viewModel = ViewModelProvider(this, viewModelFactory)[ScheduledTootViewModel::class.java] viewModel = ViewModelProvider(this, viewModelFactory)[ScheduledTootViewModel::class.java]
viewModel.data.observe(this, Observer { viewModel.data.observe(this) {
adapter.submitList(it) adapter.submitList(it)
}) }
viewModel.networkState.observe(this, Observer { (status) -> viewModel.networkState.observe(this) { (status) ->
when(status) { when(status) {
Status.SUCCESS -> { Status.SUCCESS -> {
progressBar.hide() progressBar.hide()
@ -103,9 +101,7 @@ class ScheduledTootActivity : BaseActivity(), ScheduledTootActionListener, Injec
} }
} }
} }
}
})
} }
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {

View file

@ -7,7 +7,6 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer
import androidx.paging.PagedList import androidx.paging.PagedList
import androidx.paging.PagedListAdapter import androidx.paging.PagedListAdapter
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
@ -61,11 +60,11 @@ abstract class SearchFragment<T> : Fragment(),
} }
private fun subscribeObservables() { private fun subscribeObservables() {
data.observe(viewLifecycleOwner, Observer { data.observe(viewLifecycleOwner) {
adapter.submitList(it) adapter.submitList(it)
}) }
networkStateRefresh.observe(viewLifecycleOwner, Observer { networkStateRefresh.observe(viewLifecycleOwner) {
searchProgressBar.visible(it == NetworkState.LOADING) searchProgressBar.visible(it == NetworkState.LOADING)
@ -73,17 +72,16 @@ abstract class SearchFragment<T> : Fragment(),
showError() showError()
} }
checkNoData() checkNoData()
}
}) networkState.observe(viewLifecycleOwner) {
networkState.observe(viewLifecycleOwner, Observer {
progressBarBottom.visible(it == NetworkState.LOADING) progressBarBottom.visible(it == NetworkState.LOADING)
if (it.status == Status.FAILED) { if (it.status == Status.FAILED) {
showError() showError()
} }
}) }
} }
private fun checkNoData() { private fun checkNoData() {

View file

@ -26,8 +26,6 @@ import android.net.Uri
import android.os.Environment import android.os.Environment
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.widget.CheckBox
import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
@ -376,9 +374,10 @@ class SearchStatusesFragment : SearchFragment<Pair<Status, StatusViewData.Concre
private fun onMute(accountId: String, accountUsername: String) { private fun onMute(accountId: String, accountUsername: String) {
showMuteAccountDialog( showMuteAccountDialog(
this.requireActivity(), this.requireActivity(),
accountUsername, accountUsername
{ notifications -> viewModel.muteAccount(accountId, notifications) } ) { notifications ->
) viewModel.muteAccount(accountId, notifications)
}
} }
private fun accountIsInMentions(account: AccountEntity?, mentions: Array<Mention>): Boolean { private fun accountIsInMentions(account: AccountEntity?, mentions: Array<Mention>): Boolean {

View file

@ -21,7 +21,6 @@ import com.keylesspalace.tusky.entity.Status
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
import kotlin.Comparator
/** /**
* This class caches the account database and handles all account related operations * This class caches the account database and handles all account related operations
@ -166,13 +165,13 @@ class AccountManager @Inject constructor(db: AppDatabase) {
*/ */
fun getAllAccountsOrderedByActive(): List<AccountEntity> { fun getAllAccountsOrderedByActive(): List<AccountEntity> {
val accountsCopy = accounts.toMutableList() val accountsCopy = accounts.toMutableList()
accountsCopy.sortWith(Comparator { l, r -> accountsCopy.sortWith { l, r ->
when { when {
l.isActive && !r.isActive -> -1 l.isActive && !r.isActive -> -1
r.isActive && !l.isActive -> 1 r.isActive && !l.isActive -> 1
else -> 0 else -> 0
} }
}) }
return accountsCopy return accountsCopy
} }

View file

@ -143,9 +143,9 @@ class EmojiCompatFont(
listOf(0) listOf(0)
} }
Pair(file, versionCode) Pair(file, versionCode)
}.sortedWith( }.sortedWith { a, b ->
Comparator<Pair<File, List<Int>>> { a, b -> compareVersions(a.second, b.second) } compareVersions(a.second, b.second)
).also { }.also {
existingFontFileCache = it existingFontFileCache = it
} }
} }

View file

@ -17,7 +17,7 @@ fun showMuteAccountDialog(
(view.findViewById(R.id.warning) as TextView).text = (view.findViewById(R.id.warning) as TextView).text =
activity.getString(R.string.dialog_mute_warning, accountUsername) activity.getString(R.string.dialog_mute_warning, accountUsername)
val checkbox: CheckBox = view.findViewById(R.id.checkbox) val checkbox: CheckBox = view.findViewById(R.id.checkbox)
checkbox.setChecked(true) checkbox.isChecked = true
AlertDialog.Builder(activity) AlertDialog.Builder(activity)
.setView(view) .setView(view)

View file

@ -30,10 +30,9 @@ class AccountViewModel @Inject constructor(
val accountFieldData = combineOptionalLiveData(accountData, identityProofData) { accountRes, identityProofs -> val accountFieldData = combineOptionalLiveData(accountData, identityProofData) { accountRes, identityProofs ->
identityProofs.orEmpty().map { Either.Left<IdentityProof, Field>(it) } identityProofs.orEmpty().map { Either.Left<IdentityProof, Field>(it) }
.plus(accountRes?.data?.fields.orEmpty().map { Either.Right<IdentityProof, Field>(it) }) .plus(accountRes?.data?.fields.orEmpty().map { Either.Right(it) })
} }
private val callList: MutableList<Call<*>> = mutableListOf() private val callList: MutableList<Call<*>> = mutableListOf()
private val disposable: Disposable = eventHub.events private val disposable: Disposable = eventHub.events
.subscribe { event -> .subscribe { event ->

View file

@ -1,5 +1,5 @@
buildscript { buildscript {
ext.kotlin_version = '1.3.72' ext.kotlin_version = '1.4.10'
repositories { repositories {
google() google()
jcenter() jcenter()