Android Back button like home button #212
|
@ -124,4 +124,11 @@ public class CwtchActivity extends org.qtproject.qt5.android.bindings.QtActivity
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// handle root level back button push as a home button push: don't exit, just go to home screen
|
||||||
|
public static void rootHomeHandle() {
|
||||||
|
Intent i = new Intent(Intent.ACTION_MAIN);
|
||||||
|
i.addCategory(Intent.CATEGORY_HOME);
|
||||||
|
m_instance.startActivity(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package android
|
package android
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"git.openprivacy.ca/openprivacy/libricochet-go/log"
|
||||||
"github.com/therecipe/qt/androidextras"
|
"github.com/therecipe/qt/androidextras"
|
||||||
"github.com/therecipe/qt/core"
|
"github.com/therecipe/qt/core"
|
||||||
)
|
)
|
||||||
|
@ -13,10 +14,12 @@ type CwtchActivity struct {
|
||||||
_ string `property:"notification"`
|
_ string `property:"notification"`
|
||||||
|
|
||||||
_ func(string) `slot:"updateAndroidNotification"`
|
_ func(string) `slot:"updateAndroidNotification"`
|
||||||
|
|
||||||
|
_ func() `signal:"rootHomeButtonHandle,auto"`
|
||||||
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *CwtchActivity) init() {
|
func (c *CwtchActivity) init() {
|
||||||
|
log.Debugln("CwtchActivity.init()")
|
||||||
c.createOngoingNotification()
|
c.createOngoingNotification()
|
||||||
c.ConnectNotificationChanged(c.updateAndroidNotification)
|
c.ConnectNotificationChanged(c.updateAndroidNotification)
|
||||||
}
|
}
|
||||||
|
@ -31,7 +34,7 @@ func (c *CwtchActivity) updateAndroidNotification(n string) {
|
||||||
)
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
println(err.Error())
|
log.Errorf("Error calling Java CwtchActivity.notify(): %v\n", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,6 +48,19 @@ func (c *CwtchActivity) createOngoingNotification() {
|
||||||
)
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
println(err.Error())
|
log.Errorf("Error calling Java CwtchActivity.ongoingNotify(): %v\n", err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *CwtchActivity) rootHomeButtonHandle() {
|
||||||
|
log.Infoln("CwtchActivity.rootHomeButtonHandle()!")
|
||||||
|
var err = androidextras.QAndroidJniObject_CallStaticMethodVoid2Caught(
|
||||||
|
"ca/openprivacy/cwtch/ui/CwtchActivity",
|
||||||
|
"rootHomeHandle",
|
||||||
|
"()V",
|
||||||
|
)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("Error calling Java CwtchActivity.rootHomeButtonHandle(): %v\n", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ type GrandCentralDispatcher struct {
|
||||||
_ func(onion, nick string) `signal:"savePeerSettings,auto"`
|
_ func(onion, nick string) `signal:"savePeerSettings,auto"`
|
||||||
_ func(onion, groupID string) `signal:"inviteToGroup,auto"`
|
_ func(onion, groupID string) `signal:"inviteToGroup,auto"`
|
||||||
_ func(onion, key, nick string) `signal:"setAttribute,auto"`
|
_ func(onion, key, nick string) `signal:"setAttribute,auto"`
|
||||||
_ func(onion string) `signal:"deleteContact,auto""`
|
_ func(onion string) `signal:"deleteContact,auto"`
|
||||||
_ func(locale string) `signal:"setLocale,auto"`
|
_ func(locale string) `signal:"setLocale,auto"`
|
||||||
_ func() `signal:"allowUnknownPeers,auto"`
|
_ func() `signal:"allowUnknownPeers,auto"`
|
||||||
_ func() `signal:"blockUnknownPeers,auto"`
|
_ func() `signal:"blockUnknownPeers,auto"`
|
||||||
|
|
14
qml/main.qml
14
qml/main.qml
|
@ -195,6 +195,20 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
focus: true
|
||||||
|
Keys.onPressed: {
|
||||||
|
if (event.key == Qt.Key_Back) {
|
||||||
|
event.accepted = true
|
||||||
|
if (theStack.currentIndex == theStack.emptyPane) {
|
||||||
|
androidCwtchActivity.rootHomeButtonHandle()
|
||||||
|
} else if (theStack.currentIndex == theStack.userProfilePane || theStack.currentIndex == theStack.groupProfilePane) {
|
||||||
|
theStack.currentIndex = theStack.messagePane
|
||||||
|
} else {
|
||||||
|
theStack.currentIndex = theStack.emptyPane
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PropertyAnimation { id: anmPopup; easing.type: Easing.InQuart; duration: 7000; target: popup; property: "opacity"; to: 0; }
|
PropertyAnimation { id: anmPopup; easing.type: Easing.InQuart; duration: 7000; target: popup; property: "opacity"; to: 0; }
|
||||||
|
|
Reference in New Issue
remove double-double-quote near eol