Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,737,615 Members 45,390 Now Online
XDA Developers Android and Mobile Development Forum

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

Tip us?
 
Skrobel
Old
(Last edited by Skrobel; 22nd May 2011 at 03:57 PM.) Reason: v0.6
#1  
Skrobel's Avatar
Senior Member - OP
Thanks Meter 63
Posts: 829
Join Date: Jan 2010
Location: Piaseczno
Default [APP][22.05.2011][(W)VGA]ActionScreen Landscape support v0.6[Developers please help]

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)
The Following 2 Users Say Thank You to Skrobel For This Useful Post: [ Click to Expand ]
 
Skrobel
Old
(Last edited by Skrobel; 24th July 2011 at 10:36 PM.)
#2  
Skrobel's Avatar
Senior Member - OP
Thanks Meter 63
Posts: 829
Join Date: Jan 2010
Location: 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
The Following User Says Thank You to Skrobel For This Useful Post: [ Click to Expand ]
 
p50kombi
Old
#3  
p50kombi's Avatar
Senior Member
Thanks Meter 135
Posts: 1,562
Join Date: Dec 2005
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.
************

Live long and prosper... or something like that... maybe..
If you'd like to of course...ahh who cares anyway.....do what you like!!!

Using HTC ONE M8, unbranded, S-Off and Super-CID on EE UK Network
ROM: ARHD 10.x
Kernel: Elementalx
Radio: the one that comes with the latest ARHD rom



 
Skrobel
Old
#4  
Skrobel's Avatar
Senior Member - OP
Thanks Meter 63
Posts: 829
Join Date: Jan 2010
Location: Piaseczno
Quote:
Originally Posted by p50kombi View Post
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
Crrently: HTC One

Previously: HTC Touch Pro2
-----------------------------------------------
My contributions to the community:
 
p50kombi
Old
#5  
p50kombi's Avatar
Senior Member
Thanks Meter 135
Posts: 1,562
Join Date: Dec 2005
yeah.....

thanks
************

Live long and prosper... or something like that... maybe..
If you'd like to of course...ahh who cares anyway.....do what you like!!!

Using HTC ONE M8, unbranded, S-Off and Super-CID on EE UK Network
ROM: ARHD 10.x
Kernel: Elementalx
Radio: the one that comes with the latest ARHD rom



 
Fishawy
Old
#6  
Fishawy's Avatar
Senior Member
Thanks Meter 355
Posts: 2,695
Join Date: Mar 2010
Location: Belleville, EG
Looks great, will test it .. Thank you
HTC HD --> HTC HD2 --> HTC DHD --> SGS-II --> SGS-III --> SGS-IV (GT-I9500) --> Note 3 SM-N900
 
Jackos
Old
#7  
Jackos's Avatar
Recognized Developer
Thanks Meter 449
Posts: 3,465
Join Date: Feb 2008
Location: Wrocław/Breslau
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
Read my reviews and editorials at ION!
"From my experience - it looks like the most popular ROMs have the worst memory management " - ultrashot

Primary: Sony Xperia Z2 D6503

Sold: Samsung Galaxy S III I9300, HTC Sensation Z710e, HTC Touch Pro2 T7373 (Sold to Skrobel)

Haswell RIG: MSI Z87 MPOWER; Intel Core i7-4770K; Corsair Vengeance Pro 2133Mhz CL11 16GB; 2x EVGA GeForce GTX 760 SC ACX w/ backplate SLI; Intel SSD 530 180GB; 2x WDC Black 3TB RAID0; 3x WDC Black 1TB RAID5; CHIEFTEC BPS-750C2; Fractal Design Define R3 w/ USB3; Logitech Performance Mouse MX + Wireless Illuminated Keyboard K800; Samsung PX2370; Windows 8.1 RTM Genuine

 
Jackos
Old
#8  
Jackos's Avatar
Recognized Developer
Thanks Meter 449
Posts: 3,465
Join Date: Feb 2008
Location: Wrocław/Breslau
PS What about graphics? Maybe something more TF3D/Sense like?
Read my reviews and editorials at ION!
"From my experience - it looks like the most popular ROMs have the worst memory management " - ultrashot

Primary: Sony Xperia Z2 D6503

Sold: Samsung Galaxy S III I9300, HTC Sensation Z710e, HTC Touch Pro2 T7373 (Sold to Skrobel)

Haswell RIG: MSI Z87 MPOWER; Intel Core i7-4770K; Corsair Vengeance Pro 2133Mhz CL11 16GB; 2x EVGA GeForce GTX 760 SC ACX w/ backplate SLI; Intel SSD 530 180GB; 2x WDC Black 3TB RAID0; 3x WDC Black 1TB RAID5; CHIEFTEC BPS-750C2; Fractal Design Define R3 w/ USB3; Logitech Performance Mouse MX + Wireless Illuminated Keyboard K800; Samsung PX2370; Windows 8.1 RTM Genuine

 
Skrobel
Old
#9  
Skrobel's Avatar
Senior Member - OP
Thanks Meter 63
Posts: 829
Join Date: Jan 2010
Location: 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.
Crrently: HTC One

Previously: HTC Touch Pro2
-----------------------------------------------
My contributions to the community:
 
kain144000
Old
#10  
Senior Member
Thanks Meter 8
Posts: 307
Join Date: 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.

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

Advanced Search
Display Modes


TRENDING IN THEMER...