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

Search This thread

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
Hello

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\LinkXX]
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.

DOWNLOADS ARE IN POST #2

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 :eek:

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 :)
 

Attachments

  • ScreenShot1.jpg
    ScreenShot1.jpg
    29.6 KB · Views: 935
  • ScreenShot5.jpg
    ScreenShot5.jpg
    29.5 KB · Views: 683
  • ScreenShot2.jpg
    ScreenShot2.jpg
    31.4 KB · Views: 591
  • ScreenShot4.jpg
    ScreenShot4.jpg
    31.3 KB · Views: 572
  • ScreenShot6.jpg
    ScreenShot6.jpg
    43 KB · Views: 954
  • readme_v0.6.txt
    6.2 KB · Views: 135
Last edited:
  • Like
Reactions: ai6908 and iris_aim

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
# CHANGE LOG:
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


# DOWNLOADS:

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 :)
 

Attachments

  • Skrobel_ActionScreen_v0.6_WVGA.cab
    169.2 KB · Views: 192
  • Skrobel_ActionScreen_v0.6_WVGA_softkey.cab
    169.4 KB · Views: 137
  • Skrobel_ActionScreen_v0.6_WVGA_softkey_only.cab
    169.3 KB · Views: 103
  • Skrobel_ActionScreen_v0.6_VGA.cab
    156.8 KB · Views: 43
  • Skrobel_ActionScreen_v0.6_VGA_softkey.cab
    157 KB · Views: 40
  • Skrobel_ActionScreen_v0.6_VGA_softkey_only.cab
    156.9 KB · Views: 38
  • Skrobel_AS_Blue_Icons.cab
    79 KB · Views: 66
  • Skrobel_AS_v0.6_softkey_PLK.cab
    1.1 KB · Views: 60
Last edited:
  • Like
Reactions: awag666

Jackos

Inactive Recognized Developer
Feb 26, 2008
4,045
945
Warsaw
leidel.pl
OnePlus Open
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?


Regards,
Jackos
 

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
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.

I.e.:
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.


Finally:
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.
 

kain144000

Senior Member
Jan 19, 2008
335
24
@ 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.
 

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
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.
 

mike2nl

Senior Member
Jul 24, 2009
3,965
670
64
Near Utrecht
Hi Skrobel,

the landscape support is a very good idea. And since i use the HD2 and the TP2 i have missed this on my HD2. But the HD2 can handle landscape with a manila tweak well. Also in combination with the CHT Suite.

We, the CHTA beta team, can help you with a layout for CHT default and for the simplicity quicklinks. That's my personal favor style.
 
  • Like
Reactions: Skrobel

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
Hi Mike,

the landscape support is a very good idea. And since i use the HD2 and the TP2 i have missed this on my HD2. But the HD2 can handle landscape with a manila tweak well. Also in combination with the CHT Suite.
Am I to understand that you somehow forced the original ActionScreen to work in Landscape mode? Or at least to appear on full screen?

We, the CHTA beta team, can help you with a layout for CHT default and for the simplicity quicklinks. That's my personal favor style.

Thank you very much for the hint. I know these icons from Seem's ROM, but I didn't know these are his design. I like them too. And the way they behave when pressed.
oOadditional designs or to the beta team (that means you in this case;) )?
 

mike2nl

Senior Member
Jul 24, 2009
3,965
670
64
Near Utrecht
No, he just has a tweak in with he rotates the screen in HD2. His Action Screen doesn't support landscape ditto and that's the problem.

On the STOCK ROM it is working well without any issue. The latest Rom is: (please see my signature).


Skrobel...
Thank you very much for the hint. I know these icons from Seem's ROM, but I didn't know these are his design. I like them too. And the way they behave when pressed.
oOadditional designs or to the beta team (that means you in this case
wink.gif
)?

No i mean the team. We are around 10 guys here from XDA. And the most of them are known from other things ;).
 

Jackos

Inactive Recognized Developer
Feb 26, 2008
4,045
945
Warsaw
leidel.pl
OnePlus Open
Ach, we misunderstand ourselves :)

I meant that you where using another ActionScreen (probably from Smabergs) and it didn't work well in landscape.

Skrobel's version does work very well in both portrait and landscape.
 

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
Hello all
After a long while I updated the program. Actually it's whole new app rewritten from scratch. Details in post #1. Changelog and downloads in post #2.

Enjoy!
 

Skrobel

Senior Member
Jan 14, 2010
829
64
Piaseczno
Hello again,

I have found a solution for my minimize problems. Updated version in post #1.
Still if somebody can show me how to make the app more memory-friendly, I'll be grateful.

Take care :)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    Hello

    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\LinkXX]
    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.

    DOWNLOADS ARE IN POST #2

    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 :eek:

    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 :)
    1
    # CHANGE LOG:
    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


    # DOWNLOADS:

    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 :)
    1
    Hi Skrobel,

    the landscape support is a very good idea. And since i use the HD2 and the TP2 i have missed this on my HD2. But the HD2 can handle landscape with a manila tweak well. Also in combination with the CHT Suite.

    We, the CHTA beta team, can help you with a layout for CHT default and for the simplicity quicklinks. That's my personal favor style.