update from infohash
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
package com.muwire.core.update
|
package com.muwire.core.update
|
||||||
|
|
||||||
import com.muwire.core.Event
|
import com.muwire.core.Event
|
||||||
|
import com.muwire.core.InfoHash
|
||||||
|
|
||||||
class UpdateAvailableEvent extends Event {
|
class UpdateAvailableEvent extends Event {
|
||||||
String version
|
String version
|
||||||
String signer
|
String signer
|
||||||
|
String infoHash
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ class UpdateClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.info("new version $payload.version available, publishing event")
|
log.info("new version $payload.version available, publishing event")
|
||||||
eventBus.publish(new UpdateAvailableEvent(version : payload.version, signer : payload.signer))
|
eventBus.publish(new UpdateAvailableEvent(version : payload.version, signer : payload.signer, infoHash : payload.infoHash))
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.log(Level.WARNING,"Invalid datagram",e)
|
log.log(Level.WARNING,"Invalid datagram",e)
|
||||||
|
|||||||
@@ -58,6 +58,22 @@ class MainFrameController {
|
|||||||
originator : core.me))
|
originator : core.me))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void search(String infoHash) {
|
||||||
|
def cardsPanel = builder.getVariable("cards-panel")
|
||||||
|
cardsPanel.getLayout().show(cardsPanel, "search window")
|
||||||
|
def uuid = UUID.randomUUID()
|
||||||
|
Map<String, Object> params = new HashMap<>()
|
||||||
|
params["search-terms"] = infoHash
|
||||||
|
params["uuid"] = uuid.toString()
|
||||||
|
def group = mvcGroup.createMVCGroup("SearchTab", uuid.toString(), params)
|
||||||
|
model.results[uuid.toString()] = group
|
||||||
|
|
||||||
|
def searchEvent = new SearchEvent(searchHash : Base64.decode(infoHash), uuid:uuid)
|
||||||
|
core.eventBus.publish(new QueryEvent(searchEvent : searchEvent, firstHop : true,
|
||||||
|
replyTo: core.me.destination, receivedOn: core.me.destination,
|
||||||
|
originator : core.me))
|
||||||
|
}
|
||||||
|
|
||||||
private def selectedResult() {
|
private def selectedResult() {
|
||||||
def selected = builder.getVariable("result-tabs").getSelectedComponent()
|
def selected = builder.getVariable("result-tabs").getSelectedComponent()
|
||||||
def group = selected.getClientProperty("mvc-group")
|
def group = selected.getClientProperty("mvc-group")
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import com.muwire.core.upload.UploadFinishedEvent
|
|||||||
|
|
||||||
import griffon.core.GriffonApplication
|
import griffon.core.GriffonApplication
|
||||||
import griffon.core.artifact.GriffonModel
|
import griffon.core.artifact.GriffonModel
|
||||||
|
import griffon.core.env.Metadata
|
||||||
import griffon.core.mvc.MVCGroup
|
import griffon.core.mvc.MVCGroup
|
||||||
import griffon.inject.MVCMember
|
import griffon.inject.MVCMember
|
||||||
import griffon.transform.FXObservable
|
import griffon.transform.FXObservable
|
||||||
@@ -38,8 +39,11 @@ import griffon.metadata.ArtifactProviderFor
|
|||||||
|
|
||||||
@ArtifactProviderFor(GriffonModel)
|
@ArtifactProviderFor(GriffonModel)
|
||||||
class MainFrameModel {
|
class MainFrameModel {
|
||||||
|
@Inject Metadata metadata
|
||||||
@MVCMember @Nonnull
|
@MVCMember @Nonnull
|
||||||
FactoryBuilderSupport builder
|
FactoryBuilderSupport builder
|
||||||
|
@MVCMember @Nonnull
|
||||||
|
MainFrameController controller
|
||||||
@Inject @Nonnull GriffonApplication application
|
@Inject @Nonnull GriffonApplication application
|
||||||
@Observable boolean coreInitialized = false
|
@Observable boolean coreInitialized = false
|
||||||
|
|
||||||
@@ -262,7 +266,13 @@ class MainFrameModel {
|
|||||||
|
|
||||||
void onUpdateAvailableEvent(UpdateAvailableEvent e) {
|
void onUpdateAvailableEvent(UpdateAvailableEvent e) {
|
||||||
runInsideUIAsync {
|
runInsideUIAsync {
|
||||||
JOptionPane.showMessageDialog(null, "A new version of MuWire is available from $e.signer. Please update to $e.version")
|
|
||||||
|
int option = JOptionPane.showConfirmDialog(null,
|
||||||
|
"MuWire $e.version is available from $e.signer. You have "+ metadata["application.version"]+" Update?",
|
||||||
|
"New MuWire version availble", JOptionPane.OK_CANCEL_OPTION)
|
||||||
|
if (option == JOptionPane.CANCEL_OPTION)
|
||||||
|
return
|
||||||
|
controller.search(e.infoHash)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user