airsdk / Adobe-Runtime-Support

Report, track and discuss issues in Adobe AIR. Monitored by Adobe - and HARMAN - and maintained by the AIR community.
206 stars 11 forks source link

Samsung Galaxy Note 10 Plus different resolution in landscape mode #407

Open hardcoremore opened 4 years ago

hardcoremore commented 4 years ago

Hi @ajwfrost ,

I have weird problem with Samsung Galaxy Note Plus. My application is landscape only. If I put my phone in landscape orientation and start my game then about 90% of the time reported resolution in AIR app is lower (1080p) than one that is set (I have set it to full resolution 1440x3040). Sometimes it reports correct resolution from landscape mode but very rarely. It looks like it has some timer that in 90% cases is too short or something and it does not have enough time to report correct resolution.

And this only happens if I start my app from landscape mode. If I start my app while phone is in portrait orientation everything works fine.

Also I have set my app to be in full screen mode in app settings on Android

I am using latest AIR SDK 33.1.1.190.

Does anyone else have this issue or this is known issue?

Thanks

hardcoremore commented 4 years ago

Hi @ajwfrost,

Were you unable to check on this? Even after 5 seconds delay before I get stage resolution its wrong on Samsung Galaxy Note 10 Plus if application is started from landscape. This is how I get resolution after 5 seconds delay:

screenSize = new Rectangle(0, 0, flashStage.stageWidth, flashStage.stageHeight);

hardcoremore commented 4 years ago

@ajwfrost

And further tests show that actually my app was running in lower resolution all the time. (2280x1080).

Its pretty impossible to get full resolution on a Samsung Note 10 Plus which is 3040x1440.

Is there someone with Galaxy Note Plus device that can get full resolution?

And even if I can not get full resolution, still I get different resolution if I start app from landscape mode then when I start it in portrait mode.

When I start app in portrait mode I get 2280x1080, but when I start app in landscape mode I get 2367x1121. So actually I get a little higher resolution when I start app in landscape mode.

I have tested this with latest Harman 33.1.1.217 that came out today

FliplineStudios commented 4 years ago

@hardcoremore When you're testing, does your Galaxy Note 10 Plus have its resolution set to FHD+, or set to WQHD+? (Under Settings > Display > Screen Resolution) You can toggle back and forth between both resolutions on that device, where you choose whether the device itself runs apps in 2280x1080 or 3040x1440. If you do have it set to the higher WQHD+ and it's still running apps in the lower FHD+ resolution, I wonder if there's an issue with how AIR determines the resolution on that device.

Also, when you're determining the screen resolution inside your app, are you using stage.stageWidth/stage.stageHeight, or are you using Capabilities.screenResolutionX/Capabilities.screenResolutionY? They can give very different results on some devices, I've found stage.stageWidth is generally what's usable by the app though excluding status and nav bars.

hardcoremore commented 4 years ago

Yes of course my resolution is set to 3040x1440. Capabilities.screenResolutionX/Capabilities.screenResolutionY gives me the same resolution as stage.stageWidth.

Are you able to get full resolution for Samsung 10 Plus?

hardcoremore commented 4 years ago

@ajwfrost

Further testing shows that I can ALWAYS get full WQHD+ (3040x1440) resolution BUT ONLY when DEBUGGING application on the Samsung Note 10 Plus device from Flash Builder. So production 64bit application IS NOT ABLE to get full WQHD+ (3040x1440) resolution but debug version can. It is the same code base.

Can you please check what would be the difference between debug android version and production 64bit android version. This is very important because I am loading different assets based on the resolution and if user is getting different resolution every time he launches the app it will always trigger new assets download.

Thanks in advance,

Caslav

hardcoremore commented 4 years ago

Hi @ajwfrost ,

I have done some more testing on this issue. This is what I discovered:

1) I can trigger full resolution every time only after I do the following steps: a) Turn off "Power Mode" This is not battery power mode but Samsung performance mode option; b) Change resolution to 1080p; c) Start my game; d) Exit my game and also do a force stop (from Settings->Apps->My Game). Because if you close it from task manager it still runs in the backround. I don't know why this happens. e) Change resolution to QWHD+ (1440x3040); f) Run my game again but only when phone is in portrait orientation. And only at this point application is started with highest 1440x3040 resolution.

2) This process above works only once and after that every time I start application it is always opened in lower 1080p resolution. If I want to get highest resolution again I need to change resolution back to 1080p again, start app again, close app again, change resolution to 1440p and then finally start app again only from portrait orientation to get full screen resolution.

3) There is also one more thing. When I go to the Settings->Display->Full Screen Apps->My Game and set it to full screen the message is displayed 'This app may not work properly in full screen'. What is strange about it is that this message is only shown for my game. When I change full screen settings for other apps this message is not shown. Can this be the problem? Is there any settings in AIR that should 'convince' Android or Samsung that app is optimized to work in full screen mode and with highest resolution?

4) But there is also issue where application is opened with different resolution if you opened it from landscape mode and when you opened it from portrait mode. If you opened it from portrait mode it will give you a little lower resolution (1080x2280), but if you opened it from landscape mode it will open app with a resolution of (1121x2367). And this is all working like this while the resolution of the device is set to 1440x3040.

Can you guys test on your phone if you are able to change resolution when you set that app should run in full screen mode do you get the message that says that app may not work properly in full screen?

Thanks

Gokulv617 commented 3 years ago

After changing the AIR version from 33.1.1.345 to 33.1.1.476, some of my player's has also complained me regarding this orientation issue.

Device: Samsung Galaxy S20+ 5G Android version: Android 11 (SDK 30)

ORIGINAL COMMENT:

They flipped the layout from the original version. My brain can't cope. Would be good change if you're left handed

The only thing I did is changing the AIR SDK to 476

ajwfrost commented 3 years ago

Hi - not sure how come I've not actually seen this thread before! but we can look into this. @Gokulv617 can you clarify whether the issue you're seeing is that the resolution isn't high enough, or whether it's changed from one landscape orientation to the other one (i.e. is now upside down)?

Details on your renderMode and whether you use Stage3D, Starling etc would also be useful - there may be texture size limits that are coming into play here too..

thanks