Commit 0d56e7a2 authored by yqz's avatar yqz

Merge branch 'dev_main' into yQz0507

* dev_main:
  【修复】闪退BUG
  【优化】时间选择器

# Conflicts:
#	PhoneManager/Class/Page/Secret/PMShowImgVideoController.swift
parents 8bd08628 9b23744d
......@@ -354,8 +354,8 @@ class HomePhotosDetailViewController : BaseViewController {
DispatchQueue.main.async {
self.collectionView.reloadData()
}
self.setDefaultPage()
}
addTrashView()
}
......
......@@ -326,8 +326,8 @@ class HomeVideoDetailController :BaseViewController {
DispatchQueue.main.async {
self.collectionView.reloadData()
}
self.setDefaultPage()
}
addTrashView()
}
func showTipsVC(){
......
......@@ -332,17 +332,19 @@ class PhotoRemoveViewController: BaseViewController {
func showTrashView(){
DispatchQueue.main.async {
self.trashSubView.isHidden = false
UIView.animate(withDuration: 0.1) {
UIView.animate(withDuration: 0.2) {
// 更新约束
self.bottomConstraint?.update(offset: 0)
self.view.layoutIfNeeded()
}
}
}
func hideTrashView(){
DispatchQueue.main.async {
UIView.animate(withDuration: 0.1) {
UIView.animate(withDuration: 0.2) {
// 更新约束
self.bottomConstraint?.update(offset: 78 + safeHeight)
self.view.layoutIfNeeded()
}completion: { finished in
self.trashSubView.isHidden = true
}
......@@ -447,9 +449,13 @@ class PhotoRemoveViewController: BaseViewController {
func saveDataToKeepListDB(){
if let type = self.mediaType{
if let dataSg = Singleton.shared.keepList[type]{
var uinqueId = UUID().uuidString
for item in dataSg{
// 如果是视频的话不会进行分组,所以每次传入不同的id组
let uinqueId = UUID().uuidString
if type == .video {
// 如果是视频的话不会进行分组,所以每次传入不同的id
// 重新生成一个
uinqueId = UUID().uuidString
}
let success = GroupDatabase.shared.insert(localIdentifier: item.localIdentifier, assetSize: item.assetSize, createDate: item.createDate, mediaType: type == TrashTypeEnum.video ? 2 : 1,groupId: uinqueId)
if success == false {
Print("保留单利数据到数据库保留列表失败")
......
......@@ -11,7 +11,7 @@ class DateSelectButtonView : UIView {
var closeCallBack : ()->Void = {}
var type : PikerDateType?
var type : PickerDateType?
lazy var dateButton : UIButton = {
let button = UIButton(type: .custom)
......
......@@ -21,6 +21,7 @@ class PhotosRemoveBaseView: UIView {
func reload(index:Int) -> Void {
if let url = url {
if self.innerVideoController == nil {
self.innerVideoController = VideoViewController()
if let vc = self.innerVideoController {
vc.isAutoPlay = index == 0
......@@ -31,6 +32,9 @@ class PhotosRemoveBaseView: UIView {
make.left.top.bottom.right.equalToSuperview()
}
}
}else {
self.innerVideoController?.playerViewController.player?.play()
}
}
}
......@@ -72,7 +76,11 @@ class PhotosRemoveBaseView: UIView {
addSubview(imageView)
leftButton.frame = CGRect(x: 0, y: 0, width: 95, height: 42)
leftButton.center = imageView.center
if self.url != nil {
self.leftButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.leftButton.center = imageView.center
}
leftButton.setTitle("Delete", for: .normal)
leftButton.backgroundColor = UIColor(red: 0.95, green: 0.21, blue: 0.21, alpha: 1)
leftButton.tintColor = .white
......@@ -83,7 +91,11 @@ class PhotosRemoveBaseView: UIView {
rightButton.frame = CGRect(x: 0, y: 0, width: 95, height: 42)
rightButton.center = imageView.center
if self.url != nil {
self.rightButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.rightButton.center = imageView.center
}
rightButton.setTitle("Retain", for: .normal)
rightButton.backgroundColor = UIColor(red: 0.18, green: 0.76, blue: 0.35, alpha: 1)
rightButton.tintColor = .white
......@@ -101,17 +113,24 @@ class PhotosRemoveBaseView: UIView {
}
func showLeftButton() {
if self.url != nil {
self.leftButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.leftButton.center = imageView.center
UIView.animate(withDuration: 0.2) {
}
self.leftButton.alpha = 1
self.rightButton.alpha = 0
self.maskTempleteView.backgroundColor = UIColor(red: 0.95, green: 0.21, blue: 0.21, alpha: 0.4000)
self.addSubview(self.maskTempleteView)
self.rightButton.alpha = 0
}
}
func showRightButton() {
if self.url != nil {
self.rightButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.rightButton.center = imageView.center
}
UIView.animate(withDuration: 0.2) {
self.rightButton.alpha = 1
self.maskTempleteView.backgroundColor = UIColor(red: 0.26, green: 0.78, blue: 0.41, alpha: 0.4000)
......@@ -121,14 +140,20 @@ class PhotosRemoveBaseView: UIView {
}
func hideButtons() {
UIView.animate(withDuration: 0.2) { [self] in
self.leftButton.alpha = 0
self.rightButton.alpha = 0
self.maskTempleteView.removeFromSuperview()
if self.url != nil {
self.rightButton.center = self.innerVideoController?.view.center ?? imageView.center
self.leftButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.leftButton.center = self.imageView.center
self.rightButton.center = self.imageView.center
}
}
}
@objc func showDeatail(){
let vc : PhotoDetailViewController = PhotoDetailViewController()
......
......@@ -127,8 +127,8 @@ class ResourceFilterBoxView : UIView {
private func setDefaultDataInPage(){
// 设置按钮
resetByType(date: self.startDate, type: PikerDateType.start)
resetByType(date: self.endDate, type: PikerDateType.end)
resetByType(date: self.startDate, type: PickerDateType.start)
resetByType(date: self.endDate, type: PickerDateType.end)
// 设置选择框
DispatchQueue.main.async {
......@@ -141,7 +141,7 @@ class ResourceFilterBoxView : UIView {
/// - Parameters:
/// - date: 时间
/// - type: 类型
private func resetByType(date:Date?,type:PikerDateType){
private func resetByType(date:Date?,type:PickerDateType){
if let date = date {
let timeNumber = getYearAndMonthFromDate(currentDate: date)
if let year = timeNumber.0{
......@@ -167,13 +167,14 @@ class ResourceFilterBoxView : UIView {
/// - year: 年
/// - month: 月
/// - type: 按钮类型
func resetDateStringFromYearAndMonth(year: Int, month: Int ,type: PikerDateType){
func resetDateStringFromYearAndMonth(year: Int, month: Int ,type: PickerDateType){
DispatchQueue.main.async {
if type == .start {
self.startDateButton.dateButton.setTitle("From \(self.getMonthEn(month: month)) \(year)", for: .normal)
self.startDateButton.closeButton.isHidden = false
self.startDate = self.dateFrom(year: year, month: month)
}else {
// 判断结束时间是否大于开始时间,如果是
self.endDateButton.dateButton.setTitle("To \(self.getMonthEn(month: month)) \(year)", for: .normal)
self.endDateButton.closeButton.isHidden = false
self.endDate = self.lastDayOfMonth(year: year, month: month)
......@@ -214,9 +215,13 @@ class ResourceFilterBoxView : UIView {
self.startDateButton.closeCallBack = {
self.startDate = nil
self.datePicker?.startDate = nil
self.datePicker?.reloadData()
}
self.endDateButton.closeCallBack = {
self.endDate = nil
self.datePicker?.endDate = nil
self.datePicker?.reloadData()
}
self.startDateButton.reSetButtonTitle()
......@@ -348,18 +353,24 @@ class ResourceFilterBoxView : UIView {
popDatePikerView(type: .end)
}
func popDatePikerView(type: PikerDateType){
showDatePicker(type: type)
func popDatePikerView(type: PickerDateType){
showDatePicker(type: type,startDate: self.startDate,endDate: self.endDate)
}
// 显示
func showDatePicker(type: PikerDateType){
func showDatePicker(type: PickerDateType,startDate:Date?,endDate:Date?){
if self.datePicker != nil {
self.datePicker?.type = type
self.datePicker?.startDate = self.startDate
self.datePicker?.endDate = self.endDate
self.datePicker?.reloadData()
return
}
self.datePicker = YearMonthPickerView()
self.datePicker?.type = type
self.datePicker?.startDate = self.startDate
self.datePicker?.endDate = self.endDate
self.datePicker?.backgroundColor = .white
if let window = cWindow,let datePicker = self.datePicker {
let datePickerFrame = CGRect(x: 0, y: window.height, width:window.width, height: 204)
......
......@@ -268,6 +268,8 @@ extension HomeInfoTableViewCell:UICollectionViewDelegate,UICollectionViewDataSou
let vc = PMShowImgVideoController()
if model?.type == .SimilarVideos || model?.type == .videos {
vc.state = .similarVideos
}else if model?.type == .duplicates {
vc.state = .duplicates
}else{
vc.state = .similarPhotos
}
......
......@@ -16,6 +16,8 @@ class PMShowImgVideoController: BaseViewController {
case similarPhotos
// 相似视频
case similarVideos
// 重复项
case duplicates
}
// 资源类型 0-图片 1-视频
......@@ -339,11 +341,10 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
showName.loadPhotoOrVideo { durs, icon in
cell.icon = icon
}
if let data = self.homeDataSource {
cell.bestResultButton.isHidden = indexPath.row != 0 || data.count <= 1
}else{
cell.selectBtn.isHidden = true
cell.bestResultButton.isHidden = true
if self.homeDataSource == nil {
cell.selectBtn.isHidden = true
}
cell.isCurrent = selectSet.contains(indexPath.row)
cell.callblock = {[weak self] in
......@@ -383,9 +384,7 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
}
}else{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PMShowItemCellID, for: indexPath) as! PMShowItemCell
if let data = self.homeDataSource {
}else{
if self.homeDataSource == nil {
cell.selectBtn.isHidden = true
}
showName.loadPhotoOrVideo { duration, icon in
......@@ -399,14 +398,14 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
}
}
if state == .similarPhotos {
if state == .similarPhotos || state == .duplicates {
if collectionView == MaxCollection {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PMShowImgCellID, for: indexPath) as! PMShowImgCell
cell.icon = self.homeDataSource![indexPath.row].image ?? UIImage()
cell.isCurrent = selectSet.contains(indexPath.row)
if let data = self.homeDataSource {
cell.bestResultButton.isHidden = indexPath.row != 0 || data.count <= 1
cell.bestResultButton.isHidden = indexPath.row != 0 || data.count <= 1 || state == .duplicates
}
cell.callblock = {[weak self] in
guard let self = self else { return }
......
......@@ -20,7 +20,7 @@ class SecretShowImgDetailView: UIView {
make.left.top.bottom.equalToSuperview().inset(16)
make.right.equalTo(self.snp.centerX).offset(-7.5)
}
delBtn.snp.makeConstraints { make in
self.delBtn.snp.makeConstraints { make in
make.right.top.bottom.equalToSuperview().inset(16)
make.left.equalTo(self.snp.centerX).offset(7.5)
}
......
......@@ -15,7 +15,16 @@ class TrashViewController: BaseViewController {
var source:[TrashTypeEnum] = [.video,.other,.shot]
var contentH:CGFloat = 0
var contentScrollView:UIScrollView!
var delBtn:UIButton!
lazy var delBtn : UIButton = {
let button = UIButton()
button.setTitle("Delete", for: .normal)
button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .semibold)
button.backgroundColor = UIColor.colorWithHex(hexStr: "#0082FF")
button.layer.cornerRadius = 20
button.addTarget(self, action: #selector(delBtnAction), for: .touchUpInside)
return button
}()
var currentType:TrashTypeEnum = .other
let pageCount = 3 // 总页数
......@@ -70,16 +79,10 @@ class TrashViewController: BaseViewController {
contentScrollView.backgroundColor = UIColor.white
view.addSubview(contentScrollView)
delBtn = UIButton()
delBtn.setTitle("Delete", for: .normal)
delBtn.setTitleColor(.white, for: .normal)
delBtn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .semibold)
delBtn.backgroundColor = UIColor.colorWithHex(hexStr: "#0082FF")
delBtn.layer.cornerRadius = 20
delBtn.addTarget(self, action: #selector(delBtnAction), for: .touchUpInside)
view.addSubview(delBtn)
delBtn.snp.makeConstraints { make in
view.addSubview(self.delBtn)
self.delBtn.snp.makeConstraints { make in
make.bottom.equalTo(-17)
make.left.right.equalToSuperview().inset(55)
make.height.equalTo(40)
......@@ -100,9 +103,9 @@ class TrashViewController: BaseViewController {
contentScrollView.addSubview(shotView)
videoView.deleteButton = delBtn
otherView.deleteButton = delBtn
shotView.deleteButton = delBtn
videoView.deleteButton = self.delBtn
otherView.deleteButton = self.delBtn
shotView.deleteButton = self.delBtn
}
override func viewWillLayoutSubviews() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment