mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-14 04:39:23 +00:00
Merge pull request #443 from keymanapp/ios-download-path
Do not use remote filename to set local filename
This commit is contained in:
commit
bdf409d71d
1 changed files with 11 additions and 44 deletions
|
|
@ -556,12 +556,8 @@ UIGestureRecognizerDelegate {
|
|||
]
|
||||
downloadQueue!.userInfo = commonUserData
|
||||
|
||||
let kbVersion = keyboard.version
|
||||
let keyboardPath = self.keyboardPath(forFilename: keyboardURL.lastPathComponent,
|
||||
keyboardVersion: kbVersion)
|
||||
|
||||
var request = HTTPDownloadRequest(url: keyboardURL, userInfo: commonUserData)
|
||||
request.destinationFile = keyboardPath?.path
|
||||
request.destinationFile = keyboardPath(forID: keyboardID, keyboardVersion: keyboard.version)?.path
|
||||
request.tag = 0
|
||||
downloadQueue!.addRequest(request)
|
||||
|
||||
|
|
@ -638,7 +634,7 @@ UIGestureRecognizerDelegate {
|
|||
return
|
||||
}
|
||||
|
||||
let keyboardLocalPath = self.keyboardPath(forFilename: filename, keyboardVersion: keyboard.version)!
|
||||
let keyboardLocalPath = self.keyboardPath(forID: keyboard.id, keyboardVersion: keyboard.version)!
|
||||
let isUpdate = latestKeyboardFileVersion(withID: keyboard.id) != nil
|
||||
|
||||
downloadQueue = HTTPDownloader.init(self)
|
||||
|
|
@ -788,8 +784,6 @@ UIGestureRecognizerDelegate {
|
|||
case .downloadFile:
|
||||
let keyboards = request.userInfo[Key.keyboardInfo] as! [InstallableKeyboard]
|
||||
let keyboard = keyboards[0]
|
||||
let kbID = keyboard.id
|
||||
let kbVersion = keyboard.version
|
||||
let isUpdate = request.userInfo[Key.update] as! Bool
|
||||
|
||||
if let statusCode = request.responseStatusCode, statusCode == 200 {
|
||||
|
|
@ -798,7 +792,7 @@ UIGestureRecognizerDelegate {
|
|||
// Download queue finished.
|
||||
downloadQueue = nil
|
||||
registerCustomFonts()
|
||||
kmLog("Downloaded keyboard: \(kbID).", checkDebugPrinting: true)
|
||||
kmLog("Downloaded keyboard: \(keyboard.id).", checkDebugPrinting: true)
|
||||
|
||||
NotificationCenter.default.post(name: Notifications.keyboardDownloadCompleted,
|
||||
object: self,
|
||||
|
|
@ -821,19 +815,10 @@ UIGestureRecognizerDelegate {
|
|||
kmLog("Keyboard download failed: \(error).", checkDebugPrinting: true)
|
||||
|
||||
if !isUpdate {
|
||||
let fileName = request.url.lastPathComponent
|
||||
if fileName.hasJavaScriptExtension {
|
||||
if let kbPath = keyboardPath(forFilename: fileName, keyboardVersion: kbVersion) {
|
||||
try? FileManager.default.removeItem(at: kbPath)
|
||||
}
|
||||
} else if fileName.hasFontExtension {
|
||||
// TODO: Why do we delete a keyboard with that name?
|
||||
if let kbPath = keyboardPath(forFilename: fileName, keyboardVersion: kbVersion) {
|
||||
try? FileManager.default.removeItem(at: kbPath)
|
||||
}
|
||||
if let fontPath = activeFontDirectory()?.appendingPathComponent(fileName) {
|
||||
try? FileManager.default.removeItem(at: fontPath)
|
||||
}
|
||||
// Clean up keyboard file if anything fails
|
||||
// TODO: Also clean up remaining fonts
|
||||
if let kbPath = keyboardPath(forID: keyboard.id, keyboardVersion: keyboard.version) {
|
||||
try? FileManager.default.removeItem(at: kbPath)
|
||||
}
|
||||
}
|
||||
downloadFailed(forKeyboards: keyboards, error: error)
|
||||
|
|
@ -880,23 +865,13 @@ UIGestureRecognizerDelegate {
|
|||
|
||||
let keyboards = request.userInfo[Key.keyboardInfo] as! [InstallableKeyboard]
|
||||
let keyboard = keyboards[0]
|
||||
let kbID = keyboard.id
|
||||
let kbVersion = keyboard.version
|
||||
let isUpdate = request.userInfo[Key.update] as! Bool
|
||||
|
||||
if !isUpdate {
|
||||
let fileManager = FileManager.default
|
||||
let fileName = request.url.lastPathComponent
|
||||
if fileName.hasJavaScriptExtension {
|
||||
if let kbPath = keyboardPath(forFilename: fileName, keyboardVersion: kbVersion) {
|
||||
try? fileManager.removeItem(at: kbPath)
|
||||
}
|
||||
}
|
||||
if fileName.hasFontExtension {
|
||||
// TODO: Check why this doesn't match the error case in downloadRequestFinished().
|
||||
if let kbPath = keyboardPath(forID: kbID, keyboardVersion: kbVersion) {
|
||||
try? fileManager.removeItem(at: kbPath)
|
||||
}
|
||||
// Clean up keyboard file if anything fails
|
||||
// TODO: Also clean up remaining fonts
|
||||
if let kbPath = keyboardPath(forID: keyboard.id, keyboardVersion: keyboard.version) {
|
||||
try? FileManager.default.removeItem(at: kbPath)
|
||||
}
|
||||
}
|
||||
downloadFailed(forKeyboards: keyboards, error: error as NSError)
|
||||
|
|
@ -1373,14 +1348,6 @@ UIGestureRecognizerDelegate {
|
|||
return activeLanguageDirectory()?.appendingPathComponent("\(keyboardID)-\(version).js")
|
||||
}
|
||||
|
||||
func keyboardPath(forFilename filename: String, keyboardVersion: String?) -> URL? {
|
||||
if !filename.contains("-") {
|
||||
let name = "\(filename.dropLast(3))-\(keyboardVersion ?? "1.0").js"
|
||||
return activeLanguageDirectory()?.appendingPathComponent(name)
|
||||
}
|
||||
return activeLanguageDirectory()?.appendingPathComponent(filename)
|
||||
}
|
||||
|
||||
func fontPath(forFilename filename: String) -> URL? {
|
||||
return activeFontDirectory()?.appendingPathComponent(filename)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue