MineSettingDatasModel.ets 6.43 KB

import HashMap from '@ohos.util.HashMap';
import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
import { Logger, SPHelper } from 'wdKit';
import { MineMainSettingFunctionItem } from '../viewmodel/MineMainSettingFunctionItem';
import { SpConstants } from 'wdConstant/Index';
import { CheckSetPasswordItem } from '../viewmodel/CheckSetPasswordItem';


const TAG = "MineSettingDatasModel"

/**
 * 我的设置页面 所有数据 获取封装类
 */
class MineSettingDatasModel{
  private static instance: MineSettingDatasModel;
  mainSettingData:Array<MineMainSettingFunctionItem> = []
  accountAndSecurityData:Array<MineMainSettingFunctionItem> = []

  private constructor() { }

  /**
   * 单例模式
   * @returns
   */
  public static getInstance(): MineSettingDatasModel {
    if (!MineSettingDatasModel.instance) {
      MineSettingDatasModel.instance = new MineSettingDatasModel();
    }
    return MineSettingDatasModel.instance;
  }




  /**
   * 评论 关注 收藏 等7个数据
   * 包含名字和图标
   */
   getMineMainSettingFunctionItemData():MineMainSettingFunctionItem[]{
    if(this.mainSettingData.length === 7){
      return this.mainSettingData
    }
    this.mainSettingData = []
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '账户与安全', '18888888888', 0, false,"account"))
    let pushState=SPHelper.default.getSync(SpConstants.SETTING_PUSH_SWITCH,false) as boolean
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '接收推送', null, 1, pushState,"push_switch"))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '隐私设罝', null, 0, false,"private_setting"))
    let wifiState=SPHelper.default.getSync(SpConstants.SETTING_WIFI_IMAGE_SWITCH,false) as boolean
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '仅WiFi网络加载图片', null, 1, wifiState,"wifi_switch"))
     let videoState=SPHelper.default.getSync(SpConstants.SETTING_WIFI_VIDEO_SWITCH,false) as boolean
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, 'WiFi网络情况下自动播放视频', null, 1, videoState,"video_switch"))
     let suspensionState=SPHelper.default.getSync(SpConstants.SETTING_SUSPENSION_SWITCH,false) as boolean
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '开启播放器悬浮窗', null, 1, suspensionState,"suspensionState_switch"))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, null, null, 2, null,""))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '清除缓存', '32MB', 0, false,"clear_cache"))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '评价我们', null, 0, false,""))

    return this.mainSettingData
  }

  /**
   * 评论 关注 收藏 等7个数据
   * 包含名字和图标
   */
  getAccountAndSecuritySettingData():MineMainSettingFunctionItem[]{
    if(this.accountAndSecurityData.length === 7){
      return this.accountAndSecurityData
    }
    this.accountAndSecurityData = []
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, '更换手机号', '18888888888', 0, false,""))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, '设置密码', null, 0, false,""))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, null, null, 2, null,""))
    // this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_qqicon'), '绑定QQ', '立即绑定', 0, false,""))
    // this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_wechaticon'), '绑定微信', '立即绑定', 0, false,""))
    // this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_weiboicon'), '绑定新浪微博', '立即绑定', 0, false,""))
    // this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_appleicon'), 'Apple ID', null, 0, false,""))
    // this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, null, null, 2, null,""))

    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, '注销账号', null, 0, false,""))

    return this.accountAndSecurityData
  }



  //  网络请求设置数据
  fetchAppointmentListData(pageSize:string,pageNum:string) {
    // let url = HttpUrlUtils.getAppointmentListDataUrl()+ `?pageSize=${pageSize}&pageNum=${pageNum}`
    // let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
    // return WDHttp.get<ResponseDTO<MineAppointmentListItem>>(url, headers)
  };

  // getAppointmentListData(pageSize:string,pageNum:string): Promise<MineAppointmentListItem> {
  //   return new Promise<MineAppointmentListItem>((success, error) => {
  //     Logger.info(TAG, `getAppointmentList start`);
  //     this.fetchAppointmentListData(pageSize,pageNum).then((navResDTO: ResponseDTO<MineAppointmentListItem>) => {
  //       if (!navResDTO) {
  //         error("page data invalid");
  //         return
  //       }
  //       Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  //       let navigationBean = navResDTO.data
  //       success(navigationBean);
  //     }).catch((err: Error) => {
  //       Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name},  error.message:${err.message}`);
  //       error(err);
  //     })
  //   })
  // }


  /**
   * 判断是否设置过密码
   */
  checkSetPassword(): Promise<CheckSetPasswordItem> {
    return new Promise<CheckSetPasswordItem>((success, error) => {
      Logger.info(TAG, `checkSetPassword start`);
      this.fetchCheckSetPassword().then((navResDTO: ResponseDTO<CheckSetPasswordItem>) => {
        if (!navResDTO || navResDTO.code != 0) {
          error(null)
          return
        }
        Logger.info(TAG, "checkSetPassword then,checkSetPasswordResDTO.timeStamp:" + navResDTO.timestamp);
        let navigationBean = navResDTO.data as CheckSetPasswordItem
        success(navigationBean);
      }).catch((err: Error) => {
        Logger.error(TAG, `checkSetPassword catch, error.name : ${err.name},  error.message:${err.message}`);
        error(null)
      })
    })
  }

  fetchCheckSetPassword() {
    let url = HttpUrlUtils.checkSetPassword()
    return WDHttp.get<ResponseDTO<CheckSetPasswordItem>>(url)
  };

}

const mineSettingDatasModel = MineSettingDatasModel.getInstance()
export default mineSettingDatasModel as MineSettingDatasModel
// export default MineMainSettingFunctionItem as MineMainSettingFunctionItem