From 85ea3995115f2a7151123600030b5a895061008d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E8=A5=BF?= Date: Mon, 5 Aug 2024 15:35:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D&=E4=BC=98=E5=8C=96=201.=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=20sp=20=E4=B8=AD=E7=9A=84=20key=20=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=9C=AA=E6=89=A7=E8=A1=8C=20flush=202.=20put=20?= =?UTF-8?q?=E6=96=B0=E5=80=BC=E6=97=B6=EF=BC=8C=E6=9C=AA=E7=AD=89=E5=BE=85?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C=203.=20c?= =?UTF-8?q?lear=20=E6=96=B9=E6=B3=95=E4=B8=AD=E6=9C=AA=20await=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E7=BB=93=E6=9E=9C=EF=BC=8C=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC=E5=A7=8B=E7=BB=88=E4=B8=BA=20reject=204.=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20getAll=20=E7=9A=84=E5=86=99=E6=B3=95=20signed-off-b?= =?UTF-8?q?y:=20zhangchuanbei=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SharedPreferencesOhosPlugin.ets | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/packages/shared_preferences/shared_preferences_ohos/ohos/src/main/ets/shared_preferences/SharedPreferencesOhosPlugin.ets b/packages/shared_preferences/shared_preferences_ohos/ohos/src/main/ets/shared_preferences/SharedPreferencesOhosPlugin.ets index 8f53019ca..d31afd652 100644 --- a/packages/shared_preferences/shared_preferences_ohos/ohos/src/main/ets/shared_preferences/SharedPreferencesOhosPlugin.ets +++ b/packages/shared_preferences/shared_preferences_ohos/ohos/src/main/ets/shared_preferences/SharedPreferencesOhosPlugin.ets @@ -24,7 +24,7 @@ import data_preferences from '@ohos.data.preferences' import BasicMessageChannel, { Reply } from '@ohos/flutter_ohos/src/main/ets/plugin/common/BasicMessageChannel'; import { BinaryMessenger } from '@ohos/flutter_ohos/src/main/ets/plugin/common/BinaryMessenger'; import { SharedPreferencesListEncoder } from './SharedPreferencesListEncoder'; -import buffer from '@ohos.buffer'; +import buffer from '@ohos.buffer'; const TAG = "SharedPreferencesOhosPlugin" const PREFERENCES_NAME = "FlutterSharedPreferences"; @@ -85,7 +85,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share Log.w(TAG, "getAll res=" + JSON.stringify(res)); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to getAll. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to getAll. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -111,7 +111,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share wrapped.push(true); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to clear. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to clear. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -136,7 +136,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share wrapped.push(true); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to setInt. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to setInt. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -161,7 +161,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share wrapped.push(true); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to setString. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to setString. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -186,7 +186,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share wrapped.push(true); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to setDouble. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to setDouble. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -211,7 +211,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share wrapped.push(true); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to setBool. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to setBool. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -236,7 +236,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share wrapped.push(true); reply.reply(wrapped) }).catch((err: ESObject) => { - Log.w(TAG, "Failed to setStringList. code =" + err.code +", message =" + err.message); + Log.w(TAG, "Failed to setStringList. code =" + err.code + ", message =" + err.message); let errs = wrapError(err); wrapped = errs; reply.reply(wrapped) @@ -257,6 +257,7 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share return false; } Log.i(TAG, "Succeeded in deleting."); + await this.preferences?.flush() return true; }) } catch (err) { @@ -274,23 +275,23 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share } setInt(key: string, value: number): Promise { - if(typeof value == "bigint") { + if (typeof value == "bigint") { return this.put(key, Number(value)); } return this.put(key, value); } - put(key: string, value: ESObject): Promise { + async put(key: string, value: ESObject): Promise { try { if (this.preferences == null) { return new Promise((reject) => { reject(); }); } else { - this.preferences.put(key, value); + await this.preferences.put(key, value); return this.preferences.flush(); } - } catch(err) { + } catch (err) { Log.w(TAG, "Failed to put value of 'startup'. " + JSON.stringify(err)); return new Promise((reject) => { reject(); @@ -309,24 +310,25 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share } clear(prefix: string, allowList: string[]): Promise { - try { - this.preferences?.getAll().then((value: object) => { - let allKeys = Object.keys(value); - for (let key of allKeys) { - if (key.startsWith(prefix) && (allowList == null || allowList.indexOf(key) != -1)) { - this.preferences?.delete(key); - } + if (this.preferences == null) { + return new Promise((reject) => { + reject(); + }) + } + return this.preferences?.getAll().then(async (value: object) => { + let allKeys = Object.keys(value); + for (let key of allKeys) { + if (key.startsWith(prefix) && (allowList == null || allowList.indexOf(key) != -1)) { + await this.preferences?.delete(key); } - return this.preferences?.flush(); - }).catch((err: ESObject) => { - Log.w(TAG, "Failed to clear." + JSON.stringify(err)); - }); - } catch (err) { + } + return this.preferences?.flush(); + }).catch((err: ESObject) => { Log.w(TAG, "Failed to clear." + JSON.stringify(err)); - } - return new Promise((reject) => { - reject(); - }) + return new Promise((reject) => { + reject(); + }) + }); } filterData(value: [string, Object], prefix: string, allowList: string[]): Map { @@ -346,17 +348,14 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share async getAll(prefix: string, allowList: Array): Promise { try { - let res = new Map(); if (this.preferences == null) { return new Promise((reject) => { reject("Failed to getAll"); }) } - await this.preferences.getAll().then((obj: Object) => { - res = this.filterData(obj as [string, ESObject], prefix, allowList); - }) - return new Promise((resolve) => { - resolve(res); + + return this.preferences.getAll().then((obj: Object) => { + return this.filterData(obj as [string, ESObject], prefix, allowList); }) } catch (err) { Log.w(TAG, "Failed to excute getAll." + JSON.stringify(err)); @@ -379,8 +378,8 @@ export default class SharedPreferencesOhosPlugin implements FlutterPlugin, Share }).catch((err: ESObject) => { Log.w(TAG, "Failed to get preferences. code =" + err.code + ", message =" + err.message); }) - } catch(err) { - Log.w(TAG, "Failed to get preferences."+ JSON.stringify(err)); + } catch (err) { + Log.w(TAG, "Failed to get preferences." + JSON.stringify(err)); } this.setup(binding.getBinaryMessenger(), this); } @@ -420,9 +419,9 @@ class ListEncoder implements SharedPreferencesListEncoder { encode(list: string[]): string { try { let jsonList = JSON.stringify(list) - return buffer.from(jsonList).toString('base64');; + return buffer.from(jsonList).toString('base64'); } catch (err) { - Log.e(TAG, "Failed encode." + JSON.stringify(err)); + Log.e(TAG, "Failed encode." + JSON.stringify(err)); } return '' } -- Gitee