[DO NOT USE] EhScreen implementation part 1

This commit is contained in:
tarsin committed 2023-06-05 18:42:16 +08:00
1 parent 55b4edac4d
commit cc02b69020
2 files changed
+124 -20

No files matched your search

@@ -51,29 +51,26 @@ object Settings : DataStorePreferences(null) {
var downloadPath by stringOrNullPref("image_path", null)
var downloadQuery by stringOrNullPref("image_query", null)
var downloadFragment by stringOrNullPref("image_fragment", null)
var favCat by stringArrayPref("fav_cat", 10, "Favorites")
var favCount by intArrayPref("fav_count", 10)
var archivePasswds by stringSetOrNullPref("archive_passwds")
var downloadDelay by intFromStrPref("download_delay", 0)
var gallerySite by intFromStrPref(KEY_GALLERY_SITE, 0)
var multiThreadDownload by intFromStrPref("download_thread", 3)
var preloadImage by intFromStrPref("preload_image", 5)
val theme by intFromStrPref(KEY_THEME, -1)
val listMode by intFromStrPref(KEY_LIST_MODE, 0)
val detailSize by intFromStrPref(KEY_DETAIL_SIZE, 0)
val thumbResolution by intFromStrPref(KEY_THUMB_RESOLUTION, 0)
var theme by intFromStrPref(KEY_THEME, -1)
var listMode by intFromStrPref(KEY_LIST_MODE, 0)
var detailSize by intFromStrPref(KEY_DETAIL_SIZE, 0)
var thumbResolution by intFromStrPref(KEY_THUMB_RESOLUTION, 0)
var readCacheSize by intFromStrPref(KEY_READ_CACHE_SIZE, 640)
var launchPage by intFromStrPref("launch_page", 0)
val showComments by boolPref("show_gallery_comments", true)
val requestNews by boolPref(KEY_REQUEST_NEWS, false)
val hideHvEvents by boolPref(KEY_HIDE_HV_EVENTS, false)
val showJpnTitle by boolPref(KEY_SHOW_JPN_TITLE, false)
val showGalleryPages by boolPref("show_gallery_pages", false)
var showComments by boolPref("show_gallery_comments", true)
var requestNews by boolPref(KEY_REQUEST_NEWS, false)
var hideHvEvents by boolPref(KEY_HIDE_HV_EVENTS, false)
var showJpnTitle by boolPref(KEY_SHOW_JPN_TITLE, false)
var showGalleryPages by boolPref("show_gallery_pages", false)
var showTagTranslations by boolPref(KEY_SHOW_TAG_TRANSLATIONS, false)
val meteredNetworkWarning by boolPref("cellular_network_warning", false)
var meteredNetworkWarning by boolPref("cellular_network_warning", false)
var appLinkVerifyTip by boolPref("app_link_verify_tip", false)
var enabledSecurity by boolPref("enable_secure", false)
var mediaScan by boolPref(KEY_MEDIA_SCAN, false).observed { updateWhenKeepMediaStatusChanges() }
@@ -86,29 +83,26 @@ object Settings : DataStorePreferences(null) {
var removeImageFiles by boolPref("include_pic", true)
var needSignIn by boolPref("need_sign_in", true)
var selectSite by boolPref("select_site", true)
val blackDarkTheme by boolPref(KEY_BLACK_DARK_THEME, false)
var blackDarkTheme by boolPref(KEY_BLACK_DARK_THEME, false)
var preloadThumbAggressively by boolPref("preload_thumb_aggressively", false)
var dF by boolPref(KEY_DOMAIN_FRONTING, false)
var downloadOriginImage by boolPref("download_origin_image", false)
var bypassVpn by boolPref(KEY_BYPASS_VPN, true)
val thumbSizeDp by intPref(KEY_THUMB_SIZE, 120)
var thumbSizeDp by intPref(KEY_THUMB_SIZE, 120)
var favLocalCount by intPref("fav_local", 0)
var favCloudCount by intPref("fav_cloud", 0)
var recentFavCat by intPref("recent_fav_cat", FavListUrlBuilder.FAV_CAT_ALL)
var defaultFavSlot by intPref("default_favorite_2", INVALID_DEFAULT_FAV_SLOT) // -1 for local, 0 - 9 for cloud favorite, other for no default fav slot
var securityDelay by intPref("require_unlock_delay", 0)
var clipboardTextHashCode by intPref("clipboard_text_hash_code", 0)
val listThumbSize by intPref(KEY_LIST_THUMB_SIZE, 40)
var listThumbSize by intPref(KEY_LIST_THUMB_SIZE, 40)
var requestNewsTimerHour by intPref("request_news_timer_hour", -1)
var requestNewsTimerMinute by intPref("request_news_timer_minute", -1)
var dataMapNextId by intPref("data_map_next_id", 0)
var recentDownloadLabel by stringOrNullPref("recent_download_label", null)
var defaultDownloadLabel by stringOrNullPref("default_download_label", null)
var displayName by stringOrNullPref("display_name", null)
var avatar by stringOrNullPref("avatar", null)
var dohUrl by stringPref("doh_url", "")
var language by stringPref("app_language", "system").observed { updateWhenLocaleChanges() }
var lastDawnDay by longPref("last_dawn_day", 0)
@@ -1,7 +1,11 @@
package com.hippo.ehviewer.ui.settings
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material3.Icon
@@ -15,6 +19,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.ui.compose.observed
import com.hippo.ehviewer.ui.login.LocalNavController
@Composable
@@ -34,7 +40,111 @@ fun EhScreen() {
)
},
) {
Column(modifier = Modifier.padding(it).nestedScroll(scrollBehavior.nestedScrollConnection)) {
Column(modifier = Modifier.padding(top = it.calculateTopPadding()).nestedScroll(scrollBehavior.nestedScrollConnection).verticalScroll(rememberScrollState())) {
Preference(
title = stringResource(id = R.string.account_name),
summary = stringResource(id = R.string.settings_eh_identity_cookies_tourist),
)
Preference(
title = stringResource(id = R.string.image_limits),
)
SimpleMenuPreferenceInt(
title = stringResource(id = R.string.settings_eh_gallery_site),
entry = R.array.gallery_site_entries,
entryValueRes = R.array.gallery_site_entry_values,
value = Settings::gallerySite.observed,
)
Preference(
title = stringResource(id = R.string.settings_u_config),
summary = stringResource(id = R.string.settings_u_config_summary),
)
Preference(
title = stringResource(id = R.string.settings_my_tags),
summary = stringResource(id = R.string.settings_my_tags_summary),
)
SimpleMenuPreferenceInt(
title = stringResource(id = rikka.core.R.string.dark_theme),
entry = R.array.night_mode_entries,
entryValueRes = R.array.night_mode_values,
value = Settings::theme.observed,
)
SwitchPreference(
title = stringResource(id = R.string.black_dark_theme),
summary = null,
value = Settings::blackDarkTheme,
)
SimpleMenuPreferenceInt(
title = stringResource(id = R.string.settings_eh_launch_page),
entry = R.array.launch_page_entries,
entryValueRes = R.array.launch_page_entry_values,
value = Settings::launchPage.observed,
)
SimpleMenuPreferenceInt(
title = stringResource(id = R.string.settings_eh_list_mode),
entry = R.array.list_mode_entries,
entryValueRes = R.array.list_mode_entry_values,
value = Settings::listMode.observed,
)
IntSliderPreference(
maxValue = 60,
minValue = 20,
title = stringResource(id = R.string.list_tile_thumb_size),
value = Settings::listThumbSize,
)
SimpleMenuPreferenceInt(
title = stringResource(id = R.string.settings_eh_thumb_resolution),
entry = R.array.thumb_resolution_entries,
entryValueRes = R.array.thumb_resolution_entry_values,
value = Settings::thumbResolution.observed,
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_show_jpn_title),
summary = stringResource(id = R.string.settings_eh_show_jpn_title_summary),
value = Settings::showJpnTitle,
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_show_gallery_pages),
summary = stringResource(id = R.string.settings_eh_show_gallery_pages_summary),
value = Settings::showGalleryPages,
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_show_gallery_comments),
summary = stringResource(id = R.string.settings_eh_show_gallery_comments_summary),
value = Settings::showComments,
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_show_tag_translations),
summary = stringResource(id = R.string.settings_eh_show_tag_translations_summary),
value = Settings::showTagTranslations,
)
UrlPreference(
title = stringResource(id = R.string.settings_eh_tag_translations_source),
url = stringResource(id = R.string.settings_eh_tag_translations_source_url),
)
Preference(
title = stringResource(id = R.string.settings_eh_filter),
summary = stringResource(id = R.string.settings_eh_filter_summary),
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_metered_network_warning),
summary = null,
value = Settings::meteredNetworkWarning,
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_request_news),
summary = null,
value = Settings::requestNews,
)
Preference(
title = stringResource(id = R.string.settings_eh_request_news_timepicker),
summary = null,
)
SwitchPreference(
title = stringResource(id = R.string.settings_eh_hide_hv_events),
summary = null,
value = Settings::requestNews,
)
Spacer(modifier = Modifier.size(it.calculateBottomPadding()))
}
}
}