Having trouble with the kindle fire 7" display

I hope someone else has found a fix for this, please help me.

I’m having a bit of a mare with the Kindle Fire 7" (1024 x 600)

The screen is already very narrow and to make matters worse they have a permanent black bar (not the status bar) along the bottom with the back, home & menu buttons taking up space on the screen because they don’t physically have those buttons on the actual device. I’ve measured the black bar and it’s taking up 72 pixels so the actual usable screen for the Kindle Fire is only 1024 x 528 which is a very long and narrow 2:1 aspect ratio that I never planned for.

On all other devices with a 600 x 1024 screen my game looks fine but on the Kindle some of my scene’s don’t fit on the screen so my suspicion is correct that you only get 528 pixels, is there a way to tell the device to hide the bar so I can claim back the proper screen space, if so how would people use the back button and would we get the full 600 pixels back?

I’m ready to publish to Amazon and this is all that’s standing in my way, it will be a huge amount of work to resize and re-position everything.

If the bar can’t be hidden has anyone come up with a workaround?

Thanks.

Hey QuizMaster,

I have the same device and looked into various ways to get rid of that bar via Corona’s API but without success. :frowning: I have seen other non-Corona apps get rid of it, and as a user I can swipe up from the bottom of the screen to get it to reappear. Clearly, there is an API to hide it but Corona just doesn’t use it. Unless you have Corona Enterprise or the Corona devs very quickly find the fix, you might be stuck with the bar.

https://forums.coronalabs.com/topic/44626-is-it-possible-to-hide-the-android-navigation-bar-the-one-with-the-home-and-back-buttons-in-corona-sdk/

Thanks Alex!

OK, I’m back and still having issues only with the Kindle, as far as I know.

My device is the Kindle Fire 7" 5th Gen

Corona Version: 3.0.0   Build: 2016.2879

native.setProperty( “androidSystemUiVisibility”, “immersiveSticky” ) – Does nothing!

I’ve set this property at the top of my main.lua then again at the top of my logo scene, the next scene after main, the navigation bar remains.

Here’s the top of my main.lua (my main doesn’t draw any graphics, it just loads variables and sets up tables etc.)

local storyboard = require ("storyboard") local scene = storyboard.newScene() socket = require("socket") system.activate( "multitouch" ) system.setIdleTimer( false ) display.setStatusBar(display.HiddenStatusBar) native.setProperty( "androidSystemUiVisibility", "immersiveSticky" )

Also the orientation isn’t locking, it does on my Samsung Galaxy Tab, here’s the build settings.

settings = { orientation = { default = "landscapeRight", supported = { "landscapeRight" }, },

Amazon’s docs say that the navigation bar must be hidden and that the screen must lock properly or my app will be rejected.

Also they say that the app should force hardware acceleration, what is the code for this?

Please somebody help I’m desperate to get my game on the Amazon market place.

Have you tried going to the most recent public release, or perhaps one of the more recent daily builds?

Hi Alex, first of all, thanks for trying to help. :smiley:

The daily build I have now is not very old and unless one of the Corona Staff can say that these issues have been fixed recently then I’m reluctant to try it because it’s never helped me in the past, it just means I lose another day or two. Amazon’s tester program is terrible, you can’t simply upload a new APK and update the current one on your device, you have to end the current test, create a new test, upload the new APK, add testers, tell the testers to remove the current APK from the cloud then wait a few hours until they install the new test or they will get the old one (even though you deleted it), it’s convoluted and unintuitive.

I’m on my 18th test and although my game has always run perfect and the in app purchases work as expected and are restored with a new install (which was my biggest worry) I’m being held back by a few lines of code that don’t do what they are supposed to, as I pointed out above.

I’ve since moved the code around and tried again but the navigation bar remains.

I’ve moved all the system commands to the very top of my main.lua before anything else happens.

native.setProperty( "androidSystemUiVisibility", "immersiveSticky" ) socket = require("socket") system.activate( "multitouch" ) system.setIdleTimer( false ) display.setStatusBar(display.HiddenStatusBar) math.randomseed( os.time() ) local storyboard = require ("storyboard") ...

I’ve done the same in the next scene…

native.setProperty( "androidSystemUiVisibility", "immersiveSticky" ) local storyboard = require ("storyboard") ...

I’ve put this also in my app suspended code…

local function onSystemEvent( event ) if event.type == "applicationSuspend" then if \_G.pauseGame then native.setProperty( "androidSystemUiVisibility", "default" ) \_G.pauseGame() end return true elseif event.type == "applicationResume" then if \_G.resumeGame then native.setProperty( "androidSystemUiVisibility", "immersiveSticky" ) \_G.resumeGame() end return true end end Runtime:addEventListener( "system", onSystemEvent )

And made the app suspend and restart, but the navigation bar persists.

All I can think of is that I might be missing a plugin for the command native.setProperty but the docs don’t mention anything.

Good news is that the orientation seems to be locked now, god knows why all of a sudden because I never changed my build settings.

The last point in my previous post needs an answer too, how do I force hardware acceleration? Maybe it’s done already with Corona but I don’t know and I’m having trouble finding anything in the Forums on the subject so your help would be greatly appreciated.

@QuizMaster, can you provide a link to which Amazon docs you’re getting this info from. I believe the hardware acceleration requirement is already covered within Corona, but seeing exactly what you’re reading would help confirm this.

Hi Ajay

Sure, here’s the link to Amazon’s test criteria https://developer.amazon.com/public/support/submitting-your-app/tech-docs/03-pre-submission-assessment-guide

I’m quite confident that my game meets all the requirements apart from what I’ve mentioned in this topic.

I hope you can help. :slight_smile:

Hi QuizMaster,

After looking at the docs you sent, and the Corona core code, here’s what I’ve found out about the various issues you’ve mentioned.

  1. Regarding Hardware Acceleration, any Android app built with the Corona Simulator will have this requirement covered.
  2. Regarding native.setProperty( “androidSystemUiVisibility”, “…” ), this isn’t allowed on Amazon devices. There may have been some legacy reason this was done that no longer applies, but we’ll need to investigate more.
  3. How did you verify that orientation lock was suddenly working? If you’re using landscapeRight as the default orientation, what landscapeRight maps to may differ between Fire devices.

Hi Ajay

  1. Good news about the hardware acceleration.

  2. That will explain why the command doesn’t work then. Is there an alternative? Being a requirement I hope there is!

  3. Nope, it’s not working again, looks like it could be intermittent, is there anything you can suggest because my build settings should force the Kindle to only display in Landscape Right, correct? Here’s my entire build settings…

    settings = { orientation = { default = “landscapeRight”, supported = { “landscapeRight” }, }, android = { versionCode = “40”, googlePlayGamesAppId = “769510xxxxxx”, isGame = true, usesPermissions = { “android.permission.INTERNET”, “android.permission.ACCESS_NETWORK_STATE”, “android.permission.WRITE_EXTERNAL_STORAGE”, “com.android.vending.CHECK_LICENSE”, “com.android.vending.BILLING”, “android.permission.READ_EXTERNAL_STORAGE” }, usesFeatures = { { name = “android.hardware.gyroscope”, required = false }, { name = “android.permission.INTERNET”, required = false }, }, }, plugins = { [“CoronaProvider.native.popup.social”] = { publisherId = “com.coronalabs” }, [“plugin.amazon.iap”] = { publisherId = “com.coronalabs”, supportedPlatforms = { [“android-kindle”]=true } }, [“plugin.google.iap.v3”] = { publisherId = “com.coronalabs”, supportedPlatforms = { android=true } }, [“plugin.google.play.services”] = { publisherId = “com.coronalabs”, supportedPlatforms = { android=true } }, }, }

Thanks very much so far for looking into this for me, I really appreciate your help.

Regards,

Martin.

We’re working on opening systemUiVisibility to Amazon devices. Stay tuned.

As far as orientation is concerned, is your app just switching between different landscape orientations, or is it somehow hitting portrait ones as well?

From my experience, I have seen Android devices that simply don’t respect the orientation settings given at runtime and it could be that either your Kindle (or all of the Kindles as a matter of fact) behaves this way as well.

Amazon seems keen to push people to use sensor-based orientation settings, so I wouldn’t be surprised if they made Fire OS behave this way on purpose.

Is there a reason your app can’t support landscapeRight and landscapeLeft?

Yes it’s just switching between different landscape orientations.

One of the games within my game is a marble maze and if the device is tilted too far the screen flips so it is a concern.

Great news on the new feature!

Any idea how long it might take to get systemUiVisibility working on Amazon devices?

I’m ready to submit my game for review.

Just to let you know that I submitted my game for review and it passed all the tests with Amazon even though the task bar is not hidden and the screen orientation is not locked.

If you would like to see it it’s here: https://www.amazon.com/Magical-Games-Game-Show-Adventure/dp/B01G8X640C

I’m currently working on making the Amazon Underground (Completely Free) version.

In the mean time please keep me posted about when the systemUiVisibility is available for Amazon devices as this will improve the look of my game on them.

Many thanks.

Hi,

I’m having the same issue, can’t hide the soft navigation bar on my 7" Amazon Fire.  

I have a few libgdx projects and can hide the bar setting ‘useImmersiveMode’ to true.

Would be interested if there is any progress or anything needs testing.

Thanks, Allan

Hey QuizMaster,

I have the same device and looked into various ways to get rid of that bar via Corona’s API but without success. :frowning: I have seen other non-Corona apps get rid of it, and as a user I can swipe up from the bottom of the screen to get it to reappear. Clearly, there is an API to hide it but Corona just doesn’t use it. Unless you have Corona Enterprise or the Corona devs very quickly find the fix, you might be stuck with the bar.

https://forums.coronalabs.com/topic/44626-is-it-possible-to-hide-the-android-navigation-bar-the-one-with-the-home-and-back-buttons-in-corona-sdk/

Thanks Alex!

OK, I’m back and still having issues only with the Kindle, as far as I know.

My device is the Kindle Fire 7" 5th Gen

Corona Version: 3.0.0   Build: 2016.2879

native.setProperty( “androidSystemUiVisibility”, “immersiveSticky” ) – Does nothing!

I’ve set this property at the top of my main.lua then again at the top of my logo scene, the next scene after main, the navigation bar remains.

Here’s the top of my main.lua (my main doesn’t draw any graphics, it just loads variables and sets up tables etc.)

local storyboard = require ("storyboard") local scene = storyboard.newScene() socket = require("socket") system.activate( "multitouch" ) system.setIdleTimer( false ) display.setStatusBar(display.HiddenStatusBar) native.setProperty( "androidSystemUiVisibility", "immersiveSticky" )

Also the orientation isn’t locking, it does on my Samsung Galaxy Tab, here’s the build settings.

settings = { orientation = { default = "landscapeRight", supported = { "landscapeRight" }, },

Amazon’s docs say that the navigation bar must be hidden and that the screen must lock properly or my app will be rejected.

Also they say that the app should force hardware acceleration, what is the code for this?

Please somebody help I’m desperate to get my game on the Amazon market place.

Have you tried going to the most recent public release, or perhaps one of the more recent daily builds?