From dbc1f228d6f03318ebb25bed0d5608a6a723ce1d Mon Sep 17 00:00:00 2001 From: "@feng-yu4279" Date: Tue, 13 May 2025 16:11:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=BA=9F=E5=BC=83api=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Index.ets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index ab29fb4..255ab50 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -101,7 +101,7 @@ struct DataItemView { } .onClick(() => { let util = PreferencesUtil.getInstance(); - let preferences = util.getPreferences(getContext(this)); + let preferences = util.getPreferences(this.getUIContext().getHostContext()!); this.statusArr[this.itemData.id] = !this.statusArr[this.itemData.id]; this.itemData.favour = this.statusArr[this.itemData.id!]; util.preferencesPut(preferences, 'statusArr', this.statusArr); -- Gitee From 0b60519466a684f4d8ed3f67bb421fc76a13ffac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E8=82=B2?= Date: Wed, 14 May 2025 07:18:36 +0000 Subject: [PATCH 2/3] =?UTF-8?q?Revert=20"=E5=BA=9F=E5=BC=83api=E6=9B=B4?= =?UTF-8?q?=E6=96=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit dbc1f228d6f03318ebb25bed0d5608a6a723ce1d. --- entry/src/main/ets/pages/Index.ets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 255ab50..ab29fb4 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -101,7 +101,7 @@ struct DataItemView { } .onClick(() => { let util = PreferencesUtil.getInstance(); - let preferences = util.getPreferences(this.getUIContext().getHostContext()!); + let preferences = util.getPreferences(getContext(this)); this.statusArr[this.itemData.id] = !this.statusArr[this.itemData.id]; this.itemData.favour = this.statusArr[this.itemData.id!]; util.preferencesPut(preferences, 'statusArr', this.statusArr); -- Gitee From 39ed1f9f6b6b97ec98590c6917c5ac66d0a8a817 Mon Sep 17 00:00:00 2001 From: "@feng-yu4279" Date: Thu, 15 May 2025 14:44:13 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/common/CommonData.ets | 5 +- .../main/ets/entryability/EntryAbility.ets | 34 +++++++++---- .../ets/entryformability/EntryFormAbility.ets | 15 ++++-- entry/src/main/ets/pages/Index.ets | 13 +++-- .../src/main/ets/widget/pages/WidgetCard.ets | 50 +++++++++++-------- .../resources/base/profile/form_config.json | 6 ++- 6 files changed, 80 insertions(+), 43 deletions(-) diff --git a/entry/src/main/ets/common/CommonData.ets b/entry/src/main/ets/common/CommonData.ets index 0213f54..5224c7a 100644 --- a/entry/src/main/ets/common/CommonData.ets +++ b/entry/src/main/ets/common/CommonData.ets @@ -38,7 +38,7 @@ export interface CardListItemData { favour: boolean; bgImage: Resource; } - +// [Start form_data] export class FormData { formId: string = ''; formTime: string = ''; @@ -49,4 +49,5 @@ export class FormData { constructor(formId: string) { this.formId = formId; } -} \ No newline at end of file +} +// [End form_data] \ No newline at end of file diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index 0ec886c..f5743ef 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -12,17 +12,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +// [Start entry_ability] import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; -import { window } from '@kit.ArkUI'; +import { hilog } from '@kit.PerformanceAnalysisKit'; import { formBindingData, formInfo, formProvider } from '@kit.FormKit'; import { rpc } from '@kit.IPCKit'; -import { hilog } from '@kit.PerformanceAnalysisKit'; -import { BusinessError } from '@kit.BasicServicesKit'; import { CardListItemData, CommonData, FormData } from '../common/CommonData'; +// [StartExclude entry_ability] +import { window } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; import { PreferencesUtil } from '../common/utils/PreferencesUtil'; import { CommonConstants } from '../common/CommonConstants'; - +// [EndExclude entry_ability] const TAG: string = 'EntryAbility'; export default class EntryAbility extends UIAbility { @@ -31,11 +32,13 @@ export default class EntryAbility extends UIAbility { if (params.formId !== undefined) { let formId: string = params.formId; let formData = new FormData(formId); + // [StartExclude util] let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); let index: number = preferences.getSync(CommonConstants.DATA_INDEX, 0) as number; formData.cardList = CommonData.getData(index); util.preferencesPut(preferences, CommonConstants.DATA_INDEX, index + 1); + // [EndExclude util] let formMsg: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); formProvider.updateForm(formId, formMsg).then((data) => { hilog.info(0x0000, TAG, 'updateForm success.', JSON.stringify(data)); @@ -45,6 +48,7 @@ export default class EntryAbility extends UIAbility { } return new MyParcelable(1); }; + // [StartExclude call_update_func] private callUpdateFunc = (data: rpc.MessageSequence): MyParcelable => { let params: Record = JSON.parse(data.readString()); if (params.formId !== undefined) { @@ -85,15 +89,19 @@ export default class EntryAbility extends UIAbility { } return new MyParcelable(1); }; - + // [EndExclude call_update_func] onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + // [StartExclude init_data] hilog.info(0x0000, TAG, '%{public}s', 'Ability onCreate'); this.initData(); this.updateInfo(want); + // [EndExclude init_data] this.callee.on('updateCardInfo', this.callFunc); + // [StartExclude callee] this.callee.on('updateFormFavour', this.callUpdateFunc); + // [EndExclude callee] } - + // [StartExclude preferences_util] initData(): void { let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); @@ -155,17 +163,21 @@ export default class EntryAbility extends UIAbility { }); } } - + // [EndExclude preferences_util] onDestroy(): void { + // [StartExclude hilog] hilog.info(0x0000, TAG, '%{public}s', 'Ability onDestroy'); + // [EndExclude hilog] try { this.callee.off('updateCardInfo'); + // [StartExclude off] this.callee.off('updateFormFavour'); + // [EndExclude off] } catch (err) { hilog.error(0x0000, TAG, 'Failed to disconnect callee. Cause: %{public}s', JSON.stringify(err) ?? ''); } } - + // [StartExclude on_window_stage_create] onWindowStageCreate(windowStage: window.WindowStage): void { // Main window is created, set main page for this ability hilog.info(0x0000, TAG, '%{public}s', 'Ability onWindowStageCreate'); @@ -203,6 +215,7 @@ export default class EntryAbility extends UIAbility { // Ability has back to background hilog.info(0x0000, TAG, '%{public}s', 'Ability onBackground'); } + // [EndExclude on_window_stage_create] } class MyParcelable implements rpc.Parcelable { @@ -221,4 +234,5 @@ class MyParcelable implements rpc.Parcelable { this.num = dataIn.readInt(); return true; } -} \ No newline at end of file +} +// [End entry_ability] \ No newline at end of file diff --git a/entry/src/main/ets/entryformability/EntryFormAbility.ets b/entry/src/main/ets/entryformability/EntryFormAbility.ets index 9045cde..5d74486 100644 --- a/entry/src/main/ets/entryformability/EntryFormAbility.ets +++ b/entry/src/main/ets/entryformability/EntryFormAbility.ets @@ -13,14 +13,16 @@ * limitations under the License. */ -import { Want } from '@kit.AbilityKit'; import { systemDateTime } from '@kit.BasicServicesKit'; +// [Start entry_form_ability] +import { Want } from '@kit.AbilityKit'; import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; +// [StartExclude card_list_item_data] import { CardListItemData, CommonData, FormData } from '../common/CommonData'; import { CommonConstants } from '../common/CommonConstants'; import { PreferencesUtil } from '../common/utils/PreferencesUtil'; - +// [EndExclude card_list_item_data] const TAG: string = 'EntryFormAbility'; export default class EntryFormAbility extends FormExtensionAbility { @@ -32,6 +34,7 @@ export default class EntryFormAbility extends FormExtensionAbility { let formName: string = want.parameters[formInfo.FormParam.NAME_KEY] as string; let formId: string = want.parameters[formInfo.FormParam.IDENTITY_KEY] as string; + // [StartExclude card_info_update] let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(this.context); // Save form id using preferences. @@ -54,10 +57,10 @@ export default class EntryFormAbility extends FormExtensionAbility { let formInfo: formBindingData.FormBindingData = formBindingData.createFormBindingData(formData); return formInfo; } - + // [EndExclude card_info_update] return formBindingData.createFormBindingData(''); } - + // [StartExclude on_update_form] onUpdateForm(formId: string) { // Called to notify the form provider to update a specified form. hilog.info(0x0000, TAG, `FormAbility onUpdateForm, formId = ${formId}`); @@ -105,4 +108,6 @@ export default class EntryFormAbility extends FormExtensionAbility { hilog.info(0x00, TAG, `remove formId: ${formId}`); PreferencesUtil.getInstance().removeFormId(this.context, formId); } -} \ No newline at end of file + // [EndExclude on_update_form] +} +// [End entry_form_ability] \ No newline at end of file diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index ab29fb4..d4bc752 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -51,7 +51,9 @@ struct Index { .width('100%') .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) .backgroundColor('#F1F3F5') - .padding({ top: px2vp(this.topHeight) }) + .padding({ + top: px2vp(this.topHeight) + }) } } @@ -86,8 +88,9 @@ struct DataItemView { .alignItems(HorizontalAlign.Start) .justifyContent(FlexAlign.Center) .layoutWeight(1) - + // [Start row] Row() { + // [StartExclude status_arr] if (!this.statusArr[this.itemData.id!]) { SymbolGlyph($r('sys.symbol.heart')) .fontSize(24) @@ -98,13 +101,14 @@ struct DataItemView { .aspectRatio(1) .fontColor(['#E64566']) } + // [EndExclude status_arr] } .onClick(() => { let util = PreferencesUtil.getInstance(); let preferences = util.getPreferences(getContext(this)); - this.statusArr[this.itemData.id] = !this.statusArr[this.itemData.id]; + this.statusArr[this.itemData.id] = !this.statusArr[this.itemData.id] this.itemData.favour = this.statusArr[this.itemData.id!]; - util.preferencesPut(preferences, 'statusArr', this.statusArr); + util.preferencesPut(preferences, 'statusArr', this.statusArr) // Update page display data. AppStorage.set('statusArr', [...this.statusArr]); @@ -125,6 +129,7 @@ struct DataItemView { }) } }) + // [End row] } .alignItems(VerticalAlign.Top) .width('100%') diff --git a/entry/src/main/ets/widget/pages/WidgetCard.ets b/entry/src/main/ets/widget/pages/WidgetCard.ets index e7af546..8ec41e2 100644 --- a/entry/src/main/ets/widget/pages/WidgetCard.ets +++ b/entry/src/main/ets/widget/pages/WidgetCard.ets @@ -15,20 +15,14 @@ import { CardListComponent } from '../view/CardListComponent'; import { CardListParameter } from '../viewmodel/CardListParameter'; -import { CardListItemData } from '../../common/CommonData'; - +import { CardListItemData } from '../../common/CommonData' +// [Start widget_card] let storageLocal = new LocalStorage(); @Entry(storageLocal) @Component struct WidgetCard { - @LocalStorageProp('formTime') @Watch('onFormTimeChange') formTime: string = ''; - @LocalStorageProp('cardList') cardList: Array = []; - @LocalStorageProp('formId') formId: string = ''; - @State cardListParameter: CardListParameter = new CardListParameter($r('sys.color.ohos_id_color_background'), - $r('app.string.card_list_title'), '', ImageSize.Cover, $r('app.media.logo'), false, - $r('sys.color.ohos_id_color_background'), true, this.cardList.length, $r('sys.color.ohos_id_color_emphasize'), - $r('app.color.list_item_count_background'), '', false); + // [StartExclude widget_card] /* * The action type. */ @@ -49,8 +43,18 @@ struct WidgetCard { * The height percentage setting. */ readonly FULL_HEIGHT_PERCENT: string = '100%'; - + // [EndExclude widget_card] + @LocalStorageProp('formTime') @Watch('onFormTimeChange') formTime: string = ''; + @LocalStorageProp('formId') formId: string = ''; + // [StartExclude card_list] + @LocalStorageProp('cardList') cardList: Array = []; + @State cardListParameter: CardListParameter = new CardListParameter($r('sys.color.ohos_id_color_background'), + $r('app.string.card_list_title'), '', ImageSize.Cover, $r('app.media.logo'), false, + $r('sys.color.ohos_id_color_background'), true, this.cardList.length, $r('sys.color.ohos_id_color_emphasize'), + $r('app.color.list_item_count_background'), '', false); + // [EndExclude card_list] onFormTimeChange() { + // [StartExclude post_card_action] postCardAction(this, { action: 'call', abilityName: 'EntryAbility', @@ -60,8 +64,9 @@ struct WidgetCard { message: 'Call refresh card.' } }); + // [EndExclude post_card_action] } - + // [StartExclude button_builder] @Builder buttonBuilder(text: ResourceStr) { Column() { @@ -132,15 +137,15 @@ struct WidgetCard { Row(){ this.buttonBuilder($r('app.string.router')) } - .onClick(() => { - postCardAction(this, { - action: 'router', - abilityName: 'EntryAbility', - params: { - message: 'Router refresh card.' - } - }); - }) + .onClick(() => { + postCardAction(this, { + action: 'router', + abilityName: 'EntryAbility', + params: { + message: 'Router refresh card.' + } + }); + }) Row() { this.buttonBuilder($r('app.string.call')) @@ -178,8 +183,9 @@ struct WidgetCard { .justifyContent(FlexAlign.SpaceBetween) } } - + // [EndExclude button_builder] build() { + // [StartExclude card_list_component] Row() { CardListComponent({ cardListParameter: this.cardListParameter }) { this.cardListBuilder() @@ -195,5 +201,7 @@ struct WidgetCard { } }); }) + // [EndExclude card_list_component] } } +// [End widget_card] \ No newline at end of file diff --git a/entry/src/main/resources/base/profile/form_config.json b/entry/src/main/resources/base/profile/form_config.json index d20eb4b..3e93327 100644 --- a/entry/src/main/resources/base/profile/form_config.json +++ b/entry/src/main/resources/base/profile/form_config.json @@ -1,3 +1,4 @@ +// [Start form_config] { "forms": [ { @@ -21,6 +22,7 @@ "4*4" ] }, + // [StartExclude form_config] { "name": "card_info_update", "displayName": "$string:widget1_display_name", @@ -41,5 +43,7 @@ "2*4" ] } + // [EndExclude form_config] ] -} \ No newline at end of file +} +// [End form_config] \ No newline at end of file -- Gitee