Apply ktlint and add to CI

This commit is contained in:
kyori19 2022-11-10 23:16:52 +09:00
parent 004a9b4921
commit c7a91fb1df
No known key found for this signature in database
GPG Key ID: F7BDE7DD42BF366A
22 changed files with 126 additions and 111 deletions

View File

@ -22,6 +22,7 @@ jobs:
- run: |
chmod +x ./gradlew
./gradlew :ktlintCheck
./gradlew :app:testBlueDebugUnitTest

View File

@ -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
@ -759,8 +759,10 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje
R.id.tabToggleNotificationsFilter -> {
if (fragment is NotificationsFragment) {
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
prefs.edit().putBoolean("showNotificationsFilter",
!prefs.getBoolean("showNotificationsFilter", true))
prefs.edit().putBoolean(
"showNotificationsFilter",
!prefs.getBoolean("showNotificationsFilter", true)
)
.apply()
eventHub.dispatch(PreferenceChangedEvent("showNotificationsFilter"))
}

View File

@ -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

View File

@ -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) {
val instanceInfo = useCache.map {
when (it) {
true -> instanceInfoRepo.getCachedInstanceInfo()
false -> instanceInfoRepo.getInstanceInfo()
} }.shareIn(viewModelScope, SharingStarted.Eagerly, 1)
val emoji = useCache.map { when (it) {
}
}.shareIn(viewModelScope, SharingStarted.Eagerly, 1)
val emoji = useCache.map {
when (it) {
true -> instanceInfoRepo.getCachedEmojis()
false -> instanceInfoRepo.getEmojis()
} }.shareIn(viewModelScope, SharingStarted.Eagerly, 1)
}
}.shareIn(viewModelScope, SharingStarted.Eagerly, 1)
val markMediaAsSensitive: MutableStateFlow<Boolean> =
MutableStateFlow(accountManager.activeAccount?.defaultMediaSensitivity ?: false)

View File

@ -322,10 +322,13 @@ 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)

View File

@ -36,5 +36,4 @@ class SearchPagerAdapter(activity: FragmentActivity) : FragmentStateAdapter(acti
}
override fun getItemCount() = 4
}

View File

@ -74,7 +74,6 @@ class SearchNotestockFragment : SearchFragment<StatusViewData.Concrete>(), 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<StatusViewData.Concrete>(), Statu
Attachment.Type.UNKNOWN -> {
}
}
}
}
override fun onViewThread(position: Int) {
@ -491,11 +488,9 @@ class SearchNotestockFragment : SearchFragment<StatusViewData.Concrete>(), 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()
}
}
}

View File

@ -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(
statusData.add(
0,
status.toViewData(
isShowingContent = activeAccount.alwaysShowSensitiveMedia,
isExpanded = activeAccount.alwaysOpenSpoiler,
isCollapsed = true,
))
)
)
}
currentSource?.invalidate()

View File

@ -95,5 +95,4 @@ abstract class FragmentBuildersModule {
@ContributesAndroidInjector
abstract fun searchNotestockFragment(): SearchNotestockFragment
}

View File

@ -12,5 +12,4 @@ interface NotestockApi {
@Query("q") q: String,
@Query("max_dt") maxDt: String? = null
): Single<SearchResult>
}

View File

@ -31,9 +31,11 @@ class QuickTootViewModel @Inject constructor(
val defaultTag: MutableStateFlow<String?> = MutableStateFlow(null)
fun setInitialVisibility(num: Int) {
visibilityMutable.value = (Visibility.byNum(num)
visibilityMutable.value = (
Visibility.byNum(num)
.takeUnless { it == Visibility.UNKNOWN }
?: account.defaultPostPrivacy)
?: account.defaultPostPrivacy
)
.takeUnless { it == Visibility.UNLEAKABLE && unleakableAllowed }
?: Visibility.PRIVATE
}

View File

@ -70,10 +70,12 @@ class QuoteInlineHelper(
true -> View.VISIBLE
false -> View.GONE
}
binding.statusQuoteInlineContentWarningButton.setText(when (show) {
binding.statusQuoteInlineContentWarningButton.setText(
when (show) {
true -> R.string.post_content_warning_show_less
false -> R.string.post_content_warning_show_more
})
}
)
}
private fun hideSpoilerText() {

View File

@ -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