From c7affac3dff62b3341473b78ffedad47399f532b Mon Sep 17 00:00:00 2001 From: Jiadong Liao <70186447+lingwu05@users.noreply.github.com> Date: Sat, 23 Nov 2024 18:31:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E9=A2=98=E8=AE=BE=E7=BD=AE=E5=BC=80?= =?UTF-8?q?=E5=8F=91=20(#281)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * first commit * test * 重构ThemeManager结构 * 初步实现主题颜色切换 * 1.实现主题列表持久化存储 2.实现主题删除 * 实现添加主题 * pr测试:合并分支 --- .../main/resources/base/element/string.json | 8 - entry/src/main/ets/common/constants/Theme.ets | 18 ++ entry/src/main/ets/common/model/Theme.ets | 10 + .../main/ets/common/utils/ThemeManager.ets | 55 ++++++ .../src/main/ets/componets/Form/FormInput.ets | 7 +- .../src/main/ets/componets/Form/FormItem.ets | 8 +- .../Reader/DownloadSettingDialog.ets | 9 +- .../ets/componets/Reader/exportRuleDialog.ets | 10 +- .../ets/componets/aboutUs/VersionUpdate.ets | 9 +- .../bookDetail/note/NoteListItem.ets | 8 +- .../src/main/ets/componets/common/Dialog.ets | 12 +- .../main/ets/componets/common/ReadShow.ets | 8 +- .../src/main/ets/componets/common/SideBar.ets | 7 +- .../componets/common/TitleContentDialog.ets | 11 +- .../componets/common/addBookTypeDialog.ets | 12 +- .../ets/componets/common/buttonCommon.ets | 12 +- .../componets/common/commonInputDialog.ets | 10 +- .../ets/componets/common/confirmDialog.ets | 12 +- .../ets/componets/common/customizeDialog.ets | 8 +- .../main/ets/componets/common/hideDialog.ets | 10 +- .../src/main/ets/componets/common/noFind.ets | 7 +- .../ets/componets/common/noSourceFind.ets | 6 +- .../main/ets/componets/common/sourceType.ets | 7 +- entry/src/main/ets/componets/dialog/help.ets | 6 +- .../ets/componets/group/groupTypePanel.ets | 12 +- .../componets/group/groupTypeSearchPanel.ets | 8 +- .../src/main/ets/componets/head/BookMark.ets | 14 +- .../src/main/ets/componets/head/BookType.ets | 10 +- .../ets/componets/head/IndexSearchType.ets | 6 +- .../ets/componets/import/ImportCommon.ets | 27 +-- .../componets/import/SubscriptionImport.ets | 22 ++- .../ets/componets/myCenter/MyCenterTitle.ets | 7 +- .../myCenter/cloudDisKBindSheetComponet.ets | 12 +- .../myCenter/myCenterInputDialog.ets | 8 +- .../ets/componets/search/SearchBookItem.ets | 6 +- .../ets/componets/search/SearchBookList.ets | 14 +- .../ets/componets/search/SearchDetails.ets | 8 +- .../ets/componets/search/SearchRefresh.ets | 7 +- .../main/ets/componets/source/SourceView.ets | 17 +- .../componets/webDavService/WebdavService.ets | 8 +- .../componets/webDavService/serviceDialog.ets | 9 +- .../main/ets/entryability/EntryAbility.ets | 6 +- entry/src/main/ets/pages/Index.ets | 37 +++- .../main/ets/pages/view/BookDetailPage.ets | 14 +- .../pages/view/BookEditor/BookEditorPage.ets | 5 +- .../view/Find/BookSource/AddSourcePage.ets | 18 +- .../Find/BookSource/components/FilterText.ets | 14 +- .../BookSource/components/FiltrateOption.ets | 11 +- .../Find/BookSource/components/SourceView.ets | 30 +-- .../pages/view/Find/CategoryList/Index.ets | 56 +++--- .../main/ets/pages/view/Find/IndexFind.ets | 8 +- .../view/Find/components/AllCategory.ets | 12 +- .../view/Find/components/BodyContent.ets | 9 +- .../view/Find/components/BookFindContent.ets | 41 ++-- .../pages/view/Find/components/CardItem.ets | 10 +- .../view/Find/components/ContentRefresh.ets | 9 +- .../pages/view/Reader/RuleGroupTypePanel.ets | 10 +- .../ets/pages/view/Reader/chapterCommon.ets | 12 +- .../view/Reader/directoryPurification.ets | 8 +- .../main/ets/pages/view/Reader/newAddRule.ets | 16 +- .../main/ets/pages/view/Reader/ruleView.ets | 22 ++- .../ets/pages/view/Reader/sourceCommon.ets | 8 +- .../main/ets/pages/view/Reader/sourceView.ets | 10 +- .../Subscription/RssSources/newSources.ets | 20 +- .../RssSources/newSourcesNetWork.ets | 6 +- .../view/Subscription/SubscriptionIndex.ets | 8 +- .../components/PreviewEffectImage.ets | 8 +- .../components/RssSourceCheckImage.ets | 6 +- .../components/RssSourceGroup.ets | 6 +- .../components/SubscriptionSearch.ets | 6 +- .../view/bookShelf/DownloadManagementPage.ets | 19 +- .../ets/pages/view/bookShelf/IndexShelf.ets | 6 +- .../pages/view/bookShelf/LocalImportPage.ets | 8 +- .../view/bookShelf/Manage/BookManagePage.ets | 8 +- .../bookManage/BookFolderGridManage.ets | 6 +- .../bookManage/BookFolderInfoManage.ets | 6 +- .../Manage/bookManage/BookInfoGridManage.ets | 6 +- .../Manage/bookManage/BookInfoManage.ets | 6 +- .../Manage/bookManage/newAddShelf.ets | 9 +- .../Manage/bookManage/newBookShelf.ets | 16 +- .../Manage/components/catalogAddShelf.ets | 8 +- .../bookShelf/Shelf/WorksBookListGrid.ets | 8 +- .../bookShelf/Shelf/WorksBookListInfo.ets | 6 +- .../view/bookShelf/components/BookContent.ets | 6 +- .../components/dialog/BookManageDialog.ets | 6 +- .../components/dialog/coverInfoDialog.ets | 10 +- .../ets/pages/view/coverInfoImageShow.ets | 10 +- .../ets/pages/view/dialog/RenameDialog.ets | 14 +- .../pages/view/myCenter/CreateCustomTheme.ets | 177 ++++++++++++++++++ .../main/ets/pages/view/myCenter/MyCenter.ets | 19 +- .../ets/pages/view/myCenter/MyThemeConfig.ets | 145 ++++++++++++++ .../pages/view/myCenter/MyThemeConfigComp.ets | 166 ++++++++++++++++ .../main/ets/pages/view/myCenter/WebDav.ets | 6 +- .../view/myCenter/aboutUs/versionLogPage.ets | 6 +- .../ets/pages/view/myCenter/cloudDisk.ets | 11 +- .../main/ets/pages/view/myCenter/diskSet.ets | 7 +- .../pages/view/myCenter/helpCenterPage.ets | 11 +- .../main/resources/base/element/color.json | 4 - .../main/resources/base/media/FIND_theme.png | Bin 2380 -> 0 bytes .../main/resources/base/media/FIND_theme.svg | 3 + .../main/resources/base/media/HOME_theme.png | Bin 1149 -> 0 bytes .../main/resources/base/media/HOME_theme.svg | 3 + .../main/resources/base/media/MINE_theme.png | Bin 2341 -> 0 bytes .../main/resources/base/media/MINE_theme.svg | 3 + .../main/resources/base/media/SUB_theme.png | Bin 1403 -> 0 bytes .../main/resources/base/media/SUB_theme.svg | 3 + .../main/resources/base/media/f60_right.svg | 2 +- entry/src/main/resources/base/media/hook.svg | 2 +- .../main/resources/base/media/ic_select.svg | 2 +- .../main/resources/base/media/legado_icon.svg | 2 +- .../base/media/my_theme_config_bg0.png | Bin 0 -> 22504 bytes .../base/media/my_theme_config_bg1.png | Bin 0 -> 22504 bytes .../base/media/my_theme_config_bg2.png | Bin 0 -> 28138 bytes .../base/media/my_theme_config_bg3.png | Bin 0 -> 18192 bytes .../base/media/my_theme_config_bg4.png | Bin 0 -> 21714 bytes .../base/media/my_theme_config_bg5.png | Bin 0 -> 17190 bytes .../base/media/my_theme_config_bg6.png | Bin 0 -> 24334 bytes .../base/media/my_theme_config_bg7.png | Bin 0 -> 20073 bytes .../base/media/my_theme_config_custom.svg | 5 + .../base/media/my_theme_config_desktop.svg | 4 + .../base/media/my_theme_config_theme.svg | 4 + .../base/media/my_theme_config_welcome.svg | 3 + .../resources/base/profile/main_pages.json | 4 +- .../rawfile/bgi/my_theme_config_bg1.png | Bin 0 -> 22504 bytes .../rawfile/bgi/my_theme_config_bg2.png | Bin 0 -> 28138 bytes .../rawfile/bgi/my_theme_config_bg3.png | Bin 0 -> 18192 bytes .../rawfile/bgi/my_theme_config_bg4.png | Bin 0 -> 21714 bytes .../rawfile/bgi/my_theme_config_bg5.png | Bin 0 -> 17190 bytes .../rawfile/bgi/my_theme_config_bg6.png | Bin 0 -> 24334 bytes .../rawfile/bgi/my_theme_config_bg7.png | Bin 0 -> 20073 bytes svg/FIND_theme.svg | 4 +- svg/HOME_theme.svg | 4 +- svg/MINE_theme.svg | 4 +- svg/SUB_theme.svg | 4 +- 134 files changed, 1319 insertions(+), 338 deletions(-) create mode 100644 entry/src/main/ets/common/constants/Theme.ets create mode 100644 entry/src/main/ets/common/model/Theme.ets create mode 100644 entry/src/main/ets/common/utils/ThemeManager.ets create mode 100644 entry/src/main/ets/pages/view/myCenter/CreateCustomTheme.ets create mode 100644 entry/src/main/ets/pages/view/myCenter/MyThemeConfig.ets create mode 100644 entry/src/main/ets/pages/view/myCenter/MyThemeConfigComp.ets delete mode 100644 entry/src/main/resources/base/media/FIND_theme.png create mode 100644 entry/src/main/resources/base/media/FIND_theme.svg delete mode 100644 entry/src/main/resources/base/media/HOME_theme.png create mode 100644 entry/src/main/resources/base/media/HOME_theme.svg delete mode 100644 entry/src/main/resources/base/media/MINE_theme.png create mode 100644 entry/src/main/resources/base/media/MINE_theme.svg delete mode 100644 entry/src/main/resources/base/media/SUB_theme.png create mode 100644 entry/src/main/resources/base/media/SUB_theme.svg create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg0.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg1.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg2.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg3.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg4.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg5.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg6.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_bg7.png create mode 100644 entry/src/main/resources/base/media/my_theme_config_custom.svg create mode 100644 entry/src/main/resources/base/media/my_theme_config_desktop.svg create mode 100644 entry/src/main/resources/base/media/my_theme_config_theme.svg create mode 100644 entry/src/main/resources/base/media/my_theme_config_welcome.svg create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg1.png create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg2.png create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg3.png create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg4.png create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg5.png create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg6.png create mode 100644 entry/src/main/resources/rawfile/bgi/my_theme_config_bg7.png diff --git a/commons/colorLibrary/src/main/resources/base/element/string.json b/commons/colorLibrary/src/main/resources/base/element/string.json index 1e1244d5..8ff52079 100644 --- a/commons/colorLibrary/src/main/resources/base/element/string.json +++ b/commons/colorLibrary/src/main/resources/base/element/string.json @@ -20,14 +20,6 @@ "name": "color_black_88", "value": "rgba(0, 0, 0, 0.88)" }, - { - "name": "ThemeColor", - "value": "#FF6600" - }, - { - "name": "BackgroundThemeColor", - "value": "rgba(255, 102, 0, 0.12)" - }, { "name": "color_black_6", "value": "rgba(0, 0, 0, 0.06)" diff --git a/entry/src/main/ets/common/constants/Theme.ets b/entry/src/main/ets/common/constants/Theme.ets new file mode 100644 index 00000000..f076280e --- /dev/null +++ b/entry/src/main/ets/common/constants/Theme.ets @@ -0,0 +1,18 @@ +import { ThemeColorItem } from "../model/Theme" + +// 配置主题颜色 +export class ThemeColor { + static readonly ORANGE: ThemeColorItem = {mainColor: '#ff6600', secondColor: '#ffece0'} + static readonly RED: ThemeColorItem = {mainColor: '#ef4444', secondColor: '#fde8e8'} + static readonly YELLOW: ThemeColorItem = {mainColor: '#ff9500', secondColor: '#fff2e0'} + static readonly BLUE: ThemeColorItem = {mainColor: '#188bff', secondColor: '#e3f1ff'} + static readonly GREEN: ThemeColorItem = {mainColor: '#24b277', secondColor: '#e4f5ee'} +} + +// AppStorage key 标识 +export class ThemeStorageKey { + static readonly THEME: string = 'theme' // 主题key + static readonly THEMELIST: string = 'themelist' + static readonly THEMELISTSTR: string = 'themeliststr' + static readonly THEMEINDEX: string = 'themeindex' // 被选中主题索引key +} \ No newline at end of file diff --git a/entry/src/main/ets/common/model/Theme.ets b/entry/src/main/ets/common/model/Theme.ets new file mode 100644 index 00000000..5e4cd42e --- /dev/null +++ b/entry/src/main/ets/common/model/Theme.ets @@ -0,0 +1,10 @@ +export interface ThemeColorItem { + mainColor: string // 主色 前景色 + secondColor: string // 次色 背景色 +} + +export interface ThemeItem { + mainColor: string // 主色 前景色 + secondColor: string // 次色 背景色 + text: string +} diff --git a/entry/src/main/ets/common/utils/ThemeManager.ets b/entry/src/main/ets/common/utils/ThemeManager.ets new file mode 100644 index 00000000..309ee3c2 --- /dev/null +++ b/entry/src/main/ets/common/utils/ThemeManager.ets @@ -0,0 +1,55 @@ +import { ThemeColor, ThemeStorageKey } from "../constants/Theme"; +import { ThemeItem } from "../model/Theme"; + +export class ThemeManager { + themeList: ThemeItem[] = [ + {text: '主题1', mainColor: ThemeColor.ORANGE.mainColor, secondColor: ThemeColor.ORANGE.secondColor}, + {text: '主题2', mainColor: ThemeColor.RED.mainColor, secondColor: ThemeColor.RED.secondColor}, + {text: '主题3', mainColor: ThemeColor.GREEN.mainColor, secondColor: ThemeColor.GREEN.secondColor}, + {text: '主题4', mainColor: ThemeColor.YELLOW.mainColor, secondColor: ThemeColor.YELLOW.secondColor}, + {text: '主题5', mainColor: ThemeColor.BLUE.mainColor, secondColor: ThemeColor.BLUE.secondColor}, + ] + + init() { + PersistentStorage.persistProp(ThemeStorageKey.THEME, {text: '主题1', mainColor: ThemeColor.ORANGE.mainColor, secondColor: ThemeColor.ORANGE.secondColor}) + PersistentStorage.persistProp(ThemeStorageKey.THEMELISTSTR, JSON.stringify(this.themeList)) + + // 解析主题数组字符串 加载主题 + const str = AppStorage.get(ThemeStorageKey.THEMELISTSTR) + const themeList = JSON.parse(str as string) as ThemeItem[] + AppStorage.setOrCreate(ThemeStorageKey.THEMELIST, themeList) + + PersistentStorage.persistProp(ThemeStorageKey.THEMEINDEX, 0) // 被选中主题的索引 + } + + setTheme(newTheme: ThemeItem, index: number) { + AppStorage.setOrCreate(ThemeStorageKey.THEME, newTheme) + AppStorage.setOrCreate(ThemeStorageKey.THEMEINDEX, index) + } + + addTheme(newTheme: ThemeItem) { + const str = AppStorage.get(ThemeStorageKey.THEMELISTSTR) + const themeList = JSON.parse(str as string) as ThemeItem[] + themeList.push(newTheme) + AppStorage.setOrCreate(ThemeStorageKey.THEMELISTSTR, JSON.stringify(themeList)) + AppStorage.setOrCreate(ThemeStorageKey.THEMELIST, themeList) + } + + deleteTheme(index: number) { + const str = AppStorage.get(ThemeStorageKey.THEMELISTSTR) + let themeList = JSON.parse(str as string) as ThemeItem[] + let activeIndex: number = AppStorage.get(ThemeStorageKey.THEMEINDEX) as number + if (activeIndex > index) { + --activeIndex + } else if (activeIndex == index) { + activeIndex = 0 + } + themeList = themeList.filter((item, i) => i != index) + this.setTheme(themeList[activeIndex], activeIndex) + AppStorage.setOrCreate(ThemeStorageKey.THEMELISTSTR, JSON.stringify(themeList)) + AppStorage.setOrCreate(ThemeStorageKey.THEMELIST, themeList) + } +} + +// 单例模式 +export const themeManager = new ThemeManager() \ No newline at end of file diff --git a/entry/src/main/ets/componets/Form/FormInput.ets b/entry/src/main/ets/componets/Form/FormInput.ets index e1d78c43..cc87c7a6 100644 --- a/entry/src/main/ets/componets/Form/FormInput.ets +++ b/entry/src/main/ets/componets/Form/FormInput.ets @@ -1,4 +1,7 @@ import PaddingConstants from '../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' + /** * @author 2008 * @datetime 2024/7/20 01:21 @@ -19,6 +22,8 @@ export default struct FormInput { onChange: Function = (_value: string) => {} showTitle: boolean = false icon:Resource|string = $r('app.media.icon_rss_source_check_image_font') + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { Row() { @@ -46,7 +51,7 @@ export default struct FormInput { .backgroundColor(Color.Transparent) .placeholderColor('#73000000') .placeholderFont({ size: 16, weight: 400 }) - .caretColor('#FF6600') + .caretColor(this.theme.mainColor) .margin({ top: 10, bottom: 10 }) .fontSize(16) .fontColor('#E0000000') diff --git a/entry/src/main/ets/componets/Form/FormItem.ets b/entry/src/main/ets/componets/Form/FormItem.ets index 0a0b8a91..f694a22e 100644 --- a/entry/src/main/ets/componets/Form/FormItem.ets +++ b/entry/src/main/ets/componets/Form/FormItem.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + export enum FormItemType { Input } @@ -16,6 +19,9 @@ export default struct FormItem { onChange: Function = (_value: string) => {} showTitle: boolean = true + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column() { Row() { @@ -46,7 +52,7 @@ export default struct FormItem { TextInput({ text: this.value ?? '', placeholder: `请输入${this.label}` }) .placeholderColor('#73000000') .placeholderFont({ size: 14, weight: 400 }) - .caretColor('#FF6600') + .caretColor(this.theme.mainColor) .height(38) .margin({ top: 10, bottom: 10 }) .fontSize(14) diff --git a/entry/src/main/ets/componets/Reader/DownloadSettingDialog.ets b/entry/src/main/ets/componets/Reader/DownloadSettingDialog.ets index 8b99e2e5..55d9a50c 100644 --- a/entry/src/main/ets/componets/Reader/DownloadSettingDialog.ets +++ b/entry/src/main/ets/componets/Reader/DownloadSettingDialog.ets @@ -1,4 +1,6 @@ import { AddDownloadDialog } from 'ets/componets/Reader/AddDownloadDialog'; +import { ThemeStorageKey } from '../../common/constants/Theme'; +import { ThemeItem } from '../../common/model/Theme'; @Component export default struct DownloadSettingDialog{ @@ -13,6 +15,7 @@ export default struct DownloadSettingDialog{ @State StartText: string = "1" // 下载-缓存开始章节 @State EndText: string = "2" // 下载-缓存结束章节 controller: TextInputController = new TextInputController() + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -109,7 +112,7 @@ export default struct DownloadSettingDialog{ Button() { Text("取消") .lineHeight(24) - .fontColor($r('app.string.ThemeColor')) + .fontColor(this.theme.mainColor) .font({ size: 16, weight: 500 @@ -117,7 +120,7 @@ export default struct DownloadSettingDialog{ } .width("80%") .height(40) - .backgroundColor($r('app.string.BackgroundThemeColor')) + .backgroundColor(this.theme.secondColor) } GridItem() { @@ -132,7 +135,7 @@ export default struct DownloadSettingDialog{ } .width("80%") .height(40) - .backgroundColor($r('app.string.ThemeColor')) + .backgroundColor(this.theme.mainColor) .onClick(() => { this.isShowDownload = false this.isShowSetting = false diff --git a/entry/src/main/ets/componets/Reader/exportRuleDialog.ets b/entry/src/main/ets/componets/Reader/exportRuleDialog.ets index 9f3efe7c..fa00ed78 100644 --- a/entry/src/main/ets/componets/Reader/exportRuleDialog.ets +++ b/entry/src/main/ets/componets/Reader/exportRuleDialog.ets @@ -4,6 +4,8 @@ * @className: exportRuleDialog */ import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @CustomDialog @Preview @@ -11,6 +13,8 @@ export default struct exportRuleDialog{ controller?: CustomDialogController cancel: () => void = () => { } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Stack(){ Column(){ @@ -34,7 +38,7 @@ export default struct exportRuleDialog{ }){ Radio({value:'default',group:'exportGroup'}) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .checked(true) .onChange(()=>{ @@ -54,7 +58,7 @@ export default struct exportRuleDialog{ }){ Radio({value:'default',group:'exportGroup'}) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .onChange(()=>{ @@ -85,7 +89,7 @@ export default struct exportRuleDialog{ left:32,right:32, top:8,bottom:8 }) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) Column(){ Text('导出本地').font({ diff --git a/entry/src/main/ets/componets/aboutUs/VersionUpdate.ets b/entry/src/main/ets/componets/aboutUs/VersionUpdate.ets index 4ff0848b..db6d0b05 100644 --- a/entry/src/main/ets/componets/aboutUs/VersionUpdate.ets +++ b/entry/src/main/ets/componets/aboutUs/VersionUpdate.ets @@ -1,8 +1,13 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + @CustomDialog export default struct VersionUpdateCustomDialog { controller: CustomDialogController @State clickUpdate: boolean = false @State ProgressValue: number = 40 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -55,7 +60,7 @@ export default struct VersionUpdateCustomDialog { if (!this.clickUpdate) { Button("立即更新") - .backgroundColor("#FF6600") + .backgroundColor(this.theme.mainColor) .width("73%") .margin({ top: 24, @@ -81,7 +86,7 @@ export default struct VersionUpdateCustomDialog { }) }) .width("73%") - .color("#FF6600") + .color(this.theme.mainColor) .backgroundColor("#FFAF7A") .margin({ top: 24, diff --git a/entry/src/main/ets/componets/bookDetail/note/NoteListItem.ets b/entry/src/main/ets/componets/bookDetail/note/NoteListItem.ets index 3d322284..0a015c12 100644 --- a/entry/src/main/ets/componets/bookDetail/note/NoteListItem.ets +++ b/entry/src/main/ets/componets/bookDetail/note/NoteListItem.ets @@ -9,6 +9,8 @@ import CommonConstants from '../../../common/constants/CommonConstants' import { NoteVO } from '../../../componetsmodel/NoteVO'; import CircleGeneralButton from './CircleGeneralButton'; import { promptAction } from '@kit.ArkUI'; +import { ThemeItem } from '../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; @Component export default struct NoteListItem { @@ -18,6 +20,8 @@ export default struct NoteListItem { @State wordCount: number = 48; @State editContent: string = ''; private saveChange = (val: string) => {}; + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem textChange(val: string): void { this.editContent = val; this.wordCount = this.editContent.length; @@ -54,7 +58,7 @@ export default struct NoteListItem { .height(22) .borderRadius(40) .padding({top: 2, bottom: 2, left: 16, right: 16}) - .backgroundColor('#FF6600') + .backgroundColor(this.theme.mainColor) .fontColor('#FFFFFF') .onClick(() => { this.save(); @@ -84,7 +88,7 @@ export default struct NoteListItem { TextArea({text: this.editContent}) .height('auto') .fontColor('#e0000000') - .caretColor('#FF6600') + .caretColor(this.theme.mainColor) .fontSize(12) .fontWeight(400) .fontColor('#e0000000') diff --git a/entry/src/main/ets/componets/common/Dialog.ets b/entry/src/main/ets/componets/common/Dialog.ets index 339f650c..e0dd2f88 100644 --- a/entry/src/main/ets/componets/common/Dialog.ets +++ b/entry/src/main/ets/componets/common/Dialog.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme"; +import { ThemeItem } from "../../common/model/Theme"; + @CustomDialog // 通用弹窗 export default struct Dialog { @@ -7,6 +10,9 @@ export default struct Dialog { @Prop ConfirmString: string = "确定" @BuilderParam child: () => void // 通用组件 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column() { Row() { @@ -41,7 +47,7 @@ export default struct Dialog { }) { Button() { Text(this.CancelString) - .fontColor("#FF6600") + .fontColor(this.theme.mainColor) .lineHeight(22) .font({ size: 14, @@ -50,7 +56,7 @@ export default struct Dialog { } .width(112) .height(38) - .backgroundColor("rgba(255, 102, 0, 0.12)") + .backgroundColor(this.theme.secondColor) .onClick(() => { if (this.controller != undefined) { this.controller.close() @@ -68,7 +74,7 @@ export default struct Dialog { } .width(112) .height(38) - .backgroundColor("#FF6600") + .backgroundColor(this.theme.mainColor) .onClick(() => { }) diff --git a/entry/src/main/ets/componets/common/ReadShow.ets b/entry/src/main/ets/componets/common/ReadShow.ets index 352b4266..6283ca12 100644 --- a/entry/src/main/ets/componets/common/ReadShow.ets +++ b/entry/src/main/ets/componets/common/ReadShow.ets @@ -7,12 +7,18 @@ import { BookHistory } from '../../database/entities/BookHistory' import { Books } from '../../database/entities/Books' import { router } from '@kit.ArkUI' import clickUtil from '../../common/utils/ClickUtils' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component export default struct ReadShow { @Link showReadShow:boolean @State bookHistory:BookHistory[] = [] @State book:Books = new Books() + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + aboutToAppear(): void { this.getBookHistoryList() } @@ -64,7 +70,7 @@ export default struct ReadShow { .fontWeight(600) .padding(10) .borderRadius(20) - .fontColor('#FF6600') + .fontColor(this.theme.mainColor) .backgroundColor(Color.White) } .padding({left:55,right:30}) diff --git a/entry/src/main/ets/componets/common/SideBar.ets b/entry/src/main/ets/componets/common/SideBar.ets index 208ed002..f7b4d178 100644 --- a/entry/src/main/ets/componets/common/SideBar.ets +++ b/entry/src/main/ets/componets/common/SideBar.ets @@ -4,6 +4,8 @@ * @className: SideBar * 分类左侧列表,支持是否开启角标,支持是否开启拖拽 */ +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import { GroupList, GroupPartList } from '../../database/entities/BookSource' @Component @@ -17,6 +19,9 @@ export default struct SideBar { scroller?: Scroller = undefined onDragChange: (list: GroupList[] | GroupPartList[] | string[]) => void = (_list) => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + // 交换listArr数组中listItem的位置 changeListItemIndex(index1: number, index2: number) { let tempItem = this.sideBarList[index1]; @@ -36,7 +41,7 @@ export default struct SideBar { Row() .width(3) .height(16) - .backgroundColor('#FF6600') + .backgroundColor(this.theme.mainColor) .borderRadius(12) .position({ top: 16 diff --git a/entry/src/main/ets/componets/common/TitleContentDialog.ets b/entry/src/main/ets/componets/common/TitleContentDialog.ets index 456e9840..bbd0da50 100644 --- a/entry/src/main/ets/componets/common/TitleContentDialog.ets +++ b/entry/src/main/ets/componets/common/TitleContentDialog.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + /** * 自定义标题和内容弹窗 * title标题、content内容、confirm确认按钮、cancel取消按钮 @@ -13,6 +16,8 @@ export default struct TitleContentDialog { } @Prop title:string = '' @Prop content:string = '' + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -36,8 +41,8 @@ export default struct TitleContentDialog { }) .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) - .fontColor($r('app.color.theme_color')) - .backgroundColor('rgba(255,120,0,0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) Text('确认') .onClick(() => { if (this.controller != undefined) { @@ -48,7 +53,7 @@ export default struct TitleContentDialog { .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) .fontColor(Color.White) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) }.padding({top:20,bottom:20}) } } diff --git a/entry/src/main/ets/componets/common/addBookTypeDialog.ets b/entry/src/main/ets/componets/common/addBookTypeDialog.ets index e39e5917..77c1dd9f 100644 --- a/entry/src/main/ets/componets/common/addBookTypeDialog.ets +++ b/entry/src/main/ets/componets/common/addBookTypeDialog.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + /** * 添加分类类型弹窗 */ @@ -14,7 +17,8 @@ export default struct addBookTypeDialog { } @State BookTypeValueLength:number = 0 - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -30,8 +34,8 @@ export default struct addBookTypeDialog { }) .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) - .fontColor($r('app.color.theme_color')) - .backgroundColor('rgba(255,120,0,0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) Text('确认') .onClick(() => { if (this.controller != undefined) { @@ -42,7 +46,7 @@ export default struct addBookTypeDialog { .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) .fontColor(Color.White) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) }.padding({top:20,bottom:20}) }.width('80%') } diff --git a/entry/src/main/ets/componets/common/buttonCommon.ets b/entry/src/main/ets/componets/common/buttonCommon.ets index 4288f407..5ddd2461 100644 --- a/entry/src/main/ets/componets/common/buttonCommon.ets +++ b/entry/src/main/ets/componets/common/buttonCommon.ets @@ -5,6 +5,9 @@ * 通用确认取消按钮 */ import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' + @Component export default struct buttonCommon { @Prop sureTitle:string = '确定' @@ -13,6 +16,9 @@ export default struct buttonCommon { } confirm: () => void = () => { } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Flex(){ Row({space: 20}) { @@ -21,8 +27,8 @@ export default struct buttonCommon { .width(150) .height(40) .borderRadius(200) - .backgroundColor('#1fff6600') - .fontColor('#FF6600') + .backgroundColor(this.theme.secondColor) + .fontColor(this.theme.mainColor) .onClick(() => { this.cancel() }) @@ -31,7 +37,7 @@ export default struct buttonCommon { .width(150) .height(40) .borderRadius(200) - .backgroundColor('#FF6600') + .backgroundColor(this.theme.mainColor) .fontColor('#FFFFFF') .onClick(()=>{ this.confirm() diff --git a/entry/src/main/ets/componets/common/commonInputDialog.ets b/entry/src/main/ets/componets/common/commonInputDialog.ets index 26b7717d..ff95e886 100644 --- a/entry/src/main/ets/componets/common/commonInputDialog.ets +++ b/entry/src/main/ets/componets/common/commonInputDialog.ets @@ -3,6 +3,8 @@ * 主要传值为title标题、textValue输入框值、cancel取消方法、confirm确认方法 */ import PaddingConstants from '../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import { showMessage } from './promptShow' @CustomDialog @@ -19,6 +21,8 @@ export default struct commonInputDialog { //标题 @Prop title:string = '新增' // @Prop titleWidth:string = '80%' + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { Text(`${this.title}` ).fontWeight(600).fontSize(20).margin({ top: 20, bottom: 10 }) @@ -33,8 +37,8 @@ export default struct commonInputDialog { }) .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) - .fontColor($r('app.color.theme_color')) - .backgroundColor('rgba(255,120,0,0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) Text('确认') .onClick(() => { if (this.controller != undefined) { @@ -45,7 +49,7 @@ export default struct commonInputDialog { .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) .fontColor(Color.White) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) }.padding({top:PaddingConstants.PADDING_20,bottom:PaddingConstants.PADDING_20}) } .padding({left:PaddingConstants.PADDING_20,right:PaddingConstants.PADDING_20}) diff --git a/entry/src/main/ets/componets/common/confirmDialog.ets b/entry/src/main/ets/componets/common/confirmDialog.ets index 86f434f8..0e06b3f5 100644 --- a/entry/src/main/ets/componets/common/confirmDialog.ets +++ b/entry/src/main/ets/componets/common/confirmDialog.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" @CustomDialog export default struct confirmDialogExample { @@ -11,6 +13,8 @@ export default struct confirmDialogExample { @Prop title:string = '删除' @Link delCache:boolean @Prop isShowCache:boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -19,7 +23,7 @@ export default struct confirmDialogExample { Row({ space:8 }){ - Checkbox().selectedColor($r('app.color.theme_color')).select(this.delCache) + Checkbox().selectedColor(this.theme.mainColor).select(this.delCache) Text('同时删除本地缓存') .fontColor('rgba(0, 0, 0, 0.45)').fontSize(14).fontWeight(400).lineHeight(22) } @@ -34,8 +38,8 @@ export default struct confirmDialogExample { }) .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) - .fontColor($r('app.color.theme_color')) - .backgroundColor('rgba(255,120,0,0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) Text('确认') .onClick(() => { if (this.controller != undefined) { @@ -46,7 +50,7 @@ export default struct confirmDialogExample { .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) .fontColor(Color.White) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) }.padding({top:20,bottom:20}) } } diff --git a/entry/src/main/ets/componets/common/customizeDialog.ets b/entry/src/main/ets/componets/common/customizeDialog.ets index 500e9490..8afbb912 100644 --- a/entry/src/main/ets/componets/common/customizeDialog.ets +++ b/entry/src/main/ets/componets/common/customizeDialog.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + /** * 自定义标题和内容 */ @@ -10,6 +13,9 @@ export default struct customizeDialogExample { @Prop title:string = '标签锁' @Prop content:string = '长按底部tab栏书架图标可锁定分组标签栏,再次长按解锁,锁定后左右滑动将直接切换小说,漫画,有声书分组大类' + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column() { Text(`${this.title}` ).fontWeight(600).maxLines(1).minFontSize(12).maxFontSize(20).margin({ top: 20, bottom: 10 }) @@ -31,7 +37,7 @@ export default struct customizeDialogExample { .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) .fontColor(Color.White) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) }.padding({top:20,bottom:20}) } } diff --git a/entry/src/main/ets/componets/common/hideDialog.ets b/entry/src/main/ets/componets/common/hideDialog.ets index 2d5a59c3..b7e04e9d 100644 --- a/entry/src/main/ets/componets/common/hideDialog.ets +++ b/entry/src/main/ets/componets/common/hideDialog.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" @CustomDialog export default struct hideDialogExample { @@ -10,6 +12,8 @@ export default struct hideDialogExample { } @Prop title:string @Prop isHide:boolean = true + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -28,8 +32,8 @@ export default struct hideDialogExample { }) .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) - .fontColor($r('app.color.theme_color')) - .backgroundColor('rgba(255,120,0,0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) Text('确认') .onClick(() => { if (this.controller != undefined) { @@ -40,7 +44,7 @@ export default struct hideDialogExample { .borderRadius(15) .padding({left:30,right:30,top:10,bottom:10}) .fontColor(Color.White) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) }.padding({top:20,bottom:20}) } } diff --git a/entry/src/main/ets/componets/common/noFind.ets b/entry/src/main/ets/componets/common/noFind.ets index fc2d7303..e26e468f 100644 --- a/entry/src/main/ets/componets/common/noFind.ets +++ b/entry/src/main/ets/componets/common/noFind.ets @@ -8,6 +8,8 @@ import CommonConstants from '../../common/constants/CommonConstants' import FontConstants from '../../common/constants/FontConstants' import ImageConstants from '../../common/constants/ImageConstants' import PaddingConstants from '../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component export default struct noFind { @@ -16,7 +18,8 @@ export default struct noFind { hintIcon: Resource[] = [$r('app.media.icon_no_source_find'), $r('app.media.icon_no_source_net'), $r('app.media.icon_no_source_content')] onclick: () => void = () => {} - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { Image(this.hintIcon[this.hintIndex]).width(ImageConstants.IMG_WIDTH_124).height(ImageConstants.IMG_HEIGHT_120) @@ -45,7 +48,7 @@ export default struct noFind { .fontSize(FontConstants.FONT_SIZE_14) .fontWeight(FontConstants.FONT_WEIGHT_500) .fontFamily(CommonConstants.FAMILY_PingFANG) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) .onClick(() => { this.onclick() }) diff --git a/entry/src/main/ets/componets/common/noSourceFind.ets b/entry/src/main/ets/componets/common/noSourceFind.ets index f75ee025..70ab1815 100644 --- a/entry/src/main/ets/componets/common/noSourceFind.ets +++ b/entry/src/main/ets/componets/common/noSourceFind.ets @@ -5,6 +5,8 @@ * 公用无发现功能log */ import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component export default struct noSourceFind { @@ -13,6 +15,8 @@ export default struct noSourceFind { setOnclick:() => void = () => { } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column(){ Image($r('app.media.icon_no_source_find')).width(124).height(120) @@ -28,7 +32,7 @@ export default struct noSourceFind { .fontColor($r('app.string.color_black_45')) .margin({bottom:24}) if (!this.isShowButton){ - Button('一键隐藏').backgroundColor($r('app.color.theme_color')) + Button('一键隐藏').backgroundColor(this.theme.mainColor) .onClick(()=>{ this.setOnclick() }) diff --git a/entry/src/main/ets/componets/common/sourceType.ets b/entry/src/main/ets/componets/common/sourceType.ets index d5dea51a..7ae7422c 100644 --- a/entry/src/main/ets/componets/common/sourceType.ets +++ b/entry/src/main/ets/componets/common/sourceType.ets @@ -1,11 +1,14 @@ import CommonConstants from '../../common/constants/CommonConstants' import FontConstants from '../../common/constants/FontConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component export default struct sourceType { @Prop title: string @Prop active: boolean - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({ space: 2 @@ -18,7 +21,7 @@ export default struct sourceType { .width(12) .height(3) .borderRadius(4) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) .visibility(this.active ? Visibility.Visible : Visibility.Hidden) .opacity(this.active ? 1 : 0) .scale({ diff --git a/entry/src/main/ets/componets/dialog/help.ets b/entry/src/main/ets/componets/dialog/help.ets index 5af0d81a..34a31e28 100644 --- a/entry/src/main/ets/componets/dialog/help.ets +++ b/entry/src/main/ets/componets/dialog/help.ets @@ -1,6 +1,8 @@ import CommonConstants from '../../common/constants/CommonConstants' import FontConstants from '../../common/constants/FontConstants' import PaddingConstants from '../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import { HelpInfo } from '../../viewData/HelpInfo' @Component @@ -16,6 +18,8 @@ export default struct Help { @BuilderParam contentBuilder: () => void = this.contentBuilders @StorageLink('bottomRectHeight') bottomRectHeight: number = 0 isShowContent:boolean = true + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ direction: FlexDirection.Column, @@ -56,7 +60,7 @@ export default struct Help { Button(!this.btnText ? $r('app.string.i_know') : this.btnText) .width('100%') - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) .padding({ left: PaddingConstants.PADDING_32, right: PaddingConstants.PADDING_32, diff --git a/entry/src/main/ets/componets/group/groupTypePanel.ets b/entry/src/main/ets/componets/group/groupTypePanel.ets index 372c05d1..cff9dc56 100644 --- a/entry/src/main/ets/componets/group/groupTypePanel.ets +++ b/entry/src/main/ets/componets/group/groupTypePanel.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import bookGroupUtil from '../../common/utils/bookGroupUtils' import BookGroupsDao from '../../database/dao/BookGroupsDao' import { BookGroups } from '../../database/entities/BookGroups' @@ -18,6 +20,8 @@ export default struct groupTypePanel{ @StorageProp('APP_INDEX_SCROLLABLE') APP_INDEX_SCROLLABLE: boolean = true @Prop clickGroup:BookGroups + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear(): void { this.getGroupList() @@ -45,7 +49,7 @@ export default struct groupTypePanel{ Text('点击进入').fontSize(12).fontWeight(400).lineHeight(20).fontColor('rgba(0, 0, 0, 0.45)') }.alignItems(VerticalAlign.Bottom) Row({space:12}){ - Text(this.isShowIcon?'完成':'管理').fontSize(12).fontWeight(400).lineHeight(20).fontColor($r('app.color.theme_color')) + Text(this.isShowIcon?'完成':'管理').fontSize(12).fontWeight(400).lineHeight(20).fontColor(this.theme.mainColor) .onClick(()=>{ this.isShowIcon = !this.isShowIcon }) @@ -115,7 +119,7 @@ export default struct groupTypePanel{ }) Text('标签锁').fontSize(16).fontWeight(500).lineHeight(24).fontColor('rgba(0, 0, 0, 0.45)') Toggle({ type: ToggleType.Switch, isOn: $$this.APP_INDEX_SCROLLABLE}) - .selectedColor("#F60").hoverEffect(HoverEffect.None) + .selectedColor(this.theme.mainColor).hoverEffect(HoverEffect.None) .onChange(()=>{ updateAppData(this.APP_INDEX_SCROLLABLE) showMessage(this.APP_INDEX_SCROLLABLE?'标签栏锁已开启':'标签栏已解锁') @@ -238,14 +242,14 @@ export default struct groupTypePanel{ Text(title).fontWeight(500).fontSize(12).textOverflow({ overflow:TextOverflow.Ellipsis }).ellipsisMode(EllipsisMode.END) - .maxLines(1).fontColor($r('app.color.theme_color')) + .maxLines(1).fontColor(this.theme.mainColor) .textAlign(TextAlign.Center) } .margin({ right: 16, bottom: 16 }) .justifyContent(FlexAlign.Center) .alignItems(VerticalAlign.Center) .width(68) - .backgroundColor('rgba(252, 121, 0, 0.12)') + .backgroundColor(this.theme.secondColor) .padding({left:16,right:16,top:6,bottom:6}) } } diff --git a/entry/src/main/ets/componets/group/groupTypeSearchPanel.ets b/entry/src/main/ets/componets/group/groupTypeSearchPanel.ets index e4883c63..1907f714 100644 --- a/entry/src/main/ets/componets/group/groupTypeSearchPanel.ets +++ b/entry/src/main/ets/componets/group/groupTypeSearchPanel.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import BookGroupsDao from '../../database/dao/BookGroupsDao' import { BookGroups } from '../../database/entities/BookGroups' import BookManageDialog from '../../pages/view/bookShelf/components/dialog/BookManageDialog' @@ -12,6 +14,8 @@ export default struct groupTypeSearchPanel{ @Prop currentIndex:number = 0 @Prop clickGroup:BookGroups @Link searchBookList:number[] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear(): void { this.getGroupList() } @@ -125,14 +129,14 @@ export default struct groupTypeSearchPanel{ Text(title).fontWeight(500).fontSize(12).textOverflow({ overflow:TextOverflow.Ellipsis }).ellipsisMode(EllipsisMode.END) - .maxLines(1).fontColor($r('app.color.theme_color')) + .maxLines(1).fontColor(this.theme.mainColor) .textAlign(TextAlign.Center) } .margin({ right: 16, bottom: 16 }) .justifyContent(FlexAlign.Center) .alignItems(VerticalAlign.Center) .width(68) - .backgroundColor('rgba(252, 121, 0, 0.12)') + .backgroundColor(this.theme.secondColor) .padding({left:16,right:16,top:6,bottom:6}) } } diff --git a/entry/src/main/ets/componets/head/BookMark.ets b/entry/src/main/ets/componets/head/BookMark.ets index 5297927a..000916b6 100644 --- a/entry/src/main/ets/componets/head/BookMark.ets +++ b/entry/src/main/ets/componets/head/BookMark.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + @Component export default struct BookMark { isBackground: boolean = true @@ -5,18 +8,21 @@ export default struct BookMark { @Prop currentIndex:number @Prop index:number + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column() { if (this.isBackground) { Text(this.title) - .fontColor(this.currentIndex === this.index ? 'rgba(0, 0, 0, 1.00)' : 'rgba(0,0,0,0.5)') + .fontColor(this.currentIndex === this.index ? this.theme.mainColor : this.theme.secondColor) .fontSize(this.currentIndex === this.index ? 25 : 16) .fontWeight(this.currentIndex === this.index ? 700 : 500) .lineHeight(30) .zIndex(999) - .backgroundImage(this.currentIndex === this.index ? $r('app.media.underline') : '') - .backgroundImageSize(this.currentIndex === this.index ? { width: '100%', height: 15 } : {}) - .backgroundImagePosition(Alignment.Center) + // .backgroundImage(this.currentIndex === this.index ? $r('app.media.underline') : '') + // .backgroundImageSize(this.currentIndex === this.index ? { width: '100%', height: 15 } : {}) + // .backgroundImagePosition(Alignment.Center) .animation({ duration: 200, }) diff --git a/entry/src/main/ets/componets/head/BookType.ets b/entry/src/main/ets/componets/head/BookType.ets index d3bac149..72b74d10 100644 --- a/entry/src/main/ets/componets/head/BookType.ets +++ b/entry/src/main/ets/componets/head/BookType.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" + @Component export default struct BookType { @Prop title:string @@ -5,15 +8,18 @@ export default struct BookType { @Prop index:number @Prop bookTypeNumber:number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column() { Text(this.title) - .fontColor(this.index === this.bookTypeNumber ? 'rgb(255,135, 56)' : 'rgba(0,0,0,0.8)') + .fontColor(this.index === this.bookTypeNumber ? this.theme.mainColor : 'rgba(0,0,0,0.8)') .fontSize(12) .fontWeight(this.index === this.bookTypeNumber ? 700 : 700) } .borderRadius(8) .padding(8) - .backgroundColor(this.index === this.bookTypeNumber?'rgba(255,102,0,0.2)':'rgb(240,240,240)') + .backgroundColor(this.index === this.bookTypeNumber? this.theme.secondColor:'rgb(240,240,240)') } } \ No newline at end of file diff --git a/entry/src/main/ets/componets/head/IndexSearchType.ets b/entry/src/main/ets/componets/head/IndexSearchType.ets index 47506027..cd40daae 100644 --- a/entry/src/main/ets/componets/head/IndexSearchType.ets +++ b/entry/src/main/ets/componets/head/IndexSearchType.ets @@ -1,6 +1,8 @@ import CommonConstants from '../../common/constants/CommonConstants' import FontConstants from '../../common/constants/FontConstants' import PaddingConstants from '../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import { BOOK_SEARCH_TYPE } from '../../database/entities/Books' @Component @@ -8,6 +10,8 @@ export default struct IndexSearchType { @Prop title:string @Link searchValue:string @State isShown: boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { if (BOOK_SEARCH_TYPE.includes(this.title)){ @@ -71,7 +75,7 @@ export default struct IndexSearchType { weight: FontConstants.FONT_WEIGHT_400, family: CommonConstants.FAMILY_PingFANG }) - .fontColor(this.searchValue === item ? $r('app.color.theme_color') : $r('app.string.color_black_88')) + .fontColor(this.searchValue === item ? this.theme.mainColor : $r('app.string.color_black_88')) Image(item === this.searchValue?$r('app.media.hook'):'').width(20).height(20) } .padding({ diff --git a/entry/src/main/ets/componets/import/ImportCommon.ets b/entry/src/main/ets/componets/import/ImportCommon.ets index e6b810ce..d716f6a7 100644 --- a/entry/src/main/ets/componets/import/ImportCommon.ets +++ b/entry/src/main/ets/componets/import/ImportCommon.ets @@ -12,6 +12,8 @@ import BookSourceDao from '../../database/dao/BookSourceDao'; import { BookSource, GroupList, SOURCE_GROUP_MAP } from '../../database/entities/BookSource'; import SourceGroup from '../ui/SourceGroup'; import text from '@ohos.graphics.text'; +import { ThemeItem } from '../../common/model/Theme'; +import { ThemeStorageKey } from '../../common/constants/Theme'; @Component export default struct ImportCommon { @@ -32,7 +34,8 @@ export default struct ImportCommon { @State groupIndex: number = 0 private scroll: Scroller = new Scroller() private secondScroll = new Scroller() - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear() { BookSourceDao.search().then(data => { const bookSource = data ?? [] @@ -137,7 +140,7 @@ export default struct ImportCommon { Row() { Checkbox() .select(this.fullActive) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.fullActive = val this.sourceList.forEach((item: BookSource) => { @@ -148,7 +151,7 @@ export default struct ImportCommon { Text() { Span('全选(') Span(Object.values(this.insertMap).filter(o => o).length + '') - .fontColor(0xff6600) + .fontColor(this.theme.mainColor) Span(`/${this.sourceList.length})`) } .margin({ left: 8 }) @@ -161,7 +164,7 @@ export default struct ImportCommon { Row() { Image($r('app.media.warning')) .width(20) - .fillColor(0xff6600) + .fillColor(this.theme.mainColor) Text('允许对书架中正在使用的书源进行更新') .fontSize(14) @@ -172,7 +175,7 @@ export default struct ImportCommon { Checkbox() .select(this.waringActive) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.waringActive = val }) @@ -180,13 +183,13 @@ export default struct ImportCommon { .width('100%') .height(48) .padding({ left: 20, right: 20 }) - .backgroundColor('rgba(239, 68, 68, 0.12)') + .backgroundColor(this.theme.secondColor) Row({ space: 20 }) { Button('取消') .height(40) - .fontColor(0xff6600) - .backgroundColor('rgba(255, 102, 0, 0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) .layoutWeight(1) .onClick(() => { this.show = false; @@ -195,7 +198,7 @@ export default struct ImportCommon { Button('确认') .height(40) .fontColor(Color.White) - .backgroundColor(0xff6600) + .backgroundColor(this.theme.mainColor) .layoutWeight(1) .onClick(async () => { const insertBookSources = this.sourceList.filter(item => this.insertMap[item.bookSourceUrl] ?? false) @@ -249,7 +252,7 @@ export default struct ImportCommon { Text(SOURCE_GROUP_MAP[groupIndex][0]) .fontSize(14) .lineHeight(22) - .fontColor('#FF6600') + .fontColor(this.theme.mainColor) Image($r('app.media.f60_right')) .width(16) } @@ -264,7 +267,7 @@ export default struct ImportCommon { CheckboxGroup({ group: 'checkboxGroup' + index }) .checkboxShape(CheckBoxShape.CIRCLE) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) } .alignItems(VerticalAlign.Center) .padding({ right: 16 }) @@ -288,7 +291,7 @@ export default struct ImportCommon { Checkbox({ name: 'checkbox' + j, group: 'checkboxGroup' + i }) .select(this.insertMap[item.bookSourceUrl] ?? false) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.insertMap[item.bookSourceUrl] = val }) diff --git a/entry/src/main/ets/componets/import/SubscriptionImport.ets b/entry/src/main/ets/componets/import/SubscriptionImport.ets index e29a00b7..a097bb68 100644 --- a/entry/src/main/ets/componets/import/SubscriptionImport.ets +++ b/entry/src/main/ets/componets/import/SubscriptionImport.ets @@ -15,6 +15,8 @@ import CommonConstants from '../../common/constants/CommonConstants'; import programDataPreferences from '../../preferences/programDataPreferences' import PaddingConstants from '../../common/constants/PaddingConstants'; import addBookTypeDialog from '../common/addBookTypeDialog'; +import { ThemeItem } from '../../common/model/Theme'; +import { ThemeStorageKey } from '../../common/constants/Theme'; @Component export default struct SubscriptionImport { @@ -32,6 +34,8 @@ export default struct SubscriptionImport { private scroll: Scroller = new Scroller() private secondScroll = new Scroller() @State sourceGroup: string = '' + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear() { subscriptionDao.search().then(data => { @@ -158,7 +162,7 @@ export default struct SubscriptionImport { Row() { Checkbox() .select(this.fullActive) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.fullActive = val this.subscriptionList.forEach((item: rssSources) => { @@ -169,7 +173,7 @@ export default struct SubscriptionImport { Text() { Span('全选(') Span(Object.values(this.insertMap).filter(o => o).length + '') - .fontColor(0xff6600) + .fontColor(this.theme.mainColor) Span(`/${this.subscriptionList.length})`) } .margin({ left: 8 }) @@ -186,7 +190,7 @@ export default struct SubscriptionImport { weight: FontConstants.FONT_WEIGHT_700 }) .textAlign(TextAlign.Center) - .fontColor($r('app.color.theme_color')) + .fontColor(this.theme.mainColor) .lineHeight(22) } Text('导入至').font({ @@ -194,7 +198,7 @@ export default struct SubscriptionImport { weight: FontConstants.FONT_WEIGHT_400 }) .textAlign(TextAlign.Center) - .fontColor($r('app.color.theme_color')) + .fontColor(this.theme.mainColor) .lineHeight(22) .onClick(() => { this.getRssSourceList() @@ -209,8 +213,8 @@ export default struct SubscriptionImport { Row({ space: 20 }) { Button('取消') .height(40) - .fontColor(0xff6600) - .backgroundColor('rgba(255, 102, 0, 0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) .layoutWeight(1) .onClick(() => { this.show = false; @@ -219,7 +223,7 @@ export default struct SubscriptionImport { Button('确认') .height(40) .fontColor(Color.White) - .backgroundColor(0xff6600) + .backgroundColor(this.theme.mainColor) .layoutWeight(1) .onClick(async () => { if (this.sourceGroup.length === 0) { @@ -273,7 +277,7 @@ export default struct SubscriptionImport { }) CheckboxGroup({ group: 'checkboxGroup' + index }) .checkboxShape(CheckBoxShape.CIRCLE) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) } .padding({ right: 16 }) .backgroundColor('#f5f5f5') @@ -296,7 +300,7 @@ export default struct SubscriptionImport { Checkbox({ name: 'checkbox' + j, group: 'checkboxGroup' + i }) .select(this.insertMap[item.sourceUrl] ?? false) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.insertMap[item.sourceUrl] = val }) diff --git a/entry/src/main/ets/componets/myCenter/MyCenterTitle.ets b/entry/src/main/ets/componets/myCenter/MyCenterTitle.ets index a8cf197a..593f4241 100644 --- a/entry/src/main/ets/componets/myCenter/MyCenterTitle.ets +++ b/entry/src/main/ets/componets/myCenter/MyCenterTitle.ets @@ -1,5 +1,7 @@ import { router } from '@kit.ArkUI' import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component export struct MyCenterTitle{ @@ -22,6 +24,9 @@ export struct MyCenterTitle{ @StorageProp('topRectHeight') topRectHeight: number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + // 重构 我的中心标题栏 build() { Column(){ @@ -98,7 +103,7 @@ export struct MyCenterTitle{ Row(){ Text(text) .font({size: 16, weight: 400}) - .fontColor(index === this.onSelect ? "#FF6600" : "#000000") + .fontColor(index === this.onSelect ? this.theme.mainColor : "#000000") .height(22) if (this.onSelect === index){ Image($r("app.media.ic_select")) diff --git a/entry/src/main/ets/componets/myCenter/cloudDisKBindSheetComponet.ets b/entry/src/main/ets/componets/myCenter/cloudDisKBindSheetComponet.ets index 1ffe5e48..f21e620f 100644 --- a/entry/src/main/ets/componets/myCenter/cloudDisKBindSheetComponet.ets +++ b/entry/src/main/ets/componets/myCenter/cloudDisKBindSheetComponet.ets @@ -1,4 +1,6 @@ import { PublicConstants } from '../../common/constants/PublicConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import { dataItem } from '../dataList/dataItem' @@ -6,6 +8,8 @@ import { dataItem } from '../dataList/dataItem' export struct cloudDisKBindSheetComponet{ @Prop items:dataItem[] @Link bindSheetIndex:number + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({space:16}){ ForEach(this.items,(item:dataItem,index:number)=>{ @@ -13,20 +17,20 @@ export struct cloudDisKBindSheetComponet{ //$r("app.media.my_center_file_icon") Image(item.type==1?$r("app.media.phone_icon"):$r("app.media.my_center_file_icon")) .size({width:20,height:20}) - .fillColor(index==this.bindSheetIndex?"rgba(255, 102, 0, 1)":Color.Black) + .fillColor(index==this.bindSheetIndex ? this.theme.mainColor : Color.Black) Text(item.title).fontSize(14) .lineHeight(22) - .fontColor(index==this.bindSheetIndex?"rgba(255, 102, 0, 1)":Color.Black) + .fontColor(index==this.bindSheetIndex? this.theme.mainColor :Color.Black) }.padding({top:14,bottom:14,left:20,right:20}) .width(280) .borderRadius(8) - .backgroundColor(index==this.bindSheetIndex? "rgba(255, 102, 0, 0.12)":"rgb(245, 245, 245)") + .backgroundColor(index==this.bindSheetIndex? this.theme.secondColor:"rgb(245, 245, 245)") .onClick(()=>{ this.bindSheetIndex=index }) .border({ width:index==this.bindSheetIndex?1:0, - color:index==this.bindSheetIndex?"rgba(255, 102, 0, 1)":PublicConstants.THEME_COLOR_WHITE + color:index==this.bindSheetIndex? this.theme.mainColor :PublicConstants.THEME_COLOR_WHITE }) }) }.padding({top:12,left:20,right:20}) diff --git a/entry/src/main/ets/componets/myCenter/myCenterInputDialog.ets b/entry/src/main/ets/componets/myCenter/myCenterInputDialog.ets index 6204a488..e6b50f30 100644 --- a/entry/src/main/ets/componets/myCenter/myCenterInputDialog.ets +++ b/entry/src/main/ets/componets/myCenter/myCenterInputDialog.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" @CustomDialog @@ -13,6 +15,8 @@ export struct myCenterInputDialog{ @Prop title:string = '' @Link value:string @Prop placeholder:string="" + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @Builder button(title:string,color:Array,confirm: () => void){ Text(title) .onClick(() => { @@ -51,8 +55,8 @@ export struct myCenterInputDialog{ Row({space:12}) { - this.button("取消",[$r('app.color.theme_color'),'rgba(255,120,0,0.12)'],this.cancel) - this.button("确定",[Color.White,$r('app.color.theme_color')],this.confirm) + this.button("取消",[this.theme.mainColor,this.theme.secondColor],this.cancel) + this.button("确定",[Color.White,this.theme.mainColor],this.confirm) } }.padding(24) .width(284) diff --git a/entry/src/main/ets/componets/search/SearchBookItem.ets b/entry/src/main/ets/componets/search/SearchBookItem.ets index 0c6ff2a6..de718c3f 100644 --- a/entry/src/main/ets/componets/search/SearchBookItem.ets +++ b/entry/src/main/ets/componets/search/SearchBookItem.ets @@ -1,6 +1,8 @@ import { SearchBook } from '../../database/entities/SearchBook' import { router } from '@kit.ArkUI' import clickUtil from '../../common/utils/ClickUtils' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component export struct SearchBookItem { @@ -16,6 +18,8 @@ export struct SearchBookItem { .backgroundColor("rgba(0, 0, 0, 0.06)") .borderRadius(5) } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Row({space:20}){ Image(this.book.coverUrl).size({ @@ -27,7 +31,7 @@ export struct SearchBookItem { //书名 Row(){ Text(this.book.name) - .fontColor(this.SearchValue=== this.book.name?"rgba(255, 102, 0, 1)":"#000000") + .fontColor(this.SearchValue=== this.book.name ? this.theme.mainColor :"#000000") } //作者及书源数量 Row({space:2}){ diff --git a/entry/src/main/ets/componets/search/SearchBookList.ets b/entry/src/main/ets/componets/search/SearchBookList.ets index 976330c7..17f3e4ef 100644 --- a/entry/src/main/ets/componets/search/SearchBookList.ets +++ b/entry/src/main/ets/componets/search/SearchBookList.ets @@ -2,7 +2,9 @@ import { common } from '@kit.AbilityKit' import { util } from '@kit.ArkTS' import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' import taskSearchBooks from '../../common/model/taskSearchBook' +import { ThemeItem } from '../../common/model/Theme' import { SearchBook } from '../../database/entities/SearchBook' import { SearchBookItem } from './SearchBookItem' @@ -24,6 +26,8 @@ export struct SearchBookList { readonly SWITCH_BUTTON: number = 5; // 当前显示在屏幕上的子组件Index到达该阈值时,将跳转到历史记录按钮切换成跳转到顶部 @State listOffsetY:number=0 @State listScrollerY:number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column(){ List({space:8,scroller:this.listScroller}){ @@ -51,7 +55,7 @@ export struct SearchBookList { Row(){ LoadingProgress() - .color($r('app.color.theme_color')) + .color(this.theme.mainColor) .width(30) .height(30) Text('搜索中...') @@ -59,7 +63,7 @@ export struct SearchBookList { size:14, weight:500 }) - .fontColor($r('app.color.theme_color')) + .fontColor(this.theme.mainColor) } .visibility(this.isSearch?Visibility.Visible:Visibility.None) .position({ x: '95%', y: '0%'}) @@ -70,13 +74,13 @@ export struct SearchBookList { }){ Image($r('app.media.icon_search_stop')) .width(24).height(24) - .fillColor($r('app.color.theme_color')) + .fillColor(this.theme.mainColor) Text('停止') .font({ size:14, weight:500 }) - .fontColor($r('app.color.theme_color')) + .fontColor(this.theme.mainColor) } .onClick(()=>{ this.isSearch = false @@ -109,7 +113,7 @@ export struct SearchBookList { .position({ x: '95%', y: '90%'}) .markAnchor({ x:'90%'}) .opacity(0.8) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) .borderRadius(8) .onClick(() => { // 当前显示的index值小于设定的SWITCH_BUTTON时,按钮为跳转到上次浏览记录,否则为跳转到顶部 diff --git a/entry/src/main/ets/componets/search/SearchDetails.ets b/entry/src/main/ets/componets/search/SearchDetails.ets index 0ff5e825..168789f0 100644 --- a/entry/src/main/ets/componets/search/SearchDetails.ets +++ b/entry/src/main/ets/componets/search/SearchDetails.ets @@ -1,6 +1,8 @@ import { SearchBookList } from './SearchBookList' import { SearchBook } from '../../database/entities/SearchBook' +import { ThemeItem } from '../../common/model/Theme' +import { ThemeStorageKey } from '../../common/constants/Theme' @Component export struct SearchDetails{ @@ -13,6 +15,8 @@ export struct SearchDetails{ @Consume('searchBookList') books:SearchBook[] @Consume('isSearch') isSearch:boolean @StorageLink('bottomRectHeight') bottomRectHeight: number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem refresh(){ if(this.SearchStatus>2){ this.isRefreshing=true @@ -21,7 +25,7 @@ export struct SearchDetails{ @Builder RefreshComponent(){ Stack(){ Row(){ - LoadingProgress().color("#FF6600").height(26) + LoadingProgress().color(this.theme.mainColor).height(26) Text("共搜索到"+this.books.length+"个相关结果").fontSize(14).margin({left:20}).fontColor($r('app.string.color_black_45')) }.alignItems(VerticalAlign.Center) }.width("100%").align(Alignment.Center) @@ -52,7 +56,7 @@ export struct SearchDetails{ } //给border添加加载动画 .border({ - width: { top:this.isSearch?2:0 },color:$r('app.color.theme_color') + width: { top:this.isSearch?2:0 },color:this.theme.mainColor }) .borderStyle({ top:BorderStyle.Solid, diff --git a/entry/src/main/ets/componets/search/SearchRefresh.ets b/entry/src/main/ets/componets/search/SearchRefresh.ets index 23f9a87c..55661dcb 100644 --- a/entry/src/main/ets/componets/search/SearchRefresh.ets +++ b/entry/src/main/ets/componets/search/SearchRefresh.ets @@ -1,13 +1,18 @@ +import { ThemeStorageKey } from "../../common/constants/Theme"; +import { ThemeItem } from "../../common/model/Theme"; @Component export struct SearchRefresh{ @State color:string="rgba(0, 0, 0, 0.45)" @Consume SearchStatus: number; + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + @Builder refresh(){ Stack(){ Row(){ - LoadingProgress().color("#FF6600").height(30) + LoadingProgress().color(this.theme.mainColor).height(30) Text("玩命加载中...").fontSize(16).margin({left:20}).fontColor(this.color) }.alignItems(VerticalAlign.Center) }.width("100%").height("100%").align(Alignment.Center) diff --git a/entry/src/main/ets/componets/source/SourceView.ets b/entry/src/main/ets/componets/source/SourceView.ets index 65924c6a..4bc0c85f 100644 --- a/entry/src/main/ets/componets/source/SourceView.ets +++ b/entry/src/main/ets/componets/source/SourceView.ets @@ -11,6 +11,8 @@ import SideBar from '../common/SideBar' import Tag from '../common/Tag' import { router } from '@kit.ArkUI' import noFind from '../common/noFind' +import { ThemeItem } from '../../common/model/Theme' +import { ThemeStorageKey } from '../../common/constants/Theme' @Component export default struct SourceView { @@ -35,7 +37,8 @@ export default struct SourceView { } private scroll: Scroller = new Scroller() private secondScroll = new Scroller() - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear() { console.info('TagInfo', '当前下标: ' + this.index) this.loading = true @@ -269,7 +272,7 @@ export default struct SourceView { Column() { if (this.loading) { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width('50%') Text('加载中...') } else if (this.errorText) { @@ -313,7 +316,7 @@ export default struct SourceView { Blank() CheckboxGroup({ group: 'checkboxGroup' + index }) .checkboxShape(CheckBoxShape.CIRCLE) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) } else { Text('长按批量管理') .fontSize(12) @@ -348,7 +351,7 @@ export default struct SourceView { } if (item.hasExploreUrl) { - Tag({ text: '发现', color: '#FF6600', bgColor: '#1FFF6600' }) + Tag({ text: '发现', color: this.theme.mainColor, bgColor: this.theme.secondColor }) } Blank() @@ -356,7 +359,7 @@ export default struct SourceView { if (this.isBatch) { Checkbox({ name: 'checkbox' + j, group: 'checkboxGroup' + i }) .select(this.activeNameMap[item.bookSourceUrl] ?? false) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.activeNameMap[item.bookSourceUrl] = val }) @@ -449,10 +452,10 @@ export default struct SourceView { }) .border({ width: 1, - color: this.activeNameMap[item.bookSourceUrl] ? '#FF6600' : Color.White, + color: this.activeNameMap[item.bookSourceUrl] ? this.theme.mainColor : Color.White, style: BorderStyle.Solid }) - .backgroundColor(this.activeNameMap[item.bookSourceUrl] ? '#1FFF6600' : Color.White) + .backgroundColor(this.activeNameMap[item.bookSourceUrl] ? this.theme.secondColor : Color.White) } Item_Right_Dialog_Data: IconTitleVo[] = [ diff --git a/entry/src/main/ets/componets/webDavService/WebdavService.ets b/entry/src/main/ets/componets/webDavService/WebdavService.ets index e231d962..1c88f055 100644 --- a/entry/src/main/ets/componets/webDavService/WebdavService.ets +++ b/entry/src/main/ets/componets/webDavService/WebdavService.ets @@ -3,6 +3,8 @@ import { font, promptAction } from '@kit.ArkUI' import { pasteboard } from '@kit.BasicServicesKit' import { serviceDialog } from './serviceDialog' import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' @Component @@ -19,6 +21,8 @@ export struct WebdavService { private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) @State serviceDialogStatus:boolean=false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @Builder canvas(color:ResourceColor,X:number,Y:number){ Canvas(this.context) @@ -45,7 +49,7 @@ export struct WebdavService { Toggle({type:ToggleType.Switch,isOn:$$this.webDavStatus}) .onChange((isOn: boolean) => { this.webDavStatus=isOn - }).selectedColor("#F60").hoverEffect(HoverEffect.None) + }).selectedColor(this.theme.mainColor).hoverEffect(HoverEffect.None) } }.width("100%").justifyContent(FlexAlign.SpaceBetween) //wifi 阅读 写源 @@ -99,7 +103,7 @@ export struct WebdavService { .fontColor("rgba(0, 0, 0, 0.45)") .fontSize(14) Text("复制") - .fontColor("#FF6600") + .fontColor(this.theme.mainColor) .fontSize(14) .fontWeight(600) .onClick(()=>{this.copy(this.address)}) diff --git a/entry/src/main/ets/componets/webDavService/serviceDialog.ets b/entry/src/main/ets/componets/webDavService/serviceDialog.ets index 0cc1af76..14ae3183 100644 --- a/entry/src/main/ets/componets/webDavService/serviceDialog.ets +++ b/entry/src/main/ets/componets/webDavService/serviceDialog.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from "../../common/constants/Theme" +import { ThemeItem } from "../../common/model/Theme" @CustomDialog @@ -26,7 +28,8 @@ export struct serviceDialog{ .fontColor(color[0]) .backgroundColor(color[1]) } - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({space:15}) { @@ -43,8 +46,8 @@ export struct serviceDialog{ .lineHeight(25) } Row({space:24}) { - this.button("取消",[$r('app.color.theme_color'),'rgba(255,120,0,0.12)'],this.cancel) - this.button("确定",[Color.White,$r('app.color.theme_color')],this.confirm) + this.button("取消",[this.theme.mainColor, this.theme.secondColor],this.cancel) + this.button("确定",[Color.White,this.theme.mainColor],this.confirm) }.padding({top:10}) }.padding({top:20,bottom:20}) .width(270) diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index 79ce0bd6..ccb44c2d 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -7,6 +7,7 @@ import display from '@ohos.display'; import DbUtil from '../common/utils/DbUtil'; import DataBase from '../database' import { webview } from '@kit.ArkWeb'; +import { themeManager, ThemeManager } from '../common/utils/ThemeManager'; export default class EntryAbility extends UIAbility { @@ -96,11 +97,14 @@ export default class EntryAbility extends UIAbility { AppStorage.setOrCreate('stateHeight', px2vp(avoidAreaSys.topRect.height)); }) - windowStage.loadContent('pages/welcomePage', (err, data) => { + + windowStage.loadContent('/pages/Index'.slice(1), (err, data) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } + // 主题初始化 + themeManager.init() hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); } diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 6f735ea6..29414663 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -7,6 +7,11 @@ import Find from './view/Find/Find' import MyCenter from './view/myCenter/MyCenter' import Subscription from './view/Subscription' import {testGetColorFunction} from '@ohos/colorLibrary' +import { BusinessError, emitter } from '@kit.BasicServicesKit' +import { JSON } from '@kit.ArkTS' +import { image } from '@kit.ImageKit' +import { ThemeStorageKey } from '../common/constants/Theme' +import { ThemeItem } from '../common/model/Theme' @Entry @Component @@ -18,6 +23,10 @@ struct Main { @StorageLink('topRectHeight') topRectHeight: number = 0 @StorageProp('APP_INDEX_SCROLLABLE') APP_INDEX_SCROLLABLE: boolean = true @State ShowBar: boolean = true + tabController: TabsController = new TabsController() + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem onPageShow(): void { // initBookListData() @@ -33,7 +42,26 @@ struct Main { }) } + screenShot() { + // 切换回首页 + let index = this.currentTabIndex + this.tabController.changeIndex(0) + this.getUIContext().getComponentSnapshot().get('main', ((err: Error, pixmap: image.PixelMap) => { + if (err) { + console.log("error: " + JSON.stringify(err)) + return + } + AppStorage.setOrCreate('screen_shot', pixmap) + })) + // 恢复当前页 + this.tabController.changeIndex(index) + } + aboutToAppear(): void { + // 注册监听截图事件 用于我的页面下主题设置预览 + emitter.on('screen_shot', () => { + this.screenShot() + }) //测试颜色模块 testGetColorFunction(); } @@ -45,9 +73,10 @@ struct Main { alignItems:ItemAlign.Center, justifyContent:FlexAlign.Center }){ - Image(this.currentTabIndex === index?icon_select:unselected).height(25) + Image(this.currentTabIndex === index? icon_select:unselected).height(25) .draggable(false) - Text(name).fontSize(11).margin(5).fontColor(this.currentTabIndex === index ?'rgb(255,119, 50)' : '#000000') + .fillColor(this.currentTabIndex === index ? this.theme.mainColor : '#000000') + Text(name).fontSize(11).margin(5).fontColor(this.currentTabIndex === index ? this.theme.mainColor : '#000000') } }.gesture( LongPressGesture({ repeat: index === 0,duration:1000 }) @@ -71,7 +100,8 @@ struct Main { build() { Column() { Tabs({ - barPosition:BarPosition.End + barPosition:BarPosition.End, + controller: this.tabController }){ ForEach(this.nav,(item:NavItem) => { TabContent() { @@ -106,5 +136,6 @@ struct Main { } .width("100%") .height("100%") + .id('main') } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/view/BookDetailPage.ets b/entry/src/main/ets/pages/view/BookDetailPage.ets index 2b287e73..74a09849 100644 --- a/entry/src/main/ets/pages/view/BookDetailPage.ets +++ b/entry/src/main/ets/pages/view/BookDetailPage.ets @@ -10,6 +10,8 @@ import { Books } from '../../database/entities/Books' import { BookHistory } from '../../database/entities/BookHistory' import bookHistoryUtils from '../../common/utils/BookHistoryUtils' import booksUtil from '../../common/utils/booksUtils' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' /** * 标题图片样式 @@ -87,6 +89,10 @@ struct BookDetailPage { }) @State txtFiles: chaptersItem[] = []; @State txtFile: ChaptersDataSource = new ChaptersDataSource() + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + onPageShow() { this.isShow = true } @@ -227,8 +233,8 @@ struct BookDetailPage { .width(150) .height(40) .borderRadius(200) - .backgroundColor('#1fff6600') - .fontColor('#FF6600') + .backgroundColor(this.theme.secondColor) + .fontColor(this.theme.mainColor) .onClick(() => { !this.bookData.isJoin?this.addBookShelf():'' }) @@ -242,7 +248,7 @@ struct BookDetailPage { .width(150) .height(40) .borderRadius(200) - .backgroundColor(this.txtFile.totalCount() > 0 ? '#FF6600' : 'gray') + .backgroundColor(this.txtFile.totalCount() > 0 ? this.theme.mainColor : 'gray') .fontColor('#FFFFFF') .enabled(this.txtFile.totalCount() > 0) .onClick(() => { @@ -295,7 +301,7 @@ struct BookDetailPage { .width(10) .strokeWidth(3) .lineCap(LineCapStyle.Round) - .color('#FF6600') + .color(this.theme.mainColor) .opacity(this.currentIndex === index ? 1 : 0) } .padding({ top: 8, bottom: 8 }) diff --git a/entry/src/main/ets/pages/view/BookEditor/BookEditorPage.ets b/entry/src/main/ets/pages/view/BookEditor/BookEditorPage.ets index 203bac61..7ca0f065 100644 --- a/entry/src/main/ets/pages/view/BookEditor/BookEditorPage.ets +++ b/entry/src/main/ets/pages/view/BookEditor/BookEditorPage.ets @@ -1,4 +1,6 @@ import { router, SwipeRefresher } from '@kit.ArkUI' +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import { BookEditorType } from './BookEditorType/BookEditorType' import inputComponent from './InputComponet/inputComponet' @@ -31,6 +33,7 @@ struct BookEditorPage { this.BookIconUrl, this.BookSynopsis ); + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem //标题文本颜色 @@ -41,7 +44,7 @@ struct BookEditorPage { ButtonColor:string = '#0f000000' //编辑书籍确认、取消按钮颜色 BtnConfirmColor:string = '#F60' - BtnCancelColor:string = '#1fff6600' + BtnCancelColor:string = this.theme.secondColor //电池显示组件 @Builder BufComponent () { diff --git a/entry/src/main/ets/pages/view/Find/BookSource/AddSourcePage.ets b/entry/src/main/ets/pages/view/Find/BookSource/AddSourcePage.ets index 78a3bafb..46e16083 100644 --- a/entry/src/main/ets/pages/view/Find/BookSource/AddSourcePage.ets +++ b/entry/src/main/ets/pages/view/Find/BookSource/AddSourcePage.ets @@ -10,6 +10,8 @@ import { JSON } from '@kit.ArkTS'; import BookSourceDao from '../../../../database/dao/BookSourceDao'; import { BookSource, BOOK_SOURCE_TYPE, GRADE_TYPE, SOURCE_GROUP_MAP, SOURCE_SCORE_ARR } from '../../../../database/entities/BookSource'; +import { ThemeItem } from '../../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../../common/constants/Theme'; interface RouteParams { id: string, @@ -52,6 +54,8 @@ struct AddSourcePage { showRecentIcon: false, showExplore: true } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem async aboutToAppear() { const params = router.getParams() as RouteParams; @@ -152,8 +156,8 @@ struct AddSourcePage { Row({ space: 20 }) { Button('取消') .height(40) - .fontColor(0xff6600) - .backgroundColor('rgba(255, 102, 0, 0.12)') + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) .layoutWeight(1) .onClick(() => { router.back() @@ -163,7 +167,7 @@ struct AddSourcePage { Button('确认') .height(40) .fontColor(Color.White) - .backgroundColor(0xff6600) + .backgroundColor(this.theme.mainColor) .layoutWeight(1) .onClick(async () => { if (!this.formModel.bookSourceName || !this.formModel.bookSourceUrl) { @@ -203,7 +207,7 @@ struct AddSourcePage { Text('CookieJar') Toggle({ type: ToggleType.Switch, isOn: enabledCookieJar }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { onChange(val) @@ -945,9 +949,9 @@ struct AddSourcePage { .fontSize(16) .fontWeight(this.currentIndex === index ? 700 : 400) .lineHeight(24) - .backgroundImage(this.currentIndex === index ? $r('app.media.underline') : '') - .backgroundImageSize(this.currentIndex === index ? { width: '100%', height: 15 } : {}) - .backgroundImagePosition({ y: 16 }) + // .backgroundImage(this.currentIndex === index ? $r('app.media.underline') : '') + // .backgroundImageSize(this.currentIndex === index ? { width: '100%', height: 15 } : {}) + // .backgroundImagePosition({ y: 16 }) } } diff --git a/entry/src/main/ets/pages/view/Find/BookSource/components/FilterText.ets b/entry/src/main/ets/pages/view/Find/BookSource/components/FilterText.ets index 92068e0f..76042a91 100644 --- a/entry/src/main/ets/pages/view/Find/BookSource/components/FilterText.ets +++ b/entry/src/main/ets/pages/view/Find/BookSource/components/FilterText.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../../../../common/constants/Theme" +import { ThemeItem } from "../../../../../common/model/Theme" + @Component export default struct FilterText { index: number = 0 @@ -5,24 +8,25 @@ export default struct FilterText { @Prop hasActive: boolean = false isIcon: boolean = true onChange: (val: number) => void = (_val) => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Row() { Text(this.title) .fontSize(12) - .fontColor(this.hasActive ? '#FF6600' : '#E0000000') - + .fontColor(this.hasActive ? this.theme.mainColor : '#E0000000') if (this.isIcon) { Image($r('app.media.down_arrow')) .width(8) .margin({ left: 6 }) - .fillColor(this.hasActive ? '#FF6600' : '#E0000000') + .fillColor(this.hasActive ? this.theme.mainColor : '#E0000000') } if (this.index === 4 && this.hasActive) { Image($r('app.media.close')) .width(8) .margin({ left: 2 }) - .fillColor(this.hasActive ? '#FF6600' : '#E0000000') + .fillColor(this.hasActive ? this.theme.mainColor : '#E0000000') } } .height(22) @@ -33,7 +37,7 @@ export default struct FilterText { right: 4 }) .layoutWeight(1) - .backgroundColor(this.hasActive ? 'rgba(255, 102, 0, 0.12)' : Color.White) + .backgroundColor(this.hasActive ? this.theme.secondColor : Color.White) .borderRadius(4) .alignItems(VerticalAlign.Center) .justifyContent(FlexAlign.Center) diff --git a/entry/src/main/ets/pages/view/Find/BookSource/components/FiltrateOption.ets b/entry/src/main/ets/pages/view/Find/BookSource/components/FiltrateOption.ets index 6b5bd162..5fcd2d04 100644 --- a/entry/src/main/ets/pages/view/Find/BookSource/components/FiltrateOption.ets +++ b/entry/src/main/ets/pages/view/Find/BookSource/components/FiltrateOption.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../../../../common/constants/Theme"; +import { ThemeItem } from "../../../../../common/model/Theme"; + export interface Options { label: string; value?: number | string | boolean; @@ -11,13 +14,15 @@ export default struct FiltrateOption { isAgain: boolean = false @Prop value?: number | string | boolean onChange: (value?: number | string | boolean) => void = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Grid() { ForEach(this.options, (item: Options) => { GridItem() { Text(item.label) - .fontColor(this.value === item.value ? '#FF6600' : '#E0000000') + .fontColor(this.value === item.value ? this.theme.mainColor : '#E0000000') .fontSize(12) .height(20) .lineHeight(20) @@ -26,10 +31,10 @@ export default struct FiltrateOption { radius: 4, width: 1, style: BorderStyle.Solid, - color: this.value === item.value ? '#FF6600' : '#0A000000' + color: this.value === item.value ? this.theme.mainColor : '#0A000000' }) .padding({ top: 6, bottom: 6 }) - .backgroundColor(this.value === item.value ? 'rgba(255, 102, 0, 0.12)' : '#0A000000') + .backgroundColor(this.value === item.value ? this.theme.secondColor : '#0A000000') .onClick(() => { if (this.value !== undefined && this.isAgain && this.value === item.value) { this.onChange(undefined) diff --git a/entry/src/main/ets/pages/view/Find/BookSource/components/SourceView.ets b/entry/src/main/ets/pages/view/Find/BookSource/components/SourceView.ets index 0428474c..74169990 100644 --- a/entry/src/main/ets/pages/view/Find/BookSource/components/SourceView.ets +++ b/entry/src/main/ets/pages/view/Find/BookSource/components/SourceView.ets @@ -16,6 +16,8 @@ import SourceGroup from '../../../../../componets/ui/SourceGroup' import { BookSourceSearchParams } from '../../../../../database/types/BookSourceType' import FiltrateOption from './FiltrateOption' import FilterText from './FilterText' +import { ThemeItem } from '../../../../../common/model/Theme' +import { ThemeStorageKey } from '../../../../../common/constants/Theme' @Component export default struct SourceView { @@ -52,6 +54,8 @@ export default struct SourceView { order: undefined, hasLoginUrl: undefined } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem private dialogController: CustomDialogController = new CustomDialogController({ builder: CustomContentDialog({ primaryTitle: '书源评分', @@ -67,8 +71,8 @@ export default struct SourceView { buttons: [ { value: '取消', - background: '#1FFF6600', - fontColor: '#FF6600', + background: this.theme.secondColor, + fontColor: this.theme.mainColor, action: () => { this.dialogItem = {} this.dialogController.close() @@ -76,7 +80,7 @@ export default struct SourceView { }, { value: '确认', - background: '#FF6600', + background: 'this.theme.mainColor', fontColor: '#FFFFFF', action: async () => { if (this.isBatch) { @@ -104,7 +108,7 @@ export default struct SourceView { ], theme: { colors: { - confirm: 0xff6600 + confirm: this.theme.mainColor } } }), @@ -503,7 +507,7 @@ export default struct SourceView { Text(this.errorText) } else { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width('50%') Text('加载中...') } @@ -538,7 +542,7 @@ export default struct SourceView { Row().width(12) Column() { Toggle({ type: ToggleType.Switch, isOn: this.toggleAll }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ bottom: 4 }) .onChange(async (val: boolean) => { this.toggleAll = val @@ -706,7 +710,7 @@ export default struct SourceView { Radio({ value: '2', group: 'radioGroup' }) .checked(this.dialogItem?.bookSourceGrade === 2) .radioStyle({ - checkedBackgroundColor: 0xff6600 + checkedBackgroundColor: this.theme.mainColor }) .height(20) .width(20) @@ -723,7 +727,7 @@ export default struct SourceView { Radio({ value: '1', group: 'radioGroup' }) .checked(this.dialogItem?.bookSourceGrade === 1) .radioStyle({ - checkedBackgroundColor: 0xff6600 + checkedBackgroundColor: this.theme.mainColor }) .height(20) .width(20) @@ -741,7 +745,7 @@ export default struct SourceView { Radio({ value: '0', group: 'radioGroup' }) .checked(this.dialogItem?.bookSourceGrade === 0) .radioStyle({ - checkedBackgroundColor: 0xff6600 + checkedBackgroundColor: this.theme.mainColor }) .height(20) .width(20) @@ -777,7 +781,7 @@ export default struct SourceView { Blank() CheckboxGroup({ group: 'checkboxGroup' + index }) .checkboxShape(CheckBoxShape.CIRCLE) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) } else { Text('长按批量管理') .fontSize(12) @@ -812,7 +816,7 @@ export default struct SourceView { } if (item.hasExploreUrl) { - Tag({ text: '发现', color: '#FF6600', bgColor: '#1FFF6600' }) + Tag({ text: '发现', color: this.theme.mainColor, bgColor: this.theme.secondColor }) } Blank() @@ -820,7 +824,7 @@ export default struct SourceView { if (this.isBatch) { Checkbox({ name: 'checkbox' + j, group: 'checkboxGroup' + i }) .select(this.activeNameMap[item.bookSourceUrl] ?? false) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { this.activeNameMap[item.bookSourceUrl] = val }) @@ -892,7 +896,7 @@ export default struct SourceView { .fontColor('rgba(0, 0, 0, 0.45)') Blank() Toggle({ type: ToggleType.Switch, isOn: item.enabled }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onChange(async (val: boolean) => { item.enabled = val await BookSourceDao.updateFlow(item) diff --git a/entry/src/main/ets/pages/view/Find/CategoryList/Index.ets b/entry/src/main/ets/pages/view/Find/CategoryList/Index.ets index 27630020..4b014ff1 100644 --- a/entry/src/main/ets/pages/view/Find/CategoryList/Index.ets +++ b/entry/src/main/ets/pages/view/Find/CategoryList/Index.ets @@ -8,35 +8,25 @@ import axios, { AxiosResponse } from '@ohos/axios'; import noFind from '../../../../componets/common/noFind'; import { CardItem } from '../components/CardItem'; import CommonConstants from '../../../../common/constants/CommonConstants'; -import { BookSource } from '../../../../database/entities/BookSource'; +import { ThemeColorItem, ThemeItem } from '../../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../../common/constants/Theme'; interface RouteParams { - bookSource: BookSource, + bookSourceUrl: string, exploreItem: ExploreItem, + exploreRule: ExploreRule, currentIndex: number } @Entry @Component struct CateGoryListPage { + @State bookSourceUrl: string = '' @State exploreItem: ExploreItem = { title: '', url: '' } - @State bookSource?: BookSource = { - bookSourceUrl: '', - bookSourceName: '', - bookSourceType: 0, - customOrder: 0, - enabled: false, - enabledExplore: false, - lastUpdateTime: 0, - respondTime: 0, - weight: 0, - isTop: false, - showRecentIcon: false, - showExplore: true - } + @State exploreRule: ExploreRule = {} @State pageNum: number = 1 @State pageSize: number = 10 @State bookList: ExploreRule[] = [] @@ -45,38 +35,38 @@ struct CateGoryListPage { @State isRefreshing: boolean = false @State RefreshingTitle: string = '松开刷新' @State currentIndex:number = 0 + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem async aboutToAppear() { this.startLoading = true const params = router.getParams() as RouteParams; this.currentIndex = params.currentIndex console.log('TagInfo', JSON.stringify(params)) - this.bookSource = params.bookSource + this.bookSourceUrl = params.bookSourceUrl this.exploreItem = params.exploreItem + this.exploreRule = params.exploreRule await this.getList() this.startLoading = false } async getList() { - if (!this.bookSource) return - const bookSourceUrl = this.bookSource.bookSourceUrl - const exploreRule = this.bookSource.ruleExplore - const searchRule = this.bookSource.ruleSearch let url = this.exploreItem.url.replace('{{page}}', this.pageNum.toString()) if (!isNetworkUrl(url)) { - url = bookSourceUrl + url + url = this.bookSourceUrl + url } const exploreQuery: ExploreQuery = { url, + bookList: this.exploreRule.bookList, pageSize: this.pageSize, - bookList: exploreRule?.bookList || searchRule?.bookList, - name: exploreRule?.name || searchRule?.name, - author: exploreRule?.author || searchRule?.author, - intro: exploreRule?.intro || searchRule?.intro, - kind: exploreRule?.kind || searchRule?.kind, - lastChapter: exploreRule?.lastChapter || searchRule?.lastChapter, - bookUrl: exploreRule?.bookUrl || searchRule?.bookUrl, - coverUrl: exploreRule?.coverUrl || searchRule?.coverUrl, - wordCount: exploreRule?.wordCount || searchRule?.wordCount + name: this.exploreRule.name, + author: this.exploreRule.author, + intro: this.exploreRule.intro, + kind: this.exploreRule.kind, + lastChapter: this.exploreRule.lastChapter, + bookUrl: this.exploreRule.bookUrl, + coverUrl: this.exploreRule.coverUrl, + wordCount: this.exploreRule.wordCount } if (this.pageNum * this.pageSize - this.bookList.length >= this.pageSize * 2 && !this.startLoading) { return @@ -87,7 +77,7 @@ struct CateGoryListPage { console.info('TagInfo, 解析内容:', JSON.stringify(res.data)) const bookList = (res.data as ExploreRule[]).map(item => { if (item.coverUrl && !isNetworkUrl(item.coverUrl)) { - item.coverUrl = bookSourceUrl + item.coverUrl + item.coverUrl = this.bookSourceUrl + item.coverUrl } return item }) @@ -116,7 +106,7 @@ struct CateGoryListPage { if (this.startLoading) { Row() { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width(35) Text('内容加载中...') } diff --git a/entry/src/main/ets/pages/view/Find/IndexFind.ets b/entry/src/main/ets/pages/view/Find/IndexFind.ets index 4e36edcf..37e3fc3f 100644 --- a/entry/src/main/ets/pages/view/Find/IndexFind.ets +++ b/entry/src/main/ets/pages/view/Find/IndexFind.ets @@ -11,6 +11,8 @@ import { getPasteDataSync, isNetworkUrl, sleep } from '../../../common/utils/uti import { showMessage } from '../../../componets/common/promptShow'; import FindContent from './components/FindContent'; import { BookSource } from '../../../database/entities/BookSource'; +import { ThemeItem } from '../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; /** * @author 2008 @@ -35,6 +37,8 @@ export default struct IndexFind { @State isShowHelp: boolean = false @State isShowImport: boolean = false @State sourceList: BookSource[] = [] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { @@ -128,9 +132,7 @@ export default struct IndexFind { } .linearGradient({ direction: GradientDirection.Bottom, // 渐变方向 - colors: [ - ["rgb(254, 203, 169)", 0], ["RGB(245, 245, 245)", 0.15] - , ["RGB254, 203, 169)", 0.25]] // 数组末尾元素占比小于1时满足重复着色效果 + colors: [[this.theme.mainColor, 0], [this.theme.secondColor, 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 }) } diff --git a/entry/src/main/ets/pages/view/Find/components/AllCategory.ets b/entry/src/main/ets/pages/view/Find/components/AllCategory.ets index 02cd0ad4..5e5668bb 100644 --- a/entry/src/main/ets/pages/view/Find/components/AllCategory.ets +++ b/entry/src/main/ets/pages/view/Find/components/AllCategory.ets @@ -1,6 +1,6 @@ import { ExploreItem } from '../../../../database/types/BookSourceType' import { router } from '@kit.ArkUI' -import { BookSource } from '../../../../database/entities/BookSource' +import { ExploreRule } from '../../../../database/entities/rule' export interface GroupExploreList { title: string, @@ -14,7 +14,8 @@ export default struct AllCategory { @StorageLink('bottomRectHeight') bottomRectHeight: number = 0 @Prop list: GroupExploreList[] = [] @Link showSheet: boolean - @Prop bookSource?: BookSource + @Prop bookSourceUrl: string = '' + @Prop exploreRule: ExploreRule = {} build() { Column() { @@ -105,14 +106,15 @@ export default struct AllCategory { .backgroundColor('#0F000000') .borderRadius(4) .onClick(() => { - if (!item.url || !this.bookSource) { + if (!item.url) { return } router.pushUrl({ url: 'pages/view/Find/CategoryList/Index', params: { - bookSource: this.bookSource, - exploreItem: item + bookSourceUrl: this.bookSourceUrl, + exploreItem: item, + exploreRule: this.exploreRule } }) }) diff --git a/entry/src/main/ets/pages/view/Find/components/BodyContent.ets b/entry/src/main/ets/pages/view/Find/components/BodyContent.ets index f776a85a..62d8be1c 100644 --- a/entry/src/main/ets/pages/view/Find/components/BodyContent.ets +++ b/entry/src/main/ets/pages/view/Find/components/BodyContent.ets @@ -4,6 +4,8 @@ * @className: BodyContent */ import CommonConstants from '../../../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import sourceType from '../../../../componets/common/sourceType' import SourceCommon from '../../../../componets/source/SourceCommon' import BookSourceDao from '../../../../database/dao/BookSourceDao' @@ -21,7 +23,8 @@ export default struct BodyContent { @StorageLink(CommonConstants.HAS_EXPLORE_URL) @Watch('getList') hasExploreUrl?: boolean = undefined tabsBodyController: TabsController = new TabsController(); @StorageLink('refreshCount') @Watch('getList') refreshCount: number = 0 - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear() { this.getList() } @@ -58,7 +61,7 @@ export default struct BodyContent { if (this.loading) { Row() { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width(30) Text('加载中...') } @@ -111,7 +114,7 @@ export default struct BodyContent { if (this.loading) { Column() { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width('50%') Text('加载中...') } diff --git a/entry/src/main/ets/pages/view/Find/components/BookFindContent.ets b/entry/src/main/ets/pages/view/Find/components/BookFindContent.ets index 26a4474e..183322ea 100644 --- a/entry/src/main/ets/pages/view/Find/components/BookFindContent.ets +++ b/entry/src/main/ets/pages/view/Find/components/BookFindContent.ets @@ -13,54 +13,52 @@ import mayAlsoLike from '../mayAlsoLike' import { CardItem } from './CardItem' import { router } from '@kit.ArkUI' import CommonConstants from '../../../../common/constants/CommonConstants'; -import { BookSource } from '../../../../database/entities/BookSource' +import { ThemeItem } from '../../../../common/model/Theme' +import { ThemeStorageKey } from '../../../../common/constants/Theme' @Component export default struct BookFindContent { @Prop currentIndex: number + @Prop bookSourceUrl: string @Prop exploreItem: ExploreItem @Prop @Watch('getList') counter: number = 0 @State loading: boolean = true @State errorExplore: boolean = false @State bookList: ExploreRule[] = [] - @Prop bookSource?: BookSource + @Prop exploreRule: ExploreRule = {} handleClick: () => void = () => { } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear() { this.getList() - if (!this.bookSource) return } getList() { - if (!this.bookSource) return - const bookSourceUrl = this.bookSource.bookSourceUrl - const exploreRule = this.bookSource.ruleExplore - const searchRule = this.bookSource.ruleSearch this.loading = true let url = this.exploreItem.url.replace('{{page}}', "1") if (!isNetworkUrl(url)) { - url = bookSourceUrl + url + url = this.bookSourceUrl + url } const exploreQuery: ExploreQuery = { url, + bookList: this.exploreRule.bookList, pageSize: 3, - bookList: exploreRule?.bookList || searchRule?.bookList, - name: exploreRule?.name || searchRule?.name, - author: exploreRule?.author || searchRule?.author, - intro: exploreRule?.intro || searchRule?.intro, - kind: exploreRule?.kind || searchRule?.kind, - lastChapter: exploreRule?.lastChapter || searchRule?.lastChapter, - bookUrl: exploreRule?.bookUrl || searchRule?.bookUrl, - coverUrl: exploreRule?.coverUrl || searchRule?.coverUrl, - wordCount: exploreRule?.wordCount || searchRule?.wordCount + name: this.exploreRule.name, + author: this.exploreRule.author, + intro: this.exploreRule.intro, + kind: this.exploreRule.kind, + lastChapter: this.exploreRule.lastChapter, + bookUrl: this.exploreRule.bookUrl, + coverUrl: this.exploreRule.coverUrl, + wordCount: this.exploreRule.wordCount } - console.info('解析参数:', JSON.stringify(exploreQuery)) axios.post(CommonConstants.BASE_URL + '/common/analysisRules', exploreQuery).then((res: AxiosResponse) => { console.info('TagInfo, 解析内容:', JSON.stringify(res.data)) this.bookList = (res.data as ExploreRule[]).map(item => { if (item.coverUrl && !isNetworkUrl(item.coverUrl)) { - item.coverUrl = bookSourceUrl + item.coverUrl + item.coverUrl = this.bookSourceUrl + item.coverUrl } return item }) @@ -85,7 +83,7 @@ export default struct BookFindContent { if (this.loading) { Column() { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width('50%') Text('内容加载中...') } @@ -121,8 +119,9 @@ export default struct BookFindContent { router.pushUrl({ url: 'pages/view/Find/CategoryList/Index', params: { - bookSource: this.bookSource, + bookSourceUrl: this.bookSourceUrl, exploreItem: this.exploreItem, + exploreRule: this.exploreRule, currentIndex: this.currentIndex } }) diff --git a/entry/src/main/ets/pages/view/Find/components/CardItem.ets b/entry/src/main/ets/pages/view/Find/components/CardItem.ets index 7b830465..33b7404e 100644 --- a/entry/src/main/ets/pages/view/Find/components/CardItem.ets +++ b/entry/src/main/ets/pages/view/Find/components/CardItem.ets @@ -1,11 +1,17 @@ import { ExploreRule } from '../../../../database/entities/rule'; import { router } from '@kit.ArkUI'; import clickUtil from '../../../../common/utils/ClickUtils'; +import { ThemeStorageKey } from '../../../../common/constants/Theme'; +import { ThemeItem } from '../../../../common/model/Theme'; @Component export struct CardItem { @Prop item: ExploreRule = {}; currentIndex:number = 0 + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Row() { Image(this.item.coverUrl ?? $r('app.media.no_record')) @@ -35,12 +41,12 @@ export struct CardItem { Column() { Text(this.item.author) .fontSize(10) - .fontColor('#FF6600') + .fontColor(this.theme.mainColor) } .padding({ left: 6, right: 6 }) .height(16) .justifyContent(FlexAlign.Center) - .backgroundColor('#1FFF6600') + .backgroundColor(this.theme.secondColor) if (this.item.kind) { Column() { diff --git a/entry/src/main/ets/pages/view/Find/components/ContentRefresh.ets b/entry/src/main/ets/pages/view/Find/components/ContentRefresh.ets index ec1ff551..db838b2c 100644 --- a/entry/src/main/ets/pages/view/Find/components/ContentRefresh.ets +++ b/entry/src/main/ets/pages/view/Find/components/ContentRefresh.ets @@ -4,6 +4,7 @@ import RefreshComponent from '../../../../componets/common/RefreshComponent' import { BookSource } from '../../../../database/entities/BookSource' import BookFindContent from './BookFindContent' import { JSON } from '@kit.ArkTS' +import { ExploreRule } from '../../../../database/entities/rule' import { ExploreItem } from '../../../../database/types/BookSourceType' import AllCategory, { GroupExploreList } from './AllCategory' @@ -35,6 +36,7 @@ export default struct ContentRefresh { @State groupExploreList: GroupExploreList[] = [] @State exploreList: ExploreItem[] = [] @State showExploreList: ExploreItem[] = [] + @State exploreRule?: ExploreRule = {} @State showSheet: boolean = false aboutToAppear() { @@ -47,6 +49,7 @@ export default struct ContentRefresh { getList () { try { + this.exploreRule = this.bookSource.ruleExplore console.info('TagInfo: 书源地址:', this.bookSource.bookSourceUrl) console.info('TagInfo: 发现地址:', JSON.stringify(JSON.parse(this.bookSource.exploreUrl ?? '[]'))) const exploreList = JSON.parse(this.bookSource.exploreUrl ?? '[]') as ExploreItem[] @@ -119,8 +122,9 @@ export default struct ContentRefresh { ForEach(this.showExploreList, (item: ExploreItem) => { BookFindContent({ currentIndex: this.currentIndex, + bookSourceUrl: this.bookSource.bookSourceUrl, exploreItem: item, - bookSource: this.bookSource, + exploreRule: this.exploreRule, counter: this.counter, handleClick: () => { this.showSheet = true @@ -176,7 +180,8 @@ export default struct ContentRefresh { Column() { AllCategory({ showSheet: this.showSheet, - bookSource: this.bookSource, + bookSourceUrl: this.bookSource.bookSourceUrl, + exploreRule: this.exploreRule, list: this.groupExploreList }) } diff --git a/entry/src/main/ets/pages/view/Reader/RuleGroupTypePanel.ets b/entry/src/main/ets/pages/view/Reader/RuleGroupTypePanel.ets index 7066e058..0ca9a38a 100644 --- a/entry/src/main/ets/pages/view/Reader/RuleGroupTypePanel.ets +++ b/entry/src/main/ets/pages/view/Reader/RuleGroupTypePanel.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import { showMessage } from '../../../componets/common/promptShow' import { folderList } from '../../../componets/dataList/folderList' @@ -11,6 +13,8 @@ export default struct RuleGroupTypePanel{ @StorageProp('GROUP_LIST_DATA') groupData:folderList[] = [] @StorageProp('APP_INDEX_SCROLLABLE') APP_INDEX_SCROLLABLE: boolean = true + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({ space:15 @@ -24,7 +28,7 @@ export default struct RuleGroupTypePanel{ Text('点击进入,长按编辑').fontSize(12).fontWeight(400).lineHeight(20).fontColor('rgba(0, 0, 0, 0.45)') }.alignItems(VerticalAlign.Bottom) Row({space:12}){ - Text(this.isShowIcon?'完成':'管理').fontSize(12).fontWeight(400).lineHeight(20).fontColor($r('app.color.theme_color')) + Text(this.isShowIcon?'完成':'管理').fontSize(12).fontWeight(400).lineHeight(20).fontColor(this.theme.mainColor) .onClick(()=>{ this.isShowIcon = !this.isShowIcon }) @@ -110,14 +114,14 @@ export default struct RuleGroupTypePanel{ Text(title).fontWeight(500).fontSize(12).textOverflow({ overflow:TextOverflow.Ellipsis }).ellipsisMode(EllipsisMode.END) - .maxLines(1).fontColor($r('app.color.theme_color')) + .maxLines(1).fontColor(this.theme.mainColor) .textAlign(TextAlign.Center) } .margin({ right: 16, bottom: 16 }) .justifyContent(FlexAlign.Center) .alignItems(VerticalAlign.Center) .width(68) - .backgroundColor('rgba(252, 121, 0, 0.12)') + .backgroundColor(this.theme.secondColor) .padding({left:16,right:16,top:6,bottom:6}) } } diff --git a/entry/src/main/ets/pages/view/Reader/chapterCommon.ets b/entry/src/main/ets/pages/view/Reader/chapterCommon.ets index daefb8a2..a96ef176 100644 --- a/entry/src/main/ets/pages/view/Reader/chapterCommon.ets +++ b/entry/src/main/ets/pages/view/Reader/chapterCommon.ets @@ -5,10 +5,14 @@ * 章节选择弹窗 */ import CommonConstants from '../../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' @Component export default struct chapterCommon{ @Link isShowChapter:boolean + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column(){ Column(){ @@ -63,8 +67,8 @@ export default struct chapterCommon{ .width(150) .height(40) .borderRadius(200) - .backgroundColor('#1fff6600') - .fontColor($r('app.color.theme_color')) + .backgroundColor(this.theme.secondColor) + .fontColor(this.theme.mainColor) .onClick(()=>{ this.isShowChapter = false }) @@ -74,7 +78,7 @@ export default struct chapterCommon{ .width(150) .height(40) .borderRadius(200) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) .fontColor($r('sys.color.comp_background_list_card')) } @@ -94,7 +98,7 @@ export default struct chapterCommon{ if (!showRead){ Radio({value:'第一章',group:'radioGroup'}).checked(checkRead) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .border({width:2,color:'rgba(255, 255, 255, 0.10)'}) .width(24).height(24) diff --git a/entry/src/main/ets/pages/view/Reader/directoryPurification.ets b/entry/src/main/ets/pages/view/Reader/directoryPurification.ets index 56b719e2..81052501 100644 --- a/entry/src/main/ets/pages/view/Reader/directoryPurification.ets +++ b/entry/src/main/ets/pages/view/Reader/directoryPurification.ets @@ -5,6 +5,8 @@ * 目录净化弹窗 */ import CommonConstants from '../../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import buttonCommon from '../../../componets/common/buttonCommon' import { showMessage } from '../../../componets/common/promptShow' @@ -14,6 +16,8 @@ export default struct directoryPurification{ @Prop isEdit:boolean = false cancel: () => void = () => { } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ direction:FlexDirection.Column, @@ -54,7 +58,7 @@ export default struct directoryPurification{ family:CommonConstants.FAMILY_PingFANG }) .lineHeight(24) - Text('*').fontColor($r('app.color.theme_color')).font({ + Text('*').fontColor(this.theme.mainColor).font({ size:16, weight:500, family:CommonConstants.FAMILY_PingFANG @@ -82,7 +86,7 @@ export default struct directoryPurification{ family:CommonConstants.FAMILY_PingFANG }) .lineHeight(24) - Text('*').fontColor($r('app.color.theme_color')).font({ + Text('*').fontColor(this.theme.mainColor).font({ size:16, weight:500, family:CommonConstants.FAMILY_PingFANG diff --git a/entry/src/main/ets/pages/view/Reader/newAddRule.ets b/entry/src/main/ets/pages/view/Reader/newAddRule.ets index a94d4900..9e38a352 100644 --- a/entry/src/main/ets/pages/view/Reader/newAddRule.ets +++ b/entry/src/main/ets/pages/view/Reader/newAddRule.ets @@ -5,6 +5,8 @@ * 新建替换规则弹窗 */ import CommonConstants from '../../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import buttonCommon from '../../../componets/common/buttonCommon' import { showMessage } from '../../../componets/common/promptShow' @@ -17,6 +19,8 @@ export default struct newAddRule{ @Prop isEdit:boolean = false cancel: () => void = () => { } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ direction:FlexDirection.Column, @@ -58,7 +62,7 @@ export default struct newAddRule{ family:CommonConstants.FAMILY_PingFANG }) .lineHeight(24) - Text('*').fontColor($r('app.color.theme_color')).font({ + Text('*').fontColor(this.theme.mainColor).font({ size:16, weight:500, family:CommonConstants.FAMILY_PingFANG @@ -82,7 +86,7 @@ export default struct newAddRule{ family:CommonConstants.FAMILY_PingFANG }) .lineHeight(24) - Text('*').fontColor($r('app.color.theme_color')).font({ + Text('*').fontColor(this.theme.mainColor).font({ size:16, weight:500, family:CommonConstants.FAMILY_PingFANG @@ -152,7 +156,7 @@ export default struct newAddRule{ family:CommonConstants.FAMILY_PingFANG }) .lineHeight(24) - Text('*').fontColor($r('app.color.theme_color')).font({ + Text('*').fontColor(this.theme.mainColor).font({ size:16, weight:500, family:CommonConstants.FAMILY_PingFANG @@ -215,7 +219,7 @@ export default struct newAddRule{ .fontColor($r('app.string.color_black_45')) Radio({value:'default',group:'radioGroup'}) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .onChange(()=>{ @@ -234,7 +238,7 @@ export default struct newAddRule{ .fontColor($r('app.string.color_black_45')) Radio({value:'default',group:'radioGroup'}) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .checked(true) .onChange(()=>{ @@ -332,7 +336,7 @@ export default struct newAddRule{ justifyContent:FlexAlign.SpaceBetween, alignItems:ItemAlign.Center }) { - Text(item).fontSize(14).lineHeight(24).fontColor(item === this.grouping?$r('app.color.theme_color'):$r('app.string.color_black_88')) + Text(item).fontSize(14).lineHeight(24).fontColor(item === this.grouping?this.theme.mainColor:$r('app.string.color_black_88')) if (item === this.grouping){ Image($r('app.media.hook')).width(24).height(24) } diff --git a/entry/src/main/ets/pages/view/Reader/ruleView.ets b/entry/src/main/ets/pages/view/Reader/ruleView.ets index 40ac46b4..627d7f4b 100644 --- a/entry/src/main/ets/pages/view/Reader/ruleView.ets +++ b/entry/src/main/ets/pages/view/Reader/ruleView.ets @@ -4,6 +4,8 @@ * @className: ruleView */ import CommonConstants from '../../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import buttonCommon from '../../../componets/common/buttonCommon' import InsideCircleIcon from '../../../componets/common/InsideCircleIcon' import operateIcon from '../../../componets/common/operateIcon' @@ -46,6 +48,8 @@ export default struct ruleView{ } this.ruleNumber = this.checkedRuleList.length } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ direction:FlexDirection.Column @@ -72,8 +76,8 @@ export default struct ruleView{ }) .textAlign(TextAlign.Center) .lineHeight(24) - .fontColor(this.ruleType === item?$r('app.color.theme_color'):$r('app.string.color_black_45')) - Row().width(10).height(3).backgroundColor($r('app.color.theme_color')).borderRadius(8).offset({y:5}) + .fontColor(this.ruleType === item?this.theme.mainColor:$r('app.string.color_black_45')) + Row().width(10).height(3).backgroundColor(this.theme.mainColor).borderRadius(8).offset({y:5}) .visibility(this.ruleType === item?Visibility.Visible:Visibility.None) .opacity(this.ruleType === item?1:0) .scale({ @@ -212,7 +216,7 @@ export default struct ruleView{ .height('83%') Column(){ Row(){ - Checkbox().selectedColor($r('app.color.theme_color')).margin({right:8}).select(this.checkRule) + Checkbox().selectedColor(this.theme.mainColor).margin({right:8}).select(this.checkRule) .onChange(()=>{ this.checkRule = !this.checkRule }) @@ -228,7 +232,7 @@ export default struct ruleView{ weight:400 }) .lineHeight(24) - Text(`${this.ruleNumber}`).fontColor($r('app.color.theme_color')) + Text(`${this.ruleNumber}`).fontColor(this.theme.mainColor) .font({ size:16, weight:400 @@ -303,7 +307,7 @@ export default struct ruleView{ borderRadius:12 }) .animationIsBatchF() - Checkbox().selectedColor($r('app.color.theme_color')).select(this.isRuleCheck) + Checkbox().selectedColor(this.theme.mainColor).select(this.isRuleCheck) .onChange((value:boolean)=>{ this.checkedRuleListPush(title,value) }) @@ -317,7 +321,7 @@ export default struct ruleView{ Checkbox({ name: title }) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .select(this.checkRule) .onChange((value:boolean)=>{ this.checkedRuleListPush(title,value) @@ -352,7 +356,7 @@ export default struct ruleView{ borderRadius:12 }) .animationIsBatchF() - Checkbox().selectedColor($r('app.color.theme_color')).select(this.isRuleCheck) + Checkbox().selectedColor(this.theme.mainColor).select(this.isRuleCheck) .onChange((value:boolean)=>{ this.checkedRuleListPush(title,value) }) @@ -370,7 +374,7 @@ export default struct ruleView{ .onChange((value:boolean)=>{ this.checkedRuleListPush(title,value) }) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) } } } @@ -579,7 +583,7 @@ export default struct ruleView{ if (item.id === 2) { Column(){ Toggle({ type: ToggleType.Switch, isOn: $$this.operateDisable}) - .selectedColor($r('app.color.theme_color')).hoverEffect(HoverEffect.None) + .selectedColor(this.theme.mainColor).hoverEffect(HoverEffect.None) .onChange(()=>{ if (this.checkedRuleList.length === 0) { showMessage('请选择要禁用的内容') diff --git a/entry/src/main/ets/pages/view/Reader/sourceCommon.ets b/entry/src/main/ets/pages/view/Reader/sourceCommon.ets index 559b1cd0..fc8cda18 100644 --- a/entry/src/main/ets/pages/view/Reader/sourceCommon.ets +++ b/entry/src/main/ets/pages/view/Reader/sourceCommon.ets @@ -3,6 +3,8 @@ * @datetime 2024/6/6 22:05 * @className: sourceCommon */ +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import chapterCommon from './chapterCommon' @Component @@ -11,6 +13,8 @@ export default struct sourceCommon{ @Prop IsSelect:boolean = true @Prop sourceType:string @State isShowChapter:boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ @@ -125,9 +129,9 @@ export default struct sourceCommon{ }) } } - .border({width:this.IsSelect?1:0,color:$r('app.color.theme_color'),style:BorderStyle.Solid}) + .border({width:this.IsSelect?1:0,color:this.theme.mainColor,style:BorderStyle.Solid}) .borderRadius(12) - .backgroundColor(this.IsSelect?'rgba(255, 102, 0, 0.12)':'rgba(0, 0, 0, 0.06)') + .backgroundColor(this.IsSelect?this.theme.secondColor:'rgba(0, 0, 0, 0.06)') } @Builder chapterView(){ diff --git a/entry/src/main/ets/pages/view/Reader/sourceView.ets b/entry/src/main/ets/pages/view/Reader/sourceView.ets index fc9086bd..34bafc76 100644 --- a/entry/src/main/ets/pages/view/Reader/sourceView.ets +++ b/entry/src/main/ets/pages/view/Reader/sourceView.ets @@ -4,6 +4,8 @@ * @className: sourceView * 换源组件 */ +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' import sourceCommon from './sourceCommon' @Component @@ -11,6 +13,8 @@ import sourceCommon from './sourceCommon' export default struct sourceView{ @State sourceType:string = '整本换源' @StorageLink('bottomRectHeight') bottomRectHeight: number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({ space:16 @@ -49,7 +53,7 @@ export default struct sourceView{ }) .fontColor(this.sourceType === '整本换源'?$r('app.string.color_black_88'):$r('app.string.color_black_45')) if (this.sourceType === '整本换源'){ - Row().width(10).height(3).backgroundColor($r('app.color.theme_color')).borderRadius(8).offset({y:16}) + Row().width(10).height(3).backgroundColor(this.theme.mainColor).borderRadius(8).offset({y:16}) } }.onClick(()=>{ this.sourceType ='整本换源' @@ -62,7 +66,7 @@ export default struct sourceView{ }) .fontColor(this.sourceType !== '整本换源'?$r('app.string.color_black_88'):$r('app.string.color_black_45')) if (this.sourceType !== '整本换源'){ - Row().width(10).height(3).backgroundColor($r('app.color.theme_color')).borderRadius(8).offset({y:16}) + Row().width(10).height(3).backgroundColor(this.theme.mainColor).borderRadius(8).offset({y:16}) } }.onClick(()=>{ this.sourceType ='单章换源' @@ -82,7 +86,7 @@ export default struct sourceView{ Text('点击刷新') .fontWeight(400) .fontSize(14) - .fontColor($r('app.color.theme_color')) + .fontColor(this.theme.mainColor) } Row({ space:4 diff --git a/entry/src/main/ets/pages/view/Subscription/RssSources/newSources.ets b/entry/src/main/ets/pages/view/Subscription/RssSources/newSources.ets index 8b8c2ffb..d9f12a10 100644 --- a/entry/src/main/ets/pages/view/Subscription/RssSources/newSources.ets +++ b/entry/src/main/ets/pages/view/Subscription/RssSources/newSources.ets @@ -3,6 +3,8 @@ import FontConstants from '../../../../common/constants/FontConstants' import ImageConstants from '../../../../common/constants/ImageConstants' import PaddingConstants from '../../../../common/constants/PaddingConstants' import TextConstants from '../../../../common/constants/TextConstants' +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import { isNetworkUrl } from '../../../../common/utils/utils' import buttonCommon from '../../../../componets/common/buttonCommon' import dialogTitleFuction from '../../../../componets/common/dialogTitleFuction' @@ -239,6 +241,8 @@ export default struct newSources{ } this.readIndex = 0 } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @Builder baseForm() { @@ -546,7 +550,7 @@ export default struct newSources{ Text('启用JavaScript') .fontColor(16) Toggle({ type: ToggleType.Switch, isOn: this.formModel.rssWebViewRule?.enableJs }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { if ( this.formModel.rssWebViewRule) { @@ -562,7 +566,7 @@ export default struct newSources{ Text('加载 BaseUrl') .fontColor(16) Toggle({ type: ToggleType.Switch, isOn: this.formModel.rssWebViewRule?.loadWithBaseUrl }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { if ( this.formModel.rssWebViewRule) { @@ -639,9 +643,9 @@ export default struct newSources{ .fontSize(16) .fontWeight(this.currentIndex === index ? 700 : 400) .lineHeight(24) - .backgroundImage(this.currentIndex === index ? $r('app.media.underline') : '') - .backgroundImageSize(this.currentIndex === index ? { width: '100%', height: 15 } : {}) - .backgroundImagePosition({ y: 16 }) + // .backgroundImage(this.currentIndex === index ? $r('app.media.underline') : '') + // .backgroundImageSize(this.currentIndex === index ? { width: '100%', height: 15 } : {}) + // .backgroundImagePosition({ y: 16 }) } } @@ -651,7 +655,7 @@ export default struct newSources{ Text('CookieJar') Toggle({ type: ToggleType.Switch, isOn: enabledCookieJar }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { onChange(val) @@ -665,7 +669,7 @@ export default struct newSources{ Text('使用链接') Toggle({ type: ToggleType.Switch, isOn: sourceIconIsUrl }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { onChange(val) @@ -778,7 +782,7 @@ export default struct newSources{ .fontColor($r('app.string.color_black_88')) .lineHeight(TextConstants.TEXT_LINE_HEIGHT_22) Toggle({ type: ToggleType.Switch, isOn: this.formModel.autoComplete}) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { this.formModel.autoComplete = val diff --git a/entry/src/main/ets/pages/view/Subscription/RssSources/newSourcesNetWork.ets b/entry/src/main/ets/pages/view/Subscription/RssSources/newSourcesNetWork.ets index 6565ad25..d3ac6edc 100644 --- a/entry/src/main/ets/pages/view/Subscription/RssSources/newSourcesNetWork.ets +++ b/entry/src/main/ets/pages/view/Subscription/RssSources/newSourcesNetWork.ets @@ -6,6 +6,8 @@ */ import FontConstants from '../../../../common/constants/FontConstants' import PaddingConstants from '../../../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import { isNetworkUrl } from '../../../../common/utils/utils' import buttonCommon from '../../../../componets/common/buttonCommon' import { showMessage } from '../../../../componets/common/promptShow' @@ -20,6 +22,8 @@ import RssSourceCheckImage from '../components/RssSourceCheckImage' export default struct newSourcesNetWork{ hideNewWork:Function = ()=>{} @Prop isEdit:boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column(){ Column(){ @@ -243,7 +247,7 @@ export default struct newSourcesNetWork{ Text('使用链接') Toggle({ type: ToggleType.Switch, isOn: sourceIconIsUrl }) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .margin({ left: 8 }) .onChange((val: boolean) => { onChange(val) diff --git a/entry/src/main/ets/pages/view/Subscription/SubscriptionIndex.ets b/entry/src/main/ets/pages/view/Subscription/SubscriptionIndex.ets index b85926f4..2ca87b16 100644 --- a/entry/src/main/ets/pages/view/Subscription/SubscriptionIndex.ets +++ b/entry/src/main/ets/pages/view/Subscription/SubscriptionIndex.ets @@ -21,6 +21,8 @@ import RssSourcesHistory from './components/RssSourcesHistory' import rssSourcesHistoryDao from '../../../database/dao/RssSourcesHistoryDao' import { rssSourcesHistory } from '../../../database/entities/rssSourcesHistory' import { FileHandler } from 'ets/common/utils/FileHandler' +import { ThemeItem } from '../../../common/model/Theme' +import { ThemeStorageKey } from '../../../common/constants/Theme' @Component export default struct SubscriptionIndex { @@ -42,6 +44,8 @@ export default struct SubscriptionIndex { @State rssSourcesList: rssSources[] = [] @State groupList: rssGroupList[] = [] @State batchEdit: boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem //刷新 refresh = () => { this.resetState() @@ -149,7 +153,7 @@ export default struct SubscriptionIndex { if (this.loading) { Column() { LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width('50%') Text('加载中...') } @@ -284,7 +288,7 @@ export default struct SubscriptionIndex { } .linearGradient({ direction: GradientDirection.Bottom, // 渐变方向 - colors: [["rgb(254, 203, 169)", 0], ["RGB(245, 245, 245)", 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 + colors: [[this.theme.mainColor, 0], [this.theme.secondColor, 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 }) .height('100%') } diff --git a/entry/src/main/ets/pages/view/Subscription/components/PreviewEffectImage.ets b/entry/src/main/ets/pages/view/Subscription/components/PreviewEffectImage.ets index ab6b9ed4..3889029e 100644 --- a/entry/src/main/ets/pages/view/Subscription/components/PreviewEffectImage.ets +++ b/entry/src/main/ets/pages/view/Subscription/components/PreviewEffectImage.ets @@ -6,6 +6,8 @@ */ import CommonConstants from '../../../../common/constants/CommonConstants' import FontConstants from '../../../../common/constants/FontConstants' +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' @Component export default struct PreviewEffectImage{ @@ -18,6 +20,8 @@ export default struct PreviewEffectImage{ @Prop ImageRadius:number = 4 @Prop sourceName:string = '' @State isError:boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column(){ if (this.isShowTitle){ @@ -38,8 +42,8 @@ export default struct PreviewEffectImage{ Stack(){ this.ImageStack(this.customizeTitle.length > 0 && !this.sourceIconIsUrl) Column(){ - LoadingProgress().color("#FF6600").height(30) - Text('图片加载中...').fontSize(5).fontColor($r('app.color.theme_color')) + LoadingProgress().color(this.theme.mainColor).height(30) + Text('图片加载中...').fontSize(5).fontColor(this.theme.mainColor) }.zIndex(-1) } } diff --git a/entry/src/main/ets/pages/view/Subscription/components/RssSourceCheckImage.ets b/entry/src/main/ets/pages/view/Subscription/components/RssSourceCheckImage.ets index 86ffa150..cdafd57a 100644 --- a/entry/src/main/ets/pages/view/Subscription/components/RssSourceCheckImage.ets +++ b/entry/src/main/ets/pages/view/Subscription/components/RssSourceCheckImage.ets @@ -7,6 +7,8 @@ import CommonConstants from '../../../../common/constants/CommonConstants' import FontConstants from '../../../../common/constants/FontConstants' import PaddingConstants from '../../../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import buttonCommon from '../../../../componets/common/buttonCommon' import FormInput from '../../../../componets/Form/FormInput' import PreviewEffectImage from './PreviewEffectImage' @@ -49,6 +51,8 @@ export default struct RssSourceCheckImage{ //取消 onCancel:Function = ()=>{} scroller: Scroller = new Scroller() + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ @@ -93,7 +97,7 @@ export default struct RssSourceCheckImage{ Stack(){ Radio({value:JSON.stringify(index),group:'iconGroup'}) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .zIndex(999) .onChange(()=>{ diff --git a/entry/src/main/ets/pages/view/Subscription/components/RssSourceGroup.ets b/entry/src/main/ets/pages/view/Subscription/components/RssSourceGroup.ets index 370fb193..5319f2dd 100644 --- a/entry/src/main/ets/pages/view/Subscription/components/RssSourceGroup.ets +++ b/entry/src/main/ets/pages/view/Subscription/components/RssSourceGroup.ets @@ -6,6 +6,8 @@ */ import CommonConstants from '../../../../common/constants/CommonConstants' import PaddingConstants from '../../../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import buttonCommon from '../../../../componets/common/buttonCommon' import { showMessage } from '../../../../componets/common/promptShow' import programDataPreferences from '../../../../preferences/programDataPreferences' @@ -19,6 +21,8 @@ export default struct RssSourceGroup { cancel:Function = () =>{ } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem aboutToAppear() { this.getRssSourceList() @@ -38,7 +42,7 @@ export default struct RssSourceGroup { space:5 }){ Text('移动至').fontSize(16).fontWeight(700).lineHeight(24) - Text(`${this.moveGroup}`).fontSize(16).fontWeight(700).lineHeight(24).fontColor($r('app.color.theme_color')) + Text(`${this.moveGroup}`).fontSize(16).fontWeight(700).lineHeight(24).fontColor(this.theme.mainColor) } .padding({ right:20, diff --git a/entry/src/main/ets/pages/view/Subscription/components/SubscriptionSearch.ets b/entry/src/main/ets/pages/view/Subscription/components/SubscriptionSearch.ets index b6da7649..30ec60ac 100644 --- a/entry/src/main/ets/pages/view/Subscription/components/SubscriptionSearch.ets +++ b/entry/src/main/ets/pages/view/Subscription/components/SubscriptionSearch.ets @@ -14,6 +14,8 @@ import SubscriptionDao from '../../../../database/dao/SubscriptionDao'; import { showMessage } from '../../../../componets/common/promptShow'; import rssSourcesUtils from '../../../../common/utils/rssSourcesUtils'; import PreviewEffectImage from './PreviewEffectImage'; +import { ThemeItem } from '../../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../../common/constants/Theme'; @Entry @Component @@ -22,6 +24,8 @@ struct SubscriptionSearch { @StorageLink('topRectHeight') topRectHeight: number = 0 @State searchList: rssSources[] = [] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem onPageShow(): void { this.changeSearchValue() @@ -98,7 +102,7 @@ struct SubscriptionSearch { } .linearGradient({ direction: GradientDirection.Bottom, // 渐变方向 - colors: [["rgb(254, 203, 169)", 0], ["RGB(245, 245, 245)", 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 + colors: [[this.theme.mainColor, 0], [this.theme.secondColor, 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 }) .padding({ top: this.topRectHeight, diff --git a/entry/src/main/ets/pages/view/bookShelf/DownloadManagementPage.ets b/entry/src/main/ets/pages/view/bookShelf/DownloadManagementPage.ets index b08190d5..a6421869 100644 --- a/entry/src/main/ets/pages/view/bookShelf/DownloadManagementPage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/DownloadManagementPage.ets @@ -1,6 +1,8 @@ import { router } from '@kit.ArkUI'; import picker from '@ohos.file.picker'; import fs from '@ohos.file.fs'; +import { ThemeItem } from '../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; class DownloadItem { bookName: string @@ -52,6 +54,9 @@ struct DownloadManagementPage { new DownloadItem("斗破苍穹导出", 50, 200, "PDF"), ] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Stack() { if (this.IsEdit === false) { @@ -61,13 +66,13 @@ struct DownloadManagementPage { ForEach(this.questionsList, (item: string, index) => { Column() { Text(item) - .fontColor(this.currentScrollCardIndex === index ? '#FF6600' : 'rgba(0, 0, 0, 0.88)') + .fontColor(this.currentScrollCardIndex === index ? this.theme.mainColor : 'rgba(0, 0, 0, 0.88)') .fontSize(12) .fontWeight(700) } .borderRadius(8) .padding(8) - .backgroundColor(this.currentScrollCardIndex === index ? 'rgba(255, 102, 0, 0.12)' : 'rgb(240,240,240)') + .backgroundColor(this.currentScrollCardIndex === index ? this.theme.secondColor : 'rgb(240,240,240)') .onClick(() => { this.currentScrollCardIndex = index }) @@ -120,7 +125,7 @@ struct DownloadManagementPage { } else { Text("全部暂停") .lineHeight(20) - .fontColor("#FF6600") + .fontColor(this.theme.mainColor) .font({ size: 12, weight: 500 @@ -193,7 +198,7 @@ struct DownloadManagementPage { Text("全部导出") .lineHeight(20) - .fontColor("#FF6600") + .fontColor(this.theme.mainColor) .font({ size: 12, weight: 500 @@ -226,7 +231,7 @@ struct DownloadManagementPage { } else { Text("查看文件") .lineHeight(20) - .fontColor("#FF6600") + .fontColor(this.theme.mainColor) .font({ size: 12, weight: 500 @@ -341,7 +346,7 @@ struct DownloadManagementPage { } else if (itemType === "DownloadFinish" && currentTab === 1) { // 导出页的已下载 Progress({ value: 50, total: 100, type: ProgressType.Capsule }) - .color("#FF6600") + .color(this.theme.mainColor) .backgroundColor("#FFAF7A") .value(50) .width(68) @@ -544,7 +549,7 @@ struct DownloadManagementPage { size: 16, weight: 500 }) - .fontColor(this.currentTabIndex === index ? '#FF6600' : '#000000') + .fontColor(this.currentTabIndex === index ? this.theme.mainColor : '#000000') .opacity(this.currentTabIndex === index ? null : 0.45) } } diff --git a/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets b/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets index 47279d30..3446c273 100644 --- a/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets +++ b/entry/src/main/ets/pages/view/bookShelf/IndexShelf.ets @@ -8,6 +8,8 @@ import { bookShelfImport } from '../../../database/entities/Books' import { getPasteDataSync, isNetworkUrl, sleep } from '../../../common/utils/utils' import booksUtil from '../../../common/utils/booksUtils' import axios, { AxiosResponse } from '@ohos/axios' +import { ThemeItem } from '../../../common/model/Theme' +import { ThemeStorageKey } from '../../../common/constants/Theme' @Component export default struct IndexShelf { @@ -32,6 +34,8 @@ export default struct IndexShelf { @StorageProp('APP_INDEX_SCROLLABLE') APP_INDEX_SCROLLABLE: boolean = false @StorageLink('BOOK_IS_BOOK_REFRESHING') isBookRefreshing: number = 0 @State bookImport:bookShelfImport[] = [] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem // 网址导入dialog dialogController: CustomDialogController = new CustomDialogController({ builder: Dialog({ @@ -198,7 +202,7 @@ export default struct IndexShelf { .height('100%') .linearGradient({ direction: GradientDirection.Bottom, // 渐变方向 - colors: [["rgb(254, 203, 169)", 0], ["RGB(245, 245, 245)", 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 + colors: [[this.theme.mainColor, 0], [this.theme.secondColor, 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 }) .borderRadius({ bottomRight: 5, bottomLeft: 5 }) } diff --git a/entry/src/main/ets/pages/view/bookShelf/LocalImportPage.ets b/entry/src/main/ets/pages/view/bookShelf/LocalImportPage.ets index 2efe4faa..99887ba2 100644 --- a/entry/src/main/ets/pages/view/bookShelf/LocalImportPage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/LocalImportPage.ets @@ -1,5 +1,7 @@ import { router } from '@kit.ArkUI'; import fs from '@ohos.file.fs'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; +import { ThemeItem } from '../../../common/model/Theme'; class SmartScanItem { bookName: string @@ -49,6 +51,8 @@ struct LocalImportPage { '按大小排序', '系统文件夹', ] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem // 加载测试 onPageShow(): void { @@ -254,7 +258,7 @@ struct LocalImportPage { Text("导入书架") .lineHeight(24) - .fontColor("#FF6600") + .fontColor(this.theme.mainColor) .opacity(0.5) .font({ size: 16, @@ -361,7 +365,7 @@ struct LocalImportPage { size: 16, weight: 500 }) - .fontColor(this.currentTabIndex === index ? '#FF6600' : '#000000') + .fontColor(this.currentTabIndex === index ? this.theme.mainColor : '#000000') .opacity(this.currentTabIndex === index ? null : 0.45) } } diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/BookManagePage.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/BookManagePage.ets index 270988b1..c51d5a32 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/BookManagePage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/BookManagePage.ets @@ -18,6 +18,8 @@ import WorksBookLists from '../Shelf/WorksBookLists'; import worksListsDao from '../../../../database/dao/WorksListsDao'; import { WorksLists } from '../../../../database/entities/WorksLists'; import worksListsUtils from '../../../../common/utils/WorksListsUtils'; +import { ThemeItem } from '../../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../../common/constants/Theme'; class routerParams { currentIndex:number @@ -49,6 +51,8 @@ struct BookManagePage { @State worksLists:WorksLists[] =[] //书单 @StorageLink('BOOK_IS_BOOK_REFRESHING') isBookRefreshing: number = 0 @StorageLink('BOOK_IS_BOOK_GROUPS_REFRESHING') @Watch('getGroupList')BOOK_IS_BOOK_GROUPS_REFRESHING: number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem //判断是否全部置顶或取消置顶 selectIsAllTop(){ let allTopNumber = 0 @@ -159,7 +163,7 @@ struct BookManagePage { }) .linearGradient({ direction: GradientDirection.Bottom, // 渐变方向 - colors: [["rgb(254, 203, 169)", 0.1],["RGB(245, 245, 245)", 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 + colors: [[this.theme.mainColor, 0.1],[this.theme.secondColor, 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 }) .borderRadius({ bottomRight: 5, bottomLeft: 5 }) @@ -243,7 +247,7 @@ struct BookManagePage { }) { Checkbox() .select(this.allCheck) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onClick(() => { if (this.verificationDate()) { return diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderGridManage.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderGridManage.ets index bbf441e4..1a50b620 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderGridManage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderGridManage.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import { BookGroups } from '../../../../../database/entities/BookGroups' /** @@ -9,6 +11,8 @@ export default struct BookFolderGridManage { @Link checkGroup:Record @Prop isManage:boolean onSelect:Function = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { Stack() { @@ -17,7 +21,7 @@ export default struct BookFolderGridManage { Checkbox() .zIndex(9) .select(this.group.groupId?this.checkGroup[this.group.groupId] ?? false:false) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { if (this.group.groupId) { this.checkGroup[this.group.groupId] = val diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderInfoManage.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderInfoManage.ets index c62ccdf1..c36bca02 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderInfoManage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookFolderInfoManage.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import BookOverlay from '../../../../../componets/bookDetail/BookOverlay' import { BookGroups } from '../../../../../database/entities/BookGroups' @@ -10,6 +12,8 @@ export default struct BookFolderInfoManage { @Link checkGroup:Record @Prop isManage:boolean onSelect:Function = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex( { @@ -60,7 +64,7 @@ export default struct BookFolderInfoManage { Checkbox() //判断是否存在当前id .select(this.group.groupId?this.checkGroup[this.group.groupId] ?? false:false) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { if (this.group.groupId) { this.checkGroup[this.group.groupId] = val diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoGridManage.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoGridManage.ets index 2fdfca57..deb527ec 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoGridManage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoGridManage.ets @@ -1,5 +1,7 @@ import CommonConstants from '../../../../../common/constants/CommonConstants' import FontConstants from '../../../../../common/constants/FontConstants' +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import { Books } from '../../../../../database/entities/Books' @Component @@ -14,6 +16,8 @@ export default struct BookInfoGridManage{ @Link checkGroup:Record onSelect:Function = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({ space:CommonConstants.SPACE_6 @@ -42,7 +46,7 @@ export default struct BookInfoGridManage{ this.onSelect() }) .select(this.bookData.id?this.checkGroup[this.bookData.id] ?? false:false) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .unselectedColor('rgba(0, 0, 0, 0.35)') .zIndex(2) .onChange((val:boolean)=>{ diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoManage.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoManage.ets index 4c1a0395..32e95791 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoManage.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/BookInfoManage.ets @@ -1,4 +1,6 @@ import FontConstants from '../../../../../common/constants/FontConstants' +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import { Books } from '../../../../../database/entities/Books' @Component @@ -9,6 +11,8 @@ export default struct BookInfoManage{ @Prop bookData:Books @Link checkGroup:Record onSelect:Function = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex( { @@ -89,7 +93,7 @@ export default struct BookInfoManage{ this.checkGroup[this.bookData.id] = val } }) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .unselectedColor('rgba(0, 0, 0, 0.35)') } .padding({ left: 15, right: 15, bottom: 5, top: 5 }) diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newAddShelf.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newAddShelf.ets index 944ed160..4fafc9cf 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newAddShelf.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newAddShelf.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import { showMessage } from '../../../../../componets/common/promptShow' import groupTypeSearch from '../../../../../componets/group/GroupTypeSearch' import booksDao from '../../../../../database/dao/BooksDao' @@ -23,6 +25,9 @@ export default struct newAddShelf{ @State @Watch('getBookList')bookTypeNumber:number = 2 @State groupCoverShow: boolean = false @State @Watch('searchBook')searchBookList:number[] = [] + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem //用于分组弹窗添加书籍 searchBook(){ if (this.searchBookList.length === 0 ) return @@ -159,11 +164,11 @@ export default struct newAddShelf{ Row(){ Text('添加').fontSize(16) .fontWeight(400) - .fontColor(this.selectBookIdList.length === 0?'rgba(252, 102, 0, 0.5)':$r('app.color.theme_color')) + .fontColor(this.selectBookIdList.length === 0?this.theme.secondColor:this.theme.mainColor) Text(`(${this.selectBookIdList.length??0})`) .fontSize(16) .fontWeight(400) - .fontColor(this.selectBookIdList.length === 0?'rgba(252, 102, 0, 0.5)':$r('app.color.theme_color')) + .fontColor(this.selectBookIdList.length === 0?this.theme.secondColor:this.theme.mainColor) } .justifyContent(FlexAlign.Center) .width('50%') diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newBookShelf.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newBookShelf.ets index 218dd77d..323afff6 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newBookShelf.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/bookManage/newBookShelf.ets @@ -3,6 +3,8 @@ */ import CommonConstants from '../../../../../common/constants/CommonConstants' import PaddingConstants from '../../../../../common/constants/PaddingConstants' +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import worksListsUtils from '../../../../../common/utils/WorksListsUtils' import confirmDialogExample from '../../../../../componets/common/confirmDialog' import { showMessage } from '../../../../../componets/common/promptShow' @@ -121,6 +123,8 @@ export default struct newBookShelf{ isTop: false, worksBookList:[] } + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex({ @@ -198,7 +202,7 @@ export default struct newBookShelf{ .placeholderColor('#73000000') .maxLength(20) .placeholderFont({ size: 14, weight: 400 }) - .caretColor('#FF6600') + .caretColor(this.theme.mainColor) .height(38) .margin({ top: 10, bottom: 10 }) .fontSize(14) @@ -220,7 +224,7 @@ export default struct newBookShelf{ }) .borderRadius(4) .fontColor('#E0000000') - .caretColor('#FF6600') + .caretColor(this.theme.mainColor) .placeholderColor('#73000000') .width('80%') .fontSize(14) @@ -346,7 +350,7 @@ export default struct newBookShelf{ .borderRadius(20) .width('50%') .height(38) - .backgroundColor(this.workBookList.worksName.length >=1?$r('app.color.theme_color'):'rgba(252, 102, 0, 0.5)') + .backgroundColor(this.workBookList.worksName.length >=1?this.theme.mainColor: this.theme.mainColor) }.padding({top:12,bottom:12,left:20,right:20}) } @@ -408,9 +412,9 @@ export default struct newBookShelf{ space:6 }){ Row(){ - Text('卖报小郎君').fontSize(10).fontWeight(400).fontColor($r('app.color.theme_color')) + Text('卖报小郎君').fontSize(10).fontWeight(400).fontColor(this.theme.mainColor) } - .padding({left:6,right:6,top:5,bottom:5}).backgroundColor('rgba(255, 102, 0, 0.12)').borderRadius(10) + .padding({left:6,right:6,top:5,bottom:5}).backgroundColor(this.theme.secondColor).borderRadius(10) Row(){ Text('玄幻').fontSize(10).fontWeight(400).fontColor('rgba(0, 0, 0, 0.45)') } @@ -451,7 +455,7 @@ export default struct newBookShelf{ Flex({ justifyContent:FlexAlign.End }){ - Text('清空').textAlign(TextAlign.End).fontColor($r('app.color.theme_color')) + Text('清空').textAlign(TextAlign.End).fontColor(this.theme.mainColor) }.onClick(()=>{ this.TextRecommend[book.id ?? 0] = '' }) diff --git a/entry/src/main/ets/pages/view/bookShelf/Manage/components/catalogAddShelf.ets b/entry/src/main/ets/pages/view/bookShelf/Manage/components/catalogAddShelf.ets index f1effc8b..9c393a8f 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Manage/components/catalogAddShelf.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Manage/components/catalogAddShelf.ets @@ -5,6 +5,8 @@ * 加入书单弹窗 */ import CommonConstants from '../../../../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../../../../common/constants/Theme' +import { ThemeItem } from '../../../../../common/model/Theme' import bookGroupUtil from '../../../../../common/utils/bookGroupUtils' import worksListsUtils from '../../../../../common/utils/WorksListsUtils' import { showMessage } from '../../../../../componets/common/promptShow' @@ -24,6 +26,8 @@ export default struct catalogAddShelf{ @State worksBook:WorksLists = new WorksLists() @State worksLists:WorksLists[] =[] @State newBookIds:number[] = [] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem getWorkLists() { worksListsDao.search({ type:this.currentIndex @@ -139,8 +143,8 @@ export default struct catalogAddShelf{ Row({ space:12 }){ - Image($r('app.media.add')).width(24).fillColor($r('app.color.theme_color')) - Text('新建书单').fontSize(14).fontColor($r('app.color.theme_color')).fontWeight(400).lineHeight(22) + Image($r('app.media.add')).width(24).fillColor(this.theme.mainColor) + Text('新建书单').fontSize(14).fontColor(this.theme.mainColor).fontWeight(400).lineHeight(22) }.onClick(()=>{ this.workBookListStatus = 0 this.isShowEditBook = true diff --git a/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListGrid.ets b/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListGrid.ets index cc367677..2c859f76 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListGrid.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListGrid.ets @@ -1,3 +1,5 @@ +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import { WorksLists } from '../../../../database/entities/WorksLists' @Component @@ -7,6 +9,8 @@ export default struct WorksBookListGrid { @Prop isShowCheck:boolean @Link checkGroup:Record onSelect:Function = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column() { Stack() { @@ -17,10 +21,10 @@ export default struct WorksBookListGrid { }){ Checkbox() .zIndex(2) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .unselectedColor('rgba(0, 0, 0, 0.35)') .select(this.work.worksId?this.checkGroup[this.work.worksId] ?? false:false) - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .onChange((val: boolean) => { if (this.work.worksId) { this.checkGroup[this.work.worksId] = val diff --git a/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListInfo.ets b/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListInfo.ets index ac263b7f..1acd79c2 100644 --- a/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListInfo.ets +++ b/entry/src/main/ets/pages/view/bookShelf/Shelf/WorksBookListInfo.ets @@ -1,6 +1,8 @@ /** * 书单信息 */ +import { ThemeStorageKey } from '../../../../common/constants/Theme' +import { ThemeItem } from '../../../../common/model/Theme' import BookOverlay from '../../../../componets/bookDetail/BookOverlay' import { WorksLists } from '../../../../database/entities/WorksLists' @@ -11,6 +13,8 @@ export default struct WorksBookListInfo{ @Prop work:WorksLists @Prop isShowCheck:boolean onSelect:Function = () => {} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Flex( { @@ -62,7 +66,7 @@ export default struct WorksBookListInfo{ if (this.isShowCheck){ Row() { Checkbox() - .selectedColor($r('app.color.theme_color')) + .selectedColor(this.theme.mainColor) .select(this.work.worksId?this.checkGroup[this.work.worksId] ?? false:false) .onChange((val: boolean) => { if (this.work.worksId) { diff --git a/entry/src/main/ets/pages/view/bookShelf/components/BookContent.ets b/entry/src/main/ets/pages/view/bookShelf/components/BookContent.ets index 05bf8791..a74a4d6f 100644 --- a/entry/src/main/ets/pages/view/bookShelf/components/BookContent.ets +++ b/entry/src/main/ets/pages/view/bookShelf/components/BookContent.ets @@ -1,4 +1,6 @@ +import { ThemeStorageKey } from '../../../../common/constants/Theme' import BasicDataSource from '../../../../common/LazyIDataSource/BasicDataSource' +import { ThemeItem } from '../../../../common/model/Theme' import booksDao from '../../../../database/dao/BooksDao' import { Books } from '../../../../database/entities/Books' import BookInfoGrids from './BookInfoGrids' @@ -66,6 +68,8 @@ export default struct BookContent { @State isLoading: boolean = false @State currentPage:number = 1 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem async loadMoreBooks() { if (!this.isLoading) { this.isLoading = true; @@ -87,7 +91,7 @@ export default struct BookContent { if (this.isLoading) { Row(){ LoadingProgress() - .color(0xff6600) + .color(this.theme.mainColor) .width('50%') Text('加载中...') } diff --git a/entry/src/main/ets/pages/view/bookShelf/components/dialog/BookManageDialog.ets b/entry/src/main/ets/pages/view/bookShelf/components/dialog/BookManageDialog.ets index a81d69c3..854cb733 100644 --- a/entry/src/main/ets/pages/view/bookShelf/components/dialog/BookManageDialog.ets +++ b/entry/src/main/ets/pages/view/bookShelf/components/dialog/BookManageDialog.ets @@ -20,6 +20,8 @@ import WorksBookLists from '../../Shelf/WorksBookLists'; import { WorksLists } from '../../../../../database/entities/WorksLists'; import worksListsDao from '../../../../../database/dao/WorksListsDao'; import worksListsUtils from '../../../../../common/utils/WorksListsUtils'; +import { ThemeItem } from '../../../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../../../common/constants/Theme'; /** @@ -239,6 +241,8 @@ export default struct BookManageDialog { } @State titleManage:string = '最近阅读' @State searchValue: string = '最近阅读' + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @Builder headTitleManage(){ Flex( { @@ -319,7 +323,7 @@ export default struct BookManageDialog { }) { Checkbox() .select(this.allCheck) - .selectedColor(0xff6600) + .selectedColor(this.theme.mainColor) .onClick(() => { if (this.verificationDate()) { return diff --git a/entry/src/main/ets/pages/view/bookShelf/components/dialog/coverInfoDialog.ets b/entry/src/main/ets/pages/view/bookShelf/components/dialog/coverInfoDialog.ets index e21942fb..2c453a2a 100644 --- a/entry/src/main/ets/pages/view/bookShelf/components/dialog/coverInfoDialog.ets +++ b/entry/src/main/ets/pages/view/bookShelf/components/dialog/coverInfoDialog.ets @@ -4,6 +4,8 @@ import { BookGroups } from '../../../../../database/entities/BookGroups' import { showMessage } from '../../../../../componets/common/promptShow' import buttonCommon from '../../../../../componets/common/buttonCommon' import bookGroupUtil from '../../../../../common/utils/bookGroupUtils' +import { ThemeItem } from '../../../../../common/model/Theme' +import { ThemeStorageKey } from '../../../../../common/constants/Theme' @CustomDialog /** @@ -22,6 +24,8 @@ export default struct coverInfoDialog{ this.coverImages = this.itemData.coverUrl??'' } @State coverFolder:boolean = false + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column(){ Flex({ @@ -81,7 +85,7 @@ export default struct coverInfoDialog{ justifyContent:FlexAlign.SpaceBetween }) { Column(){ - Text('取消').fontSize(16).fontWeight(400).fontColor($r('app.color.theme_color')) + Text('取消').fontSize(16).fontWeight(400).fontColor(this.theme.mainColor) .lineHeight(24) .padding({left:32,right:32,bottom:8,top:8}) } @@ -91,7 +95,7 @@ export default struct coverInfoDialog{ .width('49%') .borderRadius(20) .alignItems(HorizontalAlign.Center) - .backgroundColor('rgba(255, 102, 0, 0.12)') + .backgroundColor(this.theme.secondColor) Column(){ Text('确定') .fontSize(16) @@ -111,7 +115,7 @@ export default struct coverInfoDialog{ .width('49%') .borderRadius(20) .alignItems(HorizontalAlign.Center) - .backgroundColor($r('app.color.theme_color')) + .backgroundColor(this.theme.mainColor) } } .alignItems(HorizontalAlign.Center) diff --git a/entry/src/main/ets/pages/view/coverInfoImageShow.ets b/entry/src/main/ets/pages/view/coverInfoImageShow.ets index d62b1958..24d4cea5 100644 --- a/entry/src/main/ets/pages/view/coverInfoImageShow.ets +++ b/entry/src/main/ets/pages/view/coverInfoImageShow.ets @@ -4,6 +4,8 @@ * @className: coverInfoImageShow */ import CommonConstants from '../../common/constants/CommonConstants' +import { ThemeStorageKey } from '../../common/constants/Theme' +import { ThemeItem } from '../../common/model/Theme' import BookOverlay from '../../componets/bookDetail/BookOverlay' @Component @@ -13,6 +15,8 @@ export default struct coverInfoImageShow { @Prop imageString:string @Prop selectImage:number = 0 onSelectImageNumber:Function = (_selectImage:number)=>{} + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { if (this.coverCount === 1){ this.coverImageOne(this.image) @@ -44,7 +48,7 @@ export default struct coverInfoImageShow { Radio({value:JSON.stringify('0'),group:'radioGroup'}) .checked(this.selectImage === 0) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .border({width:2,color:'rgba(255, 255, 255, 0.10)'}) .width(20).height(20) @@ -100,7 +104,7 @@ export default struct coverInfoImageShow { Radio({value:JSON.stringify('1'),group:'radioGroup'}) .checked(this.selectImage === 1) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .border({width:2,color:'rgba(255, 255, 255, 0.10)'}) .width(20).height(20) @@ -138,7 +142,7 @@ export default struct coverInfoImageShow { Radio({value:JSON.stringify('2'),group:'radioGroup'}) .checked(this.selectImage === 2) .radioStyle({ - checkedBackgroundColor: $r('app.color.theme_color') + checkedBackgroundColor: this.theme.mainColor }) .border({width:2,color:'rgba(255, 255, 255, 0.10)'}) .width(20).height(20) diff --git a/entry/src/main/ets/pages/view/dialog/RenameDialog.ets b/entry/src/main/ets/pages/view/dialog/RenameDialog.ets index d9285700..9634fa6c 100644 --- a/entry/src/main/ets/pages/view/dialog/RenameDialog.ets +++ b/entry/src/main/ets/pages/view/dialog/RenameDialog.ets @@ -1,3 +1,6 @@ +import { ThemeStorageKey } from "../../../common/constants/Theme" +import { ThemeItem } from "../../../common/model/Theme" + /** * @author 惟草木之零落兮 * @date 2024/5/26 16:22 @@ -17,6 +20,9 @@ export default struct RenameDialog{ confirm?: (value: string)=>void + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + @Styles buttonStyles(){ .height(38) .padding({left: 32, right: 32, top: 8, bottom: 8}) @@ -41,7 +47,7 @@ export default struct RenameDialog{ .padding({left: 20, right:20, top: 8, bottom: 8}) .height(38) .maxLength(4) - .caretColor("rgba(255, 102, 0, 1)") + .caretColor(this.theme.mainColor) .onChange((value: string)=>{ if (value.length > 4){ // value 截取前四个 @@ -73,8 +79,8 @@ export default struct RenameDialog{ Button("取消") .buttonStyles() .margin({left: 24}) - .fontWeight(500).fontSize(14).fontColor("#FF6600") - .backgroundColor("rgba(255, 102, 0, 0.12)") + .fontWeight(500).fontSize(14).fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) .onClick(()=>{ this.controller?.close() }) @@ -85,7 +91,7 @@ export default struct RenameDialog{ .buttonStyles() .margin({right: 24}) .fontWeight(500).fontSize(14).fontColor("rgba(255, 255, 255, 1)") - .backgroundColor("rgba(255, 102, 0, 1)") + .backgroundColor(this.theme.mainColor) .onClick(()=>{ if (this.confirm) this.confirm(this.newName) this.controller?.close() diff --git a/entry/src/main/ets/pages/view/myCenter/CreateCustomTheme.ets b/entry/src/main/ets/pages/view/myCenter/CreateCustomTheme.ets new file mode 100644 index 00000000..fe14f538 --- /dev/null +++ b/entry/src/main/ets/pages/view/myCenter/CreateCustomTheme.ets @@ -0,0 +1,177 @@ +import { componentSnapshot, promptAction, router } from '@kit.ArkUI' +import { image } from '@kit.ImageKit' +import { emitter } from '@kit.BasicServicesKit' +import { ThemeColor, ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeColorItem, ThemeItem } from '../../../common/model/Theme' +import { themeManager } from '../../../common/utils/ThemeManager' +import { sleep } from '../../../common/utils/utils' + +@Entry +@Component +struct CreateCustomTheme { + @StorageLink('topRectHeight') topRectHeight: number = 0 + @StorageLink('bottomRectHeight') bottomRectHeight: number = 0 + // 颜色列表 + colorList: ThemeColorItem[] = [ + ThemeColor.RED, + ThemeColor.ORANGE, + ThemeColor.BLUE, + ThemeColor.GREEN, + ThemeColor.YELLOW, + ] + @StorageProp('screen_shot') previewIndexPage: PixelMap = {} as PixelMap + @State activeIndex: number = 0 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + originTheme: ThemeItem = {} as ThemeItem + selectTheme: ThemeItem = {} as ThemeItem + @State themeName: string = '新建主题' + + aboutToAppear(): void { + this.originTheme = this.theme // 暂存原主题配置信息 + this.selectTheme = this.theme + } + + aboutToDisappear() { + themeManager.setTheme(this.originTheme, AppStorage.get(ThemeStorageKey.THEMEINDEX) as number) + } + + build() { + Column() { + // 头部标题栏 + RelativeContainer() { + Image($r('sys.media.ohos_ic_public_arrow_left')) + .width(24) + .aspectRatio(1) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + left: { anchor: '__container__', align: HorizontalAlign.Start } + }) + .onClick(() => { + themeManager.setTheme(this.originTheme, AppStorage.get(ThemeStorageKey.THEMEINDEX) as number) + router.back() + }) + Row({space: 8}) { + TextInput({text: $$this.themeName}) + .height(24) + .lineHeight(24) + .fontSize(16) + .fontWeight(FontWeight.Bold) + .onSubmit(() => { + this.selectTheme.text = this.themeName + }) + .padding(0) + .width(75) + .backgroundColor(Color.Transparent) + Image($r('app.media.writing')) + .width(16) + .aspectRatio(1) + .fillColor(Color.Black) + } + .layoutWeight(1) + .alignItems(VerticalAlign.Center) + .height(24) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + + Text('保存') + .fontSize(14) + .height(22) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + right: { anchor: '__container__', align: HorizontalAlign.End } + }) + .onClick(() => { + themeManager.setTheme(this.originTheme, AppStorage.get(ThemeStorageKey.THEMEINDEX) as number) + this.selectTheme.text = this.themeName + themeManager.addTheme(this.selectTheme) + router.back() + }) + + } + .padding({ + left: 20, + right: 20, + top: 12, + bottom: 12 + }) + .width('100%') + .height(48) + .backgroundColor('#fff') + + // 截图区 + Column() { + Image(this.previewIndexPage) + .width(240) + .backgroundColor('#ffdfca') + .objectFit(ImageFit.Cover) + } + .width('100%') + .layoutWeight(1) + .padding({left: 60, right: 60, top: 72, bottom: 88}) + .backgroundColor('#f5f5f5') + + // 底部选色区 + Row({space: 12}) { + Row() { + Image($r('app.media.my_theme_config_custom')) + .width(16) + .aspectRatio(1) + .fillColor('#858585') + } + .justifyContent(FlexAlign.Center) + .alignItems(VerticalAlign.Center) + .width(40) + .aspectRatio(1) + .borderRadius(20) + .backgroundColor('#f0f0f0') + + Column() { + + } + .height(40) + .width(1) + .backgroundColor('#f0f0f0') + + Scroll() { + Row({space: 12}) { + ForEach(this.colorList, (item: ThemeItem, index) => { + Row() { + + } + .width(40) + .aspectRatio(1) + .borderRadius(20) + .backgroundColor(item.mainColor) + .onClick(async () => { + let count = 10 + while (count--) { + themeManager.setTheme(item, AppStorage.get(ThemeStorageKey.THEMEINDEX) as number) + this.selectTheme = item + emitter.emit('screen_shot'); // 触发首页截图 + this.previewIndexPage = AppStorage.get('screen_shot') as PixelMap + await sleep(100) + } + }) + }) + } + .height('100%') + } + .scrollable(ScrollDirection.Horizontal) + .scrollBar(BarState.Off) + .height('100%') + } + .height(72) + .width('100%') + .backgroundColor('#fff') + .padding({left: 20, right: 20, top: 16, bottom: 16}) + + } + .width('100%') + .height('100%') + .padding({top: this.topRectHeight, bottom: this.bottomRectHeight}) + .backgroundColor('#fff') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/view/myCenter/MyCenter.ets b/entry/src/main/ets/pages/view/myCenter/MyCenter.ets index 07292acc..9629ca66 100644 --- a/entry/src/main/ets/pages/view/myCenter/MyCenter.ets +++ b/entry/src/main/ets/pages/view/myCenter/MyCenter.ets @@ -5,6 +5,11 @@ import { promptAction } from '@kit.ArkUI' import { dataItem } from '../../../componets/dataList/dataItem' import { PublicConstants, TextConstants } from '../../../common/constants/PublicConstants' import { ColumnModifier } from '../../../common/utils/ComponetModifier' +import { ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' +import { image } from '@kit.ImageKit' +import { resourceManager } from '@kit.LocalizationKit' +import { BusinessError } from '@kit.BasicServicesKit' @Entry @Component @@ -32,6 +37,10 @@ export default struct MyCenter { ] @StorageLink('topRectHeight') topRectHeight: number = 0 Column = new ColumnModifier() + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column(){ // Blank(this.topRectHeight-20) @@ -144,12 +153,10 @@ export default struct MyCenter { .attributeModifier(this.Column) .linearGradient({ direction: GradientDirection.Bottom, // 渐变方向 - colors: [["rgb(254, 203, 169)", 0.0], ["RGB(245, 245, 245)", 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 + colors: [[this.theme.mainColor , 0.0], [this.theme.secondColor, 0.2]] // 数组末尾元素占比小于1时满足重复着色效果 }) - } - - + //切换夜间模式 night_onclick(){ @@ -185,7 +192,11 @@ export default struct MyCenter { url: 'pages/view/myCenter/cloudDisk' }) break + // 点击主题 case 2: + router.pushUrl({ + url: '/pages/view/myCenter/MyThemeConfig'.slice(1) + }) break case 3: break diff --git a/entry/src/main/ets/pages/view/myCenter/MyThemeConfig.ets b/entry/src/main/ets/pages/view/myCenter/MyThemeConfig.ets new file mode 100644 index 00000000..ef7cb44f --- /dev/null +++ b/entry/src/main/ets/pages/view/myCenter/MyThemeConfig.ets @@ -0,0 +1,145 @@ +import { PromptAction, router } from '@kit.ArkUI' +import { ThemeColor, ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeColorItem, ThemeItem } from '../../../common/model/Theme' +import { MyThemeConfigComp } from './MyThemeConfigComp' + +// 中间导航区需要渲染的元素列表 +interface NavItem { + text: string + img: ResourceStr +} + +@Entry +@Component +struct MyThemeConfig { + @StorageLink('topRectHeight') topRectHeight: number = 0 + // 中间导航区需要渲染的元素列表 + navList: NavItem[] = [ + {text: '个性主题', img: $r('app.media.my_theme_config_theme')}, + {text: '桌面图标', img: $r('app.media.my_theme_config_desktop')}, + {text: '启动页', img: $r('app.media.my_theme_config_welcome')}, + ] + @State activeNavIndex: number = 0 // 标记当前激活的导航元素 [个性主题 / 桌面图标 / 启动页] 0 1 2 + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + + // 构建中间导航区TabBar元素 + @Builder + tabBarBuilder(item: NavItem, index: number) { + // 最外层包一层Column(用于设置左右间距), 然后设置左右padding + // 如果不包这一层, 直接用第二层的Column的左右margin设置左右间距好像无效 + Column() { + Column() { + Image(item.img) + .width(24) + .aspectRatio(1) + .fillColor(this.activeNavIndex == index ? Color.White : this.theme.mainColor) + .margin({bottom: 8}) + Text(item.text) + .lineHeight(20) + .fontSize(12) + .fontColor(this.activeNavIndex == index ? Color.White : '#978b83') + // 选中的tab底部会有三角形的效果 + if (this.activeNavIndex == index) { + // 边缘光滑版三角形 + // Path() + // .width(vp2px(18)) + // .height(vp2px(6)) + // .commands('M0 0 L' + vp2px(18) + ' 0 S' + vp2px(9) + ' ' + vp2px(6) + ' 0 0 Z') + // .fill('#ff6600') + // .stroke('#ff6600') + // .position({left: '50%', bottom: 0}) + // .translate({x: -9, y: '100%'}) + + // 正常边缘三角形 + Polygon({ width: 18, height: 6 }) + .points([[0, 0], [9, 6], [18, 0]]) + .fill(Color.Green) + .fill(this.theme.mainColor) + .position({left: '50%', bottom: 0}) + .translate({x: '-50%', y: '100%'}) + } + } + .padding({left: 24, right: 24, top: 12}) + .backgroundColor(this.activeNavIndex == index ? this.theme.mainColor : this.theme.secondColor) + .borderRadius(8) + .width(96) + .height(78) + .margin({bottom: 10}) + } + .padding({ + left: index == 0 ? 20 : 0, + right: index == this.navList.length - 1 ? 20 : 0 + }) + } + + build() { + Column() { + // 头部标题栏 + RelativeContainer() { + Image($r('sys.media.ohos_ic_public_arrow_left')) + .width(24) + .aspectRatio(1) + .alignRules({ + center: {anchor: '__container__', align: VerticalAlign.Center}, + left: {anchor: '__container__', align: HorizontalAlign.Start} + }) + .onClick(() => { + router.back() + }) + Text('主题') + .fontWeight(FontWeight.Bold) + .alignRules({ + center: {anchor: '__container__', align: VerticalAlign.Center}, + middle: {anchor: '__container__', align: HorizontalAlign.Center} + }) + } + .padding({left: 20, right: 20, top: 12, bottom: 12}) + .width('100%') + .height(48) + + // 中间导航区 + Tabs({barPosition: BarPosition.Start}) { + ForEach(this.navList, (item: NavItem, index) => { + TabContent() { + Column() { + // 如果选中个性主题 + if (index == 0) { + MyThemeConfigComp() + } + // 如果选中桌面图标 + else if (index == 1) { + + } + // 如果选中启动页 + else { + + } + } + .padding({left: 20, right: 20, top: 24}) + .borderRadius({ + topLeft: 12, + topRight: 12 + }) + .backgroundColor('#fff') + .width('100%') + } + .tabBar(this.tabBarBuilder(item, index)) + }) + } + // 处理点击tab切换逻辑 + .onTabBarClick((index) => { + this.activeNavIndex = index + }) + .scrollable(false) + .width('100%') + .barHeight(98) + .backgroundColor('#f5f5f5') + } + .height('100%') + .width('100%') + .padding({top: this.topRectHeight}) + .backgroundColor('#f5f5f5') + + } +} diff --git a/entry/src/main/ets/pages/view/myCenter/MyThemeConfigComp.ets b/entry/src/main/ets/pages/view/myCenter/MyThemeConfigComp.ets new file mode 100644 index 00000000..df6353dc --- /dev/null +++ b/entry/src/main/ets/pages/view/myCenter/MyThemeConfigComp.ets @@ -0,0 +1,166 @@ +import { ThemeColor, ThemeStorageKey } from '../../../common/constants/Theme' +import { ThemeItem } from '../../../common/model/Theme' +import { promptAction, PromptAction, router } from '@kit.ArkUI' +import { themeManager } from '../../../common/utils/ThemeManager' +import { JSON } from '@kit.ArkTS' + +// 个性主题组件模块 +@Component +export struct MyThemeConfigComp { + @StorageProp(ThemeStorageKey.THEMEINDEX) + activeIndex: number = 0 // 被选中的主题 + @State longPressGestureIndex: number = 0 // 长按选中主题 + + @StorageProp(ThemeStorageKey.THEMELIST) + themeList: ThemeItem[] = [] + + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + + dialog: CustomDialogController = new CustomDialogController({ + builder: this.dialogBuilder, + customStyle: true, + alignment: DialogAlignment.Center, + autoCancel: false + }) + + // 构建自定义弹窗 + @Builder + dialogBuilder() { + Column({space: 24}) { + Text('确定要删除吗?') + .fontSize(18) + .fontWeight(FontWeight.Bold) + + Row({space: 12}) { + Button('取消') + .fontSize(14) + .fontColor(this.theme.mainColor) + .backgroundColor(this.theme.secondColor) + .onClick(() => { + this.dialog.close() + }) + .width(112) + .height(38) + Button('确定') + .fontSize(14) + .fontColor(Color.White) + .backgroundColor(this.theme.mainColor) + .onClick(() => { + if (this.themeList.length > 1) { + themeManager.deleteTheme(this.longPressGestureIndex) + } else { + promptAction.showToast({message: "删除失败,至少需要保留一个主题"}) + } + this.dialog.close() + }) + .width(112) + .height(38) + } + .justifyContent(FlexAlign.Center) + + } + .padding(24) + .width(284) + .height(136) + .justifyContent(FlexAlign.Center) + .alignItems(HorizontalAlign.Center) + .backgroundColor(Color.White) + .borderRadius(32) + } + + // 构建个性主题下列表元素 + @Builder + themeItemBuilder(item: ThemeItem, index: number) { + Column({space: 8}) { + Column() { + if (this.activeIndex == index) { + Text('使用中') + .fontSize(9) + .fontColor('#fff') + .backgroundColor('#ef4444') + .textAlign(TextAlign.Center) + .lineHeight(14) + .width(39) + .height(14) + .borderRadius({ + topRight: 8, + bottomLeft: 8 + }) + .position({right: 0, top: 0}) + } + } + .width(154) + .height(77) + .borderRadius(8) + .backgroundColor(item.mainColor) + + Text(item.text) + .fontSize(14) + .height(22) + .lineHeight(22) + .width('100%') + } + .width(154) + .height(107) + } + + build() { + Column() { + Grid() { + // 自定义主题 + GridItem() { + Column({space: 8}) { + Column() { + Image($r('app.media.my_theme_config_custom')) + .width(24) + .aspectRatio(1) + } + .alignItems(HorizontalAlign.Center) + .justifyContent(FlexAlign.Center) + .width(154) + .height(77) + .borderRadius(8) + .backgroundColor('#f5f5f5') + .onClick(() => { + router.pushUrl({ + url: '/pages/view/myCenter/CreateCustomTheme'.slice(1) + }) + }) + + Text('自定义主题') + .fontSize(14) + .height(22) + .lineHeight(22) + .width('100%') + } + .width(154) + .height(107) + } + ForEach(this.themeList, (item: ThemeItem, index) => { + GridItem() { + this.themeItemBuilder(item, index) + } + .onClick(() => { + this.activeIndex = index + themeManager.setTheme(this.themeList[index], index) + }) + .gesture( + LongPressGesture() + .onAction(() => { + this.dialog.open() + this.longPressGestureIndex = index + }) + ) + }) + } + .columnsTemplate('1fr 1fr') + .columnsGap(12) + .rowsGap(12) + .width('100%') + .height('100%') + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/view/myCenter/WebDav.ets b/entry/src/main/ets/pages/view/myCenter/WebDav.ets index 59bdfd88..fb1096fa 100644 --- a/entry/src/main/ets/pages/view/myCenter/WebDav.ets +++ b/entry/src/main/ets/pages/view/myCenter/WebDav.ets @@ -5,6 +5,8 @@ import web_webview from '@ohos.web.webview' import { promptAction, router } from '@kit.ArkUI'; import { ColumnModifier } from '../../../common/utils/ComponetModifier'; +import { ThemeItem } from '../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; @Entry @Component @@ -17,6 +19,8 @@ struct WebDav{ new Input_items("","账号",InputType.Email||InputType.PhoneNumber), new Input_items("","密码",InputType.Password) ] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @State helper_status:boolean=false controller: web_webview.WebviewController = new web_webview.WebviewController() Column = new ColumnModifier().setPadding(0,0) @@ -91,7 +95,7 @@ struct WebDav{ //查看帮助 Column(){ Text("不会填写?查看帮助") - .fontColor("rgba(255, 149, 0, 1)") + .fontColor(this.theme.mainColor) .fontSize(14) }.bindSheet($$this.helper_status,this.helper,{ height:600, diff --git a/entry/src/main/ets/pages/view/myCenter/aboutUs/versionLogPage.ets b/entry/src/main/ets/pages/view/myCenter/aboutUs/versionLogPage.ets index 2b53695d..0c843195 100644 --- a/entry/src/main/ets/pages/view/myCenter/aboutUs/versionLogPage.ets +++ b/entry/src/main/ets/pages/view/myCenter/aboutUs/versionLogPage.ets @@ -1,4 +1,6 @@ import { router } from '@kit.ArkUI'; +import { ThemeStorageKey } from '../../../../common/constants/Theme'; +import { ThemeItem } from '../../../../common/model/Theme'; @Entry @Component @@ -9,6 +11,8 @@ struct VersionLogPage { '更新icon图标', '关于我们-QQ群增加Beta群', ] + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem build() { Column({ space: 16 }) { @@ -59,7 +63,7 @@ struct VersionLogPage { Column() { Row() { Line({ width: 4, height: 16 }) - .backgroundColor('#FF6600') + .backgroundColor(this.theme.mainColor) .margin({ right: 8 }) Text(version) .lineHeight(24) diff --git a/entry/src/main/ets/pages/view/myCenter/cloudDisk.ets b/entry/src/main/ets/pages/view/myCenter/cloudDisk.ets index 7bd879b0..1c5c890d 100644 --- a/entry/src/main/ets/pages/view/myCenter/cloudDisk.ets +++ b/entry/src/main/ets/pages/view/myCenter/cloudDisk.ets @@ -4,6 +4,8 @@ import { MyCenterTitle } from '../../../componets/myCenter/MyCenterTitle'; import { cloudDisKBindSheetComponet } from '../../../componets/myCenter/cloudDisKBindSheetComponet'; import { ColumnModifier } from '../../../common/utils/ComponetModifier'; import { PublicConstants, TextConstants } from '../../../common/constants/PublicConstants'; +import { ThemeItem } from '../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; @Entry @Component @@ -49,7 +51,8 @@ struct CloudDisk { @State zipDataIndex:number=0 @State deviceDataIndex:number=0 @State isShow:boolean=false - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @Builder backups_item(item:dataItem){ Row(){ @@ -119,8 +122,8 @@ struct CloudDisk { .size({width:320,height:200}) Row({space:20}) { - this.button("取消",[$r('app.color.theme_color'),'rgba(255,120,0,0.12)'],()=>{this.bindSheetCancel(this.isShow)}) - this.button("确定",[PublicConstants.THEME_COLOR_WHITE,$r('app.color.theme_color')],()=>{this.bindSheetConfirm(this.isShow)}) + this.button("取消",[this.theme.mainColor,this.theme.secondColor],()=>{this.bindSheetCancel(this.isShow)}) + this.button("确定",[PublicConstants.THEME_COLOR_WHITE,this.theme.mainColor],()=>{this.bindSheetConfirm(this.isShow)}) }.height(40) .width("100%") @@ -174,7 +177,7 @@ struct CloudDisk { this.backups_botton() } .margin({top:32,bottom:42}) - .backgroundColor(PublicConstants.THEME_COLOR) + .backgroundColor(this.theme.mainColor) .onClick(()=>{this.backups_onClick()}) } //备份设置 diff --git a/entry/src/main/ets/pages/view/myCenter/diskSet.ets b/entry/src/main/ets/pages/view/myCenter/diskSet.ets index 2dedb5d8..074bd1c8 100644 --- a/entry/src/main/ets/pages/view/myCenter/diskSet.ets +++ b/entry/src/main/ets/pages/view/myCenter/diskSet.ets @@ -5,6 +5,8 @@ import { MyCenterTitle } from '../../../componets/myCenter/MyCenterTitle'; import { diskComponet } from '../../../componets/myCenter/diskComponet'; import { PublicConstants, TextConstants } from '../../../common/constants/PublicConstants'; +import { ThemeItem } from '../../../common/model/Theme'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; @Entry @Component @@ -25,7 +27,8 @@ struct DiskSet { @State localBackup:dataItem= new dataItem("本地备份","","","",false) @State deviceName:dataItem= new dataItem("设备名称","Meta 40 Pro","","",false) @State localBackupPath:dataItem= new dataItem("本地备份路径","emulated/emulated/阅读/备份","","",true) - + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem @Builder toggleComponets(item:dataItem){ Row(){ @@ -37,7 +40,7 @@ struct DiskSet { Toggle({type:ToggleType.Switch,isOn:item.status}) .onChange((isOn: boolean) => { item.status=isOn; - }).selectedColor(PublicConstants.THEME_COLOR).hoverEffect(HoverEffect.None) + }).selectedColor(this.theme.mainColor).hoverEffect(HoverEffect.None) }.justifyContent(FlexAlign.SpaceBetween) .stateStyles({normal: this.componetStyles}) } diff --git a/entry/src/main/ets/pages/view/myCenter/helpCenterPage.ets b/entry/src/main/ets/pages/view/myCenter/helpCenterPage.ets index ae30558d..977767fe 100644 --- a/entry/src/main/ets/pages/view/myCenter/helpCenterPage.ets +++ b/entry/src/main/ets/pages/view/myCenter/helpCenterPage.ets @@ -1,4 +1,6 @@ import { router } from '@kit.ArkUI'; +import { ThemeStorageKey } from '../../../common/constants/Theme'; +import { ThemeItem } from '../../../common/model/Theme'; @Entry @Component @@ -39,6 +41,9 @@ struct HelpCenterPage { ] scroller: Scroller = new Scroller() + // 主题颜色 + @StorageProp(ThemeStorageKey.THEME) theme: ThemeItem = {} as ThemeItem + build() { Column() { Flex({ @@ -199,7 +204,7 @@ struct HelpCenterPage { Row() { if (this.MoreQuestionsIndex == index) { Line({ width: 3, height: 16 }) - .backgroundColor('#FF6600') + .backgroundColor(this.theme.mainColor) } Text(item) .lineHeight(22) @@ -285,12 +290,12 @@ struct HelpCenterPage { question(title: string, index: number) { Column() { Text(title) - .fontColor(index == 0 ? '#FF6600' : 'rgba(0, 0, 0, 0.88)') + .fontColor(index == 0 ? this.theme.mainColor : 'rgba(0, 0, 0, 0.88)') .fontSize(12) .fontWeight(700) } .borderRadius(8) .padding(8) - .backgroundColor(index == 0 ? 'rgba(255, 102, 0, 0.12)' : 'rgb(240,240,240)') + .backgroundColor(index == 0 ? this.theme.secondColor : 'rgb(240,240,240)') } } \ No newline at end of file diff --git a/entry/src/main/resources/base/element/color.json b/entry/src/main/resources/base/element/color.json index 7c18cd7a..e18f8bc7 100644 --- a/entry/src/main/resources/base/element/color.json +++ b/entry/src/main/resources/base/element/color.json @@ -17,10 +17,6 @@ "name": "test", "value": "#FFFF0000" }, - { - "name": "theme_color", - "value": "#FF6600" - }, { "name": "book_detail_background", "value": "#2a5d5d" diff --git a/entry/src/main/resources/base/media/FIND_theme.png b/entry/src/main/resources/base/media/FIND_theme.png deleted file mode 100644 index ba0933a6b24eea02753cfb26e258b5d3546b5bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2380 zcmV-S3A6TzP)Q!C*E`-XPh{pB8mr zphVRC*+2zLfZ3F*pOKb^{9l)k(!gL3=y#>54-9%O^xB)Sc3QBl2h!&@ zY_yF3;|>a>5P|H!HT;O`vj5#|Vs_z%SWaW2RujcQ=17mf6KmO0 z^bwca`YIQZQVZmWb8PVzY76-d-C0O-If~T2=T16_?YPUMO*nXOOXa{SDn0**cxf4(#)^RUyyV=ie7+_0C?fF@c3Iir z0|$-gej`Fu;?Exu5vwQtEe*^#B5B=dJqzMce)3H50a*urriI_C`^>&5{bu|vO_b$t z()smC9qfNJmofjs3d%D$u*@70cRLY(-VhPz&IH>`tk{3W1tg#p$ca0Zs!Rk=;=sd+ zs-gIEDm7UT9t*bFcsI$_)E2}==lsbAo(1S?Tmz~&vKTyO&`xl**kRtW9<%y27GJ?L z11FJdGC{Nl@qMA)cIf4U8O-8KOE&{Lr86#FsfsBN~xq51}t&HWUuH~pkQS^@o z&b=tgxz~Z0&bcoSCe=Q<5$ww><`YGRBRrZB1DECBD)K--{?O zzZw+94+RRt6t4=;&Af#ykrB=Q3zm$xCCBX}!h#HU@-!{?(h}q3Bg6LkXnRG&`pw9dfow}*#orJRNR|~%$Gx00 z6Ba0|D1PpK6y0uWEHO(FBGS$NhKBK<;hd-(>d-(Dy!Iz|6dIQ(_aZur>T=8=)aS16 zFxelJ+AxW+1D8~%f!K!a{x7m20__afFF5*g@OS;)n#;d|A_To#IQFS56TMEY3- zvO2@}Og=@ebFxyDdogxu1!)U9gk9`G;8^EQ=u(t>Z9j$&<%Rtr`rIOkzSMY&g7 zbLr9BR{c#a|3P>reP_h<#9Gn zOX*&^qIhr*Y`q0-=w9)Y#F0YvsHFXS=&W5vEhG@lck_GT`In##-Rs1ejm zy2U9gV&gD^?nOogD&eNYq03IN4qMUAFLGYe1iE|mD)$;k6c5IoPKp^nEyq&yx9~x@ zX+$7#v)lG1nG1B*>LXUBBx0&`D@DwRLZ|9A%#(+zvn}JD(MKEN z_QkG?6}=T{Mb3v?cc=8nUsT7WFFq8JB=@`5$ww5zn6tU&T5}q@8|vU3;a+ZY)Mt>y zwG4M(J6X5+bMYcDvCra zxs5@_6mYouK8hIYA<8mf3D(z~J!`sH?G?9bGzkjD;LM7zq%Gh$II3~cIgT)-FR`zE zSKWu!^IyCfe_DZ4o>mbna>{2*Zagwm)GB&nQ7GC_*BMux4$P_0zJ=4O`(ORG=w4c@3AJuNb zzb!H&fp~Ut`YuO7xW?Mmx@n1V$4|P4SuQ#I*0%ziYZQkf%}lADk@>5gmfkiF)2Su= zL024-{&A=%kw~TP&Xf?(=Q78ywO#1xz9f>&?)3}wN@gC}RCz4n8D?}AnDY>(73dO=D z9#g=uI}Y~0mV$d$oJx54o2;7#oSw*NWn7!WL%o5|aS6-vn^>*hz(IiV#*j&14qsiN z{luXPXTl{zCzt`4Hm=p2&FgzT^8acIH#S{?TQOQ3vgnl8)vU25{?|?jpHM6-ZeS9) zu5?|jcQtQeJSHZPpZx_dU*n5KQA}}V12>sJ$Al?FAV1DTljX(+mc+su&U@Q=8acQ> yWP@L-w8<}3ayIh@GF;2X=Auj diff --git a/entry/src/main/resources/base/media/FIND_theme.svg b/entry/src/main/resources/base/media/FIND_theme.svg new file mode 100644 index 00000000..465cd845 --- /dev/null +++ b/entry/src/main/resources/base/media/FIND_theme.svg @@ -0,0 +1,3 @@ + + + diff --git a/entry/src/main/resources/base/media/HOME_theme.png b/entry/src/main/resources/base/media/HOME_theme.png deleted file mode 100644 index 31c2b85b2b660101dedc086de0ee706536e6f6be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1149 zcmV-@1cLjCP)pdMOA%-&N-kB+LXXZ;L6naYAZ_YXQ&Yfw2jEsy3u~dS^a=D0xQ;|2H%59eQ zpch}R|NDnI1mf&aZhx-3r!L>trhK)lKyS@@v$=x+09Q_wj7 zrzl_Tto->-zP)WRKeH_6r%TX;EeKBct9;@T;sOb>STDZ}k=qcjW-8Et^$g&?aY}cUWO&3+l9>O>UGI29vP^2x4Nkpmq~cW3C`7uWo=Q&BR3qH9`o}dur z5aEnsae>OJvBh5N;lRrvdg8d#ZMvBgq8x%J=uA%PT8D@&G?a%}R#)LKcU=B*_fp}J z)T(@SX*5v3x!6@&-%&-a2hoJfk?SerQqtHIZWYQJn&Si<#{E!l(v-%{UH91LHbl`u zXKO!_a=H%vQS5(F`Fqio9+eXHK+53W5Et$c#xU=RBJvO9Rt!fLNom*I1$HOI1$#xp zod;2~^cvtzd@}nm$3)oNc`3 zhBLod0P9E&i`?uXc!ESi1ofnxPgqiU2v1O_|4(;dDpXbi73(v + + diff --git a/entry/src/main/resources/base/media/MINE_theme.png b/entry/src/main/resources/base/media/MINE_theme.png deleted file mode 100644 index 5f9e436c95d9c51159109ef5117f379b7c3186ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2341 zcmV+=3EK9FP)liYIMv(J2 zk(4IRL#gFdq(p&a?XCj$7E3N!bzD-{WPb=4I6*Ek>Y@-Mc!xHb%;21bzBmJ$kh4Jx~g;vt}L(B0C2 zWNodPk+rwxN>sDfx{<*WH4uWFzgEs7lYJd?hf0`R@JmR)*cRKf@hF}sO4E*zRD04s zLe;w@2K^fPL|+6wlbZRX%L6ASh>fpgdmP_pSK91+)+sk}8Mc$<1 zn=x%fjbp$#99Z<1X|xkmEwY=}(qk3wWAOz{ z4d_I!ii7AhquXqL*bbF+P{WBRCo)=sC_RN)Ocl~d5s{0QqELdg^e~=NT)@;JDa1ls zqyoLM!cvrP6fQxO9{Lu!1DHCHAeGQL7mjux%VH_4Y518GUYa`f@`6#!I0Sn$LgCf0 zrdY+**>R%rxlGFQbYN}A3-DSk)Xcb!gx{Z>*bcc1wTQ}+Mq5nUf6rdZJK6M7Em#} zvmZAxH|f~hPHxjkLy*1G*=O*H*%gzBAHN9v`W*1HUv<~fb{ZLJ8z#v5O3j)~e0%H= z-^8Si>VNwR@ZzaX`OYoiovWSl))TYyc!j}_s<#lZL3>~O%DmVl`9r7v;3tPTdCHZj zHcZru2!>tTaQvAdeuC;74}4{+*{0zeF+rSaB>nIA{{VjRyNLRe?(freb04S?X+C@$ z1XRqf!rt_U0w_g{^Qt~44TGw|q^O5?fcx*c`Su0@4;fSqo{!tf-=Hs$zqJnO?h#Zd5AwBi4kU8goF`^<|tf~*)Lt^OsI&BnS`vmn+!O>eLt-o?N{ zsag4__-i8ZkE-VXqk2UV(K3D8B1oAQh+vcW+@Jpq;w)KUZ?N|KwqB zgVWvB=sM+BFCyF3D1+-_hhFV6*2MNVQlC#}kKVrO5=C2-WOTzoGCp`qwl_P*oOWlY z2alhUW5=|&@ka1a=+v`w0be6GS3>dU2u0h#rUm~?yTtDM@Nu_X^kip{fZ9_xVUwh? zm*TG%CRwjRFu60@{#4afoCqGwhBj5WB2x5Ps1)g&YZ>iB&!_AD`G0P-BfWz2?(3_r zH1~qqTD)-%Q7;Q8-NzCS&yKbYIG6WpVz7Kp5%Mnc@p>)@Tw)6cY%T@s%_M90eL_ z4m$fGhG@u$edA7i8%oc=@p5!^40L*0PNYbu&k9NNC*x)Vy3rv9MkP%oh7O=@I9MIUa;Rt53RAZ>ICi5% zh2;Sb0=*LBqACQPOY>2J^h+}1NFpdnl&XBGf3ipl389VYJ!p4ZY|gn})XIzg7WKN0 z;VINzTM< z^)e;_v^PqezyW-^!g$4D9JIqFT_+d;7&lz0IWeg3dJO*46s~Q$h>(oYp+W|ojOnDc zHPNRX5oC8Z00000 LNkvXXu0mjf9Qkt= diff --git a/entry/src/main/resources/base/media/MINE_theme.svg b/entry/src/main/resources/base/media/MINE_theme.svg new file mode 100644 index 00000000..90e94b03 --- /dev/null +++ b/entry/src/main/resources/base/media/MINE_theme.svg @@ -0,0 +1,3 @@ + + + diff --git a/entry/src/main/resources/base/media/SUB_theme.png b/entry/src/main/resources/base/media/SUB_theme.png deleted file mode 100644 index 42fffdd3c53d83332f092c7c6213c6545c75fd2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1403 zcmV->1%&#EP)BmFm>U;FdqV}O;n0d}PV@jGy&(ZgxIsZ`k@#^VK|LWr zDYU0bNUnrLg@iCFRZ**`Nt^gb?A_tL-MVZYyZdH6yPi$x?BYyx-w78>g{Xf&Wy9iIP%`mlZp2{0B&FT7So zrE;EjYnTK#uTvv@7^AUF9XhApuQyCiGZIKIoR~qmw33OpjAHc$(7KOg=mva!Tzycl zOV21t4Fk_9tEGvG!<46x994xXt>`l|Rp}XGfhep<9QuMuvu7X1f;(8N^HOt>KtVzV zX5a!-V+s_YYUD*ViKWbgN_rNqpvtgrwYU+4=eOUR{0ZX zs|_pcNDpG~Nm2_MhA;k0_{Bzf9&2JSfjfpHqA$p_PSxn z*`g;8)qDta_g`3pM=xQ5X51I3xn?&xZ^^@paa$k`Et|QA>D)FlcUvG9$7XqhM=#&3 z8j#IAs6PoDHd;N7cYhjwoI~!{i@?Q?U_|>COi5p$!AYPE_B{nWe(V#6kZwqTK@H2*;oc1KORyKXc&jFP@U*S<$;a2}G-yn&>opM$P`8z$#NN6nM; zC^$)9`G)e(r}4I}TgD?-lx#+^%U_1uAY9v7r+LXcKMX(b%n^(Q3zJ~viZZ!!2VYy= zy_w!Jj;7-N{XZ}+*$c$N@C49WZFvOk@j|Olb^>K348wV+ZFWg9igX2HQCN_TRq9Pk zwd6RqR>#geQDg#f&-0yKyx`BbzzyDl!g+)fZnqV#Tk-qOMs}j~;WEai^e$K#a)Hu> zhi$%mh+US;mc34Zh&qPabsSmGHfE637Gz z*G0JCECP>6>?OP;GhuHThCIZ)X1Mhi-YPV)EAJ0ItGqY7PUHPSPh%1KTd?fg z2}R+}?>OTrqez~ExVIhbaoZGk+Q(1`6hk3U423{36avNImOvV7!R8P$fzoeuom%pe z`V3F=M&I`)9cv&>guhAnpH+zeh;IZp(#ISXuAWh!;8OoEiFARE9ZXrMYZ4=wKpwt> zO~T$gizjeUeU8OZW-JtYR$yzN3lbw)$#oXfn8II{p1QD1KYETlreSiDehXFdwt3nW z{hd38M&O|W#Lw=~r*Vv4mXMsENtpR)C?(;6P%E@sMN%kq1Md`I_HdKaK@YwMGa9sU zo>_)P^eN0z>$xpelk-U2vlQ0zQgidi<47CEc}C%59KfPlOm7r?&}k<{?a_fai!dP3 z1C}EB;KgkX%Sf24+LQPRR1d%Z6lPF + + diff --git a/entry/src/main/resources/base/media/f60_right.svg b/entry/src/main/resources/base/media/f60_right.svg index ec6413ab..f03f7fbc 100644 --- a/entry/src/main/resources/base/media/f60_right.svg +++ b/entry/src/main/resources/base/media/f60_right.svg @@ -1,5 +1,5 @@ - + diff --git a/entry/src/main/resources/base/media/hook.svg b/entry/src/main/resources/base/media/hook.svg index 2c932ad7..bc53c9cc 100644 --- a/entry/src/main/resources/base/media/hook.svg +++ b/entry/src/main/resources/base/media/hook.svg @@ -1,5 +1,5 @@ - + diff --git a/entry/src/main/resources/base/media/ic_select.svg b/entry/src/main/resources/base/media/ic_select.svg index e7310f12..649b2da3 100644 --- a/entry/src/main/resources/base/media/ic_select.svg +++ b/entry/src/main/resources/base/media/ic_select.svg @@ -1,5 +1,5 @@ - + diff --git a/entry/src/main/resources/base/media/legado_icon.svg b/entry/src/main/resources/base/media/legado_icon.svg index 3e5f0d76..285cedb2 100644 --- a/entry/src/main/resources/base/media/legado_icon.svg +++ b/entry/src/main/resources/base/media/legado_icon.svg @@ -1,3 +1,3 @@ - + diff --git a/entry/src/main/resources/base/media/my_theme_config_bg0.png b/entry/src/main/resources/base/media/my_theme_config_bg0.png new file mode 100644 index 0000000000000000000000000000000000000000..eea9e2e5269b509dded48cf4db98df12dc555562 GIT binary patch literal 22504 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%0A@Y%z=Hy@9u z&-b=la_eT*%xksWPiJ7jCuhH|ueMZp)G7pK9j5svCu>|Au}LqPZsG`p}EnDOvUODD3iN%16nK4ABX`H9;_}RObwb`me

{)I`8n5F=7nH}&*1qK?ZPqq4 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/my_theme_config_bg3.png b/entry/src/main/resources/base/media/my_theme_config_bg3.png new file mode 100644 index 0000000000000000000000000000000000000000..04a97c3cde7bd57b67be3f43f5a7e56d68718b98 GIT binary patch literal 18192 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/my_theme_config_bg6.png b/entry/src/main/resources/base/media/my_theme_config_bg6.png new file mode 100644 index 0000000000000000000000000000000000000000..93ea99fbfcf4e9823fefb6c702389f4d0ea3e875 GIT binary patch literal 24334 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 N002ovPDHLkV1iCQS;_za literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/base/media/my_theme_config_bg7.png b/entry/src/main/resources/base/media/my_theme_config_bg7.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c1c00eecd9f3632a71540ee9998b7b18706f61 GIT binary patch literal 20073 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 + + + + diff --git a/entry/src/main/resources/base/media/my_theme_config_desktop.svg b/entry/src/main/resources/base/media/my_theme_config_desktop.svg new file mode 100644 index 00000000..54675089 --- /dev/null +++ b/entry/src/main/resources/base/media/my_theme_config_desktop.svg @@ -0,0 +1,4 @@ + + + + diff --git a/entry/src/main/resources/base/media/my_theme_config_theme.svg b/entry/src/main/resources/base/media/my_theme_config_theme.svg new file mode 100644 index 00000000..2bf3cc73 --- /dev/null +++ b/entry/src/main/resources/base/media/my_theme_config_theme.svg @@ -0,0 +1,4 @@ + + + + diff --git a/entry/src/main/resources/base/media/my_theme_config_welcome.svg b/entry/src/main/resources/base/media/my_theme_config_welcome.svg new file mode 100644 index 00000000..efc42dd6 --- /dev/null +++ b/entry/src/main/resources/base/media/my_theme_config_welcome.svg @@ -0,0 +1,3 @@ + + + diff --git a/entry/src/main/resources/base/profile/main_pages.json b/entry/src/main/resources/base/profile/main_pages.json index c9262258..059bc1c3 100644 --- a/entry/src/main/resources/base/profile/main_pages.json +++ b/entry/src/main/resources/base/profile/main_pages.json @@ -26,6 +26,8 @@ "pages/view/Find/BookSource/AddSourcePage", "pages/view/Subscription/components/SubscriptionSearch", "pages/view/Subscription/rssWebView", - "pages/view/Find/CategoryList/Index" + "pages/view/Find/CategoryList/Index", + "pages/view/myCenter/MyThemeConfig", + "pages/view/myCenter/CreateCustomTheme" ] } \ No newline at end of file diff --git a/entry/src/main/resources/rawfile/bgi/my_theme_config_bg1.png b/entry/src/main/resources/rawfile/bgi/my_theme_config_bg1.png new file mode 100644 index 0000000000000000000000000000000000000000..eea9e2e5269b509dded48cf4db98df12dc555562 GIT binary patch literal 22504 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%0A@Y%z=Hy@9u z&-b=la_eT*%xksWPiJ7jCuhH|ueMZp)G7pK9j5svCu>|Au}LqPZsG`p}EnDOvUODD3iN%16nK4ABX`H9;_}RObwb`me

{)I`8n5F=7nH}&*1qK?ZPqq4 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/rawfile/bgi/my_theme_config_bg3.png b/entry/src/main/resources/rawfile/bgi/my_theme_config_bg3.png new file mode 100644 index 0000000000000000000000000000000000000000..04a97c3cde7bd57b67be3f43f5a7e56d68718b98 GIT binary patch literal 18192 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 literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/rawfile/bgi/my_theme_config_bg6.png b/entry/src/main/resources/rawfile/bgi/my_theme_config_bg6.png new file mode 100644 index 0000000000000000000000000000000000000000..93ea99fbfcf4e9823fefb6c702389f4d0ea3e875 GIT binary patch literal 24334 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 N002ovPDHLkV1iCQS;_za literal 0 HcmV?d00001 diff --git a/entry/src/main/resources/rawfile/bgi/my_theme_config_bg7.png b/entry/src/main/resources/rawfile/bgi/my_theme_config_bg7.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c1c00eecd9f3632a71540ee9998b7b18706f61 GIT binary patch literal 20073 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 - + - + diff --git a/svg/HOME_theme.svg b/svg/HOME_theme.svg index 33721260..fa53336b 100644 --- a/svg/HOME_theme.svg +++ b/svg/HOME_theme.svg @@ -1,9 +1,9 @@ - + - + diff --git a/svg/MINE_theme.svg b/svg/MINE_theme.svg index 312dfe16..2fd26c82 100644 --- a/svg/MINE_theme.svg +++ b/svg/MINE_theme.svg @@ -1,9 +1,9 @@ - + - + diff --git a/svg/SUB_theme.svg b/svg/SUB_theme.svg index 769cbd80..cf11e513 100644 --- a/svg/SUB_theme.svg +++ b/svg/SUB_theme.svg @@ -1,9 +1,9 @@ - + - +