Blame view

HDFwear/Setting/DialSyncLocalVC.swift 4.94 KB
f2cf74c7   yangbin   1.0.20(4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  //
  //  DialSyncLocalVC.swift
  //  HDFwear
  //
  //  Created by yangbin on 2022/3/16.
  //
  
  import UIKit
  
  class DialSyncLocalVC: UIViewController {
      @IBOutlet weak var collectionView: UICollectionView!
      @IBOutlet weak var collectionViewFlowLayout: UICollectionViewFlowLayout!
      var dialNum: Int = 9
      var identifierDic: [String: String] = [:]
  //    var isSyncing: Bool = false
      
  //    var tempIndex: Int = -1
  //    var syncIndex = UserInfo.dailIndex
  //    var isSynced: Bool = UserInfo.isDailSync
      var user = UserInfo
      
      override func viewWillAppear(_ animated: Bool) {
          super.viewWillAppear(animated)
  
      }
      override func viewWillDisappear(_ animated: Bool) {
          super.viewWillDisappear(animated)
          let navController = navigationController as? ZCNavigationController
          navController?.enableScreenEdgePanGestureRecognizer(true)
      }
      
      
      override func viewDidLoad() {
          super.viewDidLoad()
          title = LocString("表盘推送")
          
          collectionViewFlowLayout.minimumLineSpacing = 10
          collectionViewFlowLayout.minimumInteritemSpacing = 20
          collectionViewFlowLayout.sectionInset = UIEdgeInsets(top: 5, left: 10, bottom: 10+NAVBAR_HEIGHT+10, right: 10)
          collectionViewFlowLayout.itemSize = CGSize(width: (SCREEN_WIDTH-60)/3.0, height: 130)
      }
      
      
      private func syncDail(_ indexPath: IndexPath) {
          if IsDailSyncing { return }
          let cell = self.collectionView.cellForItem(at: indexPath) as! DailCell
          if cell.progressView.label.text == LocString("已安装") { return }
          updateUserInteraction(true)
          cell.updateProgressView(0)
79a1562a   jason   feat:remove ota
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  //        switch CurDevice.platform {
  //        case ._828:
  //            BluetoothManager.shared.syncFileWith(path: "\(Bundle.main.resourcePath!)/dial/DialDataHQ7/\(indexPath.row)/dial.bin") { progress in
  //                cell.updateProgressView(progress)
  //            } completion: {[weak self] error in
  //                self?.updateUserInteraction(false)
  //                if error == nil {
  //                    self?.syncComplete(index: indexPath.row)
  //                    cell.syncComplete()
  //                } else {
  //                    cell.initProgressView()
  //                    self?.showAlert(title: LocString("提示"), message: LocString("安装失败,请重试"), cancelText: nil)
  //                }
  //            }
  //        default:
  //            break
  //        }
f2cf74c7   yangbin   1.0.20(4)
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
      }
      
      func syncComplete(index: Int) {
  //        if user.dailIndex >= 0 {
  //            let cell = collectionView.cellForItem(at: IndexPath(row: user.dailIndex, section: 0)) as! DailCell
  //            cell.initProgressView()
  //        }
          collectionView.reloadData()
          user.isDailSync = true
          user.dailIndex = index
          AdminHelper.shared.updateUser(user)
      }
      
      func updateUserInteraction(_ isSyncing: Bool) {
  //        collectionView.isUserInteractionEnabled = !isSyncing
          UIApplication.shared.isIdleTimerDisabled = isSyncing
          IsDailSyncing = isSyncing
          let navController = navigationController as? ZCNavigationController
          navController?.enableScreenEdgePanGestureRecognizer(!isSyncing)
      }
      
      deinit {
          print("deinit\(NSStringFromClass(type(of: self)))!!!!!!!")
      }
      
  }
  
  
  extension DialSyncLocalVC: UICollectionViewDelegate, UICollectionViewDataSource {
      func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
          return dialNum
      }
      
      func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  //        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "DailCell", for: indexPath) as! DailCell
          let identifier: String = "DailCell\(indexPath.row)\(indexPath.section)"
          if identifierDic[identifier] == nil {
              collectionView.register(UINib(nibName: "DailCell", bundle: .main), forCellWithReuseIdentifier: identifier)
              identifierDic[identifier] = identifier
          }
          
  //        collectionView.register(DailCell.self, forCellWithReuseIdentifier: "DailCell")
          let cell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as! DailCell
          // 此处可起到防止重用的作用
  //        for view in cell.contentView.subviews {
  ////            if view != nil {
  //                view.removeFromSuperview()
  ////            }
  //
  //        }
             
          
          switch CurDevice.platform {
f2cf74c7   yangbin   1.0.20(4)
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
          case ._828:
              cell.dailImageView.image = UIImage(contentsOfFile:  "\(Bundle.main.resourcePath!)/dial/dialrtkpreviewHQ7/\(indexPath.row)/preview")
          default:
              break
          }
          
          cell.cellClickClosure = {[weak self] in
              self?.syncDail(indexPath)
          }
          if indexPath.row == user.dailIndex {
              cell.syncComplete()
          } else {
              cell.initProgressView()
          }
          
          return cell
      }
      
  }