1048147e0Sopenharmony_ci/** 2048147e0Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3048147e0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4048147e0Sopenharmony_ci * you may not use this file except in compliance with the License. 5048147e0Sopenharmony_ci * You may obtain a copy of the License at 6048147e0Sopenharmony_ci * 7048147e0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8048147e0Sopenharmony_ci * 9048147e0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10048147e0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11048147e0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12048147e0Sopenharmony_ci * See the License for the specific language governing permissions and 13048147e0Sopenharmony_ci * limitations under the License. 14048147e0Sopenharmony_ci */ 15048147e0Sopenharmony_ciimport LooseObject from '../../data/LooseObject' 16048147e0Sopenharmony_ciimport MmsBoolean from '../../data/MmsBoolean' 17048147e0Sopenharmony_ciimport HiLog from '../../utils/HiLog'; 18048147e0Sopenharmony_ciimport router from '@system.router'; 19048147e0Sopenharmony_ci// JS Common constants 20048147e0Sopenharmony_ciimport common from '../../data/commonData'; 21048147e0Sopenharmony_ciimport settingService from '../../service/SettingService' 22048147e0Sopenharmony_ci 23048147e0Sopenharmony_ciconst TAG = 'SettingsController'; 24048147e0Sopenharmony_ci 25048147e0Sopenharmony_ciexport default class SettingsController { 26048147e0Sopenharmony_ci private static sInstance: SettingsController; 27048147e0Sopenharmony_ci // Notification information integration 28048147e0Sopenharmony_ci integrationSwitch: MmsBoolean = new MmsBoolean(true); 29048147e0Sopenharmony_ci // Malicious website selection 30048147e0Sopenharmony_ci maliciousWebSwitch: boolean = false; 31048147e0Sopenharmony_ci // Verification code security protection 32048147e0Sopenharmony_ci verificationCodeSwitch: boolean = false; 33048147e0Sopenharmony_ci // Display contact avatar 34048147e0Sopenharmony_ci showContactSwitch: boolean = true 35048147e0Sopenharmony_ci 36048147e0Sopenharmony_ci static getInstance() { 37048147e0Sopenharmony_ci if (SettingsController.sInstance == null) { 38048147e0Sopenharmony_ci SettingsController.sInstance = new SettingsController(); 39048147e0Sopenharmony_ci } 40048147e0Sopenharmony_ci return SettingsController.sInstance; 41048147e0Sopenharmony_ci } 42048147e0Sopenharmony_ci 43048147e0Sopenharmony_ci constructor() { 44048147e0Sopenharmony_ci HiLog.i(TAG, 'constructor, start'); 45048147e0Sopenharmony_ci this.getSettingPageSwitchValue(); 46048147e0Sopenharmony_ci } 47048147e0Sopenharmony_ci 48048147e0Sopenharmony_ci onInit() { 49048147e0Sopenharmony_ci HiLog.i(TAG, 'onInit, start'); 50048147e0Sopenharmony_ci }; 51048147e0Sopenharmony_ci 52048147e0Sopenharmony_ci onShow() { 53048147e0Sopenharmony_ci HiLog.i(TAG, 'onShow, start'); 54048147e0Sopenharmony_ci }; 55048147e0Sopenharmony_ci 56048147e0Sopenharmony_ci // Indicates whether to initialize the setting page. 57048147e0Sopenharmony_ci getSettingPageSwitchValue() { 58048147e0Sopenharmony_ci HiLog.i(TAG, 'getSettingPageSwitchValue, start'); 59048147e0Sopenharmony_ci let that = this; 60048147e0Sopenharmony_ci settingService.setOnSettingValueListener(function (result) { 61048147e0Sopenharmony_ci that.integrationSwitch.value = result.integrationSwitch; 62048147e0Sopenharmony_ci that.maliciousWebSwitch = result.maliciousWebSwitch; 63048147e0Sopenharmony_ci that.showContactSwitch = result.showContactSwitch; 64048147e0Sopenharmony_ci }); 65048147e0Sopenharmony_ci }; 66048147e0Sopenharmony_ci 67048147e0Sopenharmony_ci // Notification information integration 68048147e0Sopenharmony_ci integration(isOn: boolean) { 69048147e0Sopenharmony_ci let messageCode = common.route.MESSAGE_CODE_UPDATE_ARCHIVE_INFO_MESSAGES_VALUE; 70048147e0Sopenharmony_ci if (this.integrationSwitch.value != isOn) { 71048147e0Sopenharmony_ci globalThis.needToUpdate = true; 72048147e0Sopenharmony_ci } 73048147e0Sopenharmony_ci let actionData: LooseObject = {}; 74048147e0Sopenharmony_ci this.integrationSwitch.value = isOn; 75048147e0Sopenharmony_ci if (this.integrationSwitch.value) { 76048147e0Sopenharmony_ci actionData.booleanValue = common.bool.TRUE; 77048147e0Sopenharmony_ci } else { 78048147e0Sopenharmony_ci actionData.booleanValue = common.bool.FALSE; 79048147e0Sopenharmony_ci } 80048147e0Sopenharmony_ci this.updateSettingPageSwitchValue(messageCode, actionData); 81048147e0Sopenharmony_ci }; 82048147e0Sopenharmony_ci 83048147e0Sopenharmony_ci // Malicious website selection 84048147e0Sopenharmony_ci maliciousWeb(e) { 85048147e0Sopenharmony_ci HiLog.i(TAG, 'maliciousWeb, checked = ' + e.checked); 86048147e0Sopenharmony_ci let messageCode = common.route.MESSAGE_CODE_UPDATE_MALICIOUS_WEBSITE_IDENTIFICATION_VALUE; 87048147e0Sopenharmony_ci let actionData: LooseObject = {}; 88048147e0Sopenharmony_ci this.maliciousWebSwitch = e.checked; 89048147e0Sopenharmony_ci if (this.maliciousWebSwitch) { 90048147e0Sopenharmony_ci actionData.booleanValue = common.bool.TRUE; 91048147e0Sopenharmony_ci } else { 92048147e0Sopenharmony_ci actionData.booleanValue = common.bool.FALSE; 93048147e0Sopenharmony_ci } 94048147e0Sopenharmony_ci this.updateSettingPageSwitchValue(messageCode, actionData); 95048147e0Sopenharmony_ci }; 96048147e0Sopenharmony_ci 97048147e0Sopenharmony_ci // Go to the Message Ring page. Choose Settings > Sound and Vibration > Message Ring. 98048147e0Sopenharmony_ci jumpToMessageTonePage() { 99048147e0Sopenharmony_ci HiLog.i(TAG, 'jumpToMessageTonePage') 100048147e0Sopenharmony_ci }; 101048147e0Sopenharmony_ci 102048147e0Sopenharmony_ci // Display a contact's avatar 103048147e0Sopenharmony_ci showContact(e) { 104048147e0Sopenharmony_ci HiLog.i(TAG, 'showContact, checked = ' + e.checked); 105048147e0Sopenharmony_ci let messageCode = common.route.MESSAGE_CODE_UPDATE_SHOW_CONTACT_PROFILE_PICS_VALUE; 106048147e0Sopenharmony_ci let actionData: LooseObject = {}; 107048147e0Sopenharmony_ci this.showContactSwitch = e.checked; 108048147e0Sopenharmony_ci if (this.showContactSwitch) { 109048147e0Sopenharmony_ci actionData.booleanValue = common.bool.TRUE; 110048147e0Sopenharmony_ci } else { 111048147e0Sopenharmony_ci actionData.booleanValue = common.bool.FALSE; 112048147e0Sopenharmony_ci } 113048147e0Sopenharmony_ci this.updateSettingPageSwitchValue(messageCode, actionData); 114048147e0Sopenharmony_ci }; 115048147e0Sopenharmony_ci 116048147e0Sopenharmony_ci // Restore the default values on the settings page. 117048147e0Sopenharmony_ci restoreSettingsPageSwitchValue() { 118048147e0Sopenharmony_ci let that = this; 119048147e0Sopenharmony_ci settingService.restoreSwitchValue(function (result) { 120048147e0Sopenharmony_ci if (result.code === common.int.SUCCESS) { 121048147e0Sopenharmony_ci that.integrationSwitch.value = true; 122048147e0Sopenharmony_ci that.maliciousWebSwitch = false; 123048147e0Sopenharmony_ci that.showContactSwitch = true; 124048147e0Sopenharmony_ci globalThis.needToUpdate = true; 125048147e0Sopenharmony_ci HiLog.i(TAG, 'restoreSettingsPageSwitchValue, success'); 126048147e0Sopenharmony_ci } else { 127048147e0Sopenharmony_ci HiLog.w(TAG, 'restoreSettingsPageSwitchValue, failed'); 128048147e0Sopenharmony_ci } 129048147e0Sopenharmony_ci }); 130048147e0Sopenharmony_ci }; 131048147e0Sopenharmony_ci 132048147e0Sopenharmony_ci // Back button 133048147e0Sopenharmony_ci back() { 134048147e0Sopenharmony_ci router.back(); 135048147e0Sopenharmony_ci }; 136048147e0Sopenharmony_ci 137048147e0Sopenharmony_ci // Advanced page redirection 138048147e0Sopenharmony_ci advancedSetting() { 139048147e0Sopenharmony_ci HiLog.i(TAG, 'advancedSetting') 140048147e0Sopenharmony_ci router.push({ 141048147e0Sopenharmony_ci uri: 'pages/settings/advancedSettings/advancedSettings' 142048147e0Sopenharmony_ci }); 143048147e0Sopenharmony_ci }; 144048147e0Sopenharmony_ci 145048147e0Sopenharmony_ci // Update Switch Value 146048147e0Sopenharmony_ci updateSettingPageSwitchValue(messageCode, actionData) { 147048147e0Sopenharmony_ci HiLog.i(TAG, 'updateSettingPageSwitchValue, messageCode = ' + messageCode); 148048147e0Sopenharmony_ci settingService.updateSettingValue(messageCode, actionData, function (result) { 149048147e0Sopenharmony_ci if (result.code == common.int.SUCCESS) { 150048147e0Sopenharmony_ci HiLog.i(TAG, 'updateSettingPageSwitchValue, success'); 151048147e0Sopenharmony_ci } else { 152048147e0Sopenharmony_ci HiLog.w(TAG, 'updateSettingPageSwitchValue, failed'); 153048147e0Sopenharmony_ci } 154048147e0Sopenharmony_ci }); 155048147e0Sopenharmony_ci }; 156048147e0Sopenharmony_ci}