parent
7b4802db83
commit
0419f8077d
|
@ -344,6 +344,7 @@ proc load(self: AppController) =
|
||||||
proc userLoggedIn*(self: AppController) =
|
proc userLoggedIn*(self: AppController) =
|
||||||
self.generalService.startMessenger()
|
self.generalService.startMessenger()
|
||||||
self.load()
|
self.load()
|
||||||
|
self.statusFoundation.userLoggedIn()
|
||||||
|
|
||||||
# Once user is logged in and main module is loaded we need to check if it gets here importing mnemonic or not
|
# Once user is logged in and main module is loaded we need to check if it gets here importing mnemonic or not
|
||||||
# and delete mnemonic in the first case.
|
# and delete mnemonic in the first case.
|
||||||
|
|
|
@ -33,20 +33,28 @@ const UriFormatCommunityChannelLong = "status-im://community-channel/"
|
||||||
QtObject:
|
QtObject:
|
||||||
type UrlsManager* = ref object of QObject
|
type UrlsManager* = ref object of QObject
|
||||||
events: EventEmitter
|
events: EventEmitter
|
||||||
|
protocolUriOnStart: string
|
||||||
|
|
||||||
proc setup(self: UrlsManager, urlSchemeEvent: StatusEvent) =
|
proc setup(self: UrlsManager, urlSchemeEvent: StatusEvent,
|
||||||
|
singleInstance: SingleInstance) =
|
||||||
self.QObject.setup
|
self.QObject.setup
|
||||||
signalConnect(urlSchemeEvent, "urlActivated(QString)", self, "onUrlActivated(QString)", 2)
|
signalConnect(urlSchemeEvent, "urlActivated(QString)", self,
|
||||||
|
"onUrlActivated(QString)", 2)
|
||||||
|
signalConnect(singleInstance, "eventReceived(QString)", self,
|
||||||
|
"onUrlActivated(QString)", 2)
|
||||||
|
|
||||||
proc delete*(self: UrlsManager) =
|
proc delete*(self: UrlsManager) =
|
||||||
self.QObject.delete
|
self.QObject.delete
|
||||||
|
|
||||||
proc newUrlsManager*(events: EventEmitter, urlSchemeEvent: StatusEvent): UrlsManager =
|
proc newUrlsManager*(events: EventEmitter, urlSchemeEvent: StatusEvent,
|
||||||
|
singleInstance: SingleInstance, protocolUriOnStart: string): UrlsManager =
|
||||||
new(result)
|
new(result)
|
||||||
result.setup(urlSchemeEvent)
|
result.setup(urlSchemeEvent, singleInstance)
|
||||||
result.events = events
|
result.events = events
|
||||||
|
result.protocolUriOnStart = protocolUriOnStart
|
||||||
|
|
||||||
proc prepareGroupChatDetails(self: UrlsManager, urlQuery: string, data: var StatusUrlArgs) =
|
proc prepareGroupChatDetails(self: UrlsManager, urlQuery: string,
|
||||||
|
data: var StatusUrlArgs) =
|
||||||
var urlParams = rsplit(urlQuery, "/u/")
|
var urlParams = rsplit(urlQuery, "/u/")
|
||||||
if(urlParams.len > 0):
|
if(urlParams.len > 0):
|
||||||
data.groupName = urlParams[0]
|
data.groupName = urlParams[0]
|
||||||
|
@ -55,8 +63,11 @@ QtObject:
|
||||||
else:
|
else:
|
||||||
info "wrong url format for group chat"
|
info "wrong url format for group chat"
|
||||||
|
|
||||||
proc onUrlActivated*(self: UrlsManager, url: string) {.slot.} =
|
proc onUrlActivated*(self: UrlsManager, urlRaw: string) {.slot.} =
|
||||||
var data = StatusUrlArgs()
|
var data = StatusUrlArgs()
|
||||||
|
let url = urlRaw.multiReplace((" ", ""))
|
||||||
|
.multiReplace(("\r\n", ""))
|
||||||
|
.multiReplace(("\n", ""))
|
||||||
|
|
||||||
# Open `url` in the app's browser
|
# Open `url` in the app's browser
|
||||||
if url.startsWith(UriFormatBrowserShort):
|
if url.startsWith(UriFormatBrowserShort):
|
||||||
|
@ -129,4 +140,9 @@ QtObject:
|
||||||
info "Unsupported deep link structure: ", url
|
info "Unsupported deep link structure: ", url
|
||||||
return
|
return
|
||||||
|
|
||||||
self.events.emit(SIGNAL_STATUS_URL_REQUESTED, data)
|
self.events.emit(SIGNAL_STATUS_URL_REQUESTED, data)
|
||||||
|
|
||||||
|
proc userLoggedIn*(self: UrlsManager) =
|
||||||
|
if self.protocolUriOnStart != "":
|
||||||
|
self.onUrlActivated(self.protocolUriOnStart)
|
||||||
|
self.protocolUriOnStart = ""
|
|
@ -30,5 +30,10 @@ proc delete*(self: StatusFoundation) =
|
||||||
self.signalsManager.delete()
|
self.signalsManager.delete()
|
||||||
self.urlsManager.delete()
|
self.urlsManager.delete()
|
||||||
|
|
||||||
proc initUrlSchemeManager*(self: StatusFoundation, urlSchemeEvent: StatusEvent) =
|
proc initUrlSchemeManager*(self: StatusFoundation, urlSchemeEvent: StatusEvent,
|
||||||
self.urlsManager = newUrlsManager(self.events, urlSchemeEvent)
|
singleInstance: SingleInstance, protocolUriOnStart: string) =
|
||||||
|
self.urlsManager = newUrlsManager(self.events, urlSchemeEvent, singleInstance,
|
||||||
|
protocolUriOnStart)
|
||||||
|
|
||||||
|
proc userLoggedIn*(self: StatusFoundation) =
|
||||||
|
self.urlsManager.userLoggedIn()
|
|
@ -23,7 +23,7 @@ proc determineFleetsPath(): string =
|
||||||
|
|
||||||
proc determineOpenUri(): string =
|
proc determineOpenUri(): string =
|
||||||
if OPENURI.len > 0:
|
if OPENURI.len > 0:
|
||||||
result = $(%* { "uri": OPENURI })
|
result = OPENURI
|
||||||
|
|
||||||
proc determineStatusAppIconPath(): string =
|
proc determineStatusAppIconPath(): string =
|
||||||
if defined(production):
|
if defined(production):
|
||||||
|
@ -109,7 +109,7 @@ proc mainProc() =
|
||||||
let osThemeEvent = newStatusOSThemeEventObject(singletonInstance.engine)
|
let osThemeEvent = newStatusOSThemeEventObject(singletonInstance.engine)
|
||||||
let urlSchemeEvent = newStatusUrlSchemeEventObject()
|
let urlSchemeEvent = newStatusUrlSchemeEventObject()
|
||||||
|
|
||||||
statusFoundation.initUrlSchemeManager(urlSchemeEvent)
|
statusFoundation.initUrlSchemeManager(urlSchemeEvent, singleInstance, openUri)
|
||||||
|
|
||||||
if not defined(macosx):
|
if not defined(macosx):
|
||||||
app.icon(app.applicationDirPath & statusAppIconPath)
|
app.icon(app.applicationDirPath & statusAppIconPath)
|
||||||
|
|
10
ui/main.qml
10
ui/main.qml
|
@ -185,16 +185,6 @@ StatusWindow {
|
||||||
applicationWindow.raise()
|
applicationWindow.raise()
|
||||||
applicationWindow.requestActivate()
|
applicationWindow.requestActivate()
|
||||||
}
|
}
|
||||||
|
|
||||||
function onEventReceived(eventStr) {
|
|
||||||
let event = JSON.parse(eventStr)
|
|
||||||
if (event.hasOwnProperty("uri")) {
|
|
||||||
// Not Refactored Yet
|
|
||||||
// chatsModel.handleProtocolUri(event.uri)
|
|
||||||
} else {
|
|
||||||
console.warn("Unknown event received: " + eventStr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The easiest way to get current system theme (is it light or dark) without using
|
// The easiest way to get current system theme (is it light or dark) without using
|
||||||
|
|
Loading…
Reference in New Issue