| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- import Main from "../Main";
- import AdM from "../manager/AdM";
- import GameM from "../manager/GameM";
- import UiM from "../manager/UiM";
- import GuideInstallApkNode from "../ui/GuideInstallApkNode";
- import LogUtil from "../utils/LogUtil";
- import { HTTP_TYPE } from "./CommonData";
- export default class DownloadApkData {
- private static instance: DownloadApkData = null
- static get Instance(): DownloadApkData {
- if (!DownloadApkData.instance) {
- DownloadApkData.instance = new DownloadApkData()
- }
- return DownloadApkData.instance
- }
- public installRewards = 0
- public startRewards = 0
- public curGuideInstallItem = null
- //本地下载文件路径列表
- public downloadApkFiles = []
- public installPackageName = ''
- public openPackageName = ''
- //引导下载开关
- public installSwitch = true
- public installRatio = "0.8"
- public openRatio = "0.2"
- /** 存取包的状态
- * 格式 {packageName:"",
- * state:0}
- * state 状态 1 安装 2 领奖 3 打开 4 领奖 5 结束
- */
- public packageInfoArr = []
- /** 显示列表数据 */
- public listData = []
- /** 获取服务器数据
- * 格式 {packageName:"",
- * appName:"",
- * icon:"",
- * path:"",
- * state:0}
- */
- getPackage() {
- LogUtil.logV('DownloadApkData getPackage ', '')
- let data = {}
- GameM.httpM.sendDatas(HTTP_TYPE.getPackage, data, DownloadApkData.Instance.getPackageBack.bind(DownloadApkData.Instance))
- }
- getPackageBack(data) {
- LogUtil.logV('DownloadApkData getPackageBack ', data)
- this.installRewards = data.userTreasureGourdInfo.installRewards
- this.startRewards = data.userTreasureGourdInfo.startRewards
- this.packageInfoArr = data.userTreasureGourdInfo.treasureGourds
- if (UiM.Instance.guideInstallApkNode) {
- UiM.Instance.guideInstallApkNode.getComponent(GuideInstallApkNode).initView()
- }
- else {
- let data = DownloadApkData.Instance.checkApkData()
- UiM.Instance.hallNode.getComponent(Main).setGuideInstallVisible(data.length > 0)
- }
- }
- updatePackage(data) {
- // let data = {
- // "packageName": packageName,
- // "state": state
- // }
- GameM.httpM.sendDatas(HTTP_TYPE.updatePackage, data, DownloadApkData.Instance.updatePackageBack.bind(DownloadApkData.Instance))
- LogUtil.logV("DownloadApkData updatePackage ", data)
- }
- updatePackageBack(data) {
- LogUtil.logV('DownloadApkData updatePackageBack ', data)
- }
- /** 更新奖励次数
- * @param rewardsType 1 安装 2 启动
- */
- updateRewards(rewardsType) {
- LogUtil.logV('DownloadApkData updateRewards ', rewardsType)
- let data = { "rewardsType": rewardsType }
- GameM.httpM.sendDatas(HTTP_TYPE.updateRewards, data, DownloadApkData.Instance.updateRewardsBack.bind(DownloadApkData.Instance))
- }
- updateRewardsBack(data) {
- LogUtil.logV('DownloadApkData updateRewardsBack ', data)
- this.installRewards = data.userTreasureGourdInfo.installRewards
- this.startRewards = data.userTreasureGourdInfo.startRewards
- if (this.curGuideInstallItem) {
- LogUtil.logV('DownloadApkData updateRewardsBack ', '11111111 ')
- this.curGuideInstallItem.freshGetAward()
- this.curGuideInstallItem = null
- }
- if (UiM.Instance.guideInstallApkNode) {
- LogUtil.logV('DownloadApkData updateRewardsBack ', '222222222 ')
- UiM.Instance.guideInstallApkNode.getComponent(GuideInstallApkNode).getGoldBack()
- }
- }
- setInDownloadApkFiles(filesPath: string) {
- LogUtil.logV("setInDownloadApkFiles", "one")
- let arr = filesPath.split('#')
- this.downloadApkFiles = []
- for (var i = 0; i < arr.length; i++) {
- let filesPath = arr[i]
- if (filesPath != "") {
- if (this.downloadApkFiles.indexOf(filesPath) >= 0) {
- } else {
- LogUtil.logV("setInDownloadApkFiles", "two")
- this.downloadApkFiles.push(filesPath)
- }
- }
- }
- LogUtil.logV("setInDownloadApkFiles filesPathArr ", this.downloadApkFiles)
- DownloadApkData.Instance.getPackage()
- }
- /** 对比服务器包名和本地包数据 显示在列表中
- * 以本地包为最大,如果本地没有安装包默认不给奖励了
- */
- checkApkData() {
- let len = this.downloadApkFiles.length
- this.listData = []
- let installNum = 0
- let tempPackNameArr = []
- for (var i = 0; i < len; i++) {
- let has = false
- let path = this.downloadApkFiles[i]
- let str = AdM.getApkFileInfo(path)
- if (str != null && str != undefined && str != "") {
- let jsonObj = JSON.parse(str)
- let packageName = jsonObj["packageName"]
- if (tempPackNameArr.indexOf(packageName) == -1) {
- tempPackNameArr.push(packageName)
- let len1 = this.packageInfoArr.length
- for (var m = 0; m < len1; m++) {
- if (this.packageInfoArr[m].packageName == packageName) {
- if (this.packageInfoArr[m].state < 5) {
- let passTime = (GameM.commonData.gameTime - this.packageInfoArr[m].timeSpan) * 0.01 / (3600 * 24 * 6)
- if (passTime < 6) {
- if (this.packageInfoArr[m].state <= 2) {
- if (installNum < this.installRewards) {
- this.listData.push(this.packageInfoArr[m])
- installNum++
- LogUtil.logV('DownloadApkData putAAAA ', jsonObj)
- }
- }
- else {
- this.listData.push(this.packageInfoArr[m])
- LogUtil.logV('DownloadApkData putBBBB ', jsonObj)
- }
- }
- }
- has = true
- break
- }
- }
- if (!has) {
- jsonObj['state'] = 1
- jsonObj['timeSpan'] = GameM.commonData.gameTime
- this.packageInfoArr.push(jsonObj)
- if (installNum < this.installRewards) {
- this.listData.push(jsonObj)
- installNum++
- }
- LogUtil.logV('DownloadApkData putCCCC ', jsonObj)
- DownloadApkData.Instance.updatePackage(jsonObj)
- }
- }
- }
- }
- //检查本地包已卸载但安装完成的包
- let len2 = this.packageInfoArr.length
- for (var m = 0; m < len2; m++) {
- let has = false
- let packInfo = this.packageInfoArr[m]
- if (packInfo.state >= 2 && packInfo.state < 5) {
- let passTime = (GameM.commonData.gameTime - this.packageInfoArr[m].timeSpan) * 0.01 / (3600 * 24 * 6)
- if (passTime < 6) {
- for (var n = 0; n < this.listData.length; n++) {
- if (packInfo.packageName == this.listData[n].packageName) {
- has = true
- break
- }
- }
- if (!has) {
- if (installNum < this.installRewards) {
- this.listData.push(packInfo)
- installNum++
- }
- }
- }
- }
- }
- LogUtil.logV('DownloadApkData this.listData ', this.listData)
- return this.listData
- }
- /** 返回刷新安装item */
- freshInstallApk() {
- if (UiM.Instance.guideInstallApkNode) {
- UiM.Instance.guideInstallApkNode.getComponent(GuideInstallApkNode).freshItem()
- }
- }
- }
|