Post commit review: [Re: hg: openjfx/8u-dev/rt: RT-35147: [Android, Ensemble8] App should react to hardware buttons on Android]

Stephen F Northover steve.x.northover at oracle.com
Mon Jan 6 08:35:48 PST 2014


I like the sound of this.  Applications need to know when they are 
exiting to save data.

Steve

On 2014-01-05 4:16 PM, Stefan Fuchs wrote:
> 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