CloudPlayer: DIY HiFi Music Streaming Solution

In our Helpful Guide to Music Streaming Services, we mentioned several different services … more

Optimize Battery Life with This Useful App

Battery life is an important aspect of your smartphone, especially if you use it for more … more

The OnePlus 2 & The Year of Smartphone Compromises

We are very close to entering the last third of 2015, and we have now seen many of … more

OnePlus 2 Teardown, Major Android Vulnerability – XDA TV

The OnePlus 2 has been officially released. That and much more news is … more

[APP][22.05.2011][(W)VGA]ActionScreen Landscape support v0.6[Developers please help]

829 posts
Thanks Meter: 63
By Skrobel, Senior Member on 17th November 2010, 10:08 PM
Post Reply Subscribe to Thread Email Thread

I liked the idea of an ActionScreen ever since I met with this program for a first time (it was on a Sense 2.1 stock ROM so it was really handy). ActionScreen is a simple application which shows the user a screen with 12 (sometimes more) shortcuts which can start/toggle frequently used programs or functions.

But as I am a Rhodium owner, I always had problem with Landscape orientation. The Smaberg's ActionScreen was showing only 2 rows of icons in Landscape or wasn't showing at all. So with the encouragement by Jackos I started to develop my own application based very much on the original idea of the 12-icon ActionScreen from Smaberg. As I am definitely not a programmer I started to learn Basic4PPC for a starter. Then, after I discovered how many environment restrictions it gives I switched to C#.

What I present here is a version which has full Landscape support (the app will run without problems in Landscape and will change it's layout properly even if there will be an orientation change while program is shown).

* NEW * - The whole app has been rewritten from scratch. Also changed to the C# + NetCF. This has not solved all of my memory problems but allowed me to improve on many other fields. The details are in the change log in post #2.

* NEW 2* - I added a VGA version of my ActionScreen. Special thanks to xOverkill who encouraged me to start working on VGA and then provided a great help with testing on Raphael.

With this version you can easily customise each link function by changing command and parameter in:
[HKEY_CURRENT_USER\Software\Skrobel\ActionScreen\Li nkXX]
where "XX" is a number of the icon starting with 00 to 11.

You can change the icons as well (all the graphic files are stored in program folder). From v0.5 you can also change the colors of the background (at the moment only solid colours are supported) and the label texts.

And last but not least you can change the text of the labels under each icon in the same place in registry. This can come in handy when you want to change the language for instance.

There is a small readme.txt file attached to this post where I put a brief description of the settings/configuration possiblilities.


Unfortunately some problems have been solve and some not:
- I have problems to effectively dispose the resources upon program minimization. The C# or NetCF uses Garbage Collector for all the disposed controls/images, so the app memory does not decrease when it's minimized (and is about 1300 kB). I can't find a way to do it better
- the WinCE and WinMo environment doesn't support a "minimize form" event. So I used a little trick to override native Windows.Forms.Hide with SW_MINIMIZE imported from coredll.dll. Buuut this doesnt really minimize the app, but only get the window behind all other windows, but in front of Titanium or TodayScreen. That's why I suggest using this app ONLY on Sense/TF3D enabled ROMs or otherwice you will se my app instead of the TodayScreen
- Because of the above my app is visible also during system startup until Sense/TF3D is fully loaded

Actually I found a solution for SW_MINIMIZE (it was easier than I thought). So for now my only concern is to make the app less memory consuming and possible yet faster.

Soooo, if any of you guys could help me to improve the app (especially the memory management) I can share all my current experience as well as the source code. HELP PLEASE

Enjoy! Any feedback is welcome. I will try to improve as soon as my programming knowledge raises Or of course when someone agrees to help me
Attached Thumbnails
Click image for larger version

Name:	ScreenShot1.jpg
Views:	923
Size:	29.6 KB
ID:	443451   Click image for larger version

Name:	ScreenShot5.jpg
Views:	671
Size:	29.5 KB
ID:	443452   Click image for larger version

Name:	ScreenShot2.jpg
Views:	579
Size:	31.4 KB
ID:	443453   Click image for larger version

Name:	ScreenShot4.jpg
Views:	561
Size:	31.3 KB
ID:	443454   Click image for larger version

Name:	ScreenShot6.jpg
Views:	942
Size:	43.0 KB
ID:	443455  
Attached Files
File Type: txt readme_v0.6.txt - [Click for QR Code] (6.2 KB, 133 views)
Last edited by Skrobel; 22nd May 2011 at 03:57 PM. Reason: v0.6
The Following 2 Users Say Thank You to Skrobel For This Useful Post: [ View ]
17th November 2010, 10:13 PM |#2  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
22.05.2011 - v0.6
+ Added version for VGA resolution
+ Minor bugfixes concerning exceptions and image handling.
+ Added a new setting "ShowOnHTCKeyboard" enabling ActionScreen to show up when the hardware keyboard is open (refer to readme for more information)
- still high memory usage when idle (currently approx. 1300 kB) - looking for a better way to dispose resources during minimize

10.05.2011 - v0.5
+ Rewritten from scratch once again to avoid unnecessary code
+ much faster to load/unload/appear/disappear
+ AppToDate support (thanks for the tips Jackos)
+ Both landscape modes support (right- and left-handed). The app will now follow the GUI
+ Added "splash screen" during first load for eye-friendliness before system boots completely
+ Added possibility to change background and text colors (although not very comfortable at the moment)
+ Changed the settings location in registry to a more proper place. Therefore you need to uninstall the previous version manually before installing v0.5
- still high memory usage when idle (currently approx. 1250 kB) - looking for a better way to dispose resources during minimize

13.02.2011 - v0.3 - quick bugfix version
+ Fixed SW_MINIMIZE so that app minimizes instead of going to back
+ support for non-Sense interfaces (Today Screen and Titanium tested)
+ the app starts almost unnoticeably during system startup
- still high memory usage when idle (currently approx. 1300 kB) - looking for a better way to dispose resources during minimize

13.02.2011 - v0.2
+ Whole application rewritten from scratch in C# + NET CF 3.5
+ commands, parameters, paths to the images are now stored in registry
look into: [HKLM\SOFTWARE\HTC\Biotouch\ActionScreen]
+ also item names are now stored in registry for easy language changing
+ the app is loaded in the memory during system startup and it's maximised upon calling
- high memory usage when idle (currently approx. 1300 kB) - looking for a better way to dispose resources during minimize
- uneffective SW_MINIMIZE method
- only TF3D/Sense 2.1/Sense 2.5 compatible - it's not compatible with Titanium/Today screen
- the app is visible during system startup until Sense/TF3D is fully loaded - the SW_MINIMIZE issue

17.11.2010 - v0.1 - initial release
- Written in Basic4PPC
+ Landscape support
- Due to several reasons the app doesn't stay in memory, it's launched on each call
- no localization
- no configurations possible, the commands are hardcoded into the application


For technical reasons you have to uninstall previous ActionScreen versions manually before installing v0.5. Sorry for the inconvenience.
OK, I present three versions with one tiny difference:

- Skrobel ActionScreen v*.* - it's a standard version starting when holding the PowerButton for 3 secs.
- Skrobel ActionScreen v*.*_softkey - the app is linked additionally to the left homescreen softkey in Sense (2.1 and 2.5) as showed on the last screenshot
- Skrobel ActionScreen v*.*_softkey_only - especially for p50kombi here goes a third version with only the SoftKey link and no PowerButton action

- Skrobel_AS_Blue_Icons - a set of blue "Pressed" icons for the ActionScreen. Special thanks to MrRusch for a permission to use his work which I found here.

The files are attached to this post. Enjoy
Last edited by Skrobel; 24th July 2011 at 10:36 PM.
The Following User Says Thank You to Skrobel For This Useful Post: [ View ]
17th November 2010, 10:53 PM |#3  
p50kombi's Avatar
Senior Member
Thanks Meter: 338
Been waiting for this.
Think you can make a version that links to softkey only and not to power button?
that would be great...Thanks.
17th November 2010, 11:01 PM |#4  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
Originally Posted by p50kombi

Been waiting for this.
Think you can make a version that links to softkey only and not to power button?
that would be great...Thanks.

It's done
18th November 2010, 04:15 AM |#5  
p50kombi's Avatar
Senior Member
Thanks Meter: 338

18th November 2010, 09:47 AM |#6  
Fishawy's Avatar
Senior Member
Belleville, EG
Thanks Meter: 383
Looks great, will test it .. Thank you
18th November 2010, 02:01 PM |#7  
Jackos's Avatar
Recognized Developer
Flag Breslau
Thanks Meter: 579
Skrobel, congratulations on your release.

I will be glad to test your preliminary version, let's see what you did improve since the last version I tried.

Some suggestions and tips if I may:
- Do not use text files to store settings like links etc. Registry is a more convenient method IMHO.
- Try to ensure support for more then one language.
- Do something with the loading time (I know this probably requires programming language change), quick! Like I said in our last conversation about this program, hiding the window and showing it when it's needed should help greatly.

One important question: What about ROM cooking? Are chefs allowed to cook this program into their ROMs?

18th November 2010, 02:05 PM |#8  
Jackos's Avatar
Recognized Developer
Flag Breslau
Thanks Meter: 579
PS What about graphics? Maybe something more TF3D/Sense like?
18th November 2010, 03:44 PM |#9  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
Thanks, I appreciate your hints and help

According to the B4PPC support forum the loading time when the app is starting from "0" will not be better at all. I did everything I could to make the app lighter (use only one external library, don't use text labels, use only only one image for the whole form). But it didn't improve the loading time much though...

I already have a version which loads into memory at system startup but it has some annoying limitations connected with the programming environment.

The only way to actually load all the elements (images, controls) into memory is to show the app. So at startup I must actually show the app at least for 10 ms and then trigger the "ShowTodayScreen" procedure to hide it. And during system startup any graphics I'll try to show appear incomplete and for long time (until Sense shows).

Another problem is that there is no "minimize" procedure. Only the above mentioned ShowTodayScreen which always returns to Sense. If the user would run the ActionScreen in order to run a new window (such as new SMS) it's not a problem. But if you want to trigger the BT or WiFi, returning to HomeScreen every time is annoying.

Third problem is that even when the app runs in background it still takes over 600-700 kB which I consider as large for so light image it actually is. Furthermore I noticed strange behaviour when ActionScreen is not used for longer time. It takes more and more memory over time (a memory leak?) and "refreshes" itself when it's actually called.

Buuut in this situation the form shows within half a second.

Language and GUI is on the "to do" list as soon as I will handle the above problems. Actually changing the gui is very simple (there are no graphics merged in the exe, only external ones). But I'm totally not creative when it comes to graphics. That's why I asked for help in the first post.

Everybody is welcome to use this program in their ROMs. Just drop me a line that you plan to do it and it would be nice if you referred to this place in your ROM thread but with such small app is absolutely not demanded.
19th November 2010, 05:14 AM |#10  
Senior Member
Thanks Meter: 8
@ Skrobel Any chance of my makin' an 18-button ver, a la wedge666's offering here? He, however, doesn't have landscape support. Your app's lack of buttons is the only thing stopping me from hoppin' on-board.
19th November 2010, 08:20 AM |#11  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
The problem is that the more controls on the form, the longer time the app needs to start.
So technicaly it's possible and relatively easy, but in the current app state I would like to handle all my problems first to be able to hold the program in the memory. Then addidg or moving controls will really be easy. Plus I will add the possibility to configure the icons and programs yourself so that everybody can customise it.

Read More
Post Reply Subscribe to Thread

action screen, landscape
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes