Copy link to clipboard
Copied
Hi
I am using Adobe air 3.9 Beta. It seems that iOS7 give you the the possibility to style the Statusbar. But if you open an adobe air application the statusbar overlays the stage by default. It creates problems with my tabs.
I tested the app with an iPod and IPhone, both with iOs7 Both have the Issues. If I compile the app with Adobe air 3.8 the Statusbar will be displayed correct.
But I can't use air 3.8 because I need the new Icons 120x120 76x76 etc.
Other people have the same issue. See screenshots https://github.com/mutualmobile/MMDrawerController/issues/51
I think the solution is in the info.plist. There is an option for the info.plist UIViewControllerBasedStatusBarAppearance. We need this paramter to activate or deactivate the Statusbar overlay.
any Ideas?
Copy link to clipboard
Copied
Hi Simon,
Which build are you using? 3.9.0.790? If yes then can you please download the AIR SDK & Compiler - with iOS7 Support: 3.9.0.1080 and give it a try as I can't repro this issue in a simple Hello World app with this build?
Also you can wait for the next beta build 3.9.0.880 which is to be released soon and that will be just one build which will have iOS7 support too.
Thanks,
Nimisha
Copy link to clipboard
Copied
My variation of the problem shows different results in 790 and 1080. Here's what I'm doing, and what's different:
When I ask the user to pick a photo from their album, the status bar appears (my app is full screen, and no status bar is showing at first).
With build 790, the status bar is opaque, black background, and it sits on top of the title banner of the picker (the word "PHOTOS" gets obscured). When I return to the app, the status bar remains there, and is sitting on top of my stage content. The picker is iOS 6 styled.
With build 1080 the behavior is identical to the above, except that the status bar is transparent, and the picker is iOS 7 styled. The status bar does not obscure the "Photos" word, that is further down the screen. On returning to the app I see the black text of the status bar sat transparent on top of the top part of my stage content.
If I build for 3.8.0.910, the behavior is the same as it is for 3.9.0.790.
This is with the GM version of iOS 7.
Overall, I think I'll build for 1080, and hope the client doens't notice the remnants of the status bar. Hopefully you will have added the new icons to the next iOS 7 AIR build, and found a way to hide the status bar after showing the picker.
Copy link to clipboard
Copied
More users commenting on this as a bug:
https://bugbase.adobe.com/index.cfm?event=bug&id=3633422
Some seem to want the status bars to appear differently, but many like me and maybe Colin above, want fullscreen apps (like Stage3D based ones) to never show the status bar.
Now in iOS 7, when you use Camera Roll as an example, status bars appear and then won't go away (doesn't happen in earlier iOS versions for fullscreen AIR iOS apps).
The workaround by reseting displayState to fullscreen works, but the nasty side effect for any Stage3D based apps is that Context3D is lost each time, which is ugly.
Copy link to clipboard
Copied
Yes this bug is also happening to my app and obscuring my settings button which is embedded in my top bar.
If the app is fullscreen there should be no status bar at all, but opening the CameraRoll, and choosing a Photo, creates one permanently within the app.
Luckily my apps use GPU render mode, so the workaround is ok.
Copy link to clipboard
Copied
I’m not using Stage3D, so the fullscreen work around solve the problem for me.
When I first used the code in that article, displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE, I was getting some jerkiness, though that went away later. Still, I chose to use StageDisplayState.FULL_SCREEN instead, because we’re not using keyboards.
So, the lines needed are these:
import flash.display.StageDisplayState;
stage.displayState = StageDisplayState.FULL_SCREEN;
I do that line right after the photo album goes away.
Copy link to clipboard
Copied
@Colin
Some might still have to use FULL_SCREEN_INTERACTIVE and not just FULL_SCREEN.
In my app I use StageText, and if I only bring the app back with FULL_SCREEN, then StageText won't trigger the softkeyboard to come back when it tries to take focus.
So even on iOS, the _INTERACTIVE mode might be needed for certain softkeyboard interaction (at least from my tests)
Copy link to clipboard
Copied
Good to know. I mainly went with the non-interactive version because of the stuttering I had seen, and because my app seems happy to work in that mode.
Copy link to clipboard
Copied
@Nimisha I have to say that I am using Apache FLEX 4.10
I use this SDK:
I cant find the build number. If this file (/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Info.plist) is the correct file than my
CFBundleVersion is 3.7.0.1860
the last build from this Link
http://labsdownload.adobe.com/pub/labs/flashruntimes/air/air3-9_sdk_sa_mac.tbz2
Copy link to clipboard
Copied
Hi Simon,
Thanks for reporting the bug, can you please attach a sample app in the bug(which includes swf, app-xml, sources and assets if any) with which the bug can be reproduced at our end also?
Thanks,
Nimisha
Copy link to clipboard
Copied
This is literally all you need to do:
1. Set the app to <display>fullscreen</display>
2. Observe as there's no status bar
3. Run code:
var camera:CameraRoll = new CameraRoll();
camera.browseForImage();
4. Cancel Image browser, and observe as status bar is now stuck on app.
Copy link to clipboard
Copied
The problem is much simpler than you’re thinking, it doesn’t take a whole app to show the problem. You don’t even have to save the FLA.
In a new iOS FLA, put this into the frame 1 script:
import flash.media.CameraRoll;
var c:CameraRoll = new CameraRoll();
c.browseForImage();
In the iOS settings select Full Screen. Do a test movie to a connected iOS 7 device on USB. When you open the app you’ll see full screen stage color, followed by the camera roll browser, and the status bar now showing. Touch Cancel, and you’re back in Flash, but the status bar remains.
Copy link to clipboard
Copied
Thanks Colin and Shawn.
We are able to repro the problem at our end and we are investigating the issue.
-Nimisha
Copy link to clipboard
Copied
Nimisha1,
since you're investigaing on this, you should also consider to add the parameter required to change the StatusBar's text color in the app descriptor file. With the current 3.9 build, the text color is always black, but some apps require it to be white.
Copy link to clipboard
Copied
Hi,
Can you please log a feature request for the same @bugbase.adobe.com?
Thanks,
Nimisha
Copy link to clipboard
Copied
In iOS 7 the status bar text is the same color as the phone. So, for my white iPhone 5 I get white text.
Copy link to clipboard
Copied
I can't confirm that. Both my iPads are actually white and the status bar's text color depends in the app that is currently open. For instance, apps with a white(ish) UI like most of the native apps will change the color to black.
And this is exactly what we need as well. Our AIR app has a dark UI and therefore would need a white status bar, it defaults to black, though, hence is unreadable.
Copy link to clipboard
Copied
@5898845
Have you tried adding the following key/value pairs into your application descriptor XML in the <iPhone> InfoAdditions CDATA:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
Copy link to clipboard
Copied
Thank you so much Jeff!
I didn't know (obviously) about the "UIStatusBarStyleLightContent".
Naturally, that works a charme.
Copy link to clipboard
Copied
Good to hear it works for you. Though I think it still might be useful to control this programmatically through AIR.
This Info.plist technique forces a single setting for the entire app, and while that can work for some apps, iOS 7 with the new UIViewControllerBasedStatusBarAppearance defaulting to true, allows individual Views/ViewControllers to set their own styles on a per view basis, as some apps might have both dark and light screens at different stages, as a single global app setting won't handle all potential needs.
Copy link to clipboard
Copied
For the life of me I can't get the status bar text white. I have the descriptor XML file like this:
<iPhone>
<InfoAdditions>
<![CDATA[<key>UIDeviceFamily</key><array><string>1</string><string>2</string></array>
<key>UIViewControllerBasedStatusBarAppearance</key><true/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIPrerenderedIcon</key><true/>]]>
</InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>
please let me know if im missing something,
Adam
Copy link to clipboard
Copied
Use
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
Copy link to clipboard
Copied
thanks for the reply. I've tried the UIViewControllerBasedStatusBarAppearance to false also but no luck
Copy link to clipboard
Copied
Ok I've read else where in forums that a lot of people are having this issue of not getting a white texted status bar because UIStatusBarStyleLightContent is being ignored. If that's so I would like to know how the original poster on this thread posted pics with it being white.
Copy link to clipboard
Copied
not sure if this will help... but Im using the white text bar and I do NOT have the line for UIVIewControllerBasedStatusBarAppearance.
The only thing I did was add this (direct copy/paste from my -app.xml)
<InfoAdditions><![CDATA[
<key>UIDeviceFamily</key>
<array>
<string>1</string>
<string>2</string>
</array>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
]]></InfoAdditions>