Post commit review: [Re: hg: openjfx/8u-dev/rt: RT-35147: [Android, Ensemble8] App should react to hardware buttons on Android]
Stefan Fuchs
snfuchs at gmx.de
Sun Jan 5 13:16:54 PST 2014
Well, if we build some automatic back button handling into FXActivity, I
wouldn't call Platform.exit() directly.
It should be enough to close the root scene. According to the JavaFX
Application lifecycle
http://docs.oracle.com/javafx/2/api/javafx/application/Application.html
closing the last application window exits the application. This would
allow the application to hook into close events, like when the window
close button or Alt-F4 had been hit on other platforms.
But otherwise, I agree, that it is that easy.
Stefan
Johan Vos wrote:
> I am not sure I completely understand the context, but I agree that the
> JavaFX apps on Android are different from the native apps since we have
> only 1 activity.
> There are a number of rules that have to be followed before an app is
> considered for the Play store:
> http://developer.android.com/distribute/googleplay/quality/core.html
>
> What about this policy: JavaFX Applications themselves are responsible for
> doing the right thing when back-button is pressed (e.g. close dialogs).
> In case the JavaFX Application considers the back-button to be "the final"
> one (e.g. a back-button is pressed while the "root-scene" is shown, it
> calls Platform.exit() (on the JavaFX Thread). We can detect this in
> FXActivity (or at least in DalvikLauncher, where we launched the thread),
> and close the application.
>
> Perhaps I am missing something here, since this sounds too easy?
>
> - Johan
>
>
> 2014/1/4 tomas.brandalik at oracle.com <tomas.brandalik at oracle.com>
>
>> Hi,
>> back button is really tricky one. I don't think that for javafx apps it
>> should map to how back button works in native android applications. On
>> Android it moves to previous activity or exits (if the last activity has
>> been reached) in webkit it goes one page back but this is not that
>> important now.
>> In our case we have always only one activity (FXActivity which doesn't do
>> much just prepares surface for opengl and resends touch or key presses to
>> glass) We don't spawn new activities.
>>
>> 1. Back button should close dialogs by default.
>> 2. Back button should be handled by the application itself and if not
>> consumed by application it should go to exit (probably with a default
>> yes/no dialog)
>> I have problem to get notification if the back button had been handled by
>> the javafx application. That's the main problem :(
>>
>> -Tomas
>>
>>
>> On 01/03/2014 11:00 PM, Stephen F Northover wrote:
>>
>>> If you feel that further work needs to be done here, please enter a JIRA
>>> and include this discussion.
>>>
>>> Thanks,
>>> Steve
>>>
>>> On 2014-01-03 2:43 PM, Stefan Fuchs wrote:
>>>
>>>> Hi,
>>>>
>>>> well, the back button is always used to go back one dialog level, until
>>>> the start screen has be reached. (Dialogs are canceled, browsers go to
>>>> previous website, etc...)
>>>> If you press the back button on the start screen of the app, I found
>>>> three different strategies to handle the back button:
>>>> 1. Exit the app on first button press (examples: WhatsApp, Google Maps)
>>>> 2. Hide the app on first button press and let the system kill the
>>>> application, if system memory is exhausted. (examples: FireFox, Chrome)
>>>> 3. Exit the app on second button press (note that most apps using this
>>>> strategy print a notice message, after the first key press, which is
>>>> currently not implemented for Ensemble8) (examples: Samsungs App Store)
>>>>
>>>> Stefan
>>>>
>>>>
>>>> Stephen F Northover wrote:
>>>>
>>>>> Hi Alex,
>>>>>
>>>>> Samples were changed to support Android. Apparently, hitting escape
>>>>> twice should exit an application and this behavior was coded into
>>>>> EnsembleApp. I'm not an Android guy but if this is standard Android
>>>>> behavior, it should be part of JFX, not the example code.
>>>>>
>>>>> Anyhow, I'll let Stefan or Johan comment on this and they can enter a
>>>>> follow on JIRA.
>>>>>
>>>>> Steve
>>>>>
>>>>> On 2014-01-03 12:32 PM, hang.vo at oracle.com wrote:
>>>>>
>>>>>> Changeset: 6f0901527ad0
>>>>>> Author: snorthov
>>>>>> Date: 2014-01-03 12:23 -0500
>>>>>> URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/6f0901527ad0
>>>>>>
>>>>>> RT-35147: [Android, Ensemble8] App should react to hardware buttons on
>>>>>> Android
>>>>>> Reviewed-by: snorthov
>>>>>> Contributed-by: Stefan Fuchs <snfuchs at gmx.de>
>>>>>>
>>>>>> ! apps/samples/Ensemble8/src/app/java/ensemble/EnsembleApp.java
>>>>>> ! apps/samples/Ensemble8/src/app/java/ensemble/PlatformFeatures.java
>>>>>> ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/Description.java
>>>>>>
>>>>>> ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/
>>>>>> SamplePageContent.java
>>>>>> ! apps/samples/Ensemble8/src/app/java/ensemble/samplepage/
>>>>>> SourceTab.java
>>>>>> ! apps/samples/Ensemble8/src/app/java/ensemble/util/
>>>>>> FeatureChecker.java
>>>>>> ! modules/base/src/main/java/com/sun/javafx/PlatformUtil.java
>>>>>>
>>>>>>
>>>>>
More information about the openjfx-dev
mailing list