@react-native-ohos/react-native-default-preference 1.4.5-rc.1 → 1.4.5-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/COMMITTERS.md +10 -10
  2. package/LICENSE +21 -21
  3. package/OAT.xml +68 -68
  4. package/README.OpenSource +10 -10
  5. package/README.md +12 -12
  6. package/RNDefaultPreference.podspec +22 -22
  7. package/flow-typed/index.js +23 -23
  8. package/harmony/react_native_default_preference/Index.ets +8 -7
  9. package/harmony/react_native_default_preference/build-profile.json5 +25 -25
  10. package/harmony/react_native_default_preference/hvigorfile.ts +6 -6
  11. package/harmony/react_native_default_preference/obfuscation-rules.txt +17 -17
  12. package/harmony/react_native_default_preference/oh-package.json5 +12 -12
  13. package/harmony/react_native_default_preference/src/main/cpp/CMakeLists.txt +1 -1
  14. package/harmony/react_native_default_preference/src/main/cpp/RNDefaultPreferencePackage.h +36 -0
  15. package/harmony/react_native_default_preference/src/main/cpp/generated/RNOH/generated/BaseReactNativeDefaultPreferencePackage.h +65 -72
  16. package/harmony/react_native_default_preference/src/main/cpp/generated/RNOH/generated/turbo_modules/DefaultPreferenceNativeModule.cpp +25 -25
  17. package/harmony/react_native_default_preference/src/main/cpp/generated/RNOH/generated/turbo_modules/DefaultPreferenceNativeModule.h +16 -16
  18. package/harmony/react_native_default_preference/src/main/ets/Logger.ts +45 -45
  19. package/harmony/react_native_default_preference/src/main/ets/{RNDefaultPreferencePackage.ts → RNDefaultPreferencePackage.ets} +28 -27
  20. package/harmony/react_native_default_preference/src/main/ets/RNDefaultPreferenceTurboModule.ts +143 -143
  21. package/harmony/react_native_default_preference/src/main/ets/generated/components/ts.ts +5 -5
  22. package/harmony/react_native_default_preference/src/main/ets/generated/index.ets +5 -5
  23. package/harmony/react_native_default_preference/src/main/ets/generated/ts.ts +6 -6
  24. package/harmony/react_native_default_preference/src/main/ets/generated/turboModules/DefaultPreferenceNativeModule.ts +32 -32
  25. package/harmony/react_native_default_preference/src/main/ets/generated/turboModules/ts.ts +5 -5
  26. package/harmony/react_native_default_preference/src/main/ets/pages/Index.ets +22 -22
  27. package/harmony/react_native_default_preference/src/main/ets/utils/Calc.ets +8 -8
  28. package/harmony/react_native_default_preference/src/main/module.json5 +10 -10
  29. package/harmony/react_native_default_preference/src/main/resources/base/element/string.json +7 -7
  30. package/harmony/react_native_default_preference/{ts.ts → ts.ets} +7 -7
  31. package/harmony/react_native_default_preference.har +0 -0
  32. package/index.d.ts +19 -19
  33. package/index.js +12 -12
  34. package/package.json +44 -35
  35. package/src/NativeDefaultPreference.ts +21 -21
  36. package/harmony/react_native_default_preference/BuildProfile.ets +0 -17
  37. package/harmony/react_native_default_preference/oh-package-lock.json5 +0 -18
  38. package/harmony/react_native_default_preference/src/main/cpp/DefaultPreferencePackage.h +0 -19
  39. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/ComponentDescriptors.h +0 -24
  40. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/EventEmitters.cpp +0 -16
  41. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/EventEmitters.h +0 -17
  42. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/Props.cpp +0 -19
  43. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/Props.h +0 -18
  44. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/ShadowNodes.cpp +0 -17
  45. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/ShadowNodes.h +0 -23
  46. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/States.cpp +0 -16
  47. package/harmony/react_native_default_preference/src/main/cpp/generated/react/renderer/components/react_native_default_preference/States.h +0 -19
@@ -1,72 +1,65 @@
1
- /**
2
- * This code was generated by "react-native codegen-lib-harmony"
3
- */
4
-
5
- #pragma once
6
-
7
- #include "RNOH/Package.h"
8
- #include "RNOH/ArkTSTurboModule.h"
9
- #include "RNOH/generated/turbo_modules/DefaultPreferenceNativeModule.h"
10
-
11
- namespace rnoh {
12
-
13
- class BaseReactNativeDefaultPreferencePackageTurboModuleFactoryDelegate : public TurboModuleFactoryDelegate {
14
- public:
15
- SharedTurboModule createTurboModule(Context ctx, const std::string &name) const override {
16
- if (name == "DefaultPreferenceNativeModule") {
17
- return std::make_shared<DefaultPreferenceNativeModule>(ctx, name);
18
- }
19
- return nullptr;
20
- };
21
- };
22
-
23
- class BaseReactNativeDefaultPreferencePackageEventEmitRequestHandler : public EventEmitRequestHandler {
24
- public:
25
- void handleEvent(Context const &ctx) override {
26
- auto eventEmitter = ctx.shadowViewRegistry->getEventEmitter<facebook::react::EventEmitter>(ctx.tag);
27
- auto componentName = ctx.shadowViewRegistry->getComponentName(ctx.tag);
28
-
29
- if (eventEmitter == nullptr) {
30
- return;
31
- }
32
-
33
- std::vector<std::string> supportedComponentNames = {
34
- };
35
-
36
- std::vector<std::string> supportedEventNames = {
37
- };
38
-
39
- if (std::find(supportedComponentNames.begin(), supportedComponentNames.end(), componentName) != supportedComponentNames.end() &&
40
- std::find(supportedEventNames.begin(), supportedEventNames.end(), ctx.eventName) != supportedEventNames.end()) {
41
- eventEmitter->dispatchEvent(ctx.eventName, ArkJS(ctx.env).getDynamic(ctx.payload));
42
- }
43
- }
44
- };
45
-
46
-
47
- class BaseReactNativeDefaultPreferencePackage : public Package {
48
- public:
49
- BaseReactNativeDefaultPreferencePackage(Package::Context ctx) : Package(ctx){};
50
-
51
- std::unique_ptr<TurboModuleFactoryDelegate> createTurboModuleFactoryDelegate() override {
52
- return std::make_unique<BaseReactNativeDefaultPreferencePackageTurboModuleFactoryDelegate>();
53
- }
54
-
55
- std::vector<facebook::react::ComponentDescriptorProvider> createComponentDescriptorProviders() override {
56
- return {
57
- };
58
- }
59
-
60
- ComponentJSIBinderByString createComponentJSIBinderByName() override {
61
- return {
62
- };
63
- };
64
-
65
- EventEmitRequestHandlers createEventEmitRequestHandlers() override {
66
- return {
67
- std::make_shared<BaseReactNativeDefaultPreferencePackageEventEmitRequestHandler>(),
68
- };
69
- }
70
- };
71
-
72
- } // namespace rnoh
1
+ /**
2
+ * This code was generated by "react-native codegen-lib-harmony"
3
+ */
4
+
5
+ #pragma once
6
+
7
+ #include "RNOH/Package.h"
8
+ #include "RNOH/ArkTSTurboModule.h"
9
+ #include "RNOH/generated/turbo_modules/DefaultPreferenceNativeModule.h"
10
+
11
+ namespace rnoh {
12
+
13
+ class BaseReactNativeDefaultPreferencePackageTurboModuleFactoryDelegate : public TurboModuleFactoryDelegate {
14
+ public:
15
+ SharedTurboModule createTurboModule(Context ctx, const std::string &name) const override {
16
+ if (name == "DefaultPreferenceNativeModule") {
17
+ return std::make_shared<DefaultPreferenceNativeModule>(ctx, name);
18
+ }
19
+ return nullptr;
20
+ };
21
+ };
22
+
23
+ class BaseReactNativeDefaultPreferencePackageEventEmitRequestHandler : public EventEmitRequestHandler {
24
+ public:
25
+ void handleEvent(Context const &ctx) override {
26
+ auto eventEmitter = ctx.shadowViewRegistry->getEventEmitter<facebook::react::EventEmitter>(ctx.tag);
27
+ if (eventEmitter == nullptr) {
28
+ return;
29
+ }
30
+
31
+ std::vector<std::string> supportedEventNames = {
32
+ };
33
+ if (std::find(supportedEventNames.begin(), supportedEventNames.end(), ctx.eventName) != supportedEventNames.end()) {
34
+ eventEmitter->dispatchEvent(ctx.eventName, ArkJS(ctx.env).getDynamic(ctx.payload));
35
+ }
36
+ }
37
+ };
38
+
39
+
40
+ class BaseReactNativeDefaultPreferencePackage : public Package {
41
+ public:
42
+ BaseReactNativeDefaultPreferencePackage(Package::Context ctx) : Package(ctx){};
43
+
44
+ std::unique_ptr<TurboModuleFactoryDelegate> createTurboModuleFactoryDelegate() override {
45
+ return std::make_unique<BaseReactNativeDefaultPreferencePackageTurboModuleFactoryDelegate>();
46
+ }
47
+
48
+ std::vector<facebook::react::ComponentDescriptorProvider> createComponentDescriptorProviders() override {
49
+ return {
50
+ };
51
+ }
52
+
53
+ ComponentJSIBinderByString createComponentJSIBinderByName() override {
54
+ return {
55
+ };
56
+ };
57
+
58
+ EventEmitRequestHandlers createEventEmitRequestHandlers() override {
59
+ return {
60
+ std::make_shared<BaseReactNativeDefaultPreferencePackageEventEmitRequestHandler>(),
61
+ };
62
+ }
63
+ };
64
+
65
+ } // namespace rnoh
@@ -1,25 +1,25 @@
1
- /**
2
- * This code was generated by "react-native codegen-lib-harmony"
3
- */
4
-
5
- #include "DefaultPreferenceNativeModule.h"
6
-
7
- namespace rnoh {
8
- using namespace facebook;
9
-
10
- DefaultPreferenceNativeModule::DefaultPreferenceNativeModule(const ArkTSTurboModule::Context ctx, const std::string name) : ArkTSTurboModule(ctx, name) {
11
- methodMap_ = {
12
- ARK_ASYNC_METHOD_METADATA(get, 1),
13
- ARK_ASYNC_METHOD_METADATA(set, 2),
14
- ARK_ASYNC_METHOD_METADATA(clear, 1),
15
- ARK_ASYNC_METHOD_METADATA(getMultiple, 1),
16
- ARK_ASYNC_METHOD_METADATA(setMultiple, 1),
17
- ARK_ASYNC_METHOD_METADATA(clearMultiple, 1),
18
- ARK_ASYNC_METHOD_METADATA(getAll, 0),
19
- ARK_ASYNC_METHOD_METADATA(clearAll, 0),
20
- ARK_ASYNC_METHOD_METADATA(getName, 0),
21
- ARK_ASYNC_METHOD_METADATA(setName, 1),
22
- };
23
- }
24
-
25
- } // namespace rnoh
1
+ /**
2
+ * This code was generated by "react-native codegen-lib-harmony"
3
+ */
4
+
5
+ #include "DefaultPreferenceNativeModule.h"
6
+
7
+ namespace rnoh {
8
+ using namespace facebook;
9
+
10
+ DefaultPreferenceNativeModule::DefaultPreferenceNativeModule(const ArkTSTurboModule::Context ctx, const std::string name) : ArkTSTurboModule(ctx, name) {
11
+ methodMap_ = {
12
+ ARK_ASYNC_METHOD_METADATA(get, 1),
13
+ ARK_ASYNC_METHOD_METADATA(set, 2),
14
+ ARK_ASYNC_METHOD_METADATA(clear, 1),
15
+ ARK_ASYNC_METHOD_METADATA(getMultiple, 1),
16
+ ARK_ASYNC_METHOD_METADATA(setMultiple, 1),
17
+ ARK_ASYNC_METHOD_METADATA(clearMultiple, 1),
18
+ ARK_ASYNC_METHOD_METADATA(getAll, 0),
19
+ ARK_ASYNC_METHOD_METADATA(clearAll, 0),
20
+ ARK_ASYNC_METHOD_METADATA(getName, 0),
21
+ ARK_ASYNC_METHOD_METADATA(setName, 1),
22
+ };
23
+ }
24
+
25
+ } // namespace rnoh
@@ -1,16 +1,16 @@
1
- /**
2
- * This code was generated by "react-native codegen-lib-harmony"
3
- */
4
-
5
- #pragma once
6
-
7
- #include "RNOH/ArkTSTurboModule.h"
8
-
9
- namespace rnoh {
10
-
11
- class JSI_EXPORT DefaultPreferenceNativeModule : public ArkTSTurboModule {
12
- public:
13
- DefaultPreferenceNativeModule(const ArkTSTurboModule::Context ctx, const std::string name);
14
- };
15
-
16
- } // namespace rnoh
1
+ /**
2
+ * This code was generated by "react-native codegen-lib-harmony"
3
+ */
4
+
5
+ #pragma once
6
+
7
+ #include "RNOH/ArkTSTurboModule.h"
8
+
9
+ namespace rnoh {
10
+
11
+ class JSI_EXPORT DefaultPreferenceNativeModule : public ArkTSTurboModule {
12
+ public:
13
+ DefaultPreferenceNativeModule(const ArkTSTurboModule::Context ctx, const std::string name);
14
+ };
15
+
16
+ } // namespace rnoh
@@ -1,46 +1,46 @@
1
- /*
2
- * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
- * Use of this source code is governed by a MIT license that can be
4
- * found in the LICENSE file.
5
- */
6
-
7
- import hilog from '@ohos.hilog';
8
-
9
- class Logger {
10
- private domain: number;
11
- private prefix: string;
12
- private format: string = '%{public}s, %{public}s';
13
- private isDebug: boolean;
14
-
15
- /**
16
- * constructor.
17
- *
18
- * @param Prefix Identifies the log tag.
19
- * @param domain Domain Indicates the service domain, which is a hexadecimal integer ranging from 0x0 to 0xFFFFF.
20
- */
21
- constructor(prefix: string = 'blobUtil', domain: number = 0xFF00, isDebug = false) {
22
- this.prefix = prefix;
23
- this.domain = domain;
24
- this.isDebug = isDebug;
25
- }
26
-
27
- debug(...args: string[]): void {
28
- if (this.isDebug) {
29
- hilog.debug(this.domain, this.prefix, this.format, args);
30
- }
31
- }
32
-
33
- info(...args: string[]): void {
34
- hilog.info(this.domain, this.prefix, this.format, args);
35
- }
36
-
37
- warn(...args: string[]): void {
38
- hilog.warn(this.domain, this.prefix, this.format, args);
39
- }
40
-
41
- error(...args: string[]): void {
42
- hilog.error(this.domain, this.prefix, this.format, args);
43
- }
44
- }
45
-
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ import hilog from '@ohos.hilog';
8
+
9
+ class Logger {
10
+ private domain: number;
11
+ private prefix: string;
12
+ private format: string = '%{public}s, %{public}s';
13
+ private isDebug: boolean;
14
+
15
+ /**
16
+ * constructor.
17
+ *
18
+ * @param Prefix Identifies the log tag.
19
+ * @param domain Domain Indicates the service domain, which is a hexadecimal integer ranging from 0x0 to 0xFFFFF.
20
+ */
21
+ constructor(prefix: string = 'blobUtil', domain: number = 0xFF00, isDebug = false) {
22
+ this.prefix = prefix;
23
+ this.domain = domain;
24
+ this.isDebug = isDebug;
25
+ }
26
+
27
+ debug(...args: string[]): void {
28
+ if (this.isDebug) {
29
+ hilog.debug(this.domain, this.prefix, this.format, args);
30
+ }
31
+ }
32
+
33
+ info(...args: string[]): void {
34
+ hilog.info(this.domain, this.prefix, this.format, args);
35
+ }
36
+
37
+ warn(...args: string[]): void {
38
+ hilog.warn(this.domain, this.prefix, this.format, args);
39
+ }
40
+
41
+ error(...args: string[]): void {
42
+ hilog.error(this.domain, this.prefix, this.format, args);
43
+ }
44
+ }
45
+
46
46
  export default new Logger('RNSensitiveInfo', 0xFF00, false)
@@ -1,28 +1,29 @@
1
- /*
2
- * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
- * Use of this source code is governed by a MIT license that can be
4
- * found in the LICENSE file.
5
- */
6
-
7
- import { RNPackage, TurboModulesFactory } from '@rnoh/react-native-openharmony/ts';
8
- import type { TurboModule, TurboModuleContext } from '@rnoh/react-native-openharmony/ts';
9
- import { TM } from './generated/ts'
10
- import { RNDefaultPreferenceTurboModule } from './RNDefaultPreferenceTurboModule';
11
-
12
- class RNDefaultPreferenceTurboModuleFactory extends TurboModulesFactory {
13
- createTurboModule(name: string): TurboModule | null {
14
- if (this.hasTurboModule(name)) {
15
- return new RNDefaultPreferenceTurboModule(this.ctx);
16
- }
17
- return null;
18
- }
19
- hasTurboModule(name: string): boolean {
20
- return name === TM.DefaultPreferenceNativeModule.NAME;
21
- }
22
- }
23
-
24
- export class RNDefaultPreferencePackage extends RNPackage {
25
- createTurboModulesFactory(ctx: TurboModuleContext): TurboModulesFactory {
26
- return new RNDefaultPreferenceTurboModuleFactory(ctx);
27
- }
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ import { RNPackage, TurboModulesFactory } from '@rnoh/react-native-openharmony/ts';
8
+ import type { TurboModule, TurboModuleContext } from '@rnoh/react-native-openharmony/ts';
9
+ import {RNOHPackage} from "@rnoh/react-native-openharmony";
10
+ import { TM } from './generated/ts'
11
+ import { RNDefaultPreferenceTurboModule } from './RNDefaultPreferenceTurboModule';
12
+
13
+ class RNDefaultPreferenceTurboModuleFactory extends TurboModulesFactory {
14
+ createTurboModule(name: string): TurboModule | null {
15
+ if (this.hasTurboModule(name)) {
16
+ return new RNDefaultPreferenceTurboModule(this.ctx);
17
+ }
18
+ return null;
19
+ }
20
+ hasTurboModule(name: string): boolean {
21
+ return name === TM.DefaultPreferenceNativeModule.NAME;
22
+ }
23
+ }
24
+
25
+ export class RNDefaultPreferencePackage extends RNOHPackage {
26
+ createTurboModulesFactory(ctx: TurboModuleContext): TurboModulesFactory {
27
+ return new RNDefaultPreferenceTurboModuleFactory(ctx);
28
+ }
28
29
  }
@@ -1,144 +1,144 @@
1
- /*
2
- * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
- * Use of this source code is governed by a MIT license that can be
4
- * found in the LICENSE file.
5
- */
6
-
7
- import dataPreferences from '@ohos.data.preferences';
8
- import { BusinessError } from '@ohos.base';
9
- import { TurboModule } from '@rnoh/react-native-openharmony/ts';
10
- import { TM } from './generated/ts';
11
- import Logger from './Logger'
12
-
13
-
14
- let preferences: dataPreferences.Preferences | null = null;
15
- const DEFAULT = 'default'
16
- let options = { name:'defultName' }
17
-
18
-
19
- export class RNDefaultPreferenceTurboModule extends TurboModule implements TM.DefaultPreferenceNativeModule.Spec {
20
- constructor(ctx) {
21
- super(ctx);
22
- }
23
-
24
- get(key: string): Promise<string | null> {
25
- return new Promise((res) => {
26
- let preferencesName: dataPreferences.Options = { name: options.name };
27
- preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
28
- preferences.get(key, DEFAULT, async(err: BusinessError, val: string) => {
29
- if (err) {
30
- Logger.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
31
- return;
32
- }
33
- res(val)
34
- })
35
- })
36
- }
37
-
38
- set(key: string, value: string): Promise<void> {
39
- return new Promise(() => {
40
- let preferencesName: dataPreferences.Options = { name: options.name };
41
- preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
42
- preferences.put(key, value, (err: BusinessError) => {
43
- if (err) {
44
- Logger.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
45
- return;
46
- }
47
- Logger.info("Succeeded in putting value of 'startup'.");
48
- })
49
- preferences.flush((err: BusinessError) => {
50
- if (err) {
51
- Logger.error("Failed to flush. code =" + err.code + ", message =" + err.message);
52
- return;
53
- }
54
- Logger.info("Succeeded in flushing.");
55
- })
56
- })
57
- }
58
-
59
- clear(key: string): Promise<void> {
60
- return new Promise(() => {
61
- preferences.delete(key, (err: BusinessError) => {
62
- if (err) {
63
- console.error("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
64
- return;
65
- }
66
- console.info("Succeeded in deleting the key 'startup'.");
67
- })
68
- })
69
- }
70
-
71
- getMultiple(keys: string[]): Promise<string[]> {
72
- return new Promise(async (res) => {
73
- let resArry=[]
74
- for (const element of keys) {
75
- let getItem = await this.get(element)
76
- resArry.push(getItem)
77
- }
78
- res(resArry)
79
- })
80
- }
81
-
82
- setMultiple(data: {}): Promise<void> {
83
- return new Promise(async () => {
84
- for (const key in data) {
85
- this.set(key,data[key])
86
- }
87
- })
88
- }
89
-
90
- clearMultiple(keys: string[]): Promise<void> {
91
- return new Promise(async () => {
92
- for (const key of keys) {
93
- this.clear(key)
94
- }
95
- })
96
- }
97
-
98
- getAll(): Promise<{}> {
99
- return new Promise((res) => {
100
- let preferencesName: dataPreferences.Options = { name: options.name };
101
- preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
102
- preferences.getAll(async (err: BusinessError, value: Object) => {
103
- if (err) {
104
- Logger.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
105
- return;
106
- }
107
- let allKeys = this.getObjKeys(value);
108
- res(allKeys)
109
- })
110
- })
111
- }
112
-
113
- clearAll(): Promise<void> {
114
- return new Promise(()=>{
115
- let preferencesName: dataPreferences.Options = { name: options.name };
116
- preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
117
- preferences.clear((err: BusinessError) =>{
118
- if (err) {
119
- console.error("Failed to clear. code =" + err.code + ", message =" + err.message);
120
- return;
121
- }
122
- console.info("Succeeded in clearing.");
123
- })
124
- })
125
- }
126
-
127
- getName(): Promise<string> {
128
- return new Promise((res)=>{
129
- res(options.name)
130
- })
131
- }
132
-
133
- setName(name: string): Promise<void> {
134
- return new Promise(()=>{
135
- options.name = name
136
- })
137
- }
138
-
139
- getObjKeys(obj: Object): string[] {
140
- let keys = Object.keys(obj);
141
- return keys;
142
- }
143
-
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ import dataPreferences from '@ohos.data.preferences';
8
+ import { BusinessError } from '@ohos.base';
9
+ import { TurboModule } from '@rnoh/react-native-openharmony/ts';
10
+ import { TM } from './generated/ts';
11
+ import Logger from './Logger'
12
+
13
+
14
+ let preferences: dataPreferences.Preferences | null = null;
15
+ const DEFAULT = 'default'
16
+ let options = { name:'defultName' }
17
+
18
+
19
+ export class RNDefaultPreferenceTurboModule extends TurboModule implements TM.DefaultPreferenceNativeModule.Spec {
20
+ constructor(ctx) {
21
+ super(ctx);
22
+ }
23
+
24
+ get(key: string): Promise<string | null> {
25
+ return new Promise((res) => {
26
+ let preferencesName: dataPreferences.Options = { name: options.name };
27
+ preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
28
+ preferences.get(key, DEFAULT, async(err: BusinessError, val: string) => {
29
+ if (err) {
30
+ Logger.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
31
+ return;
32
+ }
33
+ res(val)
34
+ })
35
+ })
36
+ }
37
+
38
+ set(key: string, value: string): Promise<void> {
39
+ return new Promise(() => {
40
+ let preferencesName: dataPreferences.Options = { name: options.name };
41
+ preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
42
+ preferences.put(key, value, (err: BusinessError) => {
43
+ if (err) {
44
+ Logger.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
45
+ return;
46
+ }
47
+ Logger.info("Succeeded in putting value of 'startup'.");
48
+ })
49
+ preferences.flush((err: BusinessError) => {
50
+ if (err) {
51
+ Logger.error("Failed to flush. code =" + err.code + ", message =" + err.message);
52
+ return;
53
+ }
54
+ Logger.info("Succeeded in flushing.");
55
+ })
56
+ })
57
+ }
58
+
59
+ clear(key: string): Promise<void> {
60
+ return new Promise(() => {
61
+ preferences.delete(key, (err: BusinessError) => {
62
+ if (err) {
63
+ console.error("Failed to delete the key 'startup'. code =" + err.code + ", message =" + err.message);
64
+ return;
65
+ }
66
+ console.info("Succeeded in deleting the key 'startup'.");
67
+ })
68
+ })
69
+ }
70
+
71
+ getMultiple(keys: string[]): Promise<string[]> {
72
+ return new Promise(async (res) => {
73
+ let resArry=[]
74
+ for (const element of keys) {
75
+ let getItem = await this.get(element)
76
+ resArry.push(getItem)
77
+ }
78
+ res(resArry)
79
+ })
80
+ }
81
+
82
+ setMultiple(data: {}): Promise<void> {
83
+ return new Promise(async () => {
84
+ for (const key in data) {
85
+ this.set(key,data[key])
86
+ }
87
+ })
88
+ }
89
+
90
+ clearMultiple(keys: string[]): Promise<void> {
91
+ return new Promise(async () => {
92
+ for (const key of keys) {
93
+ this.clear(key)
94
+ }
95
+ })
96
+ }
97
+
98
+ getAll(): Promise<{}> {
99
+ return new Promise((res) => {
100
+ let preferencesName: dataPreferences.Options = { name: options.name };
101
+ preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
102
+ preferences.getAll(async (err: BusinessError, value: Object) => {
103
+ if (err) {
104
+ Logger.error("Failed to get all key-values. code =" + err.code + ", message =" + err.message);
105
+ return;
106
+ }
107
+ let allKeys = this.getObjKeys(value);
108
+ res(allKeys)
109
+ })
110
+ })
111
+ }
112
+
113
+ clearAll(): Promise<void> {
114
+ return new Promise(()=>{
115
+ let preferencesName: dataPreferences.Options = { name: options.name };
116
+ preferences = dataPreferences.getPreferencesSync(this.ctx.uiAbilityContext, preferencesName);
117
+ preferences.clear((err: BusinessError) =>{
118
+ if (err) {
119
+ console.error("Failed to clear. code =" + err.code + ", message =" + err.message);
120
+ return;
121
+ }
122
+ console.info("Succeeded in clearing.");
123
+ })
124
+ })
125
+ }
126
+
127
+ getName(): Promise<string> {
128
+ return new Promise((res)=>{
129
+ res(options.name)
130
+ })
131
+ }
132
+
133
+ setName(name: string): Promise<void> {
134
+ return new Promise(()=>{
135
+ options.name = name
136
+ })
137
+ }
138
+
139
+ getObjKeys(obj: Object): string[] {
140
+ let keys = Object.keys(obj);
141
+ return keys;
142
+ }
143
+
144
144
  }