From 93a0938b9115d5885df6ebf23cfced701e454cfa Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 28 Feb 2023 22:37:38 +0800 Subject: [PATCH 1/8] Replace `View.show` with `View.isVisible` --- .../keylesspalace/tusky/AccountsInListFragment.kt | 8 ++++---- .../com/keylesspalace/tusky/EditProfileActivity.kt | 3 +-- .../java/com/keylesspalace/tusky/FiltersActivity.kt | 8 ++++---- .../java/com/keylesspalace/tusky/ListsActivity.kt | 8 ++++---- .../java/com/keylesspalace/tusky/MainActivity.kt | 8 ++++---- .../com/keylesspalace/tusky/adapter/TabAdapter.kt | 4 ++-- .../tusky/components/account/AccountActivity.kt | 10 +++++----- .../account/list/ListsForAccountFragment.kt | 10 +++++----- .../components/account/media/AccountMediaFragment.kt | 8 ++++---- .../account/media/AccountMediaGridAdapter.kt | 6 +++--- .../components/accountlist/AccountListFragment.kt | 6 +++--- .../announcements/AnnouncementsActivity.kt | 8 ++++---- .../tusky/components/compose/ComposeActivity.kt | 11 +++++------ .../components/conversation/ConversationsFragment.kt | 8 ++++---- .../tusky/components/drafts/DraftsAdapter.kt | 4 ++-- .../components/followedtags/FollowedTagsActivity.kt | 6 +++--- .../instancemute/fragment/InstanceListFragment.kt | 8 ++++---- .../components/report/adapter/StatusViewHolder.kt | 10 +++++----- .../report/fragments/ReportDoneFragment.kt | 10 +++++----- .../report/fragments/ReportNoteFragment.kt | 8 ++++---- .../components/scheduled/ScheduledStatusActivity.kt | 6 +++--- .../tusky/components/timeline/TimelineFragment.kt | 8 ++++---- .../tusky/components/trending/TrendingFragment.kt | 12 ++++++------ .../components/viewthread/ViewThreadFragment.kt | 10 +++++----- .../components/viewthread/edits/ViewEditsAdapter.kt | 10 +++++----- .../components/viewthread/edits/ViewEditsFragment.kt | 8 ++++---- .../com/keylesspalace/tusky/util/ViewExtensions.kt | 4 ---- 27 files changed, 102 insertions(+), 108 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt index 6be4224a87..dcfb549bd0 100644 --- a/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt @@ -22,6 +22,7 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import androidx.appcompat.widget.SearchView +import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope @@ -40,7 +41,6 @@ import com.keylesspalace.tusky.util.Either import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.loadAvatar -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewmodel.AccountsInListViewModel @@ -132,20 +132,20 @@ class AccountsInListFragment : DialogFragment(), Injectable { if (state.searchResult == null) { searchAdapter.submitList(listOf()) binding.accountsSearchRecycler.hide() - binding.accountsRecycler.show() + binding.accountsRecycler.isVisible = true } else { val listAccounts = state.accounts.asRightOrNull() ?: listOf() val newList = state.searchResult.map { acc -> acc to listAccounts.contains(acc) } searchAdapter.submitList(newList) - binding.accountsSearchRecycler.show() + binding.accountsSearchRecycler.isVisible = true binding.accountsRecycler.hide() } } private fun handleError(error: Throwable) { - binding.messageView.show() + binding.messageView.isVisible = true val retryAction = { _: View -> binding.messageView.hide() viewModel.load(listId) diff --git a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt index 369f692627..0c92a39700 100644 --- a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt @@ -45,7 +45,6 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewmodel.EditProfileViewModel import com.mikepenz.iconics.IconicsDrawable @@ -234,7 +233,7 @@ class EditProfileActivity : BaseActivity(), Injectable { glide.into(imageView) } - imageView.show() + imageView.isVisible = true } } diff --git a/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt b/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt index bbb5bc6a15..730aa032fb 100644 --- a/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt @@ -5,6 +5,7 @@ import android.text.format.DateUtils import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.Toast +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import at.connyduck.calladapter.networkresult.fold import at.connyduck.calladapter.networkresult.getOrElse @@ -14,7 +15,6 @@ import com.keylesspalace.tusky.databinding.ActivityFiltersBinding import com.keylesspalace.tusky.entity.Filter import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.getSecondsForDurationIndex import com.keylesspalace.tusky.view.setupEditDialogForFilter @@ -147,12 +147,12 @@ class FiltersActivity : BaseActivity() { binding.filterMessageView.hide() binding.filtersView.hide() binding.addFilterButton.hide() - binding.filterProgressBar.show() + binding.filterProgressBar.isVisible = true lifecycleScope.launch { val newFilters = api.getFilters().getOrElse { binding.filterProgressBar.hide() - binding.filterMessageView.show() + binding.filterMessageView.isVisible = true if (it is IOException) { binding.filterMessageView.setup( R.drawable.elephant_offline, @@ -170,7 +170,7 @@ class FiltersActivity : BaseActivity() { filters = newFilters.filter { it.context.contains(context) }.toMutableList() refreshFilterDisplay() - binding.filtersView.show() + binding.filtersView.isVisible = true binding.addFilterButton.show() binding.filterProgressBar.hide() } diff --git a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt index b02728cc1b..2683b11b09 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt @@ -31,6 +31,7 @@ import android.widget.TextView import androidx.activity.viewModels import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DividerItemDecoration @@ -46,7 +47,6 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.MastoList import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.onTextChanged -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewmodel.ListsViewModel @@ -166,20 +166,20 @@ class ListsActivity : BaseActivity(), Injectable, HasAndroidInjector { when (state.loadingState) { INITIAL, LOADING -> binding.messageView.hide() ERROR_NETWORK -> { - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup(R.drawable.elephant_offline, R.string.error_network) { viewModel.retryLoading() } } ERROR_OTHER -> { - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup(R.drawable.elephant_error, R.string.error_generic) { viewModel.retryLoading() } } LOADED -> if (state.lists.isEmpty()) { - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup( R.drawable.elephant_friend_empty, R.string.message_empty, null diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt index 7a19149f6c..2f758fb20c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt @@ -40,6 +40,7 @@ import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.view.GravityCompat +import androidx.core.view.isVisible import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.preference.PreferenceManager @@ -95,7 +96,6 @@ import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.getDimension import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.reduceSwipeSensitivity -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.updateShortcut import com.keylesspalace.tusky.util.viewBinding @@ -809,7 +809,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> binding.appBar.hide() binding.viewPager.hide() - binding.progressBar.show() + binding.progressBar.isVisible = true binding.bottomNav.hide() binding.composeButton.hide() @@ -875,10 +875,10 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje val navOnBottom = preferences.getString("mainNavPosition", "top") == "bottom" val avatarView = if (navOnBottom) { - binding.bottomNavAvatar.show() + binding.bottomNavAvatar.isVisible = true binding.bottomNavAvatar } else { - binding.topNavAvatar.show() + binding.topNavAvatar.isVisible = true binding.topNavAvatar } diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt index e3e4f27e8f..da9f18a1bc 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt @@ -18,6 +18,7 @@ package com.keylesspalace.tusky.adapter import android.view.LayoutInflater import android.view.MotionEvent import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.core.view.size import androidx.recyclerview.widget.RecyclerView import androidx.viewbinding.ViewBinding @@ -31,7 +32,6 @@ import com.keylesspalace.tusky.databinding.ItemTabPreferenceSmallBinding import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.setDrawableTint -import com.keylesspalace.tusky.util.show interface ItemInteractionListener { fun onTabAdded(tab: TabData) @@ -107,7 +107,7 @@ class TabAdapter( ) if (tab.id == HASHTAG) { - binding.chipGroup.show() + binding.chipGroup.isVisible = true /* * The chip group will always contain the actionChip (it is defined in the xml layout). diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt index ba261c1d8a..fa15dc1214 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt @@ -39,6 +39,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat.Type.systemBars +import androidx.core.view.isVisible import androidx.core.view.updatePadding import androidx.preference.PreferenceManager import androidx.recyclerview.widget.LinearLayoutManager @@ -83,7 +84,6 @@ import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.reduceSwipeSensitivity import com.keylesspalace.tusky.util.setClickableText -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible @@ -541,7 +541,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI private fun updateMovedAccount() { loadedAccount?.moved?.let { movedAccount -> - binding.accountMovedView.show() + binding.accountMovedView.isVisible = true binding.accountMovedView.setOnClickListener { onViewAccount(movedAccount.id) @@ -564,7 +564,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI private fun updateRemoteAccount() { loadedAccount?.let { account -> if (account.isRemote()) { - binding.accountRemoveView.show() + binding.accountRemoveView.isVisible = true binding.accountRemoveView.setOnClickListener { openLink(account.url) } @@ -635,7 +635,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI if (!viewModel.isSelf && followState == FollowState.FOLLOWING && (relation.subscribing != null || relation.notifying != null) ) { - binding.accountSubscribeButton.show() + binding.accountSubscribeButton.isVisible = true binding.accountSubscribeButton.setOnClickListener { viewModel.changeSubscribingState() } @@ -711,7 +711,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI if (loadedAccount?.moved == null) { - binding.accountFollowButton.show() + binding.accountFollowButton.isVisible = true updateFollowButton() updateSubscribeButton() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt index 874d4b9f20..8555230525 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt @@ -21,6 +21,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.LinearLayout +import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope @@ -35,7 +36,6 @@ import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest @@ -86,12 +86,12 @@ class ListsForAccountFragment : DialogFragment(), Injectable { viewModel.states.collectLatest { states -> binding.progressBar.hide() if (states.isEmpty()) { - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup(R.drawable.elephant_friend_empty, R.string.no_lists) { load() } } else { - binding.listsView.show() + binding.listsView.isVisible = true adapter.submitList(states) } } @@ -102,7 +102,7 @@ class ListsForAccountFragment : DialogFragment(), Injectable { binding.progressBar.hide() binding.listsView.hide() binding.messageView.apply { - show() + isVisible = true if (error is IOException) { setup(R.drawable.elephant_offline, R.string.error_network) { @@ -146,7 +146,7 @@ class ListsForAccountFragment : DialogFragment(), Injectable { } private fun load() { - binding.progressBar.show() + binding.progressBar.isVisible = true binding.listsView.hide() binding.messageView.hide() viewModel.load() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt index 457cda7b9c..0fa88d5dd9 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt @@ -19,6 +19,7 @@ import android.os.Bundle import android.view.View import androidx.core.app.ActivityOptionsCompat import androidx.core.view.ViewCompat +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope @@ -36,7 +37,6 @@ import com.keylesspalace.tusky.interfaces.RefreshableFragment import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.openLink -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData import kotlinx.coroutines.flow.collectLatest @@ -112,12 +112,12 @@ class AccountMediaFragment : when (loadState.refresh) { is LoadState.NotLoading -> { if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) { - binding.statusView.show() + binding.statusView.isVisible = true binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null) } } is LoadState.Error -> { - binding.statusView.show() + binding.statusView.isVisible = true if ((loadState.refresh as LoadState.Error).error is IOException) { binding.statusView.setup(R.drawable.elephant_offline, R.string.error_network, null) @@ -126,7 +126,7 @@ class AccountMediaFragment : } } is LoadState.Loading -> { - binding.progressBar.show() + binding.progressBar.isVisible = true } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt index 48b3a21daf..01cb4a6d2e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt @@ -7,6 +7,7 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.appcompat.content.res.AppCompatResources +import androidx.core.view.isVisible import androidx.core.view.setPadding import androidx.paging.PagingDataAdapter import androidx.recyclerview.widget.DiffUtil @@ -19,7 +20,6 @@ import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.decodeBlurHash import com.keylesspalace.tusky.util.getFormattedDescription import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.viewdata.AttachmentViewData import java.util.Random @@ -81,7 +81,7 @@ class AccountMediaGridAdapter( imageView.contentDescription = item.attachment.getFormattedDescription(context) } else if (item.sensitive && !item.isRevealed && !alwaysShowSensitiveMedia) { - overlay.show() + overlay.isVisible = true overlay.setImageDrawable(mediaHiddenDrawable) imageView.setPadding(0) @@ -94,7 +94,7 @@ class AccountMediaGridAdapter( imageView.contentDescription = imageView.context.getString(R.string.post_media_hidden_title) } else { if (item.attachment.type == Attachment.Type.VIDEO || item.attachment.type == Attachment.Type.GIFV) { - overlay.show() + overlay.isVisible = true overlay.setImageDrawable(videoIndicator) } else { overlay.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt index 2649cbfe61..4027ece602 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt @@ -18,6 +18,7 @@ package com.keylesspalace.tusky.components.accountlist import android.os.Bundle import android.util.Log import android.view.View +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -50,7 +51,6 @@ import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.HttpHeaderLink import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EndlessOnScrollListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -337,7 +337,7 @@ class AccountListFragment : Fragment(R.layout.fragment_account_list), AccountAct fetching = false if (adapter.itemCount == 0) { - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup( R.drawable.elephant_friend_empty, R.string.message_empty, @@ -369,7 +369,7 @@ class AccountListFragment : Fragment(R.layout.fragment_account_list), AccountAct Log.e(TAG, "Fetch failure", throwable) if (adapter.itemCount == 0) { - binding.messageView.show() + binding.messageView.isVisible = true if (throwable is IOException) { binding.messageView.setup(R.drawable.elephant_offline, R.string.error_network) { binding.messageView.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt index 14fbcf8cc7..e43823bba6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt @@ -22,6 +22,7 @@ import android.os.Bundle import android.view.View import android.widget.PopupWindow import androidx.activity.viewModels +import androidx.core.view.isVisible import androidx.preference.PreferenceManager import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager @@ -38,7 +39,6 @@ import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EmojiPicker @@ -102,7 +102,7 @@ class AnnouncementsActivity : BottomSheetActivity(), AnnouncementActionListener, binding.swipeRefreshLayout.isRefreshing = false if (it.data.isNullOrEmpty()) { binding.errorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_announcements) - binding.errorMessageView.show() + binding.errorMessageView.isVisible = true } else { binding.errorMessageView.hide() } @@ -117,7 +117,7 @@ class AnnouncementsActivity : BottomSheetActivity(), AnnouncementActionListener, binding.errorMessageView.setup(R.drawable.elephant_error, R.string.error_generic) { refreshAnnouncements() } - binding.errorMessageView.show() + binding.errorMessageView.isVisible = true } } } @@ -127,7 +127,7 @@ class AnnouncementsActivity : BottomSheetActivity(), AnnouncementActionListener, } viewModel.load() - binding.progressBar.show() + binding.progressBar.isVisible = true } private fun refreshAnnouncements() { 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 db606a318c..278e2788a1 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 @@ -100,7 +100,6 @@ import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.modernLanguageCode import com.keylesspalace.tusky.util.onTextChanged import com.keylesspalace.tusky.util.setDrawableTint -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible @@ -253,7 +252,7 @@ class ComposeActivity : R.string.compose_active_account_description, activeAccount.fullName ) - binding.composeUsernameView.show() + binding.composeUsernameView.isVisible = true } else { binding.composeUsernameView.hide() } @@ -341,7 +340,7 @@ class ComposeActivity : private fun setupReplyViews(replyingStatusAuthor: String?, replyingStatusContent: String?) { if (replyingStatusAuthor != null) { - binding.composeReplyView.show() + binding.composeReplyView.isVisible = true binding.composeReplyView.text = getString(R.string.replying_to, replyingStatusAuthor) val arrowDownIcon = IconicsDrawable(this, GoogleMaterial.Icon.gmd_arrow_drop_down).apply { sizeDp = 12 } @@ -355,7 +354,7 @@ class ComposeActivity : binding.composeReplyContentView.hide() binding.composeReplyView.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, arrowDownIcon, null) } else { - binding.composeReplyContentView.show() + binding.composeReplyContentView.isVisible = true val arrowUpIcon = IconicsDrawable(this, GoogleMaterial.Icon.gmd_arrow_drop_up).apply { sizeDp = 12 } setDrawableTint(this, arrowUpIcon, android.R.attr.textColorTertiary) @@ -680,7 +679,7 @@ class ComposeActivity : binding.composeHideMediaButton.hide() binding.descriptionMissingWarningButton.hide() } else { - binding.composeHideMediaButton.show() + binding.composeHideMediaButton.isVisible = true @ColorInt val color = if (contentWarningShown) { binding.composeHideMediaButton.setImageResource(R.drawable.ic_hide_media_24dp) binding.composeHideMediaButton.isClickable = false @@ -1074,7 +1073,7 @@ class ComposeActivity : private fun showContentWarning(show: Boolean) { TransitionManager.beginDelayedTransition(binding.composeContentWarningBar.parent as ViewGroup) @ColorInt val color = if (show) { - binding.composeContentWarningBar.show() + binding.composeContentWarningBar.isVisible = true binding.composeContentWarningField.setSelection(binding.composeContentWarningField.text.length) binding.composeContentWarningField.requestFocus() getColor(R.color.tusky_blue) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt index b05df2f8b9..f24f1c1ec6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt @@ -21,6 +21,7 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.PopupMenu +import androidx.core.view.isVisible import androidx.fragment.app.viewModels import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -49,7 +50,6 @@ import com.keylesspalace.tusky.settings.PrefKeys 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.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -115,12 +115,12 @@ class ConversationsFragment : SFragment(), StatusActionListener, Injectable, Res when (loadState.refresh) { is LoadState.NotLoading -> { if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) { - binding.statusView.show() + binding.statusView.isVisible = true binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null) } } is LoadState.Error -> { - binding.statusView.show() + binding.statusView.isVisible = true if ((loadState.refresh as LoadState.Error).error is IOException) { binding.statusView.setup(R.drawable.elephant_offline, R.string.error_network, null) @@ -129,7 +129,7 @@ class ConversationsFragment : SFragment(), StatusActionListener, Injectable, Res } } is LoadState.Loading -> { - binding.progressBar.show() + binding.progressBar.isVisible = true } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt index 18621fd3f3..27754478bd 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt @@ -17,6 +17,7 @@ package com.keylesspalace.tusky.components.drafts import android.view.LayoutInflater import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.paging.PagingDataAdapter import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.LinearLayoutManager @@ -25,7 +26,6 @@ import com.keylesspalace.tusky.databinding.ItemDraftBinding import com.keylesspalace.tusky.db.DraftEntity import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.visible interface DraftActionListener { @@ -81,7 +81,7 @@ class DraftsAdapter( (holder.binding.draftMediaPreview.adapter as DraftMediaAdapter).submitList(draft.attachments) if (draft.poll != null) { - holder.binding.draftPoll.show() + holder.binding.draftPoll.isVisible = true holder.binding.draftPoll.setPoll(draft.poll) } else { holder.binding.draftPoll.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt index 94a0b47efa..10537a7c71 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt @@ -8,6 +8,7 @@ import android.util.Log import android.widget.AutoCompleteTextView import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState @@ -26,7 +27,6 @@ import com.keylesspalace.tusky.interfaces.HashtagActionListener import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest @@ -106,7 +106,7 @@ class FollowedTagsActivity : if (loadState.refresh is LoadState.Error) { binding.followedTagsView.hide() - binding.followedTagsMessageView.show() + binding.followedTagsMessageView.isVisible = true val errorState = loadState.refresh as LoadState.Error if (errorState.error is IOException) { binding.followedTagsMessageView.setup(R.drawable.elephant_offline, R.string.error_network) { retry() } @@ -115,7 +115,7 @@ class FollowedTagsActivity : } Log.w(TAG, "error loading followed hashtags", errorState.error) } else { - binding.followedTagsView.show() + binding.followedTagsView.isVisible = true binding.followedTagsMessageView.hide() } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt index ccfe52b3cc..fe6ec01d17 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt @@ -3,6 +3,7 @@ package com.keylesspalace.tusky.components.instancemute.fragment import android.os.Bundle import android.util.Log import android.view.View +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.DividerItemDecoration @@ -19,7 +20,6 @@ import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.util.HttpHeaderLink import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EndlessOnScrollListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -105,7 +105,7 @@ class InstanceListFragment : Fragment(R.layout.fragment_instance_list), Injectab return } fetching = true - binding.instanceProgressBar.show() + binding.instanceProgressBar.isVisible = true if (id != null) { binding.recyclerView.post { adapter.bottomLoading = true } @@ -142,7 +142,7 @@ class InstanceListFragment : Fragment(R.layout.fragment_instance_list), Injectab fetching = false if (adapter.itemCount == 0) { - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup( R.drawable.elephant_friend_empty, R.string.message_empty, @@ -159,7 +159,7 @@ class InstanceListFragment : Fragment(R.layout.fragment_instance_list), Injectab Log.e(TAG, "Fetch failure", throwable) if (adapter.itemCount == 0) { - binding.messageView.show() + binding.messageView.isVisible = true if (throwable is IOException) { binding.messageView.setup(R.drawable.elephant_offline, R.string.error_network) { binding.messageView.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt index 4212046ad6..0f18046214 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt @@ -18,6 +18,7 @@ package com.keylesspalace.tusky.components.report.adapter import android.text.Spanned import android.text.TextUtils import android.view.View +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.keylesspalace.tusky.R import com.keylesspalace.tusky.components.report.model.StatusViewState @@ -37,7 +38,6 @@ import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.setClickableMentions import com.keylesspalace.tusky.util.setClickableText import com.keylesspalace.tusky.util.shouldTrimStatus -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.viewdata.StatusViewData import com.keylesspalace.tusky.viewdata.toViewData import java.util.Date @@ -108,8 +108,8 @@ class StatusViewHolder( } else { val emojiSpoiler = viewdata.spoilerText.emojify(viewdata.status.emojis, binding.statusContentWarningDescription, statusDisplayOptions.animateEmojis) binding.statusContentWarningDescription.text = emojiSpoiler - binding.statusContentWarningDescription.show() - binding.statusContentWarningButton.show() + binding.statusContentWarningDescription.isVisible = true + binding.statusContentWarningButton.isVisible = true setContentWarningButtonText(viewState.isContentShow(viewdata.id, true)) binding.statusContentWarningButton.setOnClickListener { viewdata()?.let { viewdata -> @@ -150,7 +150,7 @@ class StatusViewHolder( if (binding.statusContent.text.isNullOrBlank()) { binding.statusContent.hide() } else { - binding.statusContent.show() + binding.statusContent.isVisible = true } } @@ -179,7 +179,7 @@ class StatusViewHolder( } } - binding.buttonToggleContent.show() + binding.buttonToggleContent.isVisible = true if (collapsed) { binding.buttonToggleContent.setText(R.string.post_content_show_more) binding.statusContent.filters = COLLAPSE_INPUT_FILTER diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt index 0f8065776a..c1d935a5a2 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt @@ -17,6 +17,7 @@ package com.keylesspalace.tusky.components.report.fragments import android.os.Bundle import android.view.View +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import com.keylesspalace.tusky.R @@ -27,7 +28,6 @@ import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import javax.inject.Inject @@ -49,8 +49,8 @@ class ReportDoneFragment : Fragment(R.layout.fragment_report_done), Injectable { private fun subscribeObservables() { viewModel.muteState.observe(viewLifecycleOwner) { if (it !is Loading) { - binding.buttonMute.show() - binding.progressMute.show() + binding.buttonMute.isVisible = true + binding.progressMute.isVisible = true } else { binding.buttonMute.hide() binding.progressMute.hide() @@ -66,8 +66,8 @@ class ReportDoneFragment : Fragment(R.layout.fragment_report_done), Injectable { viewModel.blockState.observe(viewLifecycleOwner) { if (it !is Loading) { - binding.buttonBlock.show() - binding.progressBlock.show() + binding.buttonBlock.isVisible = true + binding.progressBlock.isVisible = true } else { binding.buttonBlock.hide() binding.progressBlock.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt index 56f812a054..3c42f8c6d8 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt @@ -17,6 +17,7 @@ package com.keylesspalace.tusky.components.report.fragments import android.os.Bundle import android.view.View +import androidx.core.view.isVisible import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -31,7 +32,6 @@ import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import java.io.IOException import javax.inject.Inject @@ -65,8 +65,8 @@ class ReportNoteFragment : Fragment(R.layout.fragment_report_note), Injectable { binding.editNote.setText(viewModel.reportNote) if (viewModel.isRemoteAccount) { - binding.checkIsNotifyRemote.show() - binding.reportDescriptionRemoteInstance.show() + binding.checkIsNotifyRemote.isVisible = true + binding.reportDescriptionRemoteInstance.isVisible = true } else { binding.checkIsNotifyRemote.hide() binding.reportDescriptionRemoteInstance.hide() @@ -110,7 +110,7 @@ class ReportNoteFragment : Fragment(R.layout.fragment_report_note), Injectable { binding.buttonBack.isEnabled = false binding.editNote.isEnabled = false binding.checkIsNotifyRemote.isEnabled = false - binding.progressBar.show() + binding.progressBar.isVisible = true } private fun handleClicks() { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt index ade93322f2..30e3b0145f 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt @@ -20,6 +20,7 @@ import android.content.Intent import android.os.Bundle import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.paging.LoadState import androidx.recyclerview.widget.DividerItemDecoration @@ -35,7 +36,6 @@ import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.ScheduledStatus import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @@ -87,7 +87,7 @@ class ScheduledStatusActivity : BaseActivity(), ScheduledStatusActionListener, I binding.errorMessageView.setup(R.drawable.elephant_error, R.string.error_generic) { refreshStatuses() } - binding.errorMessageView.show() + binding.errorMessageView.isVisible = true } if (loadState.refresh != LoadState.Loading) { binding.swipeRefreshLayout.isRefreshing = false @@ -96,7 +96,7 @@ class ScheduledStatusActivity : BaseActivity(), ScheduledStatusActionListener, I binding.progressBar.hide() if (adapter.itemCount == 0) { binding.errorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_scheduled_posts) - binding.errorMessageView.show() + binding.errorMessageView.isVisible = true } else { binding.errorMessageView.hide() } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt index fe7b5d1459..6f00525117 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt @@ -22,6 +22,7 @@ import android.view.View import android.view.ViewGroup import android.view.accessibility.AccessibilityManager import androidx.core.content.ContextCompat +import androidx.core.view.isVisible import androidx.lifecycle.Lifecycle import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -60,7 +61,6 @@ import com.keylesspalace.tusky.util.CardViewMode import com.keylesspalace.tusky.util.ListStatusAccessibilityDelegate import com.keylesspalace.tusky.util.StatusDisplayOptions import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData @@ -213,12 +213,12 @@ class TimelineFragment : when (loadState.refresh) { is LoadState.NotLoading -> { if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) { - binding.statusView.show() + binding.statusView.isVisible = true binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null) } } is LoadState.Error -> { - binding.statusView.show() + binding.statusView.isVisible = true if ((loadState.refresh as LoadState.Error).error is IOException) { binding.statusView.setup(R.drawable.elephant_offline, R.string.error_network, null) @@ -227,7 +227,7 @@ class TimelineFragment : } } is LoadState.Loading -> { - binding.progressBar.show() + binding.progressBar.isVisible = true } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt index 41e404a90d..b75c1b9055 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt @@ -24,6 +24,7 @@ import android.view.View import android.view.ViewGroup import android.view.accessibility.AccessibilityManager import androidx.core.content.ContextCompat +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope @@ -48,7 +49,6 @@ import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.interfaces.RefreshableFragment import com.keylesspalace.tusky.interfaces.ReselectableFragment import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.TrendingViewData import kotlinx.coroutines.flow.collectLatest @@ -206,7 +206,7 @@ class TrendingFragment : if (viewData.isEmpty()) { adapter.submitList(emptyList()) binding.recyclerView.hide() - binding.messageView.show() + binding.messageView.isVisible = true binding.messageView.setup( R.drawable.elephant_friend_empty, R.string.message_empty, null @@ -216,7 +216,7 @@ class TrendingFragment : adapter.submitList(viewDataWithDates) - binding.recyclerView.show() + binding.recyclerView.isVisible = true binding.messageView.hide() } binding.progressBar.hide() @@ -225,7 +225,7 @@ class TrendingFragment : private fun applyLoadingState() { binding.recyclerView.hide() binding.messageView.hide() - binding.progressBar.show() + binding.progressBar.isVisible = true } private fun clearLoadingState() { @@ -236,7 +236,7 @@ class TrendingFragment : private fun networkError() { binding.recyclerView.hide() - binding.messageView.show() + binding.messageView.isVisible = true binding.progressBar.hide() binding.swipeRefreshLayout.isRefreshing = false @@ -248,7 +248,7 @@ class TrendingFragment : private fun otherError() { binding.recyclerView.hide() - binding.messageView.show() + binding.messageView.isVisible = true binding.progressBar.hide() binding.swipeRefreshLayout.isRefreshing = false diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt index 84379e073d..90fdc56ef1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt @@ -22,6 +22,7 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import androidx.annotation.CheckResult +import androidx.core.view.isVisible import androidx.fragment.app.commit import androidx.fragment.app.viewModels import androidx.lifecycle.Lifecycle @@ -48,7 +49,6 @@ import com.keylesspalace.tusky.util.ListStatusAccessibilityDelegate import com.keylesspalace.tusky.util.StatusDisplayOptions import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.openLink -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData.Companion.list import com.keylesspalace.tusky.viewdata.StatusViewData @@ -178,7 +178,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, updateRevealButton(uiState.revealButton) binding.swipeRefreshLayout.isRefreshing = false - binding.recyclerView.show() + binding.recyclerView.isVisible = true binding.statusView.hide() } is ThreadUiState.Error -> { @@ -190,7 +190,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, binding.swipeRefreshLayout.isRefreshing = false binding.recyclerView.hide() - binding.statusView.show() + binding.statusView.isVisible = true if (uiState.throwable is IOException) { binding.statusView.setup(R.drawable.elephant_offline, R.string.error_network) { @@ -223,7 +223,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, updateRevealButton(uiState.revealButton) binding.swipeRefreshLayout.isRefreshing = false - binding.recyclerView.show() + binding.recyclerView.isVisible = true binding.statusView.hide() } is ThreadUiState.Refreshing -> { @@ -262,7 +262,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, ) { try { delay(delayMs) - view.show() + view.isVisible = true awaitCancellation() } finally { view.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt index 88396bceb3..d646de7165 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt @@ -5,6 +5,7 @@ import android.graphics.drawable.Drawable import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide @@ -26,7 +27,6 @@ import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.setClickableText -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.unicodeWrap import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewdata.toViewData @@ -81,8 +81,8 @@ class ViewEditsAdapter( binding.statusEditContentWarningDescription.hide() binding.statusEditContentWarningSeparator.hide() } else { - binding.statusEditContentWarningDescription.show() - binding.statusEditContentWarningSeparator.show() + binding.statusEditContentWarningDescription.isVisible = true + binding.statusEditContentWarningSeparator.isVisible = true binding.statusEditContentWarningDescription.text = edit.spoilerText.emojify( edit.emojis, binding.statusEditContentWarningDescription, @@ -97,7 +97,7 @@ class ViewEditsAdapter( binding.statusEditPollOptions.hide() binding.statusEditPollDescription.hide() } else { - binding.statusEditPollOptions.show() + binding.statusEditPollOptions.isVisible = true // not used for now since not reported by the api // https://github.com/mastodon/mastodon/issues/22571 @@ -127,7 +127,7 @@ class ViewEditsAdapter( binding.statusEditMediaPreview.hide() binding.statusEditMediaSensitivity.hide() } else { - binding.statusEditMediaPreview.show() + binding.statusEditMediaPreview.isVisible = true binding.statusEditMediaPreview.aspectRatios = edit.mediaAttachments.aspectRatios() binding.statusEditMediaPreview.forEachIndexed { index, imageView, descriptionIndicator -> diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt index d02d017d57..c122e7f6a3 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt @@ -19,6 +19,7 @@ import android.os.Bundle import android.util.Log import android.view.View import android.widget.LinearLayout +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope @@ -36,7 +37,6 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.show import com.keylesspalace.tusky.util.viewBinding import kotlinx.coroutines.launch import java.io.IOException @@ -82,13 +82,13 @@ class ViewEditsFragment : Fragment(R.layout.fragment_view_thread), LinkListener, EditsUiState.Loading -> { binding.recyclerView.hide() binding.statusView.hide() - binding.initialProgressBar.show() + binding.initialProgressBar.isVisible = true } is EditsUiState.Error -> { Log.w(TAG, "failed to load edits", uiState.throwable) binding.recyclerView.hide() - binding.statusView.show() + binding.statusView.isVisible = true binding.initialProgressBar.hide() if (uiState.throwable is IOException) { @@ -102,7 +102,7 @@ class ViewEditsFragment : Fragment(R.layout.fragment_view_thread), LinkListener, } } is EditsUiState.Success -> { - binding.recyclerView.show() + binding.recyclerView.isVisible = true binding.statusView.hide() binding.initialProgressBar.hide() diff --git a/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt b/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt index 3e56c68b69..fdff92a71c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt @@ -24,10 +24,6 @@ import android.widget.EditText import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -fun View.show() { - this.visibility = View.VISIBLE -} - fun View.hide() { this.visibility = View.GONE } From 7fe05ead23d88282848f62cedb6b7624e76024ed Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 28 Feb 2023 22:45:07 +0800 Subject: [PATCH 2/8] Replace `View.hide` with `View.isVisible` --- .../com/keylesspalace/tusky/AboutActivity.kt | 10 ++++-- .../tusky/AccountsInListFragment.kt | 23 ++++++------ .../keylesspalace/tusky/FiltersActivity.kt | 12 +++---- .../com/keylesspalace/tusky/ListsActivity.kt | 6 ++-- .../com/keylesspalace/tusky/MainActivity.kt | 22 ++++++------ .../keylesspalace/tusky/adapter/TabAdapter.kt | 3 +- .../components/account/AccountActivity.kt | 36 +++++++++---------- .../account/list/ListsForAccountFragment.kt | 12 +++---- .../account/media/AccountMediaFragment.kt | 12 ++++--- .../account/media/AccountMediaGridAdapter.kt | 6 ++-- .../accountlist/AccountListFragment.kt | 8 ++--- .../announcements/AnnouncementsActivity.kt | 10 +++--- .../components/compose/ComposeActivity.kt | 14 ++++---- .../conversation/ConversationsFragment.kt | 15 +++++--- .../tusky/components/drafts/DraftsAdapter.kt | 4 +-- .../followedtags/FollowedTagsActivity.kt | 8 ++--- .../fragment/InstanceListFragment.kt | 12 +++---- .../components/login/LoginWebViewActivity.kt | 4 +-- .../report/adapter/StatusViewHolder.kt | 18 ++++++---- .../report/fragments/ReportDoneFragment.kt | 10 +++--- .../report/fragments/ReportNoteFragment.kt | 8 ++--- .../scheduled/ScheduledStatusActivity.kt | 8 ++--- .../components/timeline/TimelineFragment.kt | 17 +++++---- .../components/trending/TrendingFragment.kt | 26 +++++++------- .../viewthread/ViewThreadFragment.kt | 14 ++++---- .../viewthread/edits/ViewEditsAdapter.kt | 14 ++++---- .../viewthread/edits/ViewEditsFragment.kt | 14 ++++---- .../tusky/fragment/ViewImageFragment.kt | 6 ++-- .../tusky/fragment/ViewVideoFragment.kt | 8 ++--- .../tusky/util/ViewExtensions.kt | 4 --- .../keylesspalace/tusky/view/LicenseCard.kt | 4 +-- 31 files changed, 194 insertions(+), 174 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/AboutActivity.kt b/app/src/main/java/com/keylesspalace/tusky/AboutActivity.kt index fc8b3db2b6..8b833cea1c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/AboutActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/AboutActivity.kt @@ -9,10 +9,10 @@ import android.text.style.URLSpan import android.text.util.Linkify import android.widget.TextView import androidx.annotation.StringRes +import androidx.core.view.isVisible import com.keylesspalace.tusky.databinding.ActivityAboutBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.util.NoUnderlineURLSpan -import com.keylesspalace.tusky.util.hide class AboutActivity : BottomSheetActivity(), Injectable { @@ -30,10 +30,14 @@ class AboutActivity : BottomSheetActivity(), Injectable { setTitle(R.string.about_title_activity) - binding.versionTextView.text = getString(R.string.about_app_version, getString(R.string.app_name), BuildConfig.VERSION_NAME) + binding.versionTextView.text = getString( + R.string.about_app_version, + getString(R.string.app_name), + BuildConfig.VERSION_NAME + ) if (BuildConfig.CUSTOM_INSTANCE.isBlank()) { - binding.aboutPoweredByTusky.hide() + binding.aboutPoweredByTusky.isVisible = false } binding.aboutLicenseInfoTextView.setClickableTextWithoutUnderlines(R.string.about_tusky_license) diff --git a/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt index dcfb549bd0..56dd40926b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/AccountsInListFragment.kt @@ -39,7 +39,6 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.Either import com.keylesspalace.tusky.util.emojify -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding @@ -103,7 +102,7 @@ class AccountsInListFragment : DialogFragment(), Injectable { adapter.submitList(state.accounts.asRightOrNull() ?: listOf()) when (state.accounts) { - is Either.Right -> binding.messageView.hide() + is Either.Right -> binding.messageView.isVisible = false is Either.Left -> handleError(state.accounts.value) } @@ -131,7 +130,7 @@ class AccountsInListFragment : DialogFragment(), Injectable { private fun setupSearchView(state: State) { if (state.searchResult == null) { searchAdapter.submitList(listOf()) - binding.accountsSearchRecycler.hide() + binding.accountsSearchRecycler.isVisible = false binding.accountsRecycler.isVisible = true } else { val listAccounts = state.accounts.asRightOrNull() ?: listOf() @@ -140,14 +139,14 @@ class AccountsInListFragment : DialogFragment(), Injectable { } searchAdapter.submitList(newList) binding.accountsSearchRecycler.isVisible = true - binding.accountsRecycler.hide() + binding.accountsRecycler.isVisible = false } } private fun handleError(error: Throwable) { binding.messageView.isVisible = true val retryAction = { _: View -> - binding.messageView.hide() + binding.messageView.isVisible = false viewModel.load(listId) } if (error is IOException) { @@ -184,11 +183,12 @@ class AccountsInListFragment : DialogFragment(), Injectable { inner class Adapter : ListAdapter>(AccountDiffer) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindingHolder { - val binding = ItemFollowRequestBinding.inflate(LayoutInflater.from(parent.context), parent, false) + val binding = + ItemFollowRequestBinding.inflate(LayoutInflater.from(parent.context), parent, false) val holder = BindingHolder(binding) - binding.notificationTextView.hide() - binding.acceptButton.hide() + binding.notificationTextView.isVisible = false + binding.acceptButton.isVisible = false binding.rejectButton.setOnClickListener { onRemoveFromList(getItem(holder.bindingAdapterPosition).id) } @@ -219,11 +219,12 @@ class AccountsInListFragment : DialogFragment(), Injectable { inner class SearchAdapter : ListAdapter>(SearchDiffer) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindingHolder { - val binding = ItemFollowRequestBinding.inflate(LayoutInflater.from(parent.context), parent, false) + val binding = + ItemFollowRequestBinding.inflate(LayoutInflater.from(parent.context), parent, false) val holder = BindingHolder(binding) - binding.notificationTextView.hide() - binding.acceptButton.hide() + binding.notificationTextView.isVisible = false + binding.acceptButton.isVisible = false binding.rejectButton.setOnClickListener { val (account, inAList) = getItem(holder.bindingAdapterPosition) if (inAList) { diff --git a/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt b/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt index 730aa032fb..3e6a8a71b1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt @@ -14,7 +14,7 @@ import com.keylesspalace.tusky.appstore.PreferenceChangedEvent import com.keylesspalace.tusky.databinding.ActivityFiltersBinding import com.keylesspalace.tusky.entity.Filter import com.keylesspalace.tusky.network.MastodonApi -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.getSecondsForDurationIndex import com.keylesspalace.tusky.view.setupEditDialogForFilter @@ -144,14 +144,14 @@ class FiltersActivity : BaseActivity() { private fun loadFilters() { - binding.filterMessageView.hide() - binding.filtersView.hide() - binding.addFilterButton.hide() + binding.filterMessageView.isVisible = false + binding.filtersView.isVisible = false + binding.addFilterButton.isVisible = false binding.filterProgressBar.isVisible = true lifecycleScope.launch { val newFilters = api.getFilters().getOrElse { - binding.filterProgressBar.hide() + binding.filterProgressBar.isVisible = false binding.filterMessageView.isVisible = true if (it is IOException) { binding.filterMessageView.setup( @@ -172,7 +172,7 @@ class FiltersActivity : BaseActivity() { binding.filtersView.isVisible = true binding.addFilterButton.show() - binding.filterProgressBar.hide() + binding.filterProgressBar.isVisible = false } } diff --git a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt index 2683b11b09..0e4fe58ed2 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt @@ -45,7 +45,7 @@ import com.keylesspalace.tusky.databinding.ActivityListsBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.MastoList -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.onTextChanged import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible @@ -164,7 +164,7 @@ class ListsActivity : BaseActivity(), Injectable, HasAndroidInjector { adapter.submitList(state.lists) binding.progressBar.visible(state.loadingState == LOADING) when (state.loadingState) { - INITIAL, LOADING -> binding.messageView.hide() + INITIAL, LOADING -> binding.messageView.isVisible = false ERROR_NETWORK -> { binding.messageView.isVisible = true binding.messageView.setup(R.drawable.elephant_offline, R.string.error_network) { @@ -185,7 +185,7 @@ class ListsActivity : BaseActivity(), Injectable, HasAndroidInjector { null ) } else { - binding.messageView.hide() + binding.messageView.isVisible = false } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt index 2f758fb20c..700eb2f031 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt @@ -94,7 +94,6 @@ import com.keylesspalace.tusky.usecase.LogoutUsecase import com.keylesspalace.tusky.util.deleteStaleCachedMedia import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.getDimension -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.reduceSwipeSensitivity import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.updateShortcut @@ -672,11 +671,12 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje val activeTabLayout = if (preferences.getString(PrefKeys.MAIN_NAV_POSITION, "top") == "bottom") { val actionBarSize = getDimension(this, androidx.appcompat.R.attr.actionBarSize) val fabMargin = resources.getDimensionPixelSize(R.dimen.fabMargin) - (binding.composeButton.layoutParams as CoordinatorLayout.LayoutParams).bottomMargin = actionBarSize + fabMargin - binding.topNav.hide() + (binding.composeButton.layoutParams as CoordinatorLayout.LayoutParams).bottomMargin = + actionBarSize + fabMargin + binding.topNav.isVisible = false binding.bottomTabLayout } else { - binding.bottomNav.hide() + binding.bottomNav.isVisible = false (binding.viewPager.layoutParams as CoordinatorLayout.LayoutParams).bottomMargin = 0 (binding.composeButton.layoutParams as CoordinatorLayout.LayoutParams).anchorId = R.id.viewPager binding.tabLayout @@ -759,7 +759,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje if (fragment.isFabVisible()) { binding.composeButton.show() } else { - binding.composeButton.hide() + binding.composeButton.isVisible = false } } else { binding.composeButton.show() @@ -807,11 +807,11 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje .setTitle(R.string.action_logout) .setMessage(getString(R.string.action_logout_confirm, activeAccount.fullName)) .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> - binding.appBar.hide() - binding.viewPager.hide() + binding.appBar.isVisible = false + binding.viewPager.isVisible = false binding.progressBar.isVisible = true - binding.bottomNav.hide() - binding.composeButton.hide() + binding.bottomNav.isVisible = false + binding.composeButton.isVisible = false lifecycleScope.launch { val otherAccountAvailable = logoutUsecase.logout() @@ -896,8 +896,8 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje } } else { - binding.bottomNavAvatar.hide() - binding.topNavAvatar.hide() + binding.bottomNavAvatar.isVisible = false + binding.topNavAvatar.isVisible = false val navIconSize = resources.getDimensionPixelSize(R.dimen.avatar_toolbar_nav_icon_size) diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt index da9f18a1bc..73c51418eb 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt @@ -30,7 +30,6 @@ import com.keylesspalace.tusky.TabData import com.keylesspalace.tusky.databinding.ItemTabPreferenceBinding import com.keylesspalace.tusky.databinding.ItemTabPreferenceSmallBinding import com.keylesspalace.tusky.util.BindingHolder -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.setDrawableTint interface ItemInteractionListener { @@ -144,7 +143,7 @@ class TabAdapter( listener.onActionChipClicked(tab, holder.bindingAdapterPosition) } } else { - binding.chipGroup.hide() + binding.chipGroup.isVisible = false } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt index fa15dc1214..3165e89bb6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt @@ -79,7 +79,7 @@ import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.getDomain -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.reduceSwipeSensitivity @@ -171,7 +171,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI if (viewModel.isSelf) { updateButtons() - binding.saveNoteInfo.hide() + binding.saveNoteInfo.isVisible = false } else { binding.saveNoteInfo.visibility = View.INVISIBLE } @@ -193,10 +193,10 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI */ private fun setupAccountViews() { // Initialise the default UI states. - binding.accountFloatingActionButton.hide() - binding.accountFollowButton.hide() - binding.accountMuteButton.hide() - binding.accountFollowsYouTextView.hide() + binding.accountFloatingActionButton.isVisible = false + binding.accountFollowButton.isVisible = false + binding.accountMuteButton.isVisible = false + binding.accountFollowsYouTextView.isVisible = false // setup the RecyclerView for the account fields accountFieldAdapter = AccountFieldAdapter(this, animateEmojis) @@ -229,9 +229,9 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI val wellbeingEnabled = preferences.getBoolean(PrefKeys.WELLBEING_HIDE_STATS_PROFILE, false) if (wellbeingEnabled) { - binding.accountStatuses.hide() - binding.accountFollowers.hide() - binding.accountFollowing.hide() + binding.accountStatuses.isVisible = false + binding.accountFollowers.isVisible = false + binding.accountFollowing.isVisible = false } } @@ -350,7 +350,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI binding.accountFloatingActionButton.show() } if (verticalOffset < oldOffset) { - binding.accountFloatingActionButton.hide() + binding.accountFloatingActionButton.isVisible = false } } @@ -688,13 +688,13 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI if (muting) { binding.accountMuteButton.setIconResource(R.drawable.ic_unmute_24dp) } else { - binding.accountMuteButton.hide() + binding.accountMuteButton.isVisible = false } } private fun updateSubscribeButton() { if (followState != FollowState.FOLLOWING) { - binding.accountSubscribeButton.hide() + binding.accountSubscribeButton.isVisible = false } if (subscribing) { @@ -716,18 +716,18 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI updateSubscribeButton() if (blocking) { - binding.accountFloatingActionButton.hide() - binding.accountMuteButton.hide() + binding.accountFloatingActionButton.isVisible = false + binding.accountMuteButton.isVisible = false } else { binding.accountFloatingActionButton.show() binding.accountMuteButton.visible(muting) updateMuteButton() } } else { - binding.accountFloatingActionButton.hide() - binding.accountFollowButton.hide() - binding.accountMuteButton.hide() - binding.accountSubscribeButton.hide() + binding.accountFloatingActionButton.isVisible = false + binding.accountFollowButton.isVisible = false + binding.accountMuteButton.isVisible = false + binding.accountSubscribeButton.isVisible = false } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt index 8555230525..2b85693253 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt @@ -35,7 +35,7 @@ import com.keylesspalace.tusky.databinding.ItemAddOrRemoveFromListBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.BindingHolder -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest @@ -84,7 +84,7 @@ class ListsForAccountFragment : DialogFragment(), Injectable { viewLifecycleOwner.lifecycleScope.launch { viewModel.states.collectLatest { states -> - binding.progressBar.hide() + binding.progressBar.isVisible = false if (states.isEmpty()) { binding.messageView.isVisible = true binding.messageView.setup(R.drawable.elephant_friend_empty, R.string.no_lists) { @@ -99,8 +99,8 @@ class ListsForAccountFragment : DialogFragment(), Injectable { viewLifecycleOwner.lifecycleScope.launch { viewModel.loadError.collectLatest { error -> - binding.progressBar.hide() - binding.listsView.hide() + binding.progressBar.isVisible = false + binding.listsView.isVisible = false binding.messageView.apply { isVisible = true @@ -147,8 +147,8 @@ class ListsForAccountFragment : DialogFragment(), Injectable { private fun load() { binding.progressBar.isVisible = true - binding.listsView.hide() - binding.messageView.hide() + binding.listsView.isVisible = false + binding.messageView.isVisible = false viewModel.load() } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt index 0fa88d5dd9..89760cd6fc 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt @@ -35,7 +35,6 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.Attachment import com.keylesspalace.tusky.interfaces.RefreshableFragment import com.keylesspalace.tusky.settings.PrefKeys -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.openLink import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData @@ -105,17 +104,22 @@ class AccountMediaFragment : } adapter.addLoadStateListener { loadState -> - binding.statusView.hide() - binding.progressBar.hide() + binding.statusView.isVisible = false + binding.progressBar.isVisible = false if (adapter.itemCount == 0) { when (loadState.refresh) { is LoadState.NotLoading -> { if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) { binding.statusView.isVisible = true - binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null) + binding.statusView.setup( + R.drawable.elephant_friend_empty, + R.string.message_empty, + null + ) } } + is LoadState.Error -> { binding.statusView.isVisible = true diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt index 01cb4a6d2e..c0bd4ae0cd 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt @@ -19,7 +19,7 @@ import com.keylesspalace.tusky.entity.Attachment import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.decodeBlurHash import com.keylesspalace.tusky.util.getFormattedDescription -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.viewdata.AttachmentViewData import java.util.Random @@ -70,7 +70,7 @@ class AccountMediaGridAdapter( } if (item.attachment.type == Attachment.Type.AUDIO) { - overlay.hide() + overlay.isVisible = false imageView.setPadding(context.resources.getDimensionPixelSize(R.dimen.profile_media_audio_icon_padding)) @@ -97,7 +97,7 @@ class AccountMediaGridAdapter( overlay.isVisible = true overlay.setImageDrawable(videoIndicator) } else { - overlay.hide() + overlay.isVisible = false } imageView.setPadding(0) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt index 4027ece602..a7c867eac6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt @@ -50,7 +50,7 @@ import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.HttpHeaderLink -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EndlessOnScrollListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -344,7 +344,7 @@ class AccountListFragment : Fragment(R.layout.fragment_account_list), AccountAct null ) } else { - binding.messageView.hide() + binding.messageView.isVisible = false } } @@ -372,12 +372,12 @@ class AccountListFragment : Fragment(R.layout.fragment_account_list), AccountAct binding.messageView.isVisible = true if (throwable is IOException) { binding.messageView.setup(R.drawable.elephant_offline, R.string.error_network) { - binding.messageView.hide() + binding.messageView.isVisible = false this.fetchAccounts(null) } } else { binding.messageView.setup(R.drawable.elephant_error, R.string.error_generic) { - binding.messageView.hide() + binding.messageView.isVisible = false this.fetchAccounts(null) } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt index e43823bba6..4c38363ebc 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt @@ -38,7 +38,7 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EmojiPicker @@ -98,21 +98,21 @@ class AnnouncementsActivity : BottomSheetActivity(), AnnouncementActionListener, viewModel.announcements.observe(this) { when (it) { is Success -> { - binding.progressBar.hide() + binding.progressBar.isVisible = false binding.swipeRefreshLayout.isRefreshing = false if (it.data.isNullOrEmpty()) { binding.errorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_announcements) binding.errorMessageView.isVisible = true } else { - binding.errorMessageView.hide() + binding.errorMessageView.isVisible = false } adapter.updateList(it.data ?: listOf()) } is Loading -> { - binding.errorMessageView.hide() + binding.errorMessageView.isVisible = false } is Error -> { - binding.progressBar.hide() + binding.progressBar.isVisible = false binding.swipeRefreshLayout.isRefreshing = false binding.errorMessageView.setup(R.drawable.elephant_error, R.string.error_generic) { refreshAnnouncements() 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 278e2788a1..61f815861f 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 @@ -94,7 +94,7 @@ import com.keylesspalace.tusky.util.afterTextChanged import com.keylesspalace.tusky.util.getInitialLanguages import com.keylesspalace.tusky.util.getLocaleList import com.keylesspalace.tusky.util.getMediaSize -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.highlightSpans import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.modernLanguageCode @@ -254,7 +254,7 @@ class ComposeActivity : ) binding.composeUsernameView.isVisible = true } else { - binding.composeUsernameView.hide() + binding.composeUsernameView.isVisible = false } setupReplyViews(composeOptions?.replyingStatusAuthor, composeOptions?.replyingStatusContent) @@ -351,7 +351,7 @@ class ComposeActivity : TransitionManager.beginDelayedTransition(binding.composeReplyContentView.parent as ViewGroup) if (binding.composeReplyContentView.isVisible) { - binding.composeReplyContentView.hide() + binding.composeReplyContentView.isVisible = false binding.composeReplyView.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, arrowDownIcon, null) } else { binding.composeReplyContentView.isVisible = true @@ -676,8 +676,8 @@ class ComposeActivity : private fun updateSensitiveMediaToggle(markMediaSensitive: Boolean, contentWarningShown: Boolean) { if (viewModel.media.value.isEmpty()) { - binding.composeHideMediaButton.hide() - binding.descriptionMissingWarningButton.hide() + binding.composeHideMediaButton.isVisible = false + binding.descriptionMissingWarningButton.isVisible = false } else { binding.composeHideMediaButton.isVisible = true @ColorInt val color = if (contentWarningShown) { @@ -872,7 +872,7 @@ class ComposeActivity : private fun removePoll() { viewModel.poll.value = null - binding.pollPreview.hide() + binding.pollPreview.isVisible = false } override fun onVisibilityChanged(visibility: Status.Visibility) { @@ -1078,7 +1078,7 @@ class ComposeActivity : binding.composeContentWarningField.requestFocus() getColor(R.color.tusky_blue) } else { - binding.composeContentWarningBar.hide() + binding.composeContentWarningBar.isVisible = false binding.composeEditField.requestFocus() MaterialColors.getColor(binding.composeContentWarningButton, android.R.attr.textColorTertiary) } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt index f24f1c1ec6..7272b58af9 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt @@ -49,7 +49,6 @@ import com.keylesspalace.tusky.interfaces.StatusActionListener import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.CardViewMode import com.keylesspalace.tusky.util.StatusDisplayOptions -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -108,17 +107,22 @@ class ConversationsFragment : SFragment(), StatusActionListener, Injectable, Res binding.swipeRefreshLayout.isRefreshing = false } - binding.statusView.hide() - binding.progressBar.hide() + binding.statusView.isVisible = false + binding.progressBar.isVisible = false if (adapter.itemCount == 0) { when (loadState.refresh) { is LoadState.NotLoading -> { if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) { binding.statusView.isVisible = true - binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null) + binding.statusView.setup( + R.drawable.elephant_friend_empty, + R.string.message_empty, + null + ) } } + is LoadState.Error -> { binding.statusView.isVisible = true @@ -154,7 +158,8 @@ class ConversationsFragment : SFragment(), StatusActionListener, Injectable, Res if (composeButton != null) { if (hideFab) { if (dy > 0 && composeButton.isShown) { - composeButton.hide() // hides the button if we're scrolling down + composeButton.isVisible = + false // hides the button if we're scrolling down } else if (dy < 0 && !composeButton.isShown) { composeButton.show() // shows it if we are scrolling up } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt index 27754478bd..5fd4e2d138 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt @@ -25,7 +25,7 @@ import androidx.recyclerview.widget.RecyclerView import com.keylesspalace.tusky.databinding.ItemDraftBinding import com.keylesspalace.tusky.db.DraftEntity import com.keylesspalace.tusky.util.BindingHolder -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.visible interface DraftActionListener { @@ -84,7 +84,7 @@ class DraftsAdapter( holder.binding.draftPoll.isVisible = true holder.binding.draftPoll.setPoll(draft.poll) } else { - holder.binding.draftPoll.hide() + holder.binding.draftPoll.isVisible = false } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt index 10537a7c71..772e54135a 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt @@ -26,7 +26,7 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.HashtagActionListener import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.settings.PrefKeys -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest @@ -90,7 +90,7 @@ class FollowedTagsActivity : binding.followedTagsView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { if (dy > 0 && binding.fab.isShown) { - binding.fab.hide() + binding.fab.isVisible = false } else if (dy < 0 && !binding.fab.isShown) { binding.fab.show() } @@ -105,7 +105,7 @@ class FollowedTagsActivity : binding.followedTagsProgressBar.visible(loadState.refresh == LoadState.Loading && itemCount == 0) if (loadState.refresh is LoadState.Error) { - binding.followedTagsView.hide() + binding.followedTagsView.isVisible = false binding.followedTagsMessageView.isVisible = true val errorState = loadState.refresh as LoadState.Error if (errorState.error is IOException) { @@ -116,7 +116,7 @@ class FollowedTagsActivity : Log.w(TAG, "error loading followed hashtags", errorState.error) } else { binding.followedTagsView.isVisible = true - binding.followedTagsMessageView.hide() + binding.followedTagsMessageView.isVisible = false } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt index fe6ec01d17..ea8b1101b2 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt @@ -19,7 +19,7 @@ import com.keylesspalace.tusky.databinding.FragmentInstanceListBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.util.HttpHeaderLink -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EndlessOnScrollListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -132,7 +132,7 @@ class InstanceListFragment : Fragment(R.layout.fragment_instance_list), Injectab private fun onFetchInstancesSuccess(instances: List, linkHeader: String?) { adapter.bottomLoading = false - binding.instanceProgressBar.hide() + binding.instanceProgressBar.isVisible = false val links = HttpHeaderLink.parse(linkHeader) val next = HttpHeaderLink.findByRelationType(links, "next") @@ -149,25 +149,25 @@ class InstanceListFragment : Fragment(R.layout.fragment_instance_list), Injectab null ) } else { - binding.messageView.hide() + binding.messageView.isVisible = false } } private fun onFetchInstancesFailure(throwable: Throwable) { fetching = false - binding.instanceProgressBar.hide() + binding.instanceProgressBar.isVisible = false Log.e(TAG, "Fetch failure", throwable) if (adapter.itemCount == 0) { binding.messageView.isVisible = true if (throwable is IOException) { binding.messageView.setup(R.drawable.elephant_offline, R.string.error_network) { - binding.messageView.hide() + binding.messageView.isVisible = false this.fetchInstances(null) } } else { binding.messageView.setup(R.drawable.elephant_error, R.string.error_generic) { - binding.messageView.hide() + binding.messageView.isVisible = false this.fetchInstances(null) } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt index b69f81e76c..cd25a28918 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt @@ -34,6 +34,7 @@ import androidx.activity.result.contract.ActivityResultContract import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog import androidx.core.net.toUri +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import com.keylesspalace.tusky.BaseActivity import com.keylesspalace.tusky.BuildConfig @@ -41,7 +42,6 @@ import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ActivityLoginWebviewBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.launch @@ -140,7 +140,7 @@ class LoginWebViewActivity : BaseActivity(), Injectable { webView.webViewClient = object : WebViewClient() { override fun onPageFinished(view: WebView?, url: String?) { - binding.loginProgress.hide() + binding.loginProgress.isVisible = false } override fun onReceivedError( diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt index 0f18046214..aaded5dca7 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt @@ -34,7 +34,6 @@ import com.keylesspalace.tusky.util.StatusViewHelper.Companion.COLLAPSE_INPUT_FI import com.keylesspalace.tusky.util.StatusViewHelper.Companion.NO_INPUT_FILTER import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.getRelativeTimeSpanString -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.setClickableMentions import com.keylesspalace.tusky.util.setClickableText import com.keylesspalace.tusky.util.shouldTrimStatus @@ -102,9 +101,16 @@ class StatusViewHolder( ) if (viewdata.spoilerText.isBlank()) { - setTextVisible(true, viewdata.content, viewdata.status.mentions, viewdata.status.tags, viewdata.status.emojis, adapterHandler) - binding.statusContentWarningButton.hide() - binding.statusContentWarningDescription.hide() + setTextVisible( + true, + viewdata.content, + viewdata.status.mentions, + viewdata.status.tags, + viewdata.status.emojis, + adapterHandler + ) + binding.statusContentWarningButton.isVisible = false + binding.statusContentWarningDescription.isVisible = false } else { val emojiSpoiler = viewdata.spoilerText.emojify(viewdata.status.emojis, binding.statusContentWarningDescription, statusDisplayOptions.animateEmojis) binding.statusContentWarningDescription.text = emojiSpoiler @@ -148,7 +154,7 @@ class StatusViewHolder( setClickableMentions(binding.statusContent, mentions, listener) } if (binding.statusContent.text.isNullOrBlank()) { - binding.statusContent.hide() + binding.statusContent.isVisible = false } else { binding.statusContent.isVisible = true } @@ -188,7 +194,7 @@ class StatusViewHolder( binding.statusContent.filters = NO_INPUT_FILTER } } else { - binding.buttonToggleContent.hide() + binding.buttonToggleContent.isVisible = false binding.statusContent.filters = NO_INPUT_FILTER } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt index c1d935a5a2..906292b264 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt @@ -27,7 +27,7 @@ import com.keylesspalace.tusky.databinding.FragmentReportDoneBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.Loading -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import javax.inject.Inject @@ -52,8 +52,8 @@ class ReportDoneFragment : Fragment(R.layout.fragment_report_done), Injectable { binding.buttonMute.isVisible = true binding.progressMute.isVisible = true } else { - binding.buttonMute.hide() - binding.progressMute.hide() + binding.buttonMute.isVisible = false + binding.progressMute.isVisible = false } binding.buttonMute.setText( @@ -69,8 +69,8 @@ class ReportDoneFragment : Fragment(R.layout.fragment_report_done), Injectable { binding.buttonBlock.isVisible = true binding.progressBlock.isVisible = true } else { - binding.buttonBlock.hide() - binding.progressBlock.hide() + binding.buttonBlock.isVisible = false + binding.progressBlock.isVisible = false } binding.buttonBlock.setText( when (it.data) { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt index 3c42f8c6d8..0cf9ca394a 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt @@ -31,7 +31,7 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import java.io.IOException import javax.inject.Inject @@ -68,8 +68,8 @@ class ReportNoteFragment : Fragment(R.layout.fragment_report_note), Injectable { binding.checkIsNotifyRemote.isVisible = true binding.reportDescriptionRemoteInstance.isVisible = true } else { - binding.checkIsNotifyRemote.hide() - binding.reportDescriptionRemoteInstance.hide() + binding.checkIsNotifyRemote.isVisible = false + binding.reportDescriptionRemoteInstance.isVisible = false } if (viewModel.isRemoteAccount) @@ -92,7 +92,7 @@ class ReportNoteFragment : Fragment(R.layout.fragment_report_note), Injectable { binding.checkIsNotifyRemote.isEnabled = true binding.buttonReport.isEnabled = true binding.buttonBack.isEnabled = true - binding.progressBar.hide() + binding.progressBar.isVisible = false Snackbar.make(binding.buttonBack, if (error is IOException) R.string.error_network else R.string.error_generic, Snackbar.LENGTH_LONG) .setAction(R.string.action_retry) { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt index 30e3b0145f..4ae9c86105 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt @@ -35,7 +35,7 @@ import com.keylesspalace.tusky.databinding.ActivityScheduledStatusBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.ScheduledStatus -import com.keylesspalace.tusky.util.hide + import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @@ -83,7 +83,7 @@ class ScheduledStatusActivity : BaseActivity(), ScheduledStatusActionListener, I adapter.addLoadStateListener { loadState -> if (loadState.refresh is LoadState.Error) { - binding.progressBar.hide() + binding.progressBar.isVisible = false binding.errorMessageView.setup(R.drawable.elephant_error, R.string.error_generic) { refreshStatuses() } @@ -93,12 +93,12 @@ class ScheduledStatusActivity : BaseActivity(), ScheduledStatusActionListener, I binding.swipeRefreshLayout.isRefreshing = false } if (loadState.refresh is LoadState.NotLoading) { - binding.progressBar.hide() + binding.progressBar.isVisible = false if (adapter.itemCount == 0) { binding.errorMessageView.setup(R.drawable.elephant_friend_empty, R.string.no_scheduled_posts) binding.errorMessageView.isVisible = true } else { - binding.errorMessageView.hide() + binding.errorMessageView.isVisible = false } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt index 6f00525117..e12a6d0ae7 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/timeline/TimelineFragment.kt @@ -60,7 +60,6 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.CardViewMode import com.keylesspalace.tusky.util.ListStatusAccessibilityDelegate import com.keylesspalace.tusky.util.StatusDisplayOptions -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData @@ -206,17 +205,22 @@ class TimelineFragment : binding.swipeRefreshLayout.isRefreshing = false } - binding.statusView.hide() - binding.progressBar.hide() + binding.statusView.isVisible = false + binding.progressBar.isVisible = false if (adapter.itemCount == 0) { when (loadState.refresh) { is LoadState.NotLoading -> { if (loadState.append is LoadState.NotLoading && loadState.source.refresh is LoadState.NotLoading) { binding.statusView.isVisible = true - binding.statusView.setup(R.drawable.elephant_friend_empty, R.string.message_empty, null) + binding.statusView.setup( + R.drawable.elephant_friend_empty, + R.string.message_empty, + null + ) } } + is LoadState.Error -> { binding.statusView.isVisible = true @@ -265,7 +269,8 @@ class TimelineFragment : if (composeButton != null) { if (hideFab) { if (dy > 0 && composeButton.isShown) { - composeButton.hide() // hides the button if we're scrolling down + composeButton.isVisible = + false // hides the button if we're scrolling down } else if (dy < 0 && !composeButton.isShown) { composeButton.show() // shows it if we are scrolling up } @@ -347,7 +352,7 @@ class TimelineFragment : } override fun onRefresh() { - binding.statusView.hide() + binding.statusView.isVisible = false adapter.refresh() } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt index b75c1b9055..b4f6dcac1a 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt @@ -48,7 +48,7 @@ import com.keylesspalace.tusky.interfaces.ActionButtonActivity import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.interfaces.RefreshableFragment import com.keylesspalace.tusky.interfaces.ReselectableFragment -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.TrendingViewData import kotlinx.coroutines.flow.collectLatest @@ -205,7 +205,7 @@ class TrendingFragment : if (viewData.isEmpty()) { adapter.submitList(emptyList()) - binding.recyclerView.hide() + binding.recyclerView.isVisible = false binding.messageView.isVisible = true binding.messageView.setup( R.drawable.elephant_friend_empty, R.string.message_empty, @@ -217,27 +217,27 @@ class TrendingFragment : adapter.submitList(viewDataWithDates) binding.recyclerView.isVisible = true - binding.messageView.hide() + binding.messageView.isVisible = false } - binding.progressBar.hide() + binding.progressBar.isVisible = false } private fun applyLoadingState() { - binding.recyclerView.hide() - binding.messageView.hide() + binding.recyclerView.isVisible = false + binding.messageView.isVisible = false binding.progressBar.isVisible = true } private fun clearLoadingState() { binding.swipeRefreshLayout.isRefreshing = false - binding.progressBar.hide() - binding.messageView.hide() + binding.progressBar.isVisible = false + binding.messageView.isVisible = false } private fun networkError() { - binding.recyclerView.hide() + binding.recyclerView.isVisible = false binding.messageView.isVisible = true - binding.progressBar.hide() + binding.progressBar.isVisible = false binding.swipeRefreshLayout.isRefreshing = false binding.messageView.setup( @@ -247,9 +247,9 @@ class TrendingFragment : } private fun otherError() { - binding.recyclerView.hide() + binding.recyclerView.isVisible = false binding.messageView.isVisible = true - binding.progressBar.hide() + binding.progressBar.isVisible = false binding.swipeRefreshLayout.isRefreshing = false binding.messageView.setup( @@ -278,7 +278,7 @@ class TrendingFragment : if (actionButtonPresent()) { val composeButton = (activity as ActionButtonActivity).actionButton - composeButton?.hide() + composeButton?.isVisible = false } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt index 90fdc56ef1..6337f6b7fb 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt @@ -47,7 +47,7 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.CardViewMode import com.keylesspalace.tusky.util.ListStatusAccessibilityDelegate import com.keylesspalace.tusky.util.StatusDisplayOptions -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.openLink import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData.Companion.list @@ -156,8 +156,8 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, is ThreadUiState.Loading -> { updateRevealButton(RevealButtonState.NO_BUTTON) - binding.recyclerView.hide() - binding.statusView.hide() + binding.recyclerView.isVisible = false + binding.statusView.isVisible = false initialProgressBar = getProgressBarJob(binding.initialProgressBar, 500) initialProgressBar.start() @@ -179,7 +179,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, binding.swipeRefreshLayout.isRefreshing = false binding.recyclerView.isVisible = true - binding.statusView.hide() + binding.statusView.isVisible = false } is ThreadUiState.Error -> { Log.w(TAG, "failed to load status", uiState.throwable) @@ -189,7 +189,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, updateRevealButton(RevealButtonState.NO_BUTTON) binding.swipeRefreshLayout.isRefreshing = false - binding.recyclerView.hide() + binding.recyclerView.isVisible = false binding.statusView.isVisible = true if (uiState.throwable is IOException) { @@ -224,7 +224,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, binding.swipeRefreshLayout.isRefreshing = false binding.recyclerView.isVisible = true - binding.statusView.hide() + binding.statusView.isVisible = false } is ThreadUiState.Refreshing -> { threadProgressBar.cancel() @@ -265,7 +265,7 @@ class ViewThreadFragment : SFragment(), OnRefreshListener, StatusActionListener, view.isVisible = true awaitCancellation() } finally { - view.hide() + view.isVisible = false } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt index d646de7165..5b9e19231d 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt @@ -23,7 +23,7 @@ import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.aspectRatios import com.keylesspalace.tusky.util.decodeBlurHash import com.keylesspalace.tusky.util.emojify -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.setClickableText @@ -78,8 +78,8 @@ class ViewEditsAdapter( ).emojify(edit.account.emojis, binding.statusEditInfo, animateEmojis) if (edit.spoilerText.isEmpty()) { - binding.statusEditContentWarningDescription.hide() - binding.statusEditContentWarningSeparator.hide() + binding.statusEditContentWarningDescription.isVisible = false + binding.statusEditContentWarningSeparator.isVisible = false } else { binding.statusEditContentWarningDescription.isVisible = true binding.statusEditContentWarningSeparator.isVisible = true @@ -94,8 +94,8 @@ class ViewEditsAdapter( setClickableText(binding.statusEditContent, emojifiedText, emptyList(), emptyList(), listener) if (edit.poll == null) { - binding.statusEditPollOptions.hide() - binding.statusEditPollDescription.hide() + binding.statusEditPollOptions.isVisible = false + binding.statusEditPollDescription.isVisible = false } else { binding.statusEditPollOptions.isVisible = true @@ -124,8 +124,8 @@ class ViewEditsAdapter( } if (edit.mediaAttachments.isEmpty()) { - binding.statusEditMediaPreview.hide() - binding.statusEditMediaSensitivity.hide() + binding.statusEditMediaPreview.isVisible = false + binding.statusEditMediaSensitivity.isVisible = false } else { binding.statusEditMediaPreview.isVisible = true binding.statusEditMediaPreview.aspectRatios = edit.mediaAttachments.aspectRatios() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt index c122e7f6a3..8d0bfa7d96 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt @@ -36,7 +36,7 @@ import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.settings.PrefKeys -import com.keylesspalace.tusky.util.hide + import com.keylesspalace.tusky.util.viewBinding import kotlinx.coroutines.launch import java.io.IOException @@ -80,16 +80,16 @@ class ViewEditsFragment : Fragment(R.layout.fragment_view_thread), LinkListener, when (uiState) { EditsUiState.Initial -> {} EditsUiState.Loading -> { - binding.recyclerView.hide() - binding.statusView.hide() + binding.recyclerView.isVisible = false + binding.statusView.isVisible = false binding.initialProgressBar.isVisible = true } is EditsUiState.Error -> { Log.w(TAG, "failed to load edits", uiState.throwable) - binding.recyclerView.hide() + binding.recyclerView.isVisible = false binding.statusView.isVisible = true - binding.initialProgressBar.hide() + binding.initialProgressBar.isVisible = false if (uiState.throwable is IOException) { binding.statusView.setup(R.drawable.elephant_offline, R.string.error_network) { @@ -103,8 +103,8 @@ class ViewEditsFragment : Fragment(R.layout.fragment_view_thread), LinkListener, } is EditsUiState.Success -> { binding.recyclerView.isVisible = true - binding.statusView.hide() - binding.initialProgressBar.hide() + binding.statusView.isVisible = false + binding.initialProgressBar.isVisible = false binding.recyclerView.adapter = ViewEditsAdapter( edits = uiState.edits, diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt index 28cf64ca34..a803582e7e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt @@ -26,6 +26,7 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.ImageView +import androidx.core.view.isVisible import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException @@ -35,7 +36,6 @@ import com.github.chrisbanes.photoview.PhotoViewAttacher import com.keylesspalace.tusky.ViewMediaActivity import com.keylesspalace.tusky.databinding.FragmentViewImageBinding import com.keylesspalace.tusky.entity.Attachment -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.visible import io.reactivex.rxjava3.subjects.BehaviorSubject import kotlin.math.abs @@ -267,7 +267,7 @@ class ViewImageFragment : ViewMediaFragment() { photoActionsListener.onBringUp() } // Hide progress bar only on fail request from internet - if (!isCacheRequest && _binding != null) binding.progressBar.hide() + if (!isCacheRequest && _binding != null) binding.progressBar.isVisible = false // We don't want to overwrite preview with null when main image fails to load return !isCacheRequest } @@ -281,7 +281,7 @@ class ViewImageFragment : ViewMediaFragment() { isFirstResource: Boolean ): Boolean { if (_binding != null) { - binding.progressBar.hide() // Always hide the progress bar on success + binding.progressBar.isVisible = false // Always hide the progress bar on success } if (!startedTransition || !shouldStartTransition) { diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt index 68dc6687a5..a5ea6ee886 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt @@ -31,10 +31,10 @@ import android.view.View import android.view.ViewGroup import android.widget.MediaController import androidx.core.view.GestureDetectorCompat +import androidx.core.view.isVisible import com.keylesspalace.tusky.ViewMediaActivity import com.keylesspalace.tusky.databinding.FragmentViewVideoBinding import com.keylesspalace.tusky.entity.Attachment -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.view.ExposedPlayPauseVideoView import kotlin.math.abs @@ -54,7 +54,7 @@ class ViewVideoFragment : ViewMediaFragment() { // Hoist toolbar hiding to activity so it can track state across different fragments // This is explicitly stored as runnable so that we pass it to the handler later for cancellation mediaActivity.onPhotoTap() - mediaController.hide() + mediaController.isVisible = false } private lateinit var mediaActivity: ViewMediaActivity private lateinit var mediaController: MediaController @@ -86,7 +86,7 @@ class ViewVideoFragment : ViewMediaFragment() { if (_binding != null) { handler.removeCallbacks(hideToolbar) binding.videoView.pause() - mediaController.hide() + mediaController.isVisible = false } } @@ -171,7 +171,7 @@ class ViewVideoFragment : ViewMediaFragment() { mediaController.show() } - binding.progressBar.hide() + binding.progressBar.isVisible = false mp.isLooping = true } diff --git a/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt b/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt index fdff92a71c..4ba5b41ae4 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt @@ -24,10 +24,6 @@ import android.widget.EditText import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -fun View.hide() { - this.visibility = View.GONE -} - fun View.visible(visible: Boolean, or: Int = View.GONE) { this.visibility = if (visible) View.VISIBLE else or } diff --git a/app/src/main/java/com/keylesspalace/tusky/view/LicenseCard.kt b/app/src/main/java/com/keylesspalace/tusky/view/LicenseCard.kt index 6d553a26c7..b989bbebee 100644 --- a/app/src/main/java/com/keylesspalace/tusky/view/LicenseCard.kt +++ b/app/src/main/java/com/keylesspalace/tusky/view/LicenseCard.kt @@ -20,11 +20,11 @@ import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater import androidx.core.content.res.use +import androidx.core.view.isVisible import com.google.android.material.card.MaterialCardView import com.google.android.material.color.MaterialColors import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.CardLicenseBinding -import com.keylesspalace.tusky.util.hide import com.keylesspalace.tusky.util.openLink class LicenseCard @@ -52,7 +52,7 @@ class LicenseCard binding.licenseCardName.text = name binding.licenseCardLicense.text = license if (link.isNullOrBlank()) { - binding.licenseCardLink.hide() + binding.licenseCardLink.isVisible = false } else { binding.licenseCardLink.text = link setOnClickListener { context.openLink(link) } From 49506f922d447ed599544bdefc57af0e095f2fd5 Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 28 Feb 2023 23:12:04 +0800 Subject: [PATCH 3/8] Replace `View.visible` --- .../com/keylesspalace/tusky/ListsActivity.kt | 3 +-- .../com/keylesspalace/tusky/MainActivity.kt | 3 +-- .../tusky/TabPreferenceActivity.kt | 10 +++++----- .../tusky/adapter/AccountViewHolder.kt | 4 ++-- .../tusky/adapter/FollowRequestViewHolder.kt | 6 +++--- .../tusky/adapter/PollAdapter.kt | 13 ++++++------ .../components/account/AccountActivity.kt | 20 +++++++++---------- .../account/list/ListsForAccountFragment.kt | 6 ++---- .../accountlist/adapter/BlocksAdapter.kt | 4 ++-- .../accountlist/adapter/MutesAdapter.kt | 4 ++-- .../announcements/AnnouncementAdapter.kt | 4 ++-- .../components/compose/ComposeActivity.kt | 9 ++++----- .../compose/ComposeAutoCompleteAdapter.kt | 4 ++-- .../compose/dialog/AddPollOptionsAdapter.kt | 5 ++--- .../ConversationLoadStateAdapter.kt | 8 ++++---- .../tusky/components/drafts/DraftsActivity.kt | 4 ++-- .../tusky/components/drafts/DraftsAdapter.kt | 8 +++----- .../followedtags/FollowedTagsActivity.kt | 5 ++--- .../components/login/LoginWebViewActivity.kt | 3 +-- .../fragments/ReportStatusesFragment.kt | 9 +++++---- .../search/fragments/SearchFragment.kt | 13 +++++++----- .../viewthread/edits/ViewEditsAdapter.kt | 3 +-- .../tusky/fragment/ViewImageFragment.kt | 5 ++--- .../tusky/fragment/ViewVideoFragment.kt | 7 +++---- .../tusky/util/ViewExtensions.kt | 5 ----- .../tusky/view/BackgroundMessageView.kt | 4 ++-- 26 files changed, 78 insertions(+), 91 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt index 0e4fe58ed2..a85d2fc0d2 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt @@ -48,7 +48,6 @@ import com.keylesspalace.tusky.entity.MastoList import com.keylesspalace.tusky.util.onTextChanged import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewmodel.ListsViewModel import com.keylesspalace.tusky.viewmodel.ListsViewModel.Event import com.keylesspalace.tusky.viewmodel.ListsViewModel.LoadingState.ERROR_NETWORK @@ -162,7 +161,7 @@ class ListsActivity : BaseActivity(), Injectable, HasAndroidInjector { private fun update(state: ListsViewModel.State) { adapter.submitList(state.lists) - binding.progressBar.visible(state.loadingState == LOADING) + binding.progressBar.isVisible = (state.loadingState == LOADING) when (state.loadingState) { INITIAL, LOADING -> binding.messageView.isVisible = false ERROR_NETWORK -> { diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt index 700eb2f031..757202818e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt @@ -98,7 +98,6 @@ import com.keylesspalace.tusky.util.reduceSwipeSensitivity import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.updateShortcut import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial import com.mikepenz.iconics.utils.colorInt @@ -252,7 +251,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje } val hideTopToolbar = preferences.getBoolean(PrefKeys.HIDE_TOP_TOOLBAR, false) - binding.mainToolbar.visible(!hideTopToolbar) + binding.mainToolbar.isVisible = !hideTopToolbar loadDrawerAvatar(activeAccount.profilePictureUrl, true) diff --git a/app/src/main/java/com/keylesspalace/tusky/TabPreferenceActivity.kt b/app/src/main/java/com/keylesspalace/tusky/TabPreferenceActivity.kt index cb492424a8..8f9519bd8c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/TabPreferenceActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/TabPreferenceActivity.kt @@ -23,6 +23,7 @@ import android.widget.FrameLayout import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.AppCompatEditText +import androidx.core.view.isVisible import androidx.core.view.updatePadding import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -48,7 +49,6 @@ import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.util.onTextChanged import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import kotlinx.coroutines.launch @@ -215,9 +215,9 @@ class TabPreferenceActivity : BaseActivity(), Injectable, ItemInteractionListene } TransitionManager.beginDelayedTransition(binding.root, transition) - binding.actionButton.visible(!expand) - binding.sheet.visible(expand) - binding.scrim.visible(expand) + binding.actionButton.isVisible = !expand + binding.sheet.isVisible = expand + binding.scrim.isVisible = expand onFabDismissedCallback.isEnabled = expand } @@ -328,7 +328,7 @@ class TabPreferenceActivity : BaseActivity(), Injectable, ItemInteractionListene addTabAdapter.updateData(addableTabs) - binding.maxTabsInfo.visible(addableTabs.size == 0 || currentTabs.size >= MAX_TAB_COUNT) + binding.maxTabsInfo.isVisible = (addableTabs.size == 0 || currentTabs.size >= MAX_TAB_COUNT) currentTabsAdapter.setRemoveButtonVisible(currentTabs.size > MIN_TAB_COUNT) } diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/AccountViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/AccountViewHolder.kt index f125422c31..bd027f5a08 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/AccountViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/AccountViewHolder.kt @@ -1,5 +1,6 @@ package com.keylesspalace.tusky.adapter +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemAccountBinding @@ -8,7 +9,6 @@ import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.loadAvatar -import com.keylesspalace.tusky.util.visible class AccountViewHolder( private val binding: ItemAccountBinding @@ -39,7 +39,7 @@ class AccountViewHolder( .getDimensionPixelSize(R.dimen.avatar_radius_48dp) loadAvatar(account.avatar, binding.accountAvatar, avatarRadius, animateAvatar) - binding.accountBotBadge.visible(showBotOverlay && account.bot) + binding.accountBotBadge.isVisible = (showBotOverlay && account.bot) } fun setupActionListener(listener: AccountActionListener) { diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt index 7e675de333..6cc33c479d 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt @@ -19,6 +19,7 @@ import android.graphics.Typeface import android.text.SpannableStringBuilder import android.text.Spanned import android.text.style.StyleSpan +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemFollowRequestBinding @@ -27,7 +28,6 @@ import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.unicodeWrap -import com.keylesspalace.tusky.util.visible class FollowRequestViewHolder( private val binding: ItemFollowRequestBinding, @@ -49,12 +49,12 @@ class FollowRequestViewHolder( setSpan(StyleSpan(Typeface.BOLD), 0, wrappedName.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) }.emojify(account.emojis, itemView, animateEmojis) } - binding.notificationTextView.visible(showHeader) + binding.notificationTextView.isVisible = showHeader val formattedUsername = itemView.context.getString(R.string.post_username_format, account.username) binding.usernameTextView.text = formattedUsername val avatarRadius = binding.avatar.context.resources.getDimensionPixelSize(R.dimen.avatar_radius_48dp) loadAvatar(account.avatar, binding.avatar, avatarRadius, animateAvatar) - binding.avatarBadge.visible(showBotOverlay && account.bot) + binding.avatarBadge.isVisible = (showBotOverlay && account.bot) } fun setupActionListener(listener: AccountActionListener, accountId: String) { diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/PollAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/PollAdapter.kt index 596c9432d5..2e893ce5cd 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/PollAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/PollAdapter.kt @@ -18,13 +18,13 @@ package com.keylesspalace.tusky.adapter import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemPollBinding import com.keylesspalace.tusky.entity.Emoji import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.emojify -import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewdata.PollOptionViewData import com.keylesspalace.tusky.viewdata.buildDescription import com.keylesspalace.tusky.viewdata.calculatePercent @@ -82,9 +82,9 @@ class PollAdapter : RecyclerView.Adapter>() { val radioButton = holder.binding.statusPollRadioButton val checkBox = holder.binding.statusPollCheckbox - resultTextView.visible(mode == RESULT) - radioButton.visible(mode == SINGLE) - checkBox.visible(mode == MULTIPLE) + resultTextView.isVisible = (mode == RESULT) + radioButton.isVisible = (mode == SINGLE) + checkBox.isVisible = (mode == MULTIPLE) radioButton.isEnabled = enabled checkBox.isEnabled = enabled @@ -92,8 +92,9 @@ class PollAdapter : RecyclerView.Adapter>() { when (mode) { RESULT -> { val percent = calculatePercent(option.votesCount, votersCount, voteCount) - resultTextView.text = buildDescription(option.title, percent, option.voted, resultTextView.context) - .emojify(emojis, resultTextView, animateEmojis) + resultTextView.text = + buildDescription(option.title, percent, option.voted, resultTextView.context) + .emojify(emojis, resultTextView, animateEmojis) val level = percent * 100 val optionColor = if (option.voted) { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt index 3165e89bb6..3aec36baef 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt @@ -39,6 +39,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat.Type.systemBars +import androidx.core.view.isInvisible import androidx.core.view.isVisible import androidx.core.view.updatePadding import androidx.preference.PreferenceManager @@ -79,14 +80,12 @@ import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.getDomain - import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.reduceSwipeSensitivity import com.keylesspalace.tusky.util.setClickableText import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.view.showMuteAccountDialog import dagger.android.DispatchingAndroidInjector import dagger.android.HasAndroidInjector @@ -359,7 +358,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI binding.accountAvatarImageView.scaleX = scaledAvatarSize binding.accountAvatarImageView.scaleY = scaledAvatarSize - binding.accountAvatarImageView.visible(scaledAvatarSize > 0) + binding.accountAvatarImageView.isVisible = (scaledAvatarSize > 0) val transparencyPercent = (abs(verticalOffset) / titleVisibleHeight.toFloat()).coerceAtMost(1f) @@ -407,7 +406,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI } } viewModel.noteSaved.observe(this) { - binding.saveNoteInfo.visible(it, View.INVISIBLE) + binding.saveNoteInfo.isInvisible = !it } // "Post failed" dialog should display in this activity @@ -451,15 +450,16 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI } } - val emojifiedNote = account.note.parseAsMastodonHtml().emojify(account.emojis, binding.accountNoteTextView, animateEmojis) + val emojifiedNote = account.note.parseAsMastodonHtml() + .emojify(account.emojis, binding.accountNoteTextView, animateEmojis) setClickableText(binding.accountNoteTextView, emojifiedNote, emptyList(), null, this) accountFieldAdapter.fields = account.fields ?: emptyList() accountFieldAdapter.emojis = account.emojis ?: emptyList() accountFieldAdapter.notifyDataSetChanged() - binding.accountLockedImageView.visible(account.locked) - binding.accountBadgeTextView.visible(account.bot) + binding.accountLockedImageView.isVisible = account.locked + binding.accountBadgeTextView.isVisible = account.bot updateAccountAvatar() updateToolbar() @@ -628,7 +628,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI val preferences = PreferenceManager.getDefaultSharedPreferences(this) val wellbeingEnabled = preferences.getBoolean(PrefKeys.WELLBEING_HIDE_STATS_PROFILE, false) - binding.accountFollowsYouTextView.visible(relation.followedBy && !wellbeingEnabled) + binding.accountFollowsYouTextView.isVisible = (relation.followedBy && !wellbeingEnabled) // because subscribing is Pleroma extension, enable it __only__ when we have non-null subscribing field // it's also now supported in Mastodon 3.3.0rc but called notifying and use different API call @@ -648,7 +648,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI // remove the listener so it doesn't fire on non-user changes binding.accountNoteTextInputLayout.editText?.removeTextChangedListener(noteWatcher) - binding.accountNoteTextInputLayout.visible(relation.note != null) + binding.accountNoteTextInputLayout.isVisible = (relation.note != null) binding.accountNoteTextInputLayout.editText?.setText(relation.note) binding.accountNoteTextInputLayout.editText?.addTextChangedListener(noteWatcher) @@ -720,7 +720,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI binding.accountMuteButton.isVisible = false } else { binding.accountFloatingActionButton.show() - binding.accountMuteButton.visible(muting) + binding.accountMuteButton.isVisible = (muting) updateMuteButton() } } else { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt index 2b85693253..2aa2279951 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/list/ListsForAccountFragment.kt @@ -35,9 +35,7 @@ import com.keylesspalace.tusky.databinding.ItemAddOrRemoveFromListBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.BindingHolder - import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import java.io.IOException @@ -183,13 +181,13 @@ class ListsForAccountFragment : DialogFragment(), Injectable { val item = getItem(position) holder.binding.listNameView.text = item.list.title holder.binding.addButton.apply { - visible(!item.includesAccount) + isVisible = !item.includesAccount setOnClickListener { viewModel.addAccountToList(item.list.id) } } holder.binding.removeButton.apply { - visible(item.includesAccount) + isVisible = item.includesAccount setOnClickListener { viewModel.removeAccountFromList(item.list.id) } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/BlocksAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/BlocksAdapter.kt index f769af344f..f6faae0814 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/BlocksAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/BlocksAdapter.kt @@ -17,13 +17,13 @@ package com.keylesspalace.tusky.components.accountlist.adapter import android.view.LayoutInflater import android.view.ViewGroup +import androidx.core.view.isVisible import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemBlockedUserBinding import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.loadAvatar -import com.keylesspalace.tusky.util.visible /** Displays a list of blocked accounts. */ class BlocksAdapter( @@ -56,7 +56,7 @@ class BlocksAdapter( val avatarRadius = context.resources.getDimensionPixelSize(R.dimen.avatar_radius_48dp) loadAvatar(account.avatar, binding.blockedUserAvatar, avatarRadius, animateAvatar) - binding.blockedUserBotBadge.visible(showBotOverlay && account.bot) + binding.blockedUserBotBadge.isVisible = (showBotOverlay && account.bot) binding.blockedUserUnblock.setOnClickListener { accountActionListener.onBlock(false, account.id, position) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/MutesAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/MutesAdapter.kt index 288d133945..87d99fe873 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/MutesAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/MutesAdapter.kt @@ -18,13 +18,13 @@ package com.keylesspalace.tusky.components.accountlist.adapter import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.view.ViewCompat +import androidx.core.view.isVisible import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemMutedUserBinding import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.loadAvatar -import com.keylesspalace.tusky.util.visible /** Displays a list of muted accounts with mute/unmute account button and mute/unmute notifications switch */ class MutesAdapter( @@ -62,7 +62,7 @@ class MutesAdapter( val avatarRadius = context.resources.getDimensionPixelSize(R.dimen.avatar_radius_48dp) loadAvatar(account.avatar, binding.mutedUserAvatar, avatarRadius, animateAvatar) - binding.mutedUserBotBadge.visible(showBotOverlay && account.bot) + binding.mutedUserBotBadge.isVisible = (showBotOverlay && account.bot) val unmuteString = context.getString(R.string.action_unmute_desc, formattedUsername) binding.mutedUserUnmute.contentDescription = unmuteString diff --git a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt index 8f30c5e49f..eedf31744e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt @@ -21,6 +21,7 @@ import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.core.view.size import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide @@ -34,7 +35,6 @@ import com.keylesspalace.tusky.util.EmojiSpan import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.setClickableText -import com.keylesspalace.tusky.util.visible import java.lang.ref.WeakReference interface AnnouncementActionListener : LinkListener { @@ -75,7 +75,7 @@ class AnnouncementAdapter( } // hide button if announcement badge limit is already reached - addReactionChip.visible(item.reactions.size < 8) + addReactionChip.isVisible = (item.reactions.size < 8) item.reactions.forEachIndexed { i, reaction -> ( 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 61f815861f..7a1773d08e 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 @@ -94,7 +94,6 @@ import com.keylesspalace.tusky.util.afterTextChanged import com.keylesspalace.tusky.util.getInitialLanguages import com.keylesspalace.tusky.util.getLocaleList import com.keylesspalace.tusky.util.getMediaSize - import com.keylesspalace.tusky.util.highlightSpans import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.modernLanguageCode @@ -102,7 +101,6 @@ import com.keylesspalace.tusky.util.onTextChanged import com.keylesspalace.tusky.util.setDrawableTint import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial import com.mikepenz.iconics.utils.colorInt @@ -434,14 +432,14 @@ class ComposeActivity : viewModel.media.collect { media -> mediaAdapter.submitList(media) - binding.composeMediaPreviewBar.visible(media.isNotEmpty()) + binding.composeMediaPreviewBar.isVisible = media.isNotEmpty() updateSensitiveMediaToggle(viewModel.markMediaAsSensitive.value, viewModel.showContentWarning.value) } } lifecycleScope.launch { viewModel.poll.collect { poll -> - binding.pollPreview.visible(poll != null) + binding.pollPreview.isVisible = (poll != null) poll?.let(binding.pollPreview::setPoll) } } @@ -515,7 +513,8 @@ class ComposeActivity : val pollIcon = IconicsDrawable(this, GoogleMaterial.Icon.gmd_poll).apply { colorInt = textColor; sizeDp = 18 } binding.addPollTextActionTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(pollIcon, null, null, null) - binding.actionPhotoTake.visible(Intent(MediaStore.ACTION_IMAGE_CAPTURE).resolveActivity(packageManager) != null) + binding.actionPhotoTake.isVisible = + (Intent(MediaStore.ACTION_IMAGE_CAPTURE).resolveActivity(packageManager) != null) binding.actionPhotoTake.setOnClickListener { initiateCameraApp() } binding.actionPhotoPick.setOnClickListener { onMediaPick() } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeAutoCompleteAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeAutoCompleteAdapter.kt index e825798cf4..c589eda426 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeAutoCompleteAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeAutoCompleteAdapter.kt @@ -22,6 +22,7 @@ import android.widget.BaseAdapter import android.widget.Filter import android.widget.Filterable import androidx.annotation.WorkerThread +import androidx.core.view.isVisible import com.bumptech.glide.Glide import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemAutocompleteAccountBinding @@ -31,7 +32,6 @@ import com.keylesspalace.tusky.entity.Emoji import com.keylesspalace.tusky.entity.TimelineAccount import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.loadAvatar -import com.keylesspalace.tusky.util.visible class ComposeAutoCompleteAdapter( private val autocompletionProvider: AutocompletionProvider, @@ -115,7 +115,7 @@ class ComposeAutoCompleteAdapter( avatarRadius, animateAvatar ) - binding.avatarBadge.visible(showBotBadge && account.bot) + binding.avatarBadge.isVisible = (showBotBadge && account.bot) } is ItemAutocompleteHashtagBinding -> { val result = getItem(position) as AutocompleteResult.HashtagResult diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/AddPollOptionsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/AddPollOptionsAdapter.kt index 3640ffa975..b1ac7d250d 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/AddPollOptionsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/AddPollOptionsAdapter.kt @@ -17,14 +17,13 @@ package com.keylesspalace.tusky.components.compose.dialog import android.text.InputFilter import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup +import androidx.core.view.isInvisible import androidx.recyclerview.widget.RecyclerView import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemAddPollOptionBinding import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.onTextChanged -import com.keylesspalace.tusky.util.visible class AddPollOptionsAdapter( private var options: MutableList, @@ -64,7 +63,7 @@ class AddPollOptionsAdapter( holder.binding.optionTextInputLayout.hint = holder.binding.root.context.getString(R.string.poll_new_choice_hint, position + 1) - holder.binding.deleteButton.visible(position > 1, View.INVISIBLE) + holder.binding.deleteButton.isInvisible = (position <= 1) holder.binding.deleteButton.setOnClickListener { holder.binding.optionEditText.clearFocus() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationLoadStateAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationLoadStateAdapter.kt index 7ff4daa741..4d15aff632 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationLoadStateAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationLoadStateAdapter.kt @@ -17,11 +17,11 @@ package com.keylesspalace.tusky.components.conversation import android.view.LayoutInflater import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.paging.LoadState import androidx.paging.LoadStateAdapter import com.keylesspalace.tusky.databinding.ItemNetworkStateBinding import com.keylesspalace.tusky.util.BindingHolder -import com.keylesspalace.tusky.util.visible class ConversationLoadStateAdapter( private val retryCallback: () -> Unit @@ -29,14 +29,14 @@ class ConversationLoadStateAdapter( override fun onBindViewHolder(holder: BindingHolder, loadState: LoadState) { val binding = holder.binding - binding.progressBar.visible(loadState == LoadState.Loading) - binding.retryButton.visible(loadState is LoadState.Error) + binding.progressBar.isVisible = (loadState == LoadState.Loading) + binding.retryButton.isVisible = (loadState is LoadState.Error) val msg = if (loadState is LoadState.Error) { loadState.error.message } else { null } - binding.errorMsg.visible(msg != null) + binding.errorMsg.isVisible = (msg != null) binding.errorMsg.text = msg binding.retryButton.setOnClickListener { retryCallback() diff --git a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsActivity.kt index 6d9a2aa16c..48d1823a40 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsActivity.kt @@ -22,6 +22,7 @@ import android.util.Log import android.widget.LinearLayout import android.widget.Toast import androidx.activity.viewModels +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager @@ -36,7 +37,6 @@ import com.keylesspalace.tusky.db.DraftEntity import com.keylesspalace.tusky.db.DraftsAlert import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.parseAsMastodonHtml -import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import retrofit2.HttpException @@ -85,7 +85,7 @@ class DraftsActivity : BaseActivity(), DraftActionListener { } adapter.addLoadStateListener { - binding.draftsErrorMessageView.visible(adapter.itemCount == 0) + binding.draftsErrorMessageView.isVisible = (adapter.itemCount == 0) } // If a failed post is saved to drafts while this activity is up, do nothing; the user is already in the drafts view. diff --git a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt index 5fd4e2d138..039d52c35b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/drafts/DraftsAdapter.kt @@ -26,8 +26,6 @@ import com.keylesspalace.tusky.databinding.ItemDraftBinding import com.keylesspalace.tusky.db.DraftEntity import com.keylesspalace.tusky.util.BindingHolder -import com.keylesspalace.tusky.util.visible - interface DraftActionListener { fun onOpenDraft(draft: DraftEntity) fun onDeleteDraft(draft: DraftEntity) @@ -71,13 +69,13 @@ class DraftsAdapter( holder.binding.deleteButton.setOnClickListener { listener.onDeleteDraft(draft) } - holder.binding.draftSendingInfo.visible(draft.failedToSend) + holder.binding.draftSendingInfo.isVisible = draft.failedToSend - holder.binding.contentWarning.visible(!draft.contentWarning.isNullOrEmpty()) + holder.binding.contentWarning.isVisible = !draft.contentWarning.isNullOrEmpty() holder.binding.contentWarning.text = draft.contentWarning holder.binding.content.text = draft.content - holder.binding.draftMediaPreview.visible(draft.attachments.isNotEmpty()) + holder.binding.draftMediaPreview.isVisible = draft.attachments.isNotEmpty() (holder.binding.draftMediaPreview.adapter as DraftMediaAdapter).submitList(draft.attachments) if (draft.poll != null) { diff --git a/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt index 772e54135a..c989bd73ac 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsActivity.kt @@ -26,9 +26,7 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.HashtagActionListener import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.settings.PrefKeys - import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import java.io.IOException @@ -102,7 +100,8 @@ class FollowedTagsActivity : private fun setupAdapter(): FollowedTagsAdapter { return FollowedTagsAdapter(this, viewModel).apply { addLoadStateListener { loadState -> - binding.followedTagsProgressBar.visible(loadState.refresh == LoadState.Loading && itemCount == 0) + binding.followedTagsProgressBar.isVisible = + (loadState.refresh == LoadState.Loading && itemCount == 0) if (loadState.refresh is LoadState.Error) { binding.followedTagsView.isVisible = false diff --git a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt index cd25a28918..16c9ad2e81 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginWebViewActivity.kt @@ -43,7 +43,6 @@ import com.keylesspalace.tusky.databinding.ActivityLoginWebviewBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize import javax.inject.Inject @@ -196,7 +195,7 @@ class LoginWebViewActivity : BaseActivity(), Injectable { lifecycleScope.launch { viewModel.instanceRules.collect { instanceRules -> - binding.loginRules.visible(instanceRules.isNotEmpty()) + binding.loginRules.isVisible = instanceRules.isNotEmpty() binding.loginRules.setOnClickListener { AlertDialog.Builder(this@LoginWebViewActivity) .setTitle(getString(R.string.instance_rule_title, data.domain)) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportStatusesFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportStatusesFragment.kt index 7210fbefc4..d2530b282b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportStatusesFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportStatusesFragment.kt @@ -19,6 +19,7 @@ import android.os.Bundle import android.view.View import androidx.core.app.ActivityOptionsCompat import androidx.core.view.ViewCompat +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope @@ -46,7 +47,6 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.CardViewMode import com.keylesspalace.tusky.util.StatusDisplayOptions import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewdata.AttachmentViewData import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @@ -140,9 +140,10 @@ class ReportStatusesFragment : Fragment(R.layout.fragment_report_statuses), Inje showError() } - binding.progressBarBottom.visible(loadState.append == LoadState.Loading) - binding.progressBarTop.visible(loadState.prepend == LoadState.Loading) - binding.progressBarLoading.visible(loadState.refresh == LoadState.Loading && !binding.swipeRefreshLayout.isRefreshing) + binding.progressBarBottom.isVisible = (loadState.append == LoadState.Loading) + binding.progressBarTop.isVisible = (loadState.prepend == LoadState.Loading) + binding.progressBarLoading.isVisible = + (loadState.refresh == LoadState.Loading && !binding.swipeRefreshLayout.isRefreshing) if (loadState.refresh != LoadState.Loading) { binding.swipeRefreshLayout.isRefreshing = false diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchFragment.kt index 3fe818cb99..dcd685b33d 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchFragment.kt @@ -2,6 +2,7 @@ package com.keylesspalace.tusky.components.search.fragments import android.os.Bundle import android.view.View +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope @@ -24,7 +25,6 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.util.viewBinding -import com.keylesspalace.tusky.util.visible import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @@ -81,17 +81,20 @@ abstract class SearchFragment : val isNewSearch = currentQuery != viewModel.currentQuery - binding.searchProgressBar.visible(loadState.refresh == LoadState.Loading && isNewSearch && !binding.swipeRefreshLayout.isRefreshing) - binding.searchRecyclerView.visible(loadState.refresh is LoadState.NotLoading || !isNewSearch || binding.swipeRefreshLayout.isRefreshing) + binding.searchProgressBar.isVisible = + (loadState.refresh == LoadState.Loading && isNewSearch && !binding.swipeRefreshLayout.isRefreshing) + binding.searchRecyclerView.isVisible = + (loadState.refresh is LoadState.NotLoading || !isNewSearch || binding.swipeRefreshLayout.isRefreshing) if (loadState.refresh != LoadState.Loading) { binding.swipeRefreshLayout.isRefreshing = false currentQuery = viewModel.currentQuery } - binding.progressBarBottom.visible(loadState.append == LoadState.Loading) + binding.progressBarBottom.isVisible = (loadState.append == LoadState.Loading) - binding.searchNoResultsText.visible(loadState.refresh is LoadState.NotLoading && adapter.itemCount == 0 && viewModel.currentQuery.isNotEmpty()) + binding.searchNoResultsText.isVisible = + (loadState.refresh is LoadState.NotLoading && adapter.itemCount == 0 && viewModel.currentQuery.isNotEmpty()) } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt index 5b9e19231d..4d39dd58b6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt @@ -28,7 +28,6 @@ import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.setClickableText import com.keylesspalace.tusky.util.unicodeWrap -import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewdata.toViewData class ViewEditsAdapter( @@ -178,7 +177,7 @@ class ViewEditsAdapter( } } } - binding.statusEditMediaSensitivity.visible(edit.sensitive) + binding.statusEditMediaSensitivity.isVisible = edit.sensitive } } diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt index a803582e7e..700de8f88a 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewImageFragment.kt @@ -36,7 +36,6 @@ import com.github.chrisbanes.photoview.PhotoViewAttacher import com.keylesspalace.tusky.ViewMediaActivity import com.keylesspalace.tusky.databinding.FragmentViewImageBinding import com.keylesspalace.tusky.entity.Attachment -import com.keylesspalace.tusky.util.visible import io.reactivex.rxjava3.subjects.BehaviorSubject import kotlin.math.abs @@ -74,7 +73,7 @@ class ViewImageFragment : ViewMediaFragment() { ) { binding.photoView.transitionName = url binding.mediaDescription.text = description - binding.captionSheet.visible(showingDescription) + binding.captionSheet.isVisible = (showingDescription) startedTransition = false loadImageFromNetwork(url, previewUrl, binding.photoView) @@ -184,7 +183,7 @@ class ViewImageFragment : ViewMediaFragment() { .setListener(object : AnimatorListenerAdapter() { override fun onAnimationEnd(animation: Animator) { if (_binding != null) { - binding.captionSheet.visible(isDescriptionVisible) + binding.captionSheet.isVisible = isDescriptionVisible } animation.removeListener(this) } diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt index a5ea6ee886..b917b433be 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/ViewVideoFragment.kt @@ -35,7 +35,6 @@ import androidx.core.view.isVisible import com.keylesspalace.tusky.ViewMediaActivity import com.keylesspalace.tusky.databinding.FragmentViewVideoBinding import com.keylesspalace.tusky.entity.Attachment -import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.view.ExposedPlayPauseVideoView import kotlin.math.abs @@ -98,7 +97,7 @@ class ViewVideoFragment : ViewMediaFragment() { showingDescription: Boolean ) { binding.mediaDescription.text = description - binding.mediaDescription.visible(showingDescription) + binding.mediaDescription.isVisible = showingDescription binding.mediaDescription.movementMethod = ScrollingMovementMethod() // Ensure the description is visible over the video @@ -260,14 +259,14 @@ class ViewVideoFragment : ViewMediaFragment() { if (isDescriptionVisible) { // If to be visible, need to make visible immediately and animate alpha binding.mediaDescription.alpha = 0.0f - binding.mediaDescription.visible(isDescriptionVisible) + binding.mediaDescription.isVisible = isDescriptionVisible } binding.mediaDescription.animate().alpha(alpha) .setListener(object : AnimatorListenerAdapter() { override fun onAnimationEnd(animation: Animator) { if (_binding != null) { - binding.mediaDescription.visible(isDescriptionVisible) + binding.mediaDescription.isVisible = isDescriptionVisible } animation.removeListener(this) } diff --git a/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt b/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt index 4ba5b41ae4..c4e3d6fe52 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/ViewExtensions.kt @@ -19,15 +19,10 @@ package com.keylesspalace.tusky.util import android.text.Editable import android.text.TextWatcher import android.util.Log -import android.view.View import android.widget.EditText import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -fun View.visible(visible: Boolean, or: Int = View.GONE) { - this.visibility = if (visible) View.VISIBLE else or -} - open class DefaultTextWatcher : TextWatcher { override fun afterTextChanged(s: Editable) { } diff --git a/app/src/main/java/com/keylesspalace/tusky/view/BackgroundMessageView.kt b/app/src/main/java/com/keylesspalace/tusky/view/BackgroundMessageView.kt index 82860f9fce..ca2f417648 100644 --- a/app/src/main/java/com/keylesspalace/tusky/view/BackgroundMessageView.kt +++ b/app/src/main/java/com/keylesspalace/tusky/view/BackgroundMessageView.kt @@ -8,9 +8,9 @@ import android.view.View import android.widget.LinearLayout import androidx.annotation.DrawableRes import androidx.annotation.StringRes +import androidx.core.view.isVisible import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ViewBackgroundMessageBinding -import com.keylesspalace.tusky.util.visible /** * This view is used for screens with downloadable content which may fail. @@ -45,6 +45,6 @@ class BackgroundMessageView @JvmOverloads constructor( binding.messageTextView.setText(messageRes) binding.imageView.setImageResource(imageRes) binding.button.setOnClickListener(clickListener) - binding.button.visible(clickListener != null) + binding.button.isVisible = (clickListener != null) } } From 239f0231b7c4f82a6b682cae6f4c2c4b0db4ca7f Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 28 Feb 2023 23:28:57 +0800 Subject: [PATCH 4/8] Fix style --- app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt | 1 - app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt | 1 - .../tusky/components/account/media/AccountMediaGridAdapter.kt | 1 - .../tusky/components/accountlist/AccountListFragment.kt | 1 - .../tusky/components/announcements/AnnouncementsActivity.kt | 1 - .../components/instancemute/fragment/InstanceListFragment.kt | 1 - .../tusky/components/report/fragments/ReportDoneFragment.kt | 1 - .../tusky/components/report/fragments/ReportNoteFragment.kt | 1 - .../tusky/components/scheduled/ScheduledStatusActivity.kt | 1 - .../keylesspalace/tusky/components/trending/TrendingFragment.kt | 1 - .../tusky/components/viewthread/ViewThreadFragment.kt | 1 - .../tusky/components/viewthread/edits/ViewEditsAdapter.kt | 1 - .../tusky/components/viewthread/edits/ViewEditsFragment.kt | 1 - 13 files changed, 13 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt b/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt index 3e6a8a71b1..82f1006026 100644 --- a/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/FiltersActivity.kt @@ -14,7 +14,6 @@ import com.keylesspalace.tusky.appstore.PreferenceChangedEvent import com.keylesspalace.tusky.databinding.ActivityFiltersBinding import com.keylesspalace.tusky.entity.Filter import com.keylesspalace.tusky.network.MastodonApi - import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.getSecondsForDurationIndex import com.keylesspalace.tusky.view.setupEditDialogForFilter diff --git a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt index a85d2fc0d2..5a1775bb22 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ListsActivity.kt @@ -45,7 +45,6 @@ import com.keylesspalace.tusky.databinding.ActivityListsBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.MastoList - import com.keylesspalace.tusky.util.onTextChanged import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewmodel.ListsViewModel diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt index c0bd4ae0cd..fdeba6a0c1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaGridAdapter.kt @@ -19,7 +19,6 @@ import com.keylesspalace.tusky.entity.Attachment import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.decodeBlurHash import com.keylesspalace.tusky.util.getFormattedDescription - import com.keylesspalace.tusky.viewdata.AttachmentViewData import java.util.Random diff --git a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt index a7c867eac6..65af215c8b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/accountlist/AccountListFragment.kt @@ -50,7 +50,6 @@ import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.HttpHeaderLink - import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EndlessOnScrollListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt index 4c38363ebc..3d80f07e02 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementsActivity.kt @@ -38,7 +38,6 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success - import com.keylesspalace.tusky.util.unsafeLazy import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EmojiPicker diff --git a/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt index ea8b1101b2..1eefa69423 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/instancemute/fragment/InstanceListFragment.kt @@ -19,7 +19,6 @@ import com.keylesspalace.tusky.databinding.FragmentInstanceListBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.util.HttpHeaderLink - import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.view.EndlessOnScrollListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt index 906292b264..87af3d0853 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportDoneFragment.kt @@ -27,7 +27,6 @@ import com.keylesspalace.tusky.databinding.FragmentReportDoneBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.Loading - import com.keylesspalace.tusky.util.viewBinding import javax.inject.Inject diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt index 0cf9ca394a..a4f98fd287 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/fragments/ReportNoteFragment.kt @@ -31,7 +31,6 @@ import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.util.Error import com.keylesspalace.tusky.util.Loading import com.keylesspalace.tusky.util.Success - import com.keylesspalace.tusky.util.viewBinding import java.io.IOException import javax.inject.Inject diff --git a/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt index 4ae9c86105..139013229c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt @@ -35,7 +35,6 @@ import com.keylesspalace.tusky.databinding.ActivityScheduledStatusBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.entity.ScheduledStatus - import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt index b4f6dcac1a..454988c20c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt @@ -48,7 +48,6 @@ import com.keylesspalace.tusky.interfaces.ActionButtonActivity import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.interfaces.RefreshableFragment import com.keylesspalace.tusky.interfaces.ReselectableFragment - import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.TrendingViewData import kotlinx.coroutines.flow.collectLatest diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt index 6337f6b7fb..4dbdd4291a 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/ViewThreadFragment.kt @@ -47,7 +47,6 @@ import com.keylesspalace.tusky.settings.PrefKeys import com.keylesspalace.tusky.util.CardViewMode import com.keylesspalace.tusky.util.ListStatusAccessibilityDelegate import com.keylesspalace.tusky.util.StatusDisplayOptions - import com.keylesspalace.tusky.util.openLink import com.keylesspalace.tusky.util.viewBinding import com.keylesspalace.tusky.viewdata.AttachmentViewData.Companion.list diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt index 4d39dd58b6..f0c40e52f6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt @@ -23,7 +23,6 @@ import com.keylesspalace.tusky.util.BindingHolder import com.keylesspalace.tusky.util.aspectRatios import com.keylesspalace.tusky.util.decodeBlurHash import com.keylesspalace.tusky.util.emojify - import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.setClickableText diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt index 8d0bfa7d96..4e7989f388 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt @@ -36,7 +36,6 @@ import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.settings.PrefKeys - import com.keylesspalace.tusky.util.viewBinding import kotlinx.coroutines.launch import java.io.IOException From aeb6b33c8a5d4e1703a0885f173787b2e2c2e9ba Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 1 Mar 2023 16:23:35 +0800 Subject: [PATCH 5/8] Replace `visibility = View.VISIBLE` --- .../keylesspalace/tusky/EditProfileActivity.kt | 2 +- .../com/keylesspalace/tusky/ViewMediaActivity.kt | 3 ++- .../tusky/components/account/AccountActivity.kt | 2 +- .../tusky/components/login/LoginActivity.kt | 5 +++-- .../keylesspalace/tusky/util/StatusViewHelper.kt | 15 ++++++++------- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt index 0c92a39700..d5f982f34f 100644 --- a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt @@ -188,7 +188,7 @@ class EditProfileActivity : BaseActivity(), Injectable { finish() } is Loading -> { - binding.saveProgressBar.visibility = View.VISIBLE + binding.saveProgressBar.isVisible = true } is Error -> { onSaveFailure(it.errorMessage) diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt index 8c7dff5948..829c9997a1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt @@ -39,6 +39,7 @@ import android.webkit.MimeTypeMap import android.widget.Toast import androidx.core.app.ShareCompat import androidx.core.content.FileProvider +import androidx.core.view.isVisible import androidx.fragment.app.FragmentActivity import androidx.lifecycle.Lifecycle import androidx.viewpager2.adapter.FragmentStateAdapter @@ -275,7 +276,7 @@ class ViewMediaActivity : BaseActivity(), ViewImageFragment.PhotoActionsListener private fun shareImage(directory: File, url: String) { isCreating = true - binding.progressBarShare.visibility = View.VISIBLE + binding.progressBarShare.isVisible = true invalidateOptionsMenu() val file = File(directory, getTemporaryMediaFilename("png")) val futureTask: FutureTarget = diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt index 3aec36baef..b8f7c24d11 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt @@ -482,7 +482,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI R.string.account_date_joined, SimpleDateFormat("MMMM, yyyy", Locale.getDefault()).format(account.createdAt) ) - binding.accountDateJoined.visibility = View.VISIBLE + binding.accountDateJoined.isVisible = true } catch (e: ParseException) { binding.accountDateJoined.visibility = View.GONE } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt index 443395be65..cef8d680e6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt @@ -26,6 +26,7 @@ import android.view.View import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.core.net.toUri +import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import at.connyduck.calladapter.networkresult.fold import com.bumptech.glide.Glide @@ -322,11 +323,11 @@ class LoginActivity : BaseActivity(), Injectable { private fun setLoading(loadingState: Boolean) { if (loadingState) { - binding.loginLoadingLayout.visibility = View.VISIBLE + binding.loginLoadingLayout.isVisible = true binding.loginInputLayout.visibility = View.GONE } else { binding.loginLoadingLayout.visibility = View.GONE - binding.loginInputLayout.visibility = View.VISIBLE + binding.loginInputLayout.isVisible = true binding.loginButton.isEnabled = true } } diff --git a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt index 7594e8ed6f..2312c09467 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt @@ -24,6 +24,7 @@ import android.view.View import android.widget.ImageView import android.widget.TextView import androidx.annotation.DrawableRes +import androidx.core.view.isVisible import com.bumptech.glide.Glide import com.google.android.material.color.MaterialColors import com.keylesspalace.tusky.R @@ -102,7 +103,7 @@ class StatusViewHelper(private val itemView: View) { mediaPreviews[i].contentDescription = description } - mediaPreviews[i].visibility = View.VISIBLE + mediaPreviews[i].isVisible = true if (TextUtils.isEmpty(previewUrl)) { Glide.with(mediaPreviews[i]) @@ -149,7 +150,7 @@ class StatusViewHelper(private val itemView: View) { if (showingContent && (type === Attachment.Type.VIDEO) or (type === Attachment.Type.GIFV) ) { - mediaOverlays[i].visibility = View.VISIBLE + mediaOverlays[i].isVisible = true } else { mediaOverlays[i].visibility = View.GONE } @@ -183,7 +184,7 @@ class StatusViewHelper(private val itemView: View) { sensitiveMediaShow.setOnClickListener { v -> previewListener.onContentHiddenChange(false) v.visibility = View.GONE - sensitiveMediaWarning.visibility = View.VISIBLE + sensitiveMediaWarning.isVisible = true setMediasPreview( statusDisplayOptions, attachments, sensitive, previewListener, false, mediaPreviewHeight @@ -192,7 +193,7 @@ class StatusViewHelper(private val itemView: View) { sensitiveMediaWarning.setOnClickListener { v -> previewListener.onContentHiddenChange(true) v.visibility = View.GONE - sensitiveMediaShow.visibility = View.VISIBLE + sensitiveMediaShow.isVisible = true setMediasPreview( statusDisplayOptions, attachments, sensitive, previewListener, true, mediaPreviewHeight @@ -216,7 +217,7 @@ class StatusViewHelper(private val itemView: View) { mediaLabel.visibility = View.GONE return } - mediaLabel.visibility = View.VISIBLE + mediaLabel.isVisible = true // Set the label's text. val context = mediaLabel.context @@ -273,7 +274,7 @@ class StatusViewHelper(private val itemView: View) { setupPollResult(poll, emojis, pollResults, statusDisplayOptions.animateEmojis) - pollDescription.visibility = View.VISIBLE + pollDescription.isVisible = true pollDescription.text = getPollInfoText(timestamp, poll, pollDescription, statusDisplayOptions.useAbsoluteTime) } } @@ -310,7 +311,7 @@ class StatusViewHelper(private val itemView: View) { val pollOptionText = buildDescription(options[i].title, percent, options[i].voted, pollResults[i].context) pollResults[i].text = pollOptionText.emojify(emojis, pollResults[i], animateEmojis) - pollResults[i].visibility = View.VISIBLE + pollResults[i].isVisible = true val level = percent * 100 val optionColor = if (options[i].voted) { From 268a99f0cdb3eb944d51a31f5dff978570b656a5 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 1 Mar 2023 16:24:58 +0800 Subject: [PATCH 6/8] Replace `visibility = View.GONE` --- .../tusky/EditProfileActivity.kt | 2 +- .../keylesspalace/tusky/ViewMediaActivity.kt | 4 +-- .../tusky/adapter/AccountSelectionAdapter.kt | 3 +- .../components/account/AccountActivity.kt | 2 +- .../account/media/AccountMediaFragment.kt | 2 +- .../announcements/AnnouncementAdapter.kt | 2 +- .../tusky/components/login/LoginActivity.kt | 4 +-- .../components/trending/TrendingFragment.kt | 2 +- .../tusky/util/StatusViewHelper.kt | 34 +++++++++---------- 9 files changed, 28 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt index d5f982f34f..8734587c52 100644 --- a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt @@ -294,7 +294,7 @@ class EditProfileActivity : BaseActivity(), Injectable { private fun onSaveFailure(msg: String?) { val errorMsg = msg ?: getString(R.string.error_media_upload_sending) Snackbar.make(binding.avatarButton, errorMsg, Snackbar.LENGTH_LONG).show() - binding.saveProgressBar.visibility = View.GONE + binding.saveProgressBar.isVisible = false } private fun onPickFailure(throwable: Throwable?) { diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt index 829c9997a1..c71ce4f106 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt @@ -306,14 +306,14 @@ class ViewMediaActivity : BaseActivity(), ViewImageFragment.PhotoActionsListener Log.d(TAG, "Download image result: $result") isCreating = false invalidateOptionsMenu() - binding.progressBarShare.visibility = View.GONE + binding.progressBarShare.isVisible = false if (result) shareFile(file, "image/png") }, { error -> isCreating = false invalidateOptionsMenu() - binding.progressBarShare.visibility = View.GONE + binding.progressBarShare.isVisible = false Log.e(TAG, "Failed to download image", error) } ) diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/AccountSelectionAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/AccountSelectionAdapter.kt index 0b0115c2ad..53c60d5e61 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/AccountSelectionAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/AccountSelectionAdapter.kt @@ -20,6 +20,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter +import androidx.core.view.isVisible import androidx.preference.PreferenceManager import com.keylesspalace.tusky.R import com.keylesspalace.tusky.databinding.ItemAutocompleteAccountBinding @@ -44,7 +45,7 @@ class AccountSelectionAdapter(context: Context) : ArrayAdapter(co binding.username.text = account.fullName binding.displayName.text = account.displayName.emojify(account.emojis, binding.displayName, animateEmojis) - binding.avatarBadge.visibility = View.GONE // We never want to display the bot badge here + binding.avatarBadge.isVisible = false // We never want to display the bot badge here val avatarRadius = context.resources.getDimensionPixelSize(R.dimen.avatar_radius_42dp) val animateAvatar = pm.getBoolean("animateGifAvatars", false) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt index b8f7c24d11..a62d7e5e8f 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt @@ -484,7 +484,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI ) binding.accountDateJoined.isVisible = true } catch (e: ParseException) { - binding.accountDateJoined.visibility = View.GONE + binding.accountDateJoined.isVisible = false } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt index 89760cd6fc..eeb5834e70 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt @@ -95,7 +95,7 @@ class AccountMediaFragment : binding.swipeRefreshLayout.isEnabled = false - binding.statusView.visibility = View.GONE + binding.statusView.isVisible = false viewLifecycleOwner.lifecycleScope.launch { viewModel.media.collectLatest { pagingData -> diff --git a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt index eedf31744e..ce30f0184d 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt @@ -70,7 +70,7 @@ class AnnouncementAdapter( if (wellbeingEnabled) { // Since reactions are not visible in wellbeing mode, // we shouldn't be able to add any ourselves. - addReactionChip.visibility = View.GONE + addReactionChip.isVisible = false return } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt index cef8d680e6..c78ff3a6ad 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt @@ -324,9 +324,9 @@ class LoginActivity : BaseActivity(), Injectable { private fun setLoading(loadingState: Boolean) { if (loadingState) { binding.loginLoadingLayout.isVisible = true - binding.loginInputLayout.visibility = View.GONE + binding.loginInputLayout.isVisible = false } else { - binding.loginLoadingLayout.visibility = View.GONE + binding.loginLoadingLayout.isVisible = false binding.loginInputLayout.isVisible = true binding.loginButton.isEnabled = true } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt index 454988c20c..733d6284b0 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/trending/TrendingFragment.kt @@ -139,7 +139,7 @@ class TrendingFragment : } if (activity is ActionButtonActivity) { - (activity as ActionButtonActivity).actionButton?.visibility = View.GONE + (activity as ActionButtonActivity).actionButton?.isVisible = false } } diff --git a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt index 2312c09467..7bc8984ccc 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt @@ -75,16 +75,16 @@ class StatusViewHelper(private val itemView: View) { val mediaLabel = itemView.findViewById(R.id.status_media_label) if (statusDisplayOptions.mediaPreviewEnabled) { // Hide the unused label. - mediaLabel.visibility = View.GONE + mediaLabel.isVisible = false } else { setMediaLabel(mediaLabel, attachments, sensitive, previewListener) // Hide all unused views. - mediaPreviews[0].visibility = View.GONE - mediaPreviews[1].visibility = View.GONE - mediaPreviews[2].visibility = View.GONE - mediaPreviews[3].visibility = View.GONE - sensitiveMediaWarning.visibility = View.GONE - sensitiveMediaShow.visibility = View.GONE + mediaPreviews[0].isVisible = false + mediaPreviews[1].isVisible = false + mediaPreviews[2].isVisible = false + mediaPreviews[3].isVisible = false + sensitiveMediaWarning.isVisible = false + sensitiveMediaShow.isVisible = false return } @@ -152,7 +152,7 @@ class StatusViewHelper(private val itemView: View) { ) { mediaOverlays[i].isVisible = true } else { - mediaOverlays[i].visibility = View.GONE + mediaOverlays[i].isVisible = false } mediaPreviews[i].setOnClickListener { v -> @@ -170,8 +170,8 @@ class StatusViewHelper(private val itemView: View) { } } if (attachments.isEmpty()) { - sensitiveMediaWarning.visibility = View.GONE - sensitiveMediaShow.visibility = View.GONE + sensitiveMediaWarning.isVisible = false + sensitiveMediaShow.isVisible = false } else { sensitiveMediaWarning.text = if (sensitive) { context.getString(R.string.post_sensitive_media_title) @@ -183,7 +183,7 @@ class StatusViewHelper(private val itemView: View) { sensitiveMediaShow.visibility = if (showingContent) View.VISIBLE else View.GONE sensitiveMediaShow.setOnClickListener { v -> previewListener.onContentHiddenChange(false) - v.visibility = View.GONE + v.isVisible = false sensitiveMediaWarning.isVisible = true setMediasPreview( statusDisplayOptions, attachments, sensitive, previewListener, @@ -192,7 +192,7 @@ class StatusViewHelper(private val itemView: View) { } sensitiveMediaWarning.setOnClickListener { v -> previewListener.onContentHiddenChange(true) - v.visibility = View.GONE + v.isVisible = false sensitiveMediaShow.isVisible = true setMediasPreview( statusDisplayOptions, attachments, sensitive, previewListener, @@ -203,7 +203,7 @@ class StatusViewHelper(private val itemView: View) { // Hide any of the placeholder previews beyond the ones set. for (i in n until Status.MAX_MEDIA_ATTACHMENTS) { - mediaPreviews[i].visibility = View.GONE + mediaPreviews[i].isVisible = false } } @@ -214,7 +214,7 @@ class StatusViewHelper(private val itemView: View) { listener: MediaPreviewListener ) { if (attachments.isEmpty()) { - mediaLabel.visibility = View.GONE + mediaLabel.isVisible = false return } mediaLabel.isVisible = true @@ -266,9 +266,9 @@ class StatusViewHelper(private val itemView: View) { if (poll == null) { for (pollResult in pollResults) { - pollResult.visibility = View.GONE + pollResult.isVisible = false } - pollDescription.visibility = View.GONE + pollDescription.isVisible = false } else { val timestamp = System.currentTimeMillis() @@ -323,7 +323,7 @@ class StatusViewHelper(private val itemView: View) { pollResults[i].background.level = level pollResults[i].background.setTint(pollResults[i].context.getColor(optionColor)) } else { - pollResults[i].visibility = View.GONE + pollResults[i].isVisible = false } } } From e3804132d7cda81dce706ba7c2d92d5235b494ad Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 1 Mar 2023 16:33:56 +0800 Subject: [PATCH 7/8] More --- .../java/com/keylesspalace/tusky/EditProfileActivity.kt | 1 - .../java/com/keylesspalace/tusky/ViewMediaActivity.kt | 5 ++--- .../tusky/components/account/AccountActivity.kt | 8 ++++---- .../tusky/components/compose/ComposeActivity.kt | 2 +- .../tusky/components/compose/view/ComposeScheduleView.kt | 5 +++-- .../keylesspalace/tusky/components/login/LoginActivity.kt | 1 - .../tusky/components/viewthread/edits/ViewEditsAdapter.kt | 3 +-- .../java/com/keylesspalace/tusky/util/StatusViewHelper.kt | 4 ++-- 8 files changed, 13 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt index 8734587c52..acb311ec63 100644 --- a/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/EditProfileActivity.kt @@ -23,7 +23,6 @@ import android.os.Bundle import android.util.Log import android.view.Menu import android.view.MenuItem -import android.view.View import android.widget.ImageView import androidx.activity.viewModels import androidx.core.view.isVisible diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt index c71ce4f106..1b23bf7837 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/ViewMediaActivity.kt @@ -178,18 +178,17 @@ class ViewMediaActivity : BaseActivity(), ViewImageFragment.PhotoActionsListener listener(isToolbarVisible) } - val visibility = if (isToolbarVisible) View.VISIBLE else View.INVISIBLE val alpha = if (isToolbarVisible) 1.0f else 0.0f if (isToolbarVisible) { // If to be visible, need to make visible immediately and animate alpha binding.toolbar.alpha = 0.0f - binding.toolbar.visibility = visibility + binding.toolbar.isVisible = isToolbarVisible } binding.toolbar.animate().alpha(alpha) .setListener(object : AnimatorListenerAdapter() { override fun onAnimationEnd(animation: Animator) { - binding.toolbar.visibility = visibility + binding.toolbar.isVisible = isToolbarVisible animation.removeListener(this) } }) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt index a62d7e5e8f..bdb696c11d 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt @@ -172,7 +172,7 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI updateButtons() binding.saveNoteInfo.isVisible = false } else { - binding.saveNoteInfo.visibility = View.INVISIBLE + binding.saveNoteInfo.isInvisible = true } } @@ -477,14 +477,14 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI private fun updateAccountJoinedDate() { loadedAccount?.let { account -> - try { + binding.accountDateJoined.isVisible = try { binding.accountDateJoined.text = resources.getString( R.string.account_date_joined, SimpleDateFormat("MMMM, yyyy", Locale.getDefault()).format(account.createdAt) ) - binding.accountDateJoined.isVisible = true + true } catch (e: ParseException) { - binding.accountDateJoined.isVisible = false + false } } } 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 7a1773d08e..9d05a6cc87 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 @@ -702,7 +702,7 @@ class ComposeActivity : break } } - binding.descriptionMissingWarningButton.visibility = if (oneMediaWithoutDescription) View.VISIBLE else View.GONE + binding.descriptionMissingWarningButton.isVisible = oneMediaWithoutDescription } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/view/ComposeScheduleView.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/view/ComposeScheduleView.kt index f2e00d3411..ce65c6c0d8 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/view/ComposeScheduleView.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/view/ComposeScheduleView.kt @@ -20,6 +20,7 @@ import android.view.LayoutInflater import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat +import androidx.core.view.isVisible import com.google.android.material.datepicker.CalendarConstraints import com.google.android.material.datepicker.DateValidatorPointForward import com.google.android.material.datepicker.MaterialDatePicker @@ -73,7 +74,7 @@ class ComposeScheduleView private fun updateScheduleUi() { if (scheduleDateTime == null) { binding.scheduledDateTime.text = "" - binding.invalidScheduleWarning.visibility = GONE + binding.invalidScheduleWarning.isVisible = false return } @@ -169,7 +170,7 @@ class ComposeScheduleView } else { true } - binding.invalidScheduleWarning.visibility = if (valid) GONE else VISIBLE + binding.invalidScheduleWarning.isVisible = !valid return valid } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt index c78ff3a6ad..59fc9afd68 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/login/LoginActivity.kt @@ -22,7 +22,6 @@ import android.os.Bundle import android.text.method.LinkMovementMethod import android.util.Log import android.view.Menu -import android.view.View import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.core.net.toUri diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt index f0c40e52f6..1a1ffe444b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt @@ -3,7 +3,6 @@ package com.keylesspalace.tusky.components.viewthread.edits import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager @@ -139,7 +138,7 @@ class ViewEditsAdapter( imageView.contentDescription = imageView.context.getString(R.string.action_view_media) } - descriptionIndicator.visibility = if (hasDescription) View.VISIBLE else View.GONE + descriptionIndicator.isVisible = hasDescription val blurhash = attachment.blurhash diff --git a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt index 7bc8984ccc..02e9c6b5c7 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt @@ -179,8 +179,8 @@ class StatusViewHelper(private val itemView: View) { context.getString(R.string.post_media_hidden_title) } - sensitiveMediaWarning.visibility = if (showingContent) View.GONE else View.VISIBLE - sensitiveMediaShow.visibility = if (showingContent) View.VISIBLE else View.GONE + sensitiveMediaWarning.isVisible = !showingContent + sensitiveMediaShow.isVisible = showingContent sensitiveMediaShow.setOnClickListener { v -> previewListener.onContentHiddenChange(false) v.isVisible = false From 2339a0ca52e9ba9cbd7fd65c3841c89d6004539f Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 1 Mar 2023 16:40:11 +0800 Subject: [PATCH 8/8] Cleanup --- .../tusky/components/report/adapter/StatusViewHolder.kt | 6 +----- .../java/com/keylesspalace/tusky/util/StatusViewHelper.kt | 7 +------ 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt index aaded5dca7..a2185209c6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/report/adapter/StatusViewHolder.kt @@ -153,11 +153,7 @@ class StatusViewHolder( } else { setClickableMentions(binding.statusContent, mentions, listener) } - if (binding.statusContent.text.isNullOrBlank()) { - binding.statusContent.isVisible = false - } else { - binding.statusContent.isVisible = true - } + binding.statusContent.isVisible = !binding.statusContent.text.isNullOrBlank() } private fun setCreatedAt(createdAt: Date?) { diff --git a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt index 02e9c6b5c7..2fb9b565e0 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt +++ b/app/src/main/java/com/keylesspalace/tusky/util/StatusViewHelper.kt @@ -147,13 +147,8 @@ class StatusViewHelper(private val itemView: View) { } val type = attachment.type - if (showingContent && + mediaOverlays[i].isVisible = showingContent && (type === Attachment.Type.VIDEO) or (type === Attachment.Type.GIFV) - ) { - mediaOverlays[i].isVisible = true - } else { - mediaOverlays[i].isVisible = false - } mediaPreviews[i].setOnClickListener { v -> previewListener.onViewMedia(v, i)