def __init__(self, title, handler, image=None, attributes=None, state=False, discoverability_title=None, ): self._menu = None self._handler = handler self._title = title self._image = image self._attributes = attributes self._state = state self._discoverability_title = discoverability_title def _action_handler(_cmd): self._handler( self._menu.button, self ) _action_handler_block = objc_util.ObjCBlock( _action_handler, restype=None, argtypes=[ctypes.c_void_p]) objc_util.retain_global(_action_handler_block) self._objc_action = UIAction.actionWithHandler_(_action_handler_block) self._update_objc_action()
def get(self, url=None, auth=None, headers=None, params=None): # Make url if params: params_encoded = urlencode(params) else: params_encoded = "" url = objc_util.nsurl("{}?{}".format(url, params_encoded)) #request = objc_util.ObjCClass("NSURLRequest").request(URL=url) request = objc_util.ObjCClass( 'NSMutableURLRequest').alloc().initWithURL_(url) # Make headers if headers: for key in headers: request.setValue_forHTTPHeaderField_(headers[key], key) if auth: userName, password = auth authStr = "%s:%s" % (userName, password) authencode = base64.b64encode(bytes(authStr)) request.addValue_forHTTPHeaderField_("Basic %s" % authencode, "Authorization") configuration = objc_util.ObjCClass( "NSURLSessionConfiguration").defaultSessionConfiguration() session = objc_util.ObjCClass( "NSURLSession").sessionWithConfiguration_(configuration) completionHandler = objc_util.ObjCBlock( self.responseHandlerBlock, restype=None, argtypes=[c_void_p, c_void_p, c_void_p, c_void_p]) objc_util.retain_global(completionHandler) #dataTask = session.dataTask(Request=request, completionHandler=completionHandler) dataTask = session.dataTaskForRequest_completion_( request, completionHandler) dataTask.resume() # Wait for completions wait = True while wait: if self.data != None: wait = False return json.loads(self.data) elif self.error != None: wait = False raise RequestsException(["Error in request", self.error])
def validate(url, params, responseHandler): if params: params_encoded = urllib.parse.urlencode(params) else: params_encoded = "" url = objc_util.nsurl("{}?{}".format(url, params_encoded)) request = NSURLRequest.request(URL=url) configuration = NSURLSessionConfiguration.defaultSessionConfiguration() session = NSURLSession.session(Configuration=configuration) completionHandler = objc_util.ObjCBlock( responseHandler, restype=None, argtypes=[c_void_p, c_void_p, c_void_p, c_void_p]) objc_util.retain_global(completionHandler) dataTask = session.dataTask(Request=request, completionHandler=completionHandler) dataTask.resume()
def __init__(self, url=None, params=None): self.data = None if params: params_encoded = urlencode(params) else: params_encoded = "" url = objc_util.nsurl("{}?{}".format(url, params_encoded)) request = objc_util.ObjCClass("NSURLRequest").request(URL=url) configuration = objc_util.ObjCClass( "NSURLSessionConfiguration").defaultSessionConfiguration() session = objc_util.ObjCClass("NSURLSession").session( Configuration=configuration) completionHandler = objc_util.ObjCBlock( self.responseHandlerBlock, restype=None, argtypes=[c_void_p, c_void_p, c_void_p, c_void_p]) objc_util.retain_global(completionHandler) dataTask = session.dataTask(Request=request, completionHandler=completionHandler) dataTask.resume()
unc = UNUserNotificationCenter.currentNotificationCenter() unc.requestAuthorizationWithOptions_completionHandler_((1<<2) | (1<<1) | (1<<0), None) unc.setDelegate_(DGUNUNCDelegate.alloc().init()) doit = UNNotificationAction.actionWithIdentifier_title_options_("doit", "Just DO IT!", 0) ornot = UNNotificationAction.actionWithIdentifier_title_options_("ornot", "Or not", 0) foocat = UNNotificationCategory.categoryWithIdentifier_actions_intentIdentifiers_options_("foocat", [doit, ornot], [], 0) unc.setNotificationCategories_({foocat}) def errorhandler_imp(_cmd, error): if error is None: print("No errors!") else: print("Error!") print(objc_util.ObjCInstance(error)) errorhandler = objc_util.ObjCBlock(errorhandler_imp, None, [ctypes.c_void_p, ctypes.c_void_p]) def main(): foocontent = UNMutableNotificationContent.alloc().init() foocontent.setTitle_("Motivation") foocontent.setBody_("Don't let your dreams be dreams.") foocontent.setCategoryIdentifier_("foocat") footrigger = UNTimeIntervalNotificationTrigger.triggerWithTimeInterval_repeats_(3, False) foorequest = UNNotificationRequest.requestWithIdentifier_content_trigger_("foorequest", foocontent, footrigger) unc.addNotificationRequest_withCompletionHandler_(foorequest, errorhandler) if __name__ == "__main__": main()