Commit 203bd232 authored by lmj_521aiau@163.com's avatar lmj_521aiau@163.com

no message

parent 582e0a94
......@@ -15,4 +15,5 @@ target 'ShorthandMaster' do
pod 'PDFGenerator', '~> 3.1'
pod 'Masonry'
pod 'UMCCommon'
end
......@@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)pause;
- (void)stop;
- (void)write:(NSData *)data path:path;
@end
NS_ASSUME_NONNULL_END
......@@ -154,4 +154,9 @@ static SHMp3RecordManager * manager;
}
}
- (void)write:(NSData *)data path:path{
self.dataWriter = [[XBDataWriter alloc] init];
[self.dataWriter writeData:data toPath:path];
}
@end
......@@ -29,6 +29,7 @@ class SHRecordListViewController: SHBaseViewController {
self.navigationItem.leftBarButtonItem = UIBarButtonItem.init(image: leftImage, style: .plain, target: self, action: #selector(userCilck))
setupUI()
/*
SHCloudManager.shared.cheakAccountStatus { (result) in
if result == false{
......@@ -47,11 +48,24 @@ class SHRecordListViewController: SHBaseViewController {
}, finish: nil)
}
}
*/
}
func prepareDateSource(){
dataSources = []
if let list = CRUserDefaults.recordList {
// if let list = CRUserDefaults.recordList {
// for dic in list.reversed(){
// let model = SHRecordModel()
// model.setValuesForKeys(dic)
// if model.delete == false{
// dataSources.append(model)
// }
// }
// }
let keyValueStore = NSUbiquitousKeyValueStore.default
let list = keyValueStore.object(forKey: "list") as? [Dictionary<String, Any>]
if let list = list {
for dic in list.reversed(){
let model = SHRecordModel()
model.setValuesForKeys(dic)
......@@ -59,6 +73,7 @@ class SHRecordListViewController: SHBaseViewController {
dataSources.append(model)
}
}
tableView?.reloadData()
}
if dataSources.count == 0 {
......@@ -71,19 +86,38 @@ class SHRecordListViewController: SHBaseViewController {
func removeModel(_ indexPath: IndexPath){
var list = CRUserDefaults.recordList
// var list = CRUserDefaults.recordList
//
// let deleteModel = dataSources[indexPath.row]
//
// for (index, dic) in list!.enumerated(){
// if dic["pathFile"] as! String == deleteModel.pathFile{
// var subDic = dic
// subDic["delete"] = true
// subDic["deleteDate"] = Date.init()
// list![index] = subDic
// }
// }
// CRUserDefaults.recordList = list
let deleteModel = dataSources[indexPath.row]
for (index, dic) in list!.enumerated(){
if dic["pathFile"] as! String == deleteModel.pathFile{
var subDic = dic
subDic["delete"] = true
subDic["deleteDate"] = Date.init()
list![index] = subDic
let keyValueStore = NSUbiquitousKeyValueStore.default
let list = keyValueStore.object(forKey: "list") as? [Dictionary<String, Any>]
if var list = list {
for (index, dic) in list.enumerated(){
if dic["pathFile"] as! String == deleteModel.pathFile{
// var subDic = dic
// subDic["delete"] = true
// subDic["deleteDate"] = Date.init()
// list[index] = subDic
list.remove(at: index)
}
}
keyValueStore.set(list, forKey: "list")
keyValueStore.synchronize()
}
CRUserDefaults.recordList = list
self.prepareDateSource()
self.tableView?.beginUpdates()
......@@ -112,13 +146,17 @@ class SHRecordListViewController: SHBaseViewController {
@objc func userCilck(){
let mine = UIStoryboard.init(name: "Mine", bundle: nil).instantiateViewController(withIdentifier: "SHMineViewController") as! SHMineViewController
self.navigationController?.pushViewController(mine, animated: true)
if SHUserAccountManager.shared.isMember == false {
self.goRecord()
}
}
@IBAction func goRecord(){
if let list = CRUserDefaults.recordList, list.count > 1{
if dataSources.count > 1{
if SHUserAccountManager.shared.isMember == false{
self.goGoods()
return
......
......@@ -203,11 +203,17 @@ class SHRecordShowViewController: SHBaseViewController {
}
}
do {
let documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model!.pathFile)
// documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model!.pcmPathFile)
// player = try AVAudioPlayer.init(data: model!.fileData)
player = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: documentsFile))
let documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model!.pathFile)
if FileManager.default.fileExists(atPath: documentsFile) == false {
player = try AVAudioPlayer.init(data: model!.fileData)
}else{
player = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: documentsFile))
}
print("歌曲长度:\(player!.duration)")
player!.play()
......@@ -303,11 +309,23 @@ class SHRecordShowViewController: SHBaseViewController {
@objc fileprivate func generateWav() {
do{
// let manager = FileManager.default
// manager.copyItem(atPath: <#T##String#>, toPath: <#T##String#>)
let documentsFile_wav = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model!.pathFile)
let fileURL_wav = URL.init(fileURLWithPath: documentsFile_wav)
let documentsFile_mp3 = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model!.pathFile)
let range: Range = model!.pathFile.range(of: "/record.mp3")!
let location: Int = model!.pathFile.distance(from: model!.pathFile.startIndex, to: range.lowerBound)
let subStr = model!.pathFile.prefix(location)
let documentsFile_sub = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!+subStr
try! FileManager.default.createDirectory(atPath: documentsFile_sub, withIntermediateDirectories: true, attributes: nil)
let fileURL_wav = URL.init(fileURLWithPath: documentsFile_mp3)
SHMp3RecordManager.shared().write(model!.fileData, path: documentsFile_mp3)
let data_wav = try Data.init(contentsOf: fileURL_wav)
if FileManager.default.fileExists(atPath: documentsFile_mp3) == false {}
let activityVC = UIActivityViewController(activityItems: [data_wav, fileURL_wav], applicationActivities: nil)
activityVC.completionWithItemsHandler = {
......
......@@ -132,6 +132,7 @@ class SHRecordViewController: SHBaseViewController{
UIApplication.shared.keyWindow!.addSubview(export)
export.selectedIndexCallBack = { index in
if index == 0 {
MBProgressHUD.showMessage("已复制文本内容", to: export)
self.copyBtn()
} else if index == 1{
self.generatePDF()
......@@ -449,59 +450,61 @@ class SHRecordViewController: SHBaseViewController{
model.pcmPathFile = pcm_file_path!
model.during = seconds
let dic = ["time":model.time, "address":model.address, "txt":model.txt, "pathFile":model.pathFile, "during":model.during, "delete":model.delete, "rename":model.rename] as [String : Any]
var list = CRUserDefaults.recordList
if list == nil {
list = [dic]
}else{
var contains = false
for (index, subDic) in list!.enumerated(){
if (subDic["pathFile"] as! String) == model.pathFile {
contains = true
list![index] = dic
break
}
}
if contains == false {
list?.append(dic)
}
}
CRUserDefaults.recordList = list
currentModel = model
// do{
//// let documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model.pathFile)
//// let url = URL.init(fileURLWithPath: documentsFile)
////
//// let data = try Data.init(contentsOf: url)
//
// let dic = ["time":model.time, "address":model.address, "txt":model.txt, "pathFile":model.pathFile, "during":model.during, "delete":model.delete, "fileData":recorder_ss_data] as [String : Any]
//
// let keyValueStore = NSUbiquitousKeyValueStore.default
// var list = keyValueStore.object(forKey: "list") as? [Dictionary<String, Any>]
// if list == nil {
// list = [dic]
// }else{
// var contains = false
// for (index, subDic) in list!.enumerated(){
// if (subDic["pathFile"] as! String) == model.pathFile {
// contains = true
// list![index] = dic
// break
// }
// }
// if contains == false {
// list!.append(dic)
// let dic = ["time":model.time, "address":model.address, "txt":model.txt, "pathFile":model.pathFile, "during":model.during, "delete":model.delete, "rename":model.rename] as [String : Any]
// var list = CRUserDefaults.recordList
// if list == nil {
// list = [dic]
// }else{
// var contains = false
// for (index, subDic) in list!.enumerated(){
// if (subDic["pathFile"] as! String) == model.pathFile {
// contains = true
// list![index] = dic
// break
// }
// }
// keyValueStore.set(list, forKey: "list")
// keyValueStore.synchronize()
//
// } catch {
//
// if contains == false {
// list?.append(dic)
// }
// }
// CRUserDefaults.recordList = list
//
// currentModel = model
do{
let documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!.appending(model.pathFile)
let url = URL.init(fileURLWithPath: documentsFile)
let data = try Data.init(contentsOf: url)
model.fileData = data
let dic = ["time":model.time, "address":model.address, "txt":model.txt, "pathFile":model.pathFile, "during":model.during, "delete":model.delete, "fileData":model.fileData, "rename":model.rename] as [String : Any]
let keyValueStore = NSUbiquitousKeyValueStore.default
var list = keyValueStore.object(forKey: "list") as? [Dictionary<String, Any>]
if list == nil {
list = [dic]
}else{
var contains = false
for (index, subDic) in list!.enumerated(){
if (subDic["pathFile"] as! String) == model.pathFile {
contains = true
list![index] = dic
break
}
}
if contains == false {
list!.append(dic)
}
}
keyValueStore.set(list, forKey: "list")
keyValueStore.synchronize()
currentModel = model
} catch {
}
}
func removeCurrentRecored(_ model:SHRecordModel){
......@@ -626,11 +629,11 @@ extension SHRecordViewController{
private func generatePDF() {
do {
let range: Range = currentModel!.pathFile.range(of: "/record.map")!
let range: Range = currentModel!.pathFile.range(of: "/record.mp3")!
let location: Int = currentModel!.pathFile.distance(from: currentModel!.pathFile.startIndex, to: range.lowerBound)
let subStr = currentModel!.pathFile.prefix(location)
let documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!+subStr+"/\(subStr).pdf"
let documentsFile = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first)!+subStr+"/\(currentModel!.rename).pdf"
try PDFGenerator.generate(self.recordTextView!, to: documentsFile)
//此三方会把传入控件约束移除 需重新添加
......
......@@ -20,7 +20,7 @@ class SHStoreManager: NSObject {
case .success(let product):
log("Purchase Success: \(product.productId)")
let appleValidator = AppleReceiptValidator(service: .production, sharedSecret: "a2495c6d266e43fea58fda6c49f12264")
let appleValidator = AppleReceiptValidator(service: .production, sharedSecret: "0b55ed291ec647e7867e20681fb88a41")
let hud1 = MBProgressHUD.showAdded(to: inView, animated: true)
SwiftyStoreKit.verifyReceipt(using: appleValidator) { result in
hud1.hide(animated: true)
......@@ -200,7 +200,7 @@ class SHStoreManager: NSObject {
}
print("Restore sortedResults: \(sortedResults)")
if let purchase = sortedResults.last {
let appleValidator = AppleReceiptValidator(service: .production, sharedSecret: "a2495c6d266e43fea58fda6c49f12264")
let appleValidator = AppleReceiptValidator(service: .production, sharedSecret: "0b55ed291ec647e7867e20681fb88a41")
let hud1 = MBProgressHUD.show(with: toView)
SwiftyStoreKit.verifyReceipt(using: appleValidator) { result in
hud1?.hide(animated: true)
......
......@@ -5,6 +5,11 @@
#import "MBProgressHUD+MJ.h"
#import "AESCipher.h"
#import "UIView+CornerRadii.h"
#import "SHMp3RecordManager.h"
#import "SHMemberUpgradeAlertView.h"
#import "AlertControllerTool.h"
#import <UMCommon/UMCommon.h>
#import <UMCommon/MobClick.h>
......@@ -5,18 +5,9 @@
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.com.ShorthandMaster.www</string>
</array>
<array/>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudKit</string>
<string>CloudDocuments</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>iCloud.com.ShorthandMaster.www</string>
</array>
<array/>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
</dict>
......
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