From 82d19358c7c19a590d637fe3e2440dc5b02ce668 Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Mon, 17 Jul 2023 15:44:49 +0800 Subject: [PATCH] =?UTF-8?q?revert:=20"pref(AppPreferenceUtils):=20?= =?UTF-8?q?=E5=8D=95=E4=BE=8B"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 355650b17bc28fe323598cbd3b3f3c4499e763fd. --- .../main/java/com/huanchengfly/tieba/post/App.kt | 6 +++--- .../tieba/post/activities/BaseActivity.kt | 14 +++----------- .../tieba/post/adapters/MainForumListAdapter.kt | 9 ++------- .../post/adapters/PersonalizedFeedAdapter.java | 2 +- .../tieba/post/adapters/ThreadMainPostAdapter.kt | 2 +- .../tieba/post/adapters/forum/NewForumAdapter.java | 2 +- .../post/components/dialogs/CustomThemeDialog.kt | 6 +++--- .../tieba/post/fragments/BaseFragment.kt | 2 +- .../tieba/post/fragments/MyInfoFragment.kt | 2 +- .../tieba/post/fragments/PreferencesFragment.kt | 2 +- .../post/receivers/BootCompleteSignReceiver.kt | 6 +++--- .../tieba/post/ui/common/PbContentRender.kt | 4 ++-- .../tieba/post/ui/page/forum/ForumPage.kt | 6 +++--- .../forum/threadlist/ForumThreadListViewModel.kt | 3 ++- .../tieba/post/ui/page/main/MainPage.kt | 5 +++-- .../page/main/explore/concern/ConcernViewModel.kt | 7 ++++--- .../explore/personalized/PersonalizedViewModel.kt | 5 +++-- .../tieba/post/ui/page/main/home/HomePage.kt | 9 +++++---- .../ui/page/settings/account/AccountManagePage.kt | 2 +- .../post/ui/page/threadstore/ThreadStorePage.kt | 2 +- .../huanchengfly/tieba/post/utils/AppIconUtil.kt | 3 +++ .../tieba/post/utils/AppPreferencesUtils.kt | 13 +++++-------- .../com/huanchengfly/tieba/post/utils/ImageUtil.kt | 11 ++++++----- .../tieba/post/utils/NavigationHelper.java | 10 ++++++---- .../com/huanchengfly/tieba/post/utils/OKSigner.kt | 4 ++-- .../huanchengfly/tieba/post/utils/StringUtil.kt | 4 ++-- .../com/huanchengfly/tieba/post/utils/TiebaUtil.kt | 6 +++--- 27 files changed, 71 insertions(+), 76 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/App.kt b/app/src/main/java/com/huanchengfly/tieba/post/App.kt index 7634c3d3..f1252b28 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/App.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/App.kt @@ -302,12 +302,12 @@ class App : Application(), IApp, SketchFactory { when (attrId) { R.attr.colorPrimary -> { if (ThemeUtil.THEME_CUSTOM == theme) { - val customPrimaryColorStr = appPreferences.customPrimaryColor + val customPrimaryColorStr = context.appPreferences.customPrimaryColor return if (customPrimaryColorStr != null) { Color.parseColor(customPrimaryColorStr) } else getColorByAttr(context, attrId, ThemeUtil.THEME_BLUE) } else if (ThemeUtil.isTranslucentTheme(theme)) { - val primaryColorStr = appPreferences.translucentPrimaryColor + val primaryColorStr = context.appPreferences.translucentPrimaryColor return if (primaryColorStr != null) { Color.parseColor(primaryColorStr) } else getColorByAttr(context, attrId, ThemeUtil.THEME_BLUE) @@ -363,7 +363,7 @@ class App : Application(), IApp, SketchFactory { ) ) } else { - val isPrimaryColor = appPreferences.toolbarPrimaryColor + val isPrimaryColor = context.appPreferences.toolbarPrimaryColor if (isPrimaryColor) { getColorByAttr(context, R.attr.colorPrimary, theme) } else { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/activities/BaseActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/activities/BaseActivity.kt index 5f95c003..1d07cb12 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/activities/BaseActivity.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/activities/BaseActivity.kt @@ -37,16 +37,8 @@ import com.huanchengfly.tieba.post.ui.common.theme.interfaces.ExtraRefreshable import com.huanchengfly.tieba.post.ui.common.theme.utils.ThemeUtils import com.huanchengfly.tieba.post.ui.widgets.VoicePlayerView import com.huanchengfly.tieba.post.ui.widgets.theme.TintToolbar -import com.huanchengfly.tieba.post.utils.AppPreferencesUtils -import com.huanchengfly.tieba.post.utils.DialogUtil -import com.huanchengfly.tieba.post.utils.HandleBackUtil -import com.huanchengfly.tieba.post.utils.ThemeUtil -import com.huanchengfly.tieba.post.utils.calcStatusBarColorInt -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.CoroutineStart -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.Job -import kotlinx.coroutines.launch +import com.huanchengfly.tieba.post.utils.* +import kotlinx.coroutines.* import kotlin.coroutines.CoroutineContext abstract class BaseActivity : AppCompatActivity(), ExtraRefreshable, CoroutineScope { @@ -62,7 +54,7 @@ abstract class BaseActivity : AppCompatActivity(), ExtraRefreshable, CoroutineSc private var customStatusColor = -1 private var statusBarTinted = false - val appPreferences: AppPreferencesUtils by lazy { AppPreferencesUtils } + val appPreferences: AppPreferencesUtils by lazy { AppPreferencesUtils(this) } override fun onPause() { super.onPause() diff --git a/app/src/main/java/com/huanchengfly/tieba/post/adapters/MainForumListAdapter.kt b/app/src/main/java/com/huanchengfly/tieba/post/adapters/MainForumListAdapter.kt index e11894cb..4b93767b 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/adapters/MainForumListAdapter.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/adapters/MainForumListAdapter.kt @@ -11,12 +11,7 @@ import com.huanchengfly.tieba.post.api.models.ForumRecommend import com.huanchengfly.tieba.post.components.MyViewHolder import com.huanchengfly.tieba.post.dpToPx import com.huanchengfly.tieba.post.ui.common.theme.utils.ColorStateListUtils -import com.huanchengfly.tieba.post.utils.ImageUtil -import com.huanchengfly.tieba.post.utils.ThemeUtil -import com.huanchengfly.tieba.post.utils.Util -import com.huanchengfly.tieba.post.utils.appPreferences -import com.huanchengfly.tieba.post.utils.getRadiusDrawable -import com.huanchengfly.tieba.post.utils.wrapRipple +import com.huanchengfly.tieba.post.utils.* class MainForumListAdapter( context: Context, @@ -62,7 +57,7 @@ class MainForumListAdapter( getRadiusDrawable() } ) - if (appPreferences.listItemsBackgroundIntermixed) { + if (context.appPreferences.listItemsBackgroundIntermixed) { if (position % 2 == 1) { viewHolder.itemView.backgroundTintList = ColorStateList.valueOf(Color.TRANSPARENT) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/adapters/PersonalizedFeedAdapter.java b/app/src/main/java/com/huanchengfly/tieba/post/adapters/PersonalizedFeedAdapter.java index 86921d9e..201d80bd 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/adapters/PersonalizedFeedAdapter.java +++ b/app/src/main/java/com/huanchengfly/tieba/post/adapters/PersonalizedFeedAdapter.java @@ -243,7 +243,7 @@ public class PersonalizedFeedAdapter extends BaseMultiTypeAdapter(R.id.forum_bar_name) val forumAvatarView: ImageView = forumView.findViewById(R.id.forum_bar_avatar) if (!showForum || - !appPreferences.showShortcutInThread || + !context.appPreferences.showShortcutInThread || "0" == forumInfoBean.isExists || forumInfoBean.name.isNullOrEmpty() ) { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/adapters/forum/NewForumAdapter.java b/app/src/main/java/com/huanchengfly/tieba/post/adapters/forum/NewForumAdapter.java index 48e5e957..c0bd8347 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/adapters/forum/NewForumAdapter.java +++ b/app/src/main/java/com/huanchengfly/tieba/post/adapters/forum/NewForumAdapter.java @@ -263,7 +263,7 @@ public class NewForumAdapter extends BaseMultiTypeDelegateAdapter - appPreferences.followSystemNight = false + attachContext.appPreferences.followSystemNight = false switchNightMode(isChecked) } .show() diff --git a/app/src/main/java/com/huanchengfly/tieba/post/fragments/PreferencesFragment.kt b/app/src/main/java/com/huanchengfly/tieba/post/fragments/PreferencesFragment.kt index 247f6e90..cf1db485 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/fragments/PreferencesFragment.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/fragments/PreferencesFragment.kt @@ -55,7 +55,7 @@ class PreferencesFragment : PreferencesFragment() { attachContext.resources.getStringArray(R.array.experimental_features) experimentalFeatures.forEach { findPreference(it)?.isVisible = - appPreferences.showExperimentalFeatures + attachContext.appPreferences.showExperimentalFeatures } loginInfo = AccountUtil.getLoginInfo() val accounts = AccountUtil.allAccounts diff --git a/app/src/main/java/com/huanchengfly/tieba/post/receivers/BootCompleteSignReceiver.kt b/app/src/main/java/com/huanchengfly/tieba/post/receivers/BootCompleteSignReceiver.kt index b413b38e..3785416f 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/receivers/BootCompleteSignReceiver.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/receivers/BootCompleteSignReceiver.kt @@ -14,13 +14,13 @@ import java.util.Calendar class BootCompleteSignReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (Intent.ACTION_BOOT_COMPLETED == intent.action) { - val autoSign = appPreferences.autoSign + val autoSign = context.appPreferences.autoSign if (autoSign) { - val autoSignTimeStr = appPreferences.autoSignTime + val autoSignTimeStr = context.appPreferences.autoSignTime if (Util.getTimeInMillis(autoSignTimeStr) > System.currentTimeMillis()) { TiebaUtil.initAutoSign(context) } else { - val signDay = appPreferences.signDay + val signDay = context.appPreferences.signDay if (signDay != Calendar.getInstance()[Calendar.DAY_OF_MONTH]) { TiebaUtil.startSign(context) } diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/common/PbContentRender.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/common/PbContentRender.kt index 6fb9c985..0e81adfd 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/common/PbContentRender.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/common/PbContentRender.kt @@ -127,7 +127,7 @@ data class PicContentRender( imageUri = picUrl, contentDescription = null, modifier = Modifier - .clip(RoundedCornerShape(appPreferences.radius.dp)) + .clip(RoundedCornerShape(context.appPreferences.radius.dp)) .fillMaxWidth(widthFraction) .aspectRatio(width * 1f / height), photoViewData = photoViewData, @@ -166,7 +166,7 @@ data class VideoContentRender( if (picUrl.isNotBlank()) { val picModifier = Modifier - .clip(RoundedCornerShape(appPreferences.radius.dp)) + .clip(RoundedCornerShape(context.appPreferences.radius.dp)) .fillMaxWidth(widthFraction) .aspectRatio(width * 1f / height) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt index 3f847b9e..272268f5 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/ForumPage.kt @@ -136,7 +136,7 @@ fun getSortType( context: Context, forumName: String ): Int { - val defaultSortType = appPreferences.defaultSortType?.toIntOrNull() ?: 0 + val defaultSortType = context.appPreferences.defaultSortType?.toIntOrNull() ?: 0 return context.dataStore.getInt("${forumName}_sort_type", defaultSortType) } @@ -766,7 +766,7 @@ fun ForumPage( floatingActionButton = { FloatingActionButton( onClick = { - when (appPreferences.forumFabFunction) { + when (context.appPreferences.forumFabFunction) { "refresh" -> { coroutineScope.launch { eventFlows[pagerState.currentPage].emit( @@ -801,7 +801,7 @@ fun ForumPage( modifier = Modifier.navigationBarsPadding() ) { Icon( - imageVector = when (appPreferences.forumFabFunction) { + imageVector = when (context.appPreferences.forumFabFunction) { "refresh" -> Icons.Rounded.Refresh "back_to_top" -> Icons.Rounded.VerticalAlignTop else -> Icons.Rounded.Add diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/threadlist/ForumThreadListViewModel.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/threadlist/ForumThreadListViewModel.kt index c6c4e686..e052993d 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/threadlist/ForumThreadListViewModel.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/forum/threadlist/ForumThreadListViewModel.kt @@ -1,6 +1,7 @@ package com.huanchengfly.tieba.post.ui.page.forum.threadlist import androidx.compose.runtime.Stable +import com.huanchengfly.tieba.post.App import com.huanchengfly.tieba.post.api.TiebaApi import com.huanchengfly.tieba.post.api.models.AgreeBean import com.huanchengfly.tieba.post.api.models.protos.ThreadInfo @@ -103,7 +104,7 @@ private class ForumThreadListPartialChangeProducer(val type: ForumThreadListType val userList = response.data_.user_list val threadList = response.data_.thread_list.map { threadInfo -> threadInfo.copy(author = userList.find { it.id == threadInfo.authorId }) - }.filter { !appPreferences.blockVideo || it.videoInfo == null } + }.filter { !App.INSTANCE.appPreferences.blockVideo || it.videoInfo == null } ForumThreadListPartialChange.FirstLoad.Success( threadList.wrapImmutable(), response.data_.thread_id_list, diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt index e20f3e76..bb70a78b 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/MainPage.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import com.huanchengfly.tieba.post.LocalDevicePosture @@ -133,7 +134,7 @@ fun MainPage( content = { HomePage( eventFlow = eventFlows[0], - canOpenExplore = !appPreferences.hideExplore + canOpenExplore = !LocalContext.current.appPreferences.hideExplore ) { coroutineScope.launch { pagerState.scrollToPage(1) @@ -141,7 +142,7 @@ fun MainPage( } } ), - if (appPreferences.hideExplore) null + if (LocalContext.current.appPreferences.hideExplore) null else NavigationItem( id = "explore", icon = { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernViewModel.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernViewModel.kt index 66b6ad70..6eb8ce04 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernViewModel.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/concern/ConcernViewModel.kt @@ -1,6 +1,7 @@ package com.huanchengfly.tieba.post.ui.page.main.explore.concern import androidx.compose.runtime.Stable +import com.huanchengfly.tieba.post.App import com.huanchengfly.tieba.post.api.TiebaApi import com.huanchengfly.tieba.post.api.models.AgreeBean import com.huanchengfly.tieba.post.api.models.protos.userLike.ConcernData @@ -52,9 +53,9 @@ class ConcernViewModel @Inject constructor() : ) private fun produceRefreshPartialChange(): Flow = - TiebaApi.getInstance().userLikeFlow("", appPreferences.userLikeLastRequestUnix, 1) + TiebaApi.getInstance().userLikeFlow("", App.INSTANCE.appPreferences.userLikeLastRequestUnix, 1) .map { - appPreferences.userLikeLastRequestUnix = it.data_?.requestUnix ?: 0L + App.INSTANCE.appPreferences.userLikeLastRequestUnix = it.data_?.requestUnix ?: 0L ConcernPartialChange.Refresh.Success( data = it.toData(), hasMore = it.data_?.hasMore == 1, @@ -65,7 +66,7 @@ class ConcernViewModel @Inject constructor() : .catch { emit(ConcernPartialChange.Refresh.Failure(it)) } private fun ConcernUiIntent.LoadMore.producePartialChange(): Flow = - TiebaApi.getInstance().userLikeFlow(pageTag, appPreferences.userLikeLastRequestUnix, 2) + TiebaApi.getInstance().userLikeFlow(pageTag, App.INSTANCE.appPreferences.userLikeLastRequestUnix, 2) .map { ConcernPartialChange.LoadMore.Success( data = it.toData(), diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedViewModel.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedViewModel.kt index c9bbefee..12c58ad9 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedViewModel.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedViewModel.kt @@ -1,6 +1,7 @@ package com.huanchengfly.tieba.post.ui.page.main.explore.personalized import androidx.compose.runtime.Stable +import com.huanchengfly.tieba.post.App import com.huanchengfly.tieba.post.api.TiebaApi import com.huanchengfly.tieba.post.api.models.AgreeBean import com.huanchengfly.tieba.post.api.models.CommonResponse @@ -66,7 +67,7 @@ class PersonalizedViewModel @Inject constructor() : TiebaApi.getInstance().personalizedProtoFlow(1, 1) .map { response -> val data = response.toData().filter { - !appPreferences.blockVideo || it.get { videoInfo } == null + !App.INSTANCE.appPreferences.blockVideo || it.get { videoInfo } == null } val threadPersonalizedData = data.map { thread -> response.data_?.thread_personalized?.firstOrNull { thread.get { id } == it.tid } @@ -84,7 +85,7 @@ class PersonalizedViewModel @Inject constructor() : TiebaApi.getInstance().personalizedProtoFlow(2, page) .map { response -> val data = response.toData().filter { - !appPreferences.blockVideo || it.get { videoInfo } == null + !App.INSTANCE.appPreferences.blockVideo || it.get { videoInfo } == null } val threadPersonalizedData = data.map { thread -> response.data_?.thread_personalized?.firstOrNull { thread.get { id } == it.tid } diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt index 6fc0003a..3bd66e07 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/home/HomePage.kt @@ -1,5 +1,6 @@ package com.huanchengfly.tieba.post.ui.page.main.home +import android.content.Context import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateContentSize import androidx.compose.foundation.Image @@ -96,7 +97,7 @@ import com.huanchengfly.tieba.post.utils.TiebaUtil import com.huanchengfly.tieba.post.utils.appPreferences import kotlinx.coroutines.flow.Flow -private fun getGridCells(listSingle: Boolean = appPreferences.listSingle): GridCells { +private fun getGridCells(context: Context, listSingle: Boolean = context.appPreferences.listSingle): GridCells { return if (listSingle) { GridCells.Fixed(1) } else { @@ -400,8 +401,8 @@ fun HomePage( initial = null ) val isError by remember { derivedStateOf { error != null } } - var listSingle by remember { mutableStateOf(appPreferences.listSingle) } - val gridCells by remember { derivedStateOf { getGridCells(listSingle) } } + var listSingle by remember { mutableStateOf(context.appPreferences.listSingle) } + val gridCells by remember { derivedStateOf { getGridCells(context, listSingle) } } eventFlow.onEvent { viewModel.send(HomeUiIntent.Refresh) @@ -424,7 +425,7 @@ fun HomePage( icon = Icons.Outlined.ViewAgenda, contentDescription = stringResource(id = R.string.title_switch_list_single) ) { - appPreferences.listSingle = !listSingle + context.appPreferences.listSingle = !listSingle listSingle = !listSingle } } diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/account/AccountManagePage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/account/AccountManagePage.kt index ece5fdf6..c24f7ffd 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/account/AccountManagePage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/account/AccountManagePage.kt @@ -189,7 +189,7 @@ fun AccountManagePage( ) } prefsItem { - val littleTail = remember { appPreferences.littleTail } + val littleTail = remember { context.appPreferences.littleTail } EditTextPref( key = "little_tail", title = stringResource(id = R.string.title_my_tail), diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/threadstore/ThreadStorePage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/threadstore/ThreadStorePage.kt index e4d0cbfa..457d38c7 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/threadstore/ThreadStorePage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/threadstore/ThreadStorePage.kt @@ -187,7 +187,7 @@ fun ThreadStorePage( ThreadPageDestination( threadId = info.threadId.toLong(), postId = info.markPid.toLong(), - seeLz = appPreferences.collectThreadSeeLz, + seeLz = context.appPreferences.collectThreadSeeLz, from = ThreadPageFrom.FROM_STORE, extra = ThreadPageFromStoreExtra( maxPid = info.maxPid.toLong(), diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/AppIconUtil.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/AppIconUtil.kt index eacec57a..8aea70aa 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/AppIconUtil.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/AppIconUtil.kt @@ -23,6 +23,9 @@ object AppIconUtil { private val context: Context get() = App.INSTANCE + private val appPreferences: AppPreferencesUtils + get() = context.appPreferences + fun setIcon(icon: String = appPreferences.appIcon ?: Icons.NEW_ICON) { val newIcon = if (Icons.ICONS.contains(icon) || icon == Icons.DISABLE) { icon diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt index 45e92ab1..d157290b 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/AppPreferencesUtils.kt @@ -1,5 +1,6 @@ package com.huanchengfly.tieba.post.utils +import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey @@ -8,7 +9,6 @@ import androidx.datastore.preferences.core.floatPreferencesKey import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.longPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey -import com.huanchengfly.tieba.post.App import com.huanchengfly.tieba.post.dataStore import com.huanchengfly.tieba.post.getBoolean import com.huanchengfly.tieba.post.getFloat @@ -26,10 +26,9 @@ import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty -object AppPreferencesUtils { +open class AppPreferencesUtils(private val context: Context) { private val preferencesDataStore: DataStore - get() = App.INSTANCE.dataStore - + get() = context.dataStore private val coroutineScope: CoroutineScope = CoroutineScope(Dispatchers.IO + SupervisorJob()) var userLikeLastRequestUnix by DataStoreDelegates.long(defaultValue = 0L) @@ -89,8 +88,6 @@ object AppPreferencesUtils { var forumFabFunction by DataStoreDelegates.string(defaultValue = "post") - var hideBlockedContent by DataStoreDelegates.boolean(defaultValue = false) - var hideExplore by DataStoreDelegates.boolean(defaultValue = false) var hideForumIntroAndStat by DataStoreDelegates.boolean(defaultValue = false) @@ -377,5 +374,5 @@ object AppPreferencesUtils { } } -val appPreferences: AppPreferencesUtils - get() = AppPreferencesUtils \ No newline at end of file +val Context.appPreferences: AppPreferencesUtils + get() = AppPreferencesUtils(this) \ No newline at end of file diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/ImageUtil.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/ImageUtil.kt index 76ae4d5d..6e2b4c8e 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/ImageUtil.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/ImageUtil.kt @@ -31,6 +31,7 @@ import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions import com.bumptech.glide.request.RequestOptions import com.github.panpf.sketch.request.DownloadRequest import com.github.panpf.sketch.request.DownloadResult +import com.huanchengfly.tieba.post.App.Companion.INSTANCE import com.huanchengfly.tieba.post.R import com.huanchengfly.tieba.post.activities.PhotoViewActivity.Companion.launch import com.huanchengfly.tieba.post.components.transformations.RadiusTransformation @@ -506,11 +507,11 @@ object ImageUtil { @JvmStatic fun getRadiusPx(context: Context): Int { - return DisplayUtil.dp2px(context, getRadiusDp().toFloat()) + return DisplayUtil.dp2px(context, getRadiusDp(context).toFloat()) } - private fun getRadiusDp(): Int { - return appPreferences.radius + private fun getRadiusDp(context: Context): Int { + return context.appPreferences.radius } fun clear(imageView: ImageView?) { @@ -539,7 +540,7 @@ object ImageUtil { if (!Util.canLoadGlide(imageView.context)) { return } - val radius = getRadiusDp() + val radius = getRadiusDp(imageView.context) val requestBuilder = if (skipNetworkCheck || type == LOAD_TYPE_AVATAR || @@ -644,7 +645,7 @@ object ImageUtil { @get:ImageLoadSettings private val imageLoadSettings: Int - get() = appPreferences.imageLoadType!!.toInt() + get() = INSTANCE.appPreferences.imageLoadType!!.toInt() fun imageToBase64(inputStream: InputStream?): String? { if (inputStream == null) { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/NavigationHelper.java b/app/src/main/java/com/huanchengfly/tieba/post/utils/NavigationHelper.java index de6cc9e0..a6d028a8 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/NavigationHelper.java +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/NavigationHelper.java @@ -91,8 +91,10 @@ public final class NavigationHelper { } public void navigationByData(int action) { - if (action == ACTION_LOGIN) { - startActivity(new Intent(mContext, LoginActivity.class)); + switch (action) { + case ACTION_LOGIN: + startActivity(new Intent(mContext, LoginActivity.class)); + break; } } @@ -237,12 +239,12 @@ public final class NavigationHelper { if (!(activityName.startsWith("WebViewActivity") || activityName.startsWith("LoginActivity"))) { boolean isTiebaLink = host.contains("tieba.baidu.com") || host.contains("wappass.baidu.com") || host.contains("ufosdk.baidu.com") || host.contains("m.help.baidu.com"); if (isTiebaLink || - AppPreferencesUtilsKt.getAppPreferences().getUseWebView() + AppPreferencesUtilsKt.getAppPreferences(mContext).getUseWebView() ) { startActivity(new Intent(mContext, WebViewActivity.class).putExtra("url", url)); return true; } else { - if (AppPreferencesUtilsKt.getAppPreferences().getUseCustomTabs()) { + if (AppPreferencesUtilsKt.getAppPreferences(mContext).getUseCustomTabs()) { CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder() .setShowTitle(true) .setToolbarColor(ThemeUtils.getColorByAttr(mContext, R.attr.colorToolbar)); diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/OKSigner.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/OKSigner.kt index 4bf8c350..d456eee6 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/OKSigner.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/OKSigner.kt @@ -34,7 +34,7 @@ abstract class IOKSigner( } fun getSignDelay(): Long { - return if (appPreferences.oksignSlowMode) { + return if (context.appPreferences.oksignSlowMode) { ThreadLocalRandom.current().nextInt(3500, 8000).toLong() } else { 2000 @@ -125,7 +125,7 @@ class SingleAccountSigner( .zip( TiebaApi.getInstance().forumRecommendFlow() ) { getForumListBean, forumRecommendBean -> - val useMSign = appPreferences.oksignUseOfficialOksign + val useMSign = context.appPreferences.oksignUseOfficialOksign val mSignLevel = getForumListBean.level.toInt() val mSignMax = getForumListBean.msignStepNum.toInt() signData.addAll( diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/StringUtil.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/StringUtil.kt index 6a5bbd06..bb5b2fdd 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/StringUtil.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/StringUtil.kt @@ -72,7 +72,7 @@ object StringUtil { @JvmStatic fun getUsernameString(context: Context, username: String, nickname: String?): CharSequence { - val showBoth = appPreferences.showBothUsernameAndNickname + val showBoth = context.appPreferences.showBothUsernameAndNickname if (TextUtils.isEmpty(nickname)) { return if (TextUtils.isEmpty(username)) "" else username } else if (showBoth && !TextUtils.isEmpty(username) && !TextUtils.equals( @@ -98,7 +98,7 @@ object StringUtil { nickname: String?, color: Color = Color.Unspecified ): AnnotatedString { - val showBoth = appPreferences.showBothUsernameAndNickname + val showBoth = context.appPreferences.showBothUsernameAndNickname return buildAnnotatedString { if (showBoth && !nickname.isNullOrBlank() && username != nickname && username.isNotBlank()) { append(nickname) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/TiebaUtil.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/TiebaUtil.kt index 9d52024f..b1c345fd 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/TiebaUtil.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/TiebaUtil.kt @@ -51,7 +51,7 @@ object TiebaUtil { fun initAutoSign(context: Context) { val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager - val autoSign = appPreferences.autoSign + val autoSign = context.appPreferences.autoSign val pendingIntent = PendingIntent.getBroadcast( context, 0, @@ -59,7 +59,7 @@ object TiebaUtil { pendingIntentFlagMutable() ) if (autoSign) { - val autoSignTimeStr = appPreferences.autoSignTime!! + val autoSignTimeStr = context.appPreferences.autoSignTime!! val time = autoSignTimeStr.split(":").toTypedArray() val hour = time[0].toInt() val minute = time[1].toInt() @@ -81,7 +81,7 @@ object TiebaUtil { @JvmStatic fun startSign(context: Context) { - appPreferences.signDay = Calendar.getInstance()[Calendar.DAY_OF_MONTH] + context.appPreferences.signDay = Calendar.getInstance()[Calendar.DAY_OF_MONTH] // OKSignService.enqueueWork( // context, // Intent()