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

Johan Vos johan at lodgon.com
Sun Jan 5 11:17:39 PST 2014


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