199da06d0Sopenharmony_ci/** 299da06d0Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 399da06d0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 499da06d0Sopenharmony_ci * you may not use this file except in compliance with the License. 599da06d0Sopenharmony_ci * You may obtain a copy of the License at 699da06d0Sopenharmony_ci * 799da06d0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 899da06d0Sopenharmony_ci * 999da06d0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1099da06d0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1199da06d0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1299da06d0Sopenharmony_ci * See the License for the specific language governing permissions and 1399da06d0Sopenharmony_ci * limitations under the License. 1499da06d0Sopenharmony_ci */ 1599da06d0Sopenharmony_ci/** 1699da06d0Sopenharmony_ci * Message/AirplaneMode utils 1799da06d0Sopenharmony_ci */ 1899da06d0Sopenharmony_ciconst SETTING_AIRPLANE_MODE_URI = 'datashare:///com.ohos.settingsdata/entry/settingsdata/SETTINGSDATA?Proxy=true'; 1999da06d0Sopenharmony_ciconst QUERY_AIRPLANE_MODE_KEY = 'airplane_mode'; 2099da06d0Sopenharmony_ciconst TAG = 'AirplaneMode'; 2199da06d0Sopenharmony_ci 2299da06d0Sopenharmony_ciimport dataShare from '@ohos.data.dataShare'; 2399da06d0Sopenharmony_ciimport dataSharePredicates from '@ohos.data.dataSharePredicates'; 2499da06d0Sopenharmony_ciimport LogUtils from './LogUtils'; 2599da06d0Sopenharmony_ci 2699da06d0Sopenharmony_cilet dataShareHelper; 2799da06d0Sopenharmony_ci 2899da06d0Sopenharmony_ci/** 2999da06d0Sopenharmony_ci * add AirPlaneMode Listener. 3099da06d0Sopenharmony_ci */ 3199da06d0Sopenharmony_ciexport function addAirPlaneModeListener(callback) { 3299da06d0Sopenharmony_ci LogUtils.i(TAG, 'addAirPlaneModeListener'); 3399da06d0Sopenharmony_ci try { 3499da06d0Sopenharmony_ci dataShare.createDataShareHelper(globalThis.calluiAbilityContext, SETTING_AIRPLANE_MODE_URI, (err, data) => { 3599da06d0Sopenharmony_ci if (err != undefined) { 3699da06d0Sopenharmony_ci LogUtils.e(TAG, 'addAirPlaneModeListener error: code: ' + err.code + ', message: ' + err.message); 3799da06d0Sopenharmony_ci return; 3899da06d0Sopenharmony_ci } 3999da06d0Sopenharmony_ci dataShareHelper = data; 4099da06d0Sopenharmony_ci try { 4199da06d0Sopenharmony_ci dataShareHelper.on('dataChange', SETTING_AIRPLANE_MODE_URI, () => { 4299da06d0Sopenharmony_ci LogUtils.i(TAG, 'addAirPlaneModeListener dataChange'); 4399da06d0Sopenharmony_ci queryAirPlaneMode(callback); 4499da06d0Sopenharmony_ci }); 4599da06d0Sopenharmony_ci queryAirPlaneMode(callback); 4699da06d0Sopenharmony_ci LogUtils.i(TAG, 'addAirPlaneModeListener success'); 4799da06d0Sopenharmony_ci } catch (err) { 4899da06d0Sopenharmony_ci LogUtils.e(TAG, 'addAirPlaneModeListener error: code: ' + err.code + ', message: ' + err.message); 4999da06d0Sopenharmony_ci } 5099da06d0Sopenharmony_ci }); 5199da06d0Sopenharmony_ci } catch (err) { 5299da06d0Sopenharmony_ci LogUtils.e(TAG, 'addAirPlaneModeListener error: code: ' + err.code + ', message: ' + err.message); 5399da06d0Sopenharmony_ci } 5499da06d0Sopenharmony_ci} 5599da06d0Sopenharmony_ci 5699da06d0Sopenharmony_ci/** 5799da06d0Sopenharmony_ci * remove AirPlaneMode Listener. 5899da06d0Sopenharmony_ci */ 5999da06d0Sopenharmony_ciexport function removeAirPlaneModeListener() { 6099da06d0Sopenharmony_ci LogUtils.i(TAG, 'removeAirPlaneModeListener'); 6199da06d0Sopenharmony_ci if (!dataShareHelper) { 6299da06d0Sopenharmony_ci LogUtils.e(TAG, 'removeAirPlaneModeListener dataShareHelper null'); 6399da06d0Sopenharmony_ci return; 6499da06d0Sopenharmony_ci } 6599da06d0Sopenharmony_ci try { 6699da06d0Sopenharmony_ci dataShareHelper.off('dataChange', SETTING_AIRPLANE_MODE_URI, () => { 6799da06d0Sopenharmony_ci LogUtils.i(TAG, 'removeAirPlaneModeListener dataChange'); 6899da06d0Sopenharmony_ci }); 6999da06d0Sopenharmony_ci } catch (err) { 7099da06d0Sopenharmony_ci LogUtils.e(TAG, 'removeAirPlaneModeListener error: code: ' + err.code + ', message: ' + err.message); 7199da06d0Sopenharmony_ci } 7299da06d0Sopenharmony_ci} 7399da06d0Sopenharmony_ci 7499da06d0Sopenharmony_ci/** 7599da06d0Sopenharmony_ci * turnOn AirPlaneMode. 7699da06d0Sopenharmony_ci */ 7799da06d0Sopenharmony_ciexport function turnOnAirPlaneMode() { 7899da06d0Sopenharmony_ci LogUtils.i(TAG, 'turnOnAirPlaneMode'); 7999da06d0Sopenharmony_ci if (!dataShareHelper) { 8099da06d0Sopenharmony_ci LogUtils.e(TAG, 'turnOnAirPlaneMode dataShareHelper null'); 8199da06d0Sopenharmony_ci return; 8299da06d0Sopenharmony_ci } 8399da06d0Sopenharmony_ci let valueBucket = { 8499da06d0Sopenharmony_ci 'KEYWORD': QUERY_AIRPLANE_MODE_KEY, 8599da06d0Sopenharmony_ci 'VALUE': true 8699da06d0Sopenharmony_ci }; 8799da06d0Sopenharmony_ci try { 8899da06d0Sopenharmony_ci let da = new dataSharePredicates.DataSharePredicates(); 8999da06d0Sopenharmony_ci dataShareHelper.update(SETTING_AIRPLANE_MODE_URI, da, valueBucket, (err, data) => { 9099da06d0Sopenharmony_ci if (err != undefined) { 9199da06d0Sopenharmony_ci LogUtils.e(TAG, 'turnOnAirPlaneMode update error: err: ' + err); 9299da06d0Sopenharmony_ci return; 9399da06d0Sopenharmony_ci } 9499da06d0Sopenharmony_ci LogUtils.i(TAG, 'turnOnAirPlaneMode update succeed'); 9599da06d0Sopenharmony_ci }); 9699da06d0Sopenharmony_ci } catch (err) { 9799da06d0Sopenharmony_ci LogUtils.e(TAG, 'turnOnAirPlaneMode error: code: ' + err.code + ', message: ' + err.message); 9899da06d0Sopenharmony_ci } 9999da06d0Sopenharmony_ci} 10099da06d0Sopenharmony_ci 10199da06d0Sopenharmony_ci/** 10299da06d0Sopenharmony_ci * turnOff AirPlaneMode. 10399da06d0Sopenharmony_ci */ 10499da06d0Sopenharmony_ciexport function turnOffAirPlaneMode() { 10599da06d0Sopenharmony_ci LogUtils.i(TAG, 'turnOffAirPlaneMode'); 10699da06d0Sopenharmony_ci if (!dataShareHelper) { 10799da06d0Sopenharmony_ci LogUtils.e(TAG, 'turnOffAirPlaneMode dataShareHelper null'); 10899da06d0Sopenharmony_ci return; 10999da06d0Sopenharmony_ci } 11099da06d0Sopenharmony_ci let valueBucket = { 11199da06d0Sopenharmony_ci 'KEYWORD': QUERY_AIRPLANE_MODE_KEY, 11299da06d0Sopenharmony_ci 'VALUE': false 11399da06d0Sopenharmony_ci }; 11499da06d0Sopenharmony_ci try { 11599da06d0Sopenharmony_ci let da = new dataSharePredicates.DataSharePredicates(); 11699da06d0Sopenharmony_ci dataShareHelper.update(SETTING_AIRPLANE_MODE_URI, da, valueBucket, (err, data) => { 11799da06d0Sopenharmony_ci if (err != undefined) { 11899da06d0Sopenharmony_ci LogUtils.e(TAG, 'turnOffAirPlaneMode update error: code: ' + err.code + ', message:' + err.message); 11999da06d0Sopenharmony_ci return; 12099da06d0Sopenharmony_ci } 12199da06d0Sopenharmony_ci LogUtils.i(TAG, 'turnOffAirPlaneMode update succeed'); 12299da06d0Sopenharmony_ci }); 12399da06d0Sopenharmony_ci } catch (err) { 12499da06d0Sopenharmony_ci LogUtils.e(TAG, 'turnOffAirPlaneMode error: code: ' + err.code + ', message: ' + err.message); 12599da06d0Sopenharmony_ci } 12699da06d0Sopenharmony_ci} 12799da06d0Sopenharmony_ci 12899da06d0Sopenharmony_ci/** 12999da06d0Sopenharmony_ci * query AirPlaneMode. 13099da06d0Sopenharmony_ci */ 13199da06d0Sopenharmony_ciexport function queryAirPlaneMode(callback) { 13299da06d0Sopenharmony_ci LogUtils.i(TAG, 'queryAirPlaneMode'); 13399da06d0Sopenharmony_ci if (!dataShareHelper) { 13499da06d0Sopenharmony_ci LogUtils.e(TAG, 'queryAirPlaneMode dataShareHelper null'); 13599da06d0Sopenharmony_ci return; 13699da06d0Sopenharmony_ci } 13799da06d0Sopenharmony_ci let condition = new dataSharePredicates.DataSharePredicates(); 13899da06d0Sopenharmony_ci condition.equalTo('KEYWORD', 'airplane_mode'); 13999da06d0Sopenharmony_ci try { 14099da06d0Sopenharmony_ci // ID, KEYWORD, VALUE 14199da06d0Sopenharmony_ci dataShareHelper.query(SETTING_AIRPLANE_MODE_URI, condition, null).then((data) => { 14299da06d0Sopenharmony_ci LogUtils.i(TAG, 'queryAirPlaneMode query succeed'); 14399da06d0Sopenharmony_ci if (data && data.goToFirstRow()) { 14499da06d0Sopenharmony_ci LogUtils.i(TAG, 'queryAirPlaneMode query succeed return key'); 14599da06d0Sopenharmony_ci callback(data.getLong(data.getColumnIndex('VALUE'))); 14699da06d0Sopenharmony_ci return; 14799da06d0Sopenharmony_ci } 14899da06d0Sopenharmony_ci callback(-1); 14999da06d0Sopenharmony_ci }).catch((err) => { 15099da06d0Sopenharmony_ci LogUtils.e(TAG, 'queryAirPlaneMode query in error: err: ' + JSON.stringify(err)); 15199da06d0Sopenharmony_ci }); 15299da06d0Sopenharmony_ci } catch (err) { 15399da06d0Sopenharmony_ci LogUtils.e(TAG, 'queryAirPlaneMode query out error: code: ' + err.code + ', message: ' + err.message); 15499da06d0Sopenharmony_ci } 15599da06d0Sopenharmony_ci}