mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Sketch out the GIF manager.
// FREEBIE
This commit is contained in:
parent
ac649a474e
commit
9710964e38
|
@ -16,6 +16,7 @@
|
|||
341BB7491DB727EE001E2975 /* JSQMediaItem+OWS.m in Sources */ = {isa = PBXBuildFile; fileRef = 341BB7481DB727EE001E2975 /* JSQMediaItem+OWS.m */; };
|
||||
341F2C0F1F2B8AE700D07D6B /* DebugUIMisc.m in Sources */ = {isa = PBXBuildFile; fileRef = 341F2C0E1F2B8AE700D07D6B /* DebugUIMisc.m */; };
|
||||
342FCE6B1EF9C375002690AD /* OWS105AttachmentFilePaths.m in Sources */ = {isa = PBXBuildFile; fileRef = 342FCE6A1EF9C375002690AD /* OWS105AttachmentFilePaths.m */; };
|
||||
3430FE181F7751D4000EC51B /* GifManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3430FE171F7751D4000EC51B /* GifManager.swift */; };
|
||||
34330A5A1E7875FB00DF2FB9 /* fontawesome-webfont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34330A591E7875FB00DF2FB9 /* fontawesome-webfont.ttf */; };
|
||||
34330A5C1E787A9800DF2FB9 /* dripicons-v2.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34330A5B1E787A9800DF2FB9 /* dripicons-v2.ttf */; };
|
||||
34330A5E1E787BD800DF2FB9 /* ElegantIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34330A5D1E787BD800DF2FB9 /* ElegantIcons.ttf */; };
|
||||
|
@ -418,6 +419,7 @@
|
|||
341F2C0E1F2B8AE700D07D6B /* DebugUIMisc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DebugUIMisc.m; sourceTree = "<group>"; };
|
||||
342FCE691EF9C375002690AD /* OWS105AttachmentFilePaths.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWS105AttachmentFilePaths.h; path = Migrations/OWS105AttachmentFilePaths.h; sourceTree = "<group>"; };
|
||||
342FCE6A1EF9C375002690AD /* OWS105AttachmentFilePaths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWS105AttachmentFilePaths.m; path = Migrations/OWS105AttachmentFilePaths.m; sourceTree = "<group>"; };
|
||||
3430FE171F7751D4000EC51B /* GifManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifManager.swift; sourceTree = "<group>"; };
|
||||
34330A591E7875FB00DF2FB9 /* fontawesome-webfont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "fontawesome-webfont.ttf"; sourceTree = "<group>"; };
|
||||
34330A5B1E787A9800DF2FB9 /* dripicons-v2.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "dripicons-v2.ttf"; sourceTree = "<group>"; };
|
||||
34330A5D1E787BD800DF2FB9 /* ElegantIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = ElegantIcons.ttf; sourceTree = "<group>"; };
|
||||
|
@ -1406,6 +1408,7 @@
|
|||
76EB041D18170B33006006FC /* network */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3430FE171F7751D4000EC51B /* GifManager.swift */,
|
||||
B6B9ECFA198B31BA00C620D3 /* PushManager.h */,
|
||||
B6B9ECFB198B31BA00C620D3 /* PushManager.m */,
|
||||
);
|
||||
|
@ -2247,6 +2250,7 @@
|
|||
3400C7961EAF99F4008A8584 /* SelectThreadViewController.m in Sources */,
|
||||
34D5CCB11EAE7E7F005515DB /* SelectRecipientViewController.m in Sources */,
|
||||
34B3F88F1E8DF1710035BE1A /* RegistrationViewController.m in Sources */,
|
||||
3430FE181F7751D4000EC51B /* GifManager.swift in Sources */,
|
||||
3448BFCD1EDF0EA7005B2D69 /* OWSMessagesInputToolbar.m in Sources */,
|
||||
34B3F8901E8DF1710035BE1A /* AppSettingsViewController.m in Sources */,
|
||||
34FD93701E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m in Sources */,
|
||||
|
|
|
@ -272,6 +272,8 @@ typedef NS_ENUM(NSInteger, CellState) { kArchiveState, kInboxState };
|
|||
}
|
||||
|
||||
[self updateBarButtonItems];
|
||||
|
||||
[GifManager.sharedInstance test];
|
||||
}
|
||||
|
||||
- (void)updateBarButtonItems
|
||||
|
|
83
Signal/src/network/GifManager.swift
Normal file
83
Signal/src/network/GifManager.swift
Normal file
|
@ -0,0 +1,83 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
@objc class GifManager: NSObject {
|
||||
|
||||
// MARK: - Properties
|
||||
|
||||
static let TAG = "[GifManager]"
|
||||
|
||||
static let sharedInstance = GifManager()
|
||||
|
||||
// Force usage as a singleton
|
||||
override private init() {}
|
||||
|
||||
deinit {
|
||||
NotificationCenter.default.removeObserver(self)
|
||||
}
|
||||
|
||||
private let kGiphyBaseURL = "https://api.giphy.com/"
|
||||
|
||||
private func giphySessionManager() -> AFHTTPSessionManager? {
|
||||
guard let baseUrl = NSURL(string:kGiphyBaseURL) else {
|
||||
Logger.error("\(GifManager.TAG) Invalid base URL.")
|
||||
return nil
|
||||
}
|
||||
// TODO: Is this right?
|
||||
let sessionConf = URLSessionConfiguration.ephemeral
|
||||
// TODO: Is this right?
|
||||
sessionConf.connectionProxyDictionary = [
|
||||
kCFProxyHostNameKey as String: "giphy-proxy-production.whispersystems.org",
|
||||
kCFProxyPortNumberKey as String: "80",
|
||||
kCFProxyTypeKey as String: kCFProxyTypeHTTPS
|
||||
]
|
||||
|
||||
let sessionManager = AFHTTPSessionManager(baseURL:baseUrl as URL,
|
||||
sessionConfiguration:sessionConf)
|
||||
sessionManager.requestSerializer = AFJSONRequestSerializer()
|
||||
sessionManager.responseSerializer = AFJSONResponseSerializer()
|
||||
|
||||
return sessionManager
|
||||
}
|
||||
|
||||
public func test() {
|
||||
guard let sessionManager = giphySessionManager() else {
|
||||
Logger.error("\(GifManager.TAG) Couldn't create session manager.")
|
||||
return
|
||||
}
|
||||
guard let baseUrl = NSURL(string:kGiphyBaseURL) else {
|
||||
Logger.error("\(GifManager.TAG) Invalid base URL.")
|
||||
return
|
||||
}
|
||||
|
||||
// TODO: Should we use a separate API key?
|
||||
let kGiphyApiKey = "3o6ZsYH6U6Eri53TXy"
|
||||
let kGiphyPageSize = 200
|
||||
// TODO:
|
||||
let kGiphyPageOffset = 0
|
||||
// TODO:
|
||||
let query = "monkey"
|
||||
// TODO:
|
||||
guard let queryEncoded = query.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) else {
|
||||
Logger.error("\(GifManager.TAG) Could not URL encode query: \(query).")
|
||||
return
|
||||
}
|
||||
// Logger.error("\(GifManager.TAG) queryEncoded: \(queryEncoded) \(queryEncoded).")
|
||||
let urlString = "/v1/gifs/search?api_key=\(kGiphyApiKey)&offset=\(kGiphyPageOffset)&limit=\(kGiphyPageSize)&q=\(queryEncoded)"
|
||||
// Logger.error("\(GifManager.TAG) urlString: \(urlString).")
|
||||
// Logger.error("\(GifManager.TAG) baseUrl: \(baseUrl).")
|
||||
|
||||
sessionManager.get(urlString,
|
||||
parameters: {},
|
||||
progress:nil,
|
||||
success: { _, value in
|
||||
Logger.error("\(GifManager.TAG) ---- success: \(value)")
|
||||
},
|
||||
failure: { _, error in
|
||||
Logger.error("\(GifManager.TAG) ---- failure: \(error)")
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue