Android TV Launcher Pushed to Google Play

Over the past decade, the tech universe has seen two drastic and widely contrasting changes with … more

Cyngn, OnePlus, Micromax – The Legal Battle

Recently, a battle has been waging in India over the rights to distribute the commercial … more

Lean Mean Battery Power Saving App Review

We talk a lot about battery topics here at XDA TV. We talk about everything from Power Banks to USB … more

Android 5.1 Possibly Coming February 2015

Google released Android 5.0 just over a month ago, and since then Lollipop has been trying to … more

Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

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

OP Skrobel

17th November 2010, 11:08 PM   |  #1  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
 
829 posts
Join Date:Joined: Jan 2010
More
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\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.

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

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 04:57 PM. Reason: v0.6
The Following 2 Users Say Thank You to Skrobel For This Useful Post: [ View ]
17th November 2010, 11:13 PM   |  #2  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
 
829 posts
Join Date:Joined: Jan 2010
More
# 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
Last edited by Skrobel; 24th July 2011 at 11:36 PM.
The Following User Says Thank You to Skrobel For This Useful Post: [ View ]
17th November 2010, 11:53 PM   |  #3  
p50kombi's Avatar
Senior Member
Thanks Meter: 164
 
1,637 posts
Join Date:Joined: Dec 2005
More
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.
18th November 2010, 12:01 AM   |  #4  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
 
829 posts
Join Date:Joined: Jan 2010
More
Quote:
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, 05:15 AM   |  #5  
p50kombi's Avatar
Senior Member
Thanks Meter: 164
 
1,637 posts
Join Date:Joined: Dec 2005
More
yeah.....

thanks
18th November 2010, 10:47 AM   |  #6  
Fishawy's Avatar
Senior Member
Belleville, EG
Thanks Meter: 366
 
2,734 posts
Join Date:Joined: Mar 2010
More
Looks great, will test it .. Thank you
18th November 2010, 03:01 PM   |  #7  
Jackos's Avatar
Recognized Developer
Flag Breslau
Thanks Meter: 538
 
3,641 posts
Join Date:Joined: Feb 2008
More
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
18th November 2010, 03:05 PM   |  #8  
Jackos's Avatar
Recognized Developer
Flag Breslau
Thanks Meter: 538
 
3,641 posts
Join Date:Joined: Feb 2008
More
PS What about graphics? Maybe something more TF3D/Sense like?
18th November 2010, 04:44 PM   |  #9  
Skrobel's Avatar
OP Senior Member
Flag Piaseczno
Thanks Meter: 63
 
829 posts
Join Date:Joined: Jan 2010
More
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.
19th November 2010, 06:14 AM   |  #10  
Senior Member
Thanks Meter: 8
 
307 posts
Join Date:Joined: Jan 2008
@ 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.

Post Reply Subscribe to Thread

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

Advanced Search
Display Modes