From c7a91fb1df7ca34a0ac7fd1639e2699c910adf37 Mon Sep 17 00:00:00 2001 From: kyori19 Date: Thu, 10 Nov 2022 23:16:52 +0900 Subject: [PATCH] Apply ktlint and add to CI --- .github/workflows/build.yml | 1 + .../com/keylesspalace/tusky/MainActivity.kt | 30 +++++++------- .../keylesspalace/tusky/StatusListActivity.kt | 16 ++++---- .../components/compose/ComposeActivity.kt | 8 ++-- .../components/compose/ComposeViewModel.kt | 31 +++++++++----- .../preference/PreferencesFragment.kt | 11 +++-- .../SearchNotestockPagingSourceFactory.kt | 6 +-- .../search/adapter/SearchPagerAdapter.kt | 1 - .../fragments/SearchNotestockFragment.kt | 5 --- .../fragments/SearchStatusesFragment.kt | 2 +- .../viewmodel/NetworkTimelineViewModel.kt | 13 +++--- .../timeline/viewmodel/TimelineViewModel.kt | 4 +- .../com/keylesspalace/tusky/db/Converters.kt | 2 +- .../tusky/di/FragmentBuildersModule.kt | 1 - .../keylesspalace/tusky/di/NetworkModule.kt | 2 +- .../tusky/di/ViewModelFactory.kt | 2 +- .../tusky/network/NotestockApi.kt | 5 +-- .../java/net/accelf/yuito/QuickTootView.kt | 6 +-- .../net/accelf/yuito/QuickTootViewModel.kt | 38 +++++++++--------- .../net/accelf/yuito/QuoteInlineHelper.kt | 10 +++-- .../accelf/yuito/VisibilityToggleButton.kt | 40 +++++++++---------- .../keylesspalace/tusky/MainActivityTest.kt | 3 -- 22 files changed, 126 insertions(+), 111 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c33b90c5b..904cceca5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,6 +22,7 @@ jobs: - run: | chmod +x ./gradlew + ./gradlew :ktlintCheck ./gradlew :app:testBlueDebugUnitTest diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt index 5a12a888e..6c281a3c1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt @@ -39,8 +39,8 @@ import android.view.MenuItem import android.view.View import android.view.WindowManager import android.widget.ImageView -import androidx.activity.viewModels import androidx.activity.OnBackPressedCallback +import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog import androidx.appcompat.view.menu.MenuBuilder import androidx.appcompat.widget.PopupMenu @@ -621,11 +621,11 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje } binding.mainDrawer.addItems( - secondaryDrawerItem { - nameText = "Yuito (by kyori19)" - isEnabled = false - textColor = ColorStateList.valueOf(ThemeUtils.getColor(this@MainActivity, R.attr.colorInfo)) - } + secondaryDrawerItem { + nameText = "Yuito (by kyori19)" + isEnabled = false + textColor = ColorStateList.valueOf(ThemeUtils.getColor(this@MainActivity, R.attr.colorInfo)) + } ) } @@ -732,8 +732,8 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje } R.id.tabEditList -> { AccountsInListFragment.newInstance( - tabs[i].arguments.getOrNull(0).orEmpty(), - tabs[i].arguments.getOrNull(1).orEmpty() + tabs[i].arguments.getOrNull(0).orEmpty(), + tabs[i].arguments.getOrNull(1).orEmpty() ).show(supportFragmentManager, null) } R.id.tabToggleStreaming -> { @@ -750,18 +750,20 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje it.tabPreferences = tabs accountManager.saveAccount(it) } - .subscribeOn(Schedulers.io()) - .autoDispose(this, Lifecycle.Event.ON_DESTROY) - .subscribe() + .subscribeOn(Schedulers.io()) + .autoDispose(this, Lifecycle.Event.ON_DESTROY) + .subscribe() } } } R.id.tabToggleNotificationsFilter -> { if (fragment is NotificationsFragment) { val prefs = PreferenceManager.getDefaultSharedPreferences(this) - prefs.edit().putBoolean("showNotificationsFilter", - !prefs.getBoolean("showNotificationsFilter", true)) - .apply() + prefs.edit().putBoolean( + "showNotificationsFilter", + !prefs.getBoolean("showNotificationsFilter", true) + ) + .apply() eventHub.dispatch(PreferenceChangedEvent("showNotificationsFilter")) } } diff --git a/app/src/main/java/com/keylesspalace/tusky/StatusListActivity.kt b/app/src/main/java/com/keylesspalace/tusky/StatusListActivity.kt index 6f669f8d1..8c3d826ef 100644 --- a/app/src/main/java/com/keylesspalace/tusky/StatusListActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/StatusListActivity.kt @@ -23,12 +23,12 @@ import android.view.Menu import android.view.MenuItem import androidx.activity.viewModels import androidx.fragment.app.commit -import androidx.lifecycle.lifecycleScope import androidx.lifecycle.Lifecycle -import autodispose2.androidx.lifecycle.autoDispose -import com.keylesspalace.tusky.appstore.EventHub +import androidx.lifecycle.lifecycleScope import at.connyduck.calladapter.networkresult.fold +import autodispose2.androidx.lifecycle.autoDispose import com.google.android.material.snackbar.Snackbar +import com.keylesspalace.tusky.appstore.EventHub import com.keylesspalace.tusky.components.timeline.TimelineFragment import com.keylesspalace.tusky.components.timeline.viewmodel.TimelineViewModel.Kind import com.keylesspalace.tusky.databinding.ActivityStatuslistBinding @@ -36,8 +36,8 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.viewBinding import dagger.android.DispatchingAndroidInjector import dagger.android.HasAndroidInjector -import kotlinx.coroutines.launch import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import kotlinx.coroutines.launch import net.accelf.yuito.QuickTootViewModel import javax.inject.Inject @@ -50,7 +50,7 @@ class StatusListActivity : BottomSheetActivity(), HasAndroidInjector { @Inject lateinit var viewModelFactory: ViewModelFactory - private val quickTootViewModel: QuickTootViewModel by viewModels{ viewModelFactory } + private val quickTootViewModel: QuickTootViewModel by viewModels { viewModelFactory } private val binding: ActivityStatuslistBinding by viewBinding(ActivityStatuslistBinding::inflate) private lateinit var kind: Kind @@ -95,9 +95,9 @@ class StatusListActivity : BottomSheetActivity(), HasAndroidInjector { binding.viewQuickToot.attachViewModel(quickTootViewModel, this) eventHub.events - .observeOn(AndroidSchedulers.mainThread()) - .autoDispose(this, Lifecycle.Event.ON_DESTROY) - .subscribe(binding.viewQuickToot::handleEvent) + .observeOn(AndroidSchedulers.mainThread()) + .autoDispose(this, Lifecycle.Event.ON_DESTROY) + .subscribe(binding.viewQuickToot::handleEvent) binding.floatingBtn.setOnClickListener(binding.viewQuickToot::onFABClicked) } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt index 6122d8996..fe57bdb69 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt @@ -529,16 +529,16 @@ class ComposeActivity : binding.checkboxUseDefaultText.isChecked = preferences.getBoolean(PREF_USE_DEFAULT_TAG, false) binding.checkboxUseDefaultText.setOnCheckedChangeListener { _, isChecked -> preferences.edit() - .putBoolean(PREF_USE_DEFAULT_TAG, isChecked) - .apply() + .putBoolean(PREF_USE_DEFAULT_TAG, isChecked) + .apply() eventHub.dispatch(PreferenceChangedEvent(PREF_USE_DEFAULT_TAG)) } binding.editTextDefaultText.setText(preferences.getString(PREF_DEFAULT_TAG, "")) binding.editTextDefaultText.doAfterTextChanged { preferences.edit() - .putString(PREF_DEFAULT_TAG, it.toString()) - .apply() + .putString(PREF_DEFAULT_TAG, it.toString()) + .apply() eventHub.dispatch(PreferenceChangedEvent(PREF_DEFAULT_TAG)) } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt index 927d28c7f..98fa2a90b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt @@ -38,7 +38,16 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.Job import kotlinx.coroutines.channels.BufferOverflow -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.catch +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.shareIn +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.flow.updateAndGet import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import javax.inject.Inject @@ -71,14 +80,18 @@ class ComposeViewModel @Inject constructor( private var hasScheduledTimeChanged: Boolean = false private val useCache = MutableStateFlow(true) - val instanceInfo = useCache.map { when (it) { - true -> instanceInfoRepo.getCachedInstanceInfo() - false -> instanceInfoRepo.getInstanceInfo() - } }.shareIn(viewModelScope, SharingStarted.Eagerly, 1) - val emoji = useCache.map { when (it) { - true -> instanceInfoRepo.getCachedEmojis() - false -> instanceInfoRepo.getEmojis() - } }.shareIn(viewModelScope, SharingStarted.Eagerly, 1) + val instanceInfo = useCache.map { + when (it) { + true -> instanceInfoRepo.getCachedInstanceInfo() + false -> instanceInfoRepo.getInstanceInfo() + } + }.shareIn(viewModelScope, SharingStarted.Eagerly, 1) + val emoji = useCache.map { + when (it) { + true -> instanceInfoRepo.getCachedEmojis() + false -> instanceInfoRepo.getEmojis() + } + }.shareIn(viewModelScope, SharingStarted.Eagerly, 1) val markMediaAsSensitive: MutableStateFlow = MutableStateFlow(accountManager.activeAccount?.defaultMediaSensitivity ?: false) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt index ef21d88aa..bfe4c1f64 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesFragment.kt @@ -322,14 +322,17 @@ class PreferencesFragment : PreferenceFragmentCompat(), Injectable { setTitle(R.string.pref_title_stacktrace_send) setOnPreferenceClickListener { activity?.let { activity -> - val intent = ComposeActivity.startIntent(activity, ComposeOptions( + val intent = ComposeActivity.startIntent( + activity, + ComposeOptions( content = "@ars42525@odakyu.app $stackTrace".substring(0, 400), contentWarning = "Yuito StackTrace" - )) + ) + ) activity.startActivity(intent) prefs.edit() - .remove(PrefKeys.STACK_TRACE) - .apply() + .remove(PrefKeys.STACK_TRACE) + .apply() } true } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchNotestockPagingSourceFactory.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchNotestockPagingSourceFactory.kt index 834b95956..da5431a5b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchNotestockPagingSourceFactory.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchNotestockPagingSourceFactory.kt @@ -5,9 +5,9 @@ import com.keylesspalace.tusky.network.NotestockApi import com.keylesspalace.tusky.viewdata.StatusViewData class SearchNotestockPagingSourceFactory( - private val notestockApi: NotestockApi, - private val initialItems: List? = null, - private val parser: (SearchResult) -> List + private val notestockApi: NotestockApi, + private val initialItems: List? = null, + private val parser: (SearchResult) -> List ) : () -> SearchNotestockPagingSource { private var searchRequest: String = "" diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchPagerAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchPagerAdapter.kt index 0c0e17ccc..f0315e831 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchPagerAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/adapter/SearchPagerAdapter.kt @@ -36,5 +36,4 @@ class SearchPagerAdapter(activity: FragmentActivity) : FragmentStateAdapter(acti } override fun getItemCount() = 4 - } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchNotestockFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchNotestockFragment.kt index 0f7c001c2..b835a69d4 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchNotestockFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchNotestockFragment.kt @@ -74,7 +74,6 @@ class SearchNotestockFragment : SearchFragment(), Statu return SearchStatusesAdapter(statusDisplayOptions, this) } - override fun onContentHiddenChange(isShowing: Boolean, position: Int) { searchAdapter.peek(position)?.let { viewModel.contentHiddenNotestockChange(it, isShowing) @@ -133,9 +132,7 @@ class SearchNotestockFragment : SearchFragment(), Statu Attachment.Type.UNKNOWN -> { } } - } - } override fun onViewThread(position: Int) { @@ -491,11 +488,9 @@ class SearchNotestockFragment : SearchFragment(), Statu Log.w("SearchStatusesFragment", "error deleting status", error) Toast.makeText(context, R.string.error_generic, Toast.LENGTH_SHORT).show() }) - } .setNegativeButton(android.R.string.cancel, null) .show() } } - } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt index 2b1b89aa6..d2d73878f 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt @@ -240,7 +240,7 @@ class SearchStatusesFragment : SearchFragment(), Status } val intent = ComposeActivity.startIntent( - requireContext(), + requireContext(), ComposeOptions( quoteId = status.actionableId, quoteStatusAuthor = actionableStatus.account.localUsername, diff --git a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineViewModel.kt index 95a3f255a..a55834370 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/NetworkTimelineViewModel.kt @@ -252,11 +252,14 @@ class NetworkTimelineViewModel @Inject constructor( statusData.add(0, StatusViewData.Placeholder(status.id, isLoading = false)) isFirstOfStreaming = false } else { - statusData.add(0, status.toViewData( - isShowingContent = activeAccount.alwaysShowSensitiveMedia, - isExpanded = activeAccount.alwaysOpenSpoiler, - isCollapsed = true, - )) + statusData.add( + 0, + status.toViewData( + isShowingContent = activeAccount.alwaysShowSensitiveMedia, + isExpanded = activeAccount.alwaysOpenSpoiler, + isCollapsed = true, + ) + ) } currentSource?.invalidate() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt index 2364ba3ea..e1ea74865 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/TimelineViewModel.kt @@ -240,8 +240,8 @@ abstract class TimelineViewModel( protected fun shouldFilterStatus(statusViewData: StatusViewData): Boolean { val status = statusViewData.asStatusOrNull()?.status ?: return false return status.inReplyToId != null && filterRemoveReplies || - status.reblog != null && filterRemoveReblogs || - filterModel.shouldFilterStatus(status.actionableStatus) + status.reblog != null && filterRemoveReblogs || + filterModel.shouldFilterStatus(status.actionableStatus) } private fun onPreferenceChanged(key: String) { diff --git a/app/src/main/java/com/keylesspalace/tusky/db/Converters.kt b/app/src/main/java/com/keylesspalace/tusky/db/Converters.kt index 5efb7e628..2d65fba45 100644 --- a/app/src/main/java/com/keylesspalace/tusky/db/Converters.kt +++ b/app/src/main/java/com/keylesspalace/tusky/db/Converters.kt @@ -75,7 +75,7 @@ class Converters @Inject constructor ( // List name may include ":" return tabData?.joinToString(";") { (if (it.enableStreaming) { it.id + STREAMING } else { it.id }) + ":" + - it.arguments.joinToString(":") { s -> URLEncoder.encode(s, "UTF-8") } + it.arguments.joinToString(":") { s -> URLEncoder.encode(s, "UTF-8") } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/di/FragmentBuildersModule.kt b/app/src/main/java/com/keylesspalace/tusky/di/FragmentBuildersModule.kt index 6487b4e9e..ff508a52b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/di/FragmentBuildersModule.kt +++ b/app/src/main/java/com/keylesspalace/tusky/di/FragmentBuildersModule.kt @@ -95,5 +95,4 @@ abstract class FragmentBuildersModule { @ContributesAndroidInjector abstract fun searchNotestockFragment(): SearchNotestockFragment - } diff --git a/app/src/main/java/com/keylesspalace/tusky/di/NetworkModule.kt b/app/src/main/java/com/keylesspalace/tusky/di/NetworkModule.kt index 44a9a799f..094c06392 100644 --- a/app/src/main/java/com/keylesspalace/tusky/di/NetworkModule.kt +++ b/app/src/main/java/com/keylesspalace/tusky/di/NetworkModule.kt @@ -140,7 +140,7 @@ class NetworkModule { @Singleton fun providesNotestockApi( okHttpClient: OkHttpClient, - gson: Gson + gson: Gson ): NotestockApi { val retrofit = Retrofit.Builder().baseUrl("https://notestock.osa-p.net") .client(okHttpClient) diff --git a/app/src/main/java/com/keylesspalace/tusky/di/ViewModelFactory.kt b/app/src/main/java/com/keylesspalace/tusky/di/ViewModelFactory.kt index 5e580ae9b..9e865c6f4 100644 --- a/app/src/main/java/com/keylesspalace/tusky/di/ViewModelFactory.kt +++ b/app/src/main/java/com/keylesspalace/tusky/di/ViewModelFactory.kt @@ -132,5 +132,5 @@ abstract class ViewModelModule { @ViewModelKey(QuickTootViewModel::class) internal abstract fun quickTootViewModel(viewModel: QuickTootViewModel): ViewModel - //Add more ViewModels here + // Add more ViewModels here } diff --git a/app/src/main/java/com/keylesspalace/tusky/network/NotestockApi.kt b/app/src/main/java/com/keylesspalace/tusky/network/NotestockApi.kt index c0aad9904..b9fe51f0c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/network/NotestockApi.kt +++ b/app/src/main/java/com/keylesspalace/tusky/network/NotestockApi.kt @@ -9,8 +9,7 @@ interface NotestockApi { @GET("api/v1/search.json") fun searchObservable( - @Query("q") q: String, - @Query("max_dt") maxDt: String? = null + @Query("q") q: String, + @Query("max_dt") maxDt: String? = null ): Single - } diff --git a/app/src/main/java/net/accelf/yuito/QuickTootView.kt b/app/src/main/java/net/accelf/yuito/QuickTootView.kt index 98698c0ca..b84f082c2 100644 --- a/app/src/main/java/net/accelf/yuito/QuickTootView.kt +++ b/app/src/main/java/net/accelf/yuito/QuickTootView.kt @@ -24,9 +24,9 @@ import kotlinx.coroutines.launch import kotlin.properties.Delegates class QuickTootView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0, + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, ) : ConstraintLayout(context, attrs, defStyleAttr) { private val binding = ViewQuickTootBinding.inflate(LayoutInflater.from(context), this, true) diff --git a/app/src/main/java/net/accelf/yuito/QuickTootViewModel.kt b/app/src/main/java/net/accelf/yuito/QuickTootViewModel.kt index 92cf429aa..7be6493ad 100644 --- a/app/src/main/java/net/accelf/yuito/QuickTootViewModel.kt +++ b/app/src/main/java/net/accelf/yuito/QuickTootViewModel.kt @@ -12,8 +12,8 @@ import kotlinx.coroutines.flow.update import javax.inject.Inject class QuickTootViewModel @Inject constructor( - accountManager: AccountManager -): ViewModel() { + accountManager: AccountManager +) : ViewModel() { private val account = accountManager.activeAccount!! @@ -31,11 +31,13 @@ class QuickTootViewModel @Inject constructor( val defaultTag: MutableStateFlow = MutableStateFlow(null) fun setInitialVisibility(num: Int) { - visibilityMutable.value = (Visibility.byNum(num) + visibilityMutable.value = ( + Visibility.byNum(num) .takeUnless { it == Visibility.UNKNOWN } - ?: account.defaultPostPrivacy) - .takeUnless { it == Visibility.UNLEAKABLE && unleakableAllowed } - ?: Visibility.PRIVATE + ?: account.defaultPostPrivacy + ) + .takeUnless { it == Visibility.UNLEAKABLE && unleakableAllowed } + ?: Visibility.PRIVATE } fun stepVisibility() { @@ -63,18 +65,18 @@ class QuickTootViewModel @Inject constructor( fun composeOptions(tootRightNow: Boolean): ComposeActivity.ComposeOptions { return ComposeActivity.ComposeOptions( - content = content.value, - mentionedUsernames = inReplyTo.value - ?.let { - linkedSetOf(it.account.username, *(it.mentions.map { mention -> mention.username }.toTypedArray())) - .apply { remove(account.username) } - }, - inReplyToId = inReplyTo.value?.id, - visibility = visibility.value, - contentWarning = inReplyTo.value?.spoilerText, - replyingStatusAuthor = inReplyTo.value?.account?.name, - replyingStatusContent = inReplyTo.value?.content, - tootRightNow = tootRightNow + content = content.value, + mentionedUsernames = inReplyTo.value + ?.let { + linkedSetOf(it.account.username, *(it.mentions.map { mention -> mention.username }.toTypedArray())) + .apply { remove(account.username) } + }, + inReplyToId = inReplyTo.value?.id, + visibility = visibility.value, + contentWarning = inReplyTo.value?.spoilerText, + replyingStatusAuthor = inReplyTo.value?.account?.name, + replyingStatusContent = inReplyTo.value?.content, + tootRightNow = tootRightNow ) } diff --git a/app/src/main/java/net/accelf/yuito/QuoteInlineHelper.kt b/app/src/main/java/net/accelf/yuito/QuoteInlineHelper.kt index 8ec23f28d..314e0c995 100644 --- a/app/src/main/java/net/accelf/yuito/QuoteInlineHelper.kt +++ b/app/src/main/java/net/accelf/yuito/QuoteInlineHelper.kt @@ -70,10 +70,12 @@ class QuoteInlineHelper( true -> View.VISIBLE false -> View.GONE } - binding.statusQuoteInlineContentWarningButton.setText(when (show) { - true -> R.string.post_content_warning_show_less - false -> R.string.post_content_warning_show_more - }) + binding.statusQuoteInlineContentWarningButton.setText( + when (show) { + true -> R.string.post_content_warning_show_less + false -> R.string.post_content_warning_show_more + } + ) } private fun hideSpoilerText() { diff --git a/app/src/main/java/net/accelf/yuito/VisibilityToggleButton.kt b/app/src/main/java/net/accelf/yuito/VisibilityToggleButton.kt index 4cff3944f..4d656e030 100644 --- a/app/src/main/java/net/accelf/yuito/VisibilityToggleButton.kt +++ b/app/src/main/java/net/accelf/yuito/VisibilityToggleButton.kt @@ -11,7 +11,7 @@ import com.keylesspalace.tusky.entity.Status.Visibility import kotlinx.coroutines.launch class VisibilityToggleButton @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : - AppCompatImageView(context, attrs) { + AppCompatImageView(context, attrs) { private val preference by lazy { PreferenceManager.getDefaultSharedPreferences(context) } @@ -25,35 +25,35 @@ class VisibilityToggleButton @JvmOverloads constructor(context: Context, attrs: viewModel.visibility.collect(::updateVisibility) } viewModel.setInitialVisibility(preference.getInt(PREF_CURRENT_VISIBILITY, Visibility.UNKNOWN.num)) - setOnClickListener{ viewModel.stepVisibility() } + setOnClickListener { viewModel.stepVisibility() } } private fun updateVisibility(visibility: Visibility) { setImageResource( - when (visibility) { - Visibility.PUBLIC -> R.drawable.ic_public_24dp - Visibility.UNLISTED -> R.drawable.ic_lock_open_24dp - Visibility.PRIVATE -> R.drawable.ic_lock_outline_24dp - Visibility.DIRECT -> R.drawable.ic_email_24dp - Visibility.UNLEAKABLE -> R.drawable.ic_low_vision_24dp - else -> R.drawable.ic_lock_open_24dp - } + when (visibility) { + Visibility.PUBLIC -> R.drawable.ic_public_24dp + Visibility.UNLISTED -> R.drawable.ic_lock_open_24dp + Visibility.PRIVATE -> R.drawable.ic_lock_outline_24dp + Visibility.DIRECT -> R.drawable.ic_email_24dp + Visibility.UNLEAKABLE -> R.drawable.ic_low_vision_24dp + else -> R.drawable.ic_lock_open_24dp + } ) contentDescription = context.getString( - when (visibility) { - Visibility.UNKNOWN -> R.string.visibility_unknown - Visibility.PUBLIC -> R.string.visibility_public - Visibility.UNLISTED -> R.string.visibility_unlisted - Visibility.PRIVATE -> R.string.visibility_private - Visibility.DIRECT -> R.string.visibility_direct - Visibility.UNLEAKABLE -> R.string.visibility_unleakable - } + when (visibility) { + Visibility.UNKNOWN -> R.string.visibility_unknown + Visibility.PUBLIC -> R.string.visibility_public + Visibility.UNLISTED -> R.string.visibility_unlisted + Visibility.PRIVATE -> R.string.visibility_private + Visibility.DIRECT -> R.string.visibility_direct + Visibility.UNLEAKABLE -> R.string.visibility_unleakable + } ) preference.edit() - .putInt(PREF_CURRENT_VISIBILITY, visibility.num) - .apply() + .putInt(PREF_CURRENT_VISIBILITY, visibility.num) + .apply() } companion object { diff --git a/app/src/test/java/com/keylesspalace/tusky/MainActivityTest.kt b/app/src/test/java/com/keylesspalace/tusky/MainActivityTest.kt index 8c7aadaa4..fb01757dc 100644 --- a/app/src/test/java/com/keylesspalace/tusky/MainActivityTest.kt +++ b/app/src/test/java/com/keylesspalace/tusky/MainActivityTest.kt @@ -4,8 +4,6 @@ import android.app.Activity import android.app.NotificationManager import android.content.ComponentName import android.content.Intent -import android.os.Looper -import android.view.View import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import androidx.viewpager2.widget.ViewPager2 @@ -19,7 +17,6 @@ import com.keylesspalace.tusky.entity.Account import com.keylesspalace.tusky.entity.Instance import com.keylesspalace.tusky.entity.Notification import com.keylesspalace.tusky.entity.TimelineAccount -import net.accelf.yuito.FooterDrawerItem import net.accelf.yuito.QuickTootViewModel import net.accelf.yuito.streaming.StreamingManager import org.junit.Assert.assertEquals