[MOD][SENSE2.5TAB] Facebook Tab - Developer Thread - Windows Mobile Software Development

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Thread to be used for development discussions only, install issues etc use the release thread:
[MOD][23MAR10][v1.0][SENSE2.5TAB] Basic Facebook Tab
http://forum.xda-developers.com/showthread.php?t=651007
Thread Quicklinks:
2.5.192x issue and ROMs with older facebook engine...
v1.5 Released, v2.0 Development starts here [Post#361+]
v1.5 Beta Testing details start here [Post#133+]
Information for v1.5 language files & beta drafts [Post#109+]
I'll fill in more detail here when we start doing development work.
I've placed an OLD release into the groups 4shared directory, in the projects folder.
http://manila.4shared.com
Also my tutorial (which is more a notepad at the moment) is here:
TUT Manila Tutorial 4 - Placeholder/Facebook Tab

Setup Instructions
Setup Instructions (roughly):
1. Use the Command Line Kitchen (http://forum.xda-developers.com/showthread.php?t=528548).
2. Recommend 1st copying ALL xxxxxxxx_manila files from your windows dir (keep a copy as backup too), and decompile them all using the kitchen.
3. Rename the Workspace to something else (i.e. Workspace_complete), you can use this now as reference!
4. Start again with the manila files you want to work on, you now have your "working" folder of lauc files etc.
5. Make use of the manilaHASH to convert between filenames and internal path/file references (recommend you keep a list of ones you find, you'll be surprised how useful it can be).
For editing, Programmer's Notepad is excellent, you can save your workspace, highlight the files for lauc and xml and also use the "find in files" search to find stuff in your "Workspace_complete" folder.

Useful Links
Temp Location for the stuff moved off the main thread (this post can them be referred to if the info is important):
MAIN THREAD POST #1:
-----
The stuff below will get replaced when the next version is released...
-----
This is my facebook tab, the project is a learning project, it will also have a supporting tutorial with full details of how it is built.
By it's nature the intention is it is freely available and totally open.
Before people ask, no I can't do comments, pokes, likes, notifications etc etc, I am cheating here and borrowing HTC function/pages and only changing what I have to, to obtain the function needed.
I shall attempt to add some more function soon, will be linking in with a exe which will hopefully talk to the facebook api. At the moment I am unsure how successful this will be, also what to do about facebook requiring an account to be linked with the app and how to keep multi-language support. This will become clearer as I work on it.
Also, as I start to adjust things to suit my changes, I expect to break a few things too, this will be because I don't always see the full range of HTC functionality as I test (i.e. Events etc).
Hopefully it does enough to keep everyone happy. I shall try to document the creation of the tab, but at the moment development work is 1st.
HTC has put in as much more functionality than I thought (I keep seeing new parts to it), but they also did a good job of hiding it!
Personally I think there are some excellent features and credit goes to the poor soul who got told it couldn't be a tab (this is for you and your hard work!).
Please understand, currently ALL the facebook function is by HTC, all the integration is by HTC. The MOD moves the tab and formats it to look nice and also adds some small features which I wanted (I wanted to do more but everyone was keen to have it too!). Formatting and the extras is what takes the time. If you see the 192X basic "basic tab" a simple move of the tab is a 5 min job!
I'm planning to do at least one update to this to add the bits I couldn't get going in time, plus to make it easier to configure via the settings instead of the registry. After that, I'll release a dev pack and facebok api could be added etc on top (but again must be a matter of time before we get an official one).
______
Latest WVGA Screens
Latest VGA Screens
MAIN THREAD POST #2:
-----------------------------------------
Details for v1.01 (to be removed later)
-----------------------------------------
Settings are all via the registry (for now). The "Download Data Automatically" etc in the settings subpage runs independently of the Automatic Update Period.
Registry Settings
Change these registry keys to change how it works.
[HKEY_CURRENT_USER\Software\HTC\Manila]
"Facebook.LaunchAppSel"=dword:1
Number added to Facebook.LaunchApp to determine which app is launched (entry must exist)
"Facebook.LaunchAppName0"="MS Facebook App"
"Facebook.LaunchApp0"="\\Windows\\Facebook.exe"
Path and filename of app, note \\ should be used in *.reg file to put \. Within the registry this will read as "\Windows\Facebook.exe"
"Facebook.LaunchAppArgs0"=""
Added to the end of the application call if required
"Facebook.LaunchAppName1"="Facebook IM App"
"Facebook.LaunchApp1"="\\Storage Card\\Program Files\\fim\\fim.exe"
"Facebook.LaunchAppArgs1"=""
2nd optional application. You can add any number of others at the moment.
"Facebook.LaunchWebSel"=dword:0
Same as "Facebook.LaunchAppSel" but for the web launch
"Facebook.LaunchWebName0"="Mobile Facebook"
"Facebook.LaunchWeb0"="m.facebook.com/"
"Facebook.LaunchWebArgs0"=""
"Facebook.LaunchWebName1"="iPhone Facebook"
"Facebook.LaunchWeb1"="touch.facebook.com/"
"Facebook.LaunchWebArgs1"=""
"Facebook.LaunchWebName2"="Desktop Facebook"
"Facebook.LaunchWeb2"="www.facebook.com/"
"Facebook.LaunchWebArgs2"=""
Same as "Facebook.LaunchApp#" but for the web launch
"Facebook.LastUpdateTime"=""
"Facebook.LastUpdateDate"=""
Stores the last update time/date used in the display, set by the program.
"Facebook.MyStatus"=""
Copy of your status text, set by the program, if its working ok
"Facebook.MyStatusExe"="\\Windows\\FacebookStatusUpdate.exe"
"Facebook.MyStatusScript"=""
Used to copy registry entry of My Status into the above key. Note: If you set Facebook.MyStatusExe blank, it won't try to update.
"Facebook.AutoUpdateInterval"=dword:0
Time in minutes between automatic updates. I think only runs when within the tab, set to 0 will disable automatic update (although independent of the 2 hour update on the settings page).
FAQ
Launch App/Web does not work (i.e. I get a Certificate error)
Chances are, you need to adjust the registry setting to point the selected application to the location where it is installed (or ensure you have the app installed).
Please see Agent Zach's guide here:
http://forum.xda-developers.com/showpost.php?p=6247589&postcount=470
Why do we need FacebookStatusUpdate.exe (or originally mortscript) and what does it do?
It's a limitation of what is in manila, you can only read from "HKCU\Software\HTC\Manila", unless you are only after a int value.
All the script does (or exe), is the following:
Code:
RegReadString("HKLM", "Software\HTC\FacebookSDK","Status",myStoredStatus)
RegWriteString("HKCU","Software\HTC\Manila","Facebook.MyStatus",myStoredStatus)
There may be a work around, but it would take a lot of time to test for something so simple.
MAIN POST #3:
=============================================
Below applies to v1.01 only - will be removed soon
=============================================
All-In-One Cab Install Instructions
Warnings etc
Modifying manila means various levels of messing around with the files on the device so, as with most of the mods on here, back-up often and be prepared to screw it up and hard-reset your device. All the changes explained here may or may-not work on your particular device/version of manila or perhaps it's just not going to happen today.
Instructions:
1) Ensure you have moved your tabs around at least once, via Settings Tab, this ensures the correct registry keys are present used by the cab install.
2) Run the cab and Install to Device (attached to first post).
3) Copy any language files which are missing if you need them into the windows directory (some are included).
4) If this does not work, then don't un-install, but follow the manual install instructions (ensure you copy all the files from the zip as instructed).
You don't even have to disable Sense first or anything. It'll do that, and re-start Sense for you. It's recommended to install it after a fresh hard reset for best results, but it may still work without doing so.
Thanks to Captain_Throwback for creating the cab and johncmolyneux for creating the executable that adds the correct info to the tab control file automatically so that the install is fully automated.
Please report any issues you have with the install here, so that we can try to fix them.
All-In-One Cab Uninstall Instructions
Will update soon, with precise details:
1. Replace the 26948339_manila file in your windows directory with the backup version made by the cab also in windows.
2. Then perform 5. Reset Manila as described in the manual install steps.
Note: Until this is updated, and you are not confident, you can simply disable the tab via Settings, Home Screen Tabs!
Latest: http://forum.xda-developers.com/showpost.php?p=6203074&postcount=434
Manila Sense Fix - Sense is not starting after install/uninstall
If you run into problems with Sense not starting then there are two things you can do.
1. Run moonnah's B_L_Group_FixStartManila_2.5.cab from the following thread (this should fix any problems with your tab control file):
http://forum.xda-developers.com/showthread.php?t=670116
2. Post your tab control file (26948339_manila) on the thread and we shall correct any problems and repost it.
The next release of All-In-One cab will hopefully run the FixStartManila for you so this issue will hopefully be fixed.
[USE ALL-IN-ONE CAB INSTEAD] Captain_Throwback's OLD Cab Install Instructions
I've just kept this section for now, until we are happy the all-in-one cab does what it needs to do. Let me know if you still have to use this method.
Note: 1084 views on this cab now - will monitor for use. OK removed the attached cab to avoid confusion.
Warnings etc
Modifying manila means various levels of messing around with the files on the device so, as with most of the mods on here, back-up often and be prepared to screw it up and hard-reset your device. All the changes explained here may or may-not work on your particular device/version of manila or perhaps it's just not going to happen today.
Captain_Throwback Post here
NOTE: This cab does NOT include the tab control file (26948339_manila). Because everyone's set of tabs is different, each will need to be edited individually, per the instructions HERE. The edited file should be copied AFTER the CAB is installed. The install will make a backup of your original file called "26948339_manila_orig", if you have issues with the edited file.
Instructions:
1) Install CAB (attached to this post)
2) Verify that Sense is disabled in Today items once install is complete.
3) Copy edited tab control file (26948339_manila) to \Windows folder on device. Confirm overwrite of existing file.
Either get your tab control file (26948339_manila) from \Windows folder and edit it yourself or use a pre-written one which matches all the tabs orginally listed in your Settings Tab (where you re-order the tabs).
Edit your 26948339_manila file from your \windows\ directory (you can use the example in the zip file \tabcontrol\ as a guide, use a UTF-16 Compatible Editor such as Notepad2 or Programmers Notepad.
a) Insert the following text, between the other "pages" defined, replacing the X with suitable number (re-numbering the others as required to avoid duplicated numbers):
Code:
<Page Order="X" Name="facebook.page" PackageName="HTC" Title="[[Facebook]]">
<ComponentReference Name="page" Mode9Path="HTC\People\facebook.mode9" Component="SummaryAllPage" SmartComponent="true"/>
<ComponentReference Name="icon_normal" Mode9Path="HTC\Manila\Facebookicon.mode9" Component="Facebook_Off"/>
<ComponentReference Name="icon_selected" Mode9Path="HTC\Manila\Facebookicon.mode9" Component="Facebook_On"/>
<ComponentReference Name="icon_preview" Mode9Path="HTC\Manila\Facebookicon.mode9" Component="Facebook_Preview"/>
</Page>
b) Copy back completed file to your device \windows\ directory
4) Re-enable Sense in Today items.
Manual Install Instructions (for use with the zip files)
Scott8813 has kindly provided a detailed tutorial on how to add the tab, so if you need more detail then please refer to this.
Manual Install Tutorial (Scott8813)
http://forum.xda-developers.com/showpost.php?p=6004802&postcount=216
Warnings etc
Modifying manila means various levels of messing around with the files on the device so, as with most of the mods on here, back-up often and be prepared to screw it up and hard-reset your device. All the changes explained here may or may-not work on your particular device/version of manila or perhaps it's just not going to happen today.
The files may be hidden system files (may need to enable viewing of system hidden files to find them)
Keep an original copy of your 26948339_manila file, particularly if you use a cab to install
If the tab doesn't work you can use it to restore things back (just do step 5)
1. Copy 26948339_manila from your \windows\ directory to your PC.
2. Copy all the files in the zip file \windows\ directory to your devices \windows\ directory.
3. Import the registry items from the "appFacebook.reg" file into your devices registry.
This will add new entries "Facebook.XXX" to "HKEY_CURRENT_USER\Software\HTC\Manila"
4. Create your Tab Control File:
Edit your 26948339_manila file from your \windows\ directory (you can use the example in the zip file \tabcontrol\ as a guide, use a UTF-16 Compatible Editor such as Notepad2 or Programmers Notepad.
a) Insert the following text, between the other "pages" defined, replacing the X with suitable number (re-numbering the others as required to avoid duplicated numbers):
Code:
<Page Order="X" Name="facebook.page" PackageName="HTC" Title="[[Facebook]]">
<ComponentReference Name="page" Mode9Path="HTC\People\facebook.mode9" Component="SummaryAllPage" SmartComponent="true"/>
<ComponentReference Name="icon_normal" Mode9Path="HTC\Manila\Facebookicon.mode9" Component="Facebook_Off"/>
<ComponentReference Name="icon_selected" Mode9Path="HTC\Manila\Facebookicon.mode9" Component="Facebook_On"/>
<ComponentReference Name="icon_preview" Mode9Path="HTC\Manila\Facebookicon.mode9" Component="Facebook_Preview"/>
</Page>
b) Copy back completed file to your device \windows\ directory
5. Reset Manila:
a) Delete "\\windows\manilaFull.xml" on your device (don't worry this is regenerated when manila restarts).
b) Delete the configuration reg-key HKLM\Software\HTC\Manila\Configuration (this resets the tab list and allows the new tab to be included in the tab re-ordering page of the settings tab - the keys only re-generate when you go back to that tab re-ordering page)
Alternative exe instead of mortscript (old zip version v1.0 23Mar10 ReleaseB):
Use the exe from FacebookStatusUpdate.zip and place in your windows folder (doesn't matter where, as long as you link correctly).
Change reg file to:
"Facebook.MyStatusExe"="\\Windows\\FacebookStatusUpdate.exe"
"Facebook.MyStatusScript"=""
Or directly in reg:
Facebook.MyStatusExe = "\Windows\FacebookStatusUpdate.exe"
Facebook.MyStatusScript =""

To Do List
Development To Do List:
Unreleased development work
Correct landscape view (remove space at top) - DONE (except displayed items are not refreshed)
Reduced reg key copies (less lag) - DONE
Improve extended char support for updates etc
Move birthday icon in expanded view - DONE
Provide "updating..." feedback when there is no Update Bar (for 1st run etc)
Build in wait state to tab, to catch when external app has completed operations (keep checking for reg key flag)
Character count for the status update page (xx/420).
API Phase 2
Development (from v1.01, released in v1.5):
People Link font colour - DONE
Allow view of full status text, either bigger space, expand on selection or ticker tape
- DONE (all expanded/colaspe view)
Improve autoupdate timer for entering tab - 20% INPROGRESS Leaving this as not a big issue.
Update settings page to include things set in registry (Auto Update time etc) - 100% DONE
Replace naff .Net fileopen dialogue with something usable - 100% DONE (thanks johncmolyneux)
Htc sense look for settings page - 100% DONE
Multi Language Support for exe - 100% DONE
Tie in to Facebook Api - Initial Tests 100% DONE - limited for release
Implement Fb Api Status Update - 100% DONE

File's Involved
Release v1.0 Uses the following files:
Code:
Graphics
4F90441E_manila \windows\htc\Common\Assets\Images\Common\VGA\facebook_divider.qtc
5D4F2200_manila \windows\htc\Assets\Images\Manila\icon_off\Facebook_tray.qtc
05FF1072_manila \windows\htc\Assets\Images\Manila\icon_preview\Facebook_large.qtc
06C09C86_manila \windows\htc\Common\Assets\Images\Common\facebookline.qtc
357374E7_manila \windows\htc\Assets\Images\Manila\icon_preview\Facebook_tray.qtc
Lang
35452D58_manila \windows\htc\people\locales\en-gb\facebook.en-gb.xml
5470CE36_manila \windows\htc\people\locales\en-us\facebook.en-us.xml
Luac
090EF4F3_manila \windows\htc\people\scripts\people\facebookpage.luac
Mode9
51B6F88A_manila \windows\htc\people\facebook.mode9
59B632C0_manila \windows\HTC\Manila\facebookicon.mode9
Tab Control
26948339_manila
Supporting
manila_xml\Facebook_Pages.xml
FacebookStatusScript.mscr
appFacebook.reg
Attached is my current list of filenames which I've used/worked on/browsed through etc.

subscribed! thanks for starting this thread,now i don't have to write more OT's in your main thread

etoy said:
subscribed! thanks for starting this thread,now i don't have to write more OT's in your main thread
Click to expand...
Click to collapse
No problem.
Gives me somewhere to write what I am up to without spamming my own thread too.
1. Currently I'm working on different views of the main page.
It's hard to see how events will be displayed since no-one I know uses them (how do they appear normally? Are they part of the individual status items?) Also, unable to change "Has Multiple Updates" to display the status and updated album message when there is more space, not a major issue. I'll post some screens at some-point.
2. Will then start to work on tying things into an exe which I can then experiment with the facebook api without having to wrestle with manila, plus for now I will put the tab specific settings page in it too (makes little difference visually to a manila sub-page, except I'm not sure how to pull in the translations for multi-lang).
3. Also starting to look at .\Scripts\People\peopleUpdateViewPage.luac 285D32BC_manila which is the more detailed tab when you select someone, but it's not fully decompiled so I've not tried changing it yet. Ideally I can put more info/options within this page when the fb api is functional.
4. Need to finish off the update timer, should be able to look at the time of the last update and update immediately even if you've just entered the tab. Currently it just waits for the update period, which only happens if the tab is open.
5. Need to put another text object on the main page for each fb item, hopefully for use with the fb api.

damn,i can't open that m9editor. if i'll not find other possibilities i'll have to run an xp-mode VM. i only managed to convert the 59B632C0_manila file to xml with mode9converter but it gives me an error when i try to convert back to mode9.
meltwater, please just edit it this way from "icon_off" to "icon_on" and attach me the edited manila file,i'll try to do the rest. thanks!

etoy said:
damn,i can't open that m9editor. if i'll not find other possibilities i'll have to run an xp-mode VM. i only managed to convert the 59B632C0_manila file to xml with mode9converter but it gives me an error when i try to convert back to mode9.
meltwater, please just edit it this way and upload me the edited manila file,i'll try to do the rest. thanks!
Click to expand...
Click to collapse
Ok done. Well timed checking of xda, there..a few mins difference.
Code:
<Movie>
<Property> Name=Platform Value="GLESPlatform"
<Locale>
<Directory> = Value=".\locales\"
<LibraryManager>
<Library>
<Character>Type="ComponentClipCharacter"
<Property> Name=LibraryID Value="6"
<Property> Name=Name Value="Facebook_Off"
<Object>Type="ComponentClip"
<Property> Name=Initial Play State Value="0"
<Group>
<Object>Type="GLESSprite2D"
<Property> Name=Disable Render Value=""
<Property> Name=Instance Name Value="iconButton"
<Property> Name=Position Value="PosX=-16 PosY=8 PosZ=0"
<Property> Name=Texture Path Value="..\Common\Assets\Images\Common\alpha-hitbox.qtc"
<Property> Name=Size Value="Width=96 Height=100"
<Object>Type="GLESSprite2D"
<Property> Name=Instance Name Value="iconButton1"
<Property> Name=Texture Path Value=".\..\Assets\Images\Manila\icon_off\Facebook_tray.qtc"
<Property> Name=Size Value="Width=140 Height=140"
<Character>Type="ComponentClipCharacter"
<Property> Name=LibraryID Value="7"
<Property> Name=Name Value="Facebook_On"
<Object>Type="ComponentClip"
<Property> Name=Initial Play State Value="0"
<Group>
<Object>Type="GLESSprite2D"
<Property> Name=Texture Path Value=".\..\Assets\Images\Manila\icon_on\Facebook_tray.qtc"
<Property> Name=Size Value="Width=140 Height=140"
<Character>Type="ComponentClipCharacter"
<Property> Name=LibraryID Value="8"
<Property> Name=Name Value="Facebook_Preview"
<Object>Type="ComponentClip"
<Property> Name=Initial Play State Value="0"
<Group>
<Object>Type="GLESSprite2D"
<Property> Name=Texture Path Value=".\..\Assets\Images\Manila\icon_preview\Facebook_large.qtc"
<Property> Name=Size Value="Width=300 Height=300"
<Scene>
<Property> Name=Initial Play State Value="0"
<Group>
<Object>Type="Component"
<CharacterReference> LibraryName=facebookicon.mode9 Value="6"
Looks like the right change, although will see what it does on my phone...ok doesn't break it which is good.
Now just need to get my hands on a full version of visual studio...

IT WORKS!
great we found the right reference,which results in:
1F04C842_manila \windows\htc\Assets\Images\Manila\icon_on\Facebook_tray.qtc
--
do you think the 357374E7_manila file is needed? it does not show anywhere..
--
i attached the right 1F04C842_manila file. now you can use it with your corrected 59B632C0_manila to have separated split icon on/icon off.
the "icon on" should be hi-res 16bpp and "icon off" 8bpp but cfc_gui did'em both at 8bpp not a big deal tho,and easily correctable.
i'm happy for my little contribution,now i have to research that last missing "rearrange tab" icon

etoy said:
IT WORKS!
--
do you think the 357374E7_manila file is needed? it does not show anywhere..
--
i attached the right 1F04C842_manila file. now you can use it with your corrected 59B632C0_manila to have separated split icon on/icon off.
the "icon on" should be hi-res 16bpp and "icon off" 8bpp but cfc_gui did'em both at 8bpp not a big deal tho,and easily correctable.
i'm happy for my little contribution,now i have to research that last missing "rearrange tab" icon
Click to expand...
Click to collapse
Ok, will try it out on my phone too. Donno about the 8bpp and cfc'ing can't remember what my originals were like.
Good luck with the "rearrange tab" I think the key is to find what the reference path/name is, either from the filenames or from the mode9 file whichever that one is.
Oddly, I've found it hard to find the colour settings for the title when in landscape mode, all the colours are in the mode9 file (but not that one it seems - changed all from R0G0B0 but it is still black...):
51B6F88A_manila \windows\htc\people\facebook.mode9
It might be using the theme colours instead (remember it was a sub-page so black is default), only found them yesterday so will chase that route 1st.
Been thinking about how to do the first page interface (depending on the fb api success of course). I think, ideally we want to drop the link to the People Tab sub-page and drive everything within the main tab page (ideally storing it's state if you leave the tab). It should then allow you to select someone, and the item expand, again you view comments etc, select them again and you get options to comment/like etc. Easy to suggest, but not anywhere near being able to do that within the manila yet, a nice aim though.
One issue I do see ahead is updating the information/storing it all, do we pick up live data when we open views (unlikely to be smooth) or attempt to download everything we need in one burst and store it away (I guess you could then open wifi, download and close wifi again...in theroy). Ideally we could use the same storage as the fbmgr uses, but I doubt that is accessible so may need duplicated info.

meltwater said:
Ok, will try it out on my phone too. Donno about the 8bpp and cfc'ing can't remember what my originals were like.
Good luck with the "rearrange tab" I think the key is to find what the reference path/name is, either from the filenames or from the mode9 file whichever that one is.
Click to expand...
Click to collapse
there are no direct references,or at least i did not find'em yet. unfortunately the other tabs' manila icon files don't have a group,they're "unknown" on cfc_gui. it was easier with slider and tab icons as they were in manila names.txt list. i found some interesting file this nite but it was late so i left some work for this evening
meltwater said:
Oddly, I've found it hard to find the colour settings for the title when in landscape mode, all the colours are in the mode9 file (but not that one it seems - changed all from R0G0B0 but it is still black...):
51B6F88A_manila \windows\htc\people\facebook.mode9
It might be using the theme colours instead, only found them yesterday so will chase that route 1st.
Click to expand...
Click to collapse
on my phone, in landscape mode, i don't have the facebook tab title at all not even the black one you talk about..
meltwater said:
Been thinking about how to do the first page interface (depending on the fb api success of course). I think, ideally we want to drop the link to the People Tab sub-page and drive everything within the main tab page (ideally storing it's state if you leave the tab). It should then allow you to select someone, and the item expand, again you view comments etc, select them again and you get options to comment/like etc. Easy to suggest, but not anywhere near being able to do that within the manila yet, a nice aim though.
One issue I do see ahead is updating the information/storing it all, do we pick up live data when we open views (unlikely to be smooth) or attempt to download everything we need in one burst and store it away (I guess you could then open wifi, download and close wifi again...in theroy).
Click to expand...
Click to collapse
that becomes a tad difficult to understand to me,sorry hope some skilled user will help you more with that. very curious to see what's possible to achieve with the facebook api tho.

etoy said:
there are no direct references,or at least i did not find'em yet. unfortunately the other tabs' manila icon files don't have a group,they're "unknown" on cfc_gui. it was easier with slider and tab icons as they were in manila names.txt list. i found some interesting file this nite but it was late so i left some work for this evening
Click to expand...
Click to collapse
Yep there are lots of interesting goodies within the files.
etoy said:
on my phone, in landscape mode, i don't have the facebook tab title at all not even the black one you talk about..
Click to expand...
Click to collapse
Ah, my background is black so I assumed it was just black too. Ok, will rethink that then. Maybe just a case of setting it visible...at the right point..at the right time. No logical reason why it's on the people tab but not this one, same code. Not too bothered about it yet.
etoy said:
that becomes too difficult to understand to me,sorry hope some skilled user will help you more with that. very curious to see what's possible to achieve with the facebook api tho.
Click to expand...
Click to collapse
I've found the editing of the gui the hardest so far, mainly because you can't see until you try but also if it doesn't like it, it gives up and moves on (so you can't even see where it was wrong). Still what started out as a little experiment on my part has already opened up a lot of what can be done. The Custom Manila Interface Tab is still a long term goal.
MS don't make it very easy to develop on windows mobile, they still don't have support for it in Visual Studio 2010 Express. I think I'll go for a trail version to get me started and then switch to non-MS solution once I'm happier. It's all new to me but keen to pick this up too.

Hi meltwater and etoy,
it is a help when i testing something too, because i was working also for that issue and i have found the same thing as you two. Strange, three people with the same thoughts. Not easy to find....
Ask me and will help. BTW, this is the dutch language file. I working on it, but a lot of translation:
6CD727C8_manila \windows\htc\people\locales\nl-nl\facebook.nl-nl.xml
meltwater said:
1. Currently I'm working on different views of the main page.
Click to expand...
Click to collapse
I think you was to much busy with co0kies new mod. But the idea is very good. Possible i can help out too

mike2nl said:
Hi meltwater and etoy,
it is a help when i testing something too, because i was working also for that issue and i have found the same thing as you two. Strange, three people with the same thoughts. Not easy to find....
Ask me and will help. BTW, this is the dutch language file. I working on it, but a lot of translation:
6CD727C8_manila \windows\htc\people\locales\nl-nl\facebook.nl-nl.xml
I think you was to much busy with co0kies new mod. But the idea is very good. Possible i can help out too
Click to expand...
Click to collapse
You can get most of it from:
\windows\htc\people\locales\nl-nl\peopleupdate.nl-nl.xml
35DC316_manila
Probably a little late to point that out...
All help is welcome. There should be a lot more as I implement more, but fixing the little bugs is very helpful.
It will get difficult to manage changes as we all get deeper into it, but at least the more we change the more files and area's of functionality there is to work on, so hopefully it will be possible.

meltwater said:
You can get most of it from:
\windows\htc\people\locales\nl-nl\peopleupdate.nl-nl.xml
35DC316_manila
Probably a little late to point that out...
Click to expand...
Click to collapse
Have you can say it 5 minuts earlier? Thanks for the info but that was also my thought to take some things that are allways done .
All help is welcome. There should be a lot more as I implement more, but fixing the little bugs is very helpful.
It will get difficult to manage changes as we all get deeper into it, but at least the more we change the more files and area's of functionality there is to work on, so hopefully it will be possible.
Click to expand...
Click to collapse
10 Ask me
20 me is waiting for info (source or whatever)
30 me send's response
40 goto 10

mike2nl said:
Have you can say it 5 minuts earlier? Thanks for the info but that was also my thought to take some things that are allways done .
10 Ask me
20 me is waiting for info (source or whatever)
30 me send's response
40 goto 10
Click to expand...
Click to collapse
10 Donno yet! What can you do / what do you want to do?
20 the source "is" the manila files (although I've started putting comments in my latest files - so will have source versions for later builds), you need to install the command line kitchen and decompile it (see the rough tips on this threads post #2).
30 go for it - ask away
40 Compile, reset manila. Bang head on table. Goto 10
At the moment, I've started working on the supporting exe which will handle the facebook api and settings etc, but I'm a beginner with windows mobile development so it'll take some time before I am up to speed with that and have something worth sharing (oh plus day job...).
qitt said:
meltwater
Thank you for your great mod. I finally investigate the name of file "icon in rearrange tab". The name must be 6BEE887F_manila. Hope it helps you.
Click to expand...
Click to collapse
OK, looks like we have another fix!

Ok, so I tried this . . .
I used my CFC graphics files, and replaced them in the All-in-One CAB. I replaced the updated file from the first page that had the updated mode9(?) code, and I copied the manila file and pasted it as "6BEE887F_manila" (I retained the original file some said 'wasn't needed' anyway). I now have the icon in the Customize tabs screen, but I'm missing the icon when the tab is selected. Is it because I didn't delete the "357374E7_manila" file? Is it just me that has this issue? The icon is there when the tab is not selected, and the large version is fine. That's the only one that's missing now (and previously, it was fine ).

Captain_Throwback said:
I used my CFC graphics files, and replaced them in the All-in-One CAB. I replaced the updated file from the first page that had the updated mode9(?) code, and I copied the manila file and pasted it as "6BEE887F_manila" (I retained the original file some said 'wasn't needed' anyway). I now have the icon in the Customize tabs screen, but I'm missing the icon when the tab is selected. Is it because I didn't delete the "357374E7_manila" file? Is it just me that has this issue? The icon is there when the tab is not selected, and the large version is fine. That's the only one that's missing now (and previously, it was fine ).
Click to expand...
Click to collapse
Don't delete 357374E7_manila, it's slider icon. Just create 6BEE887F_manila from scratch or using existing files from rearrange tab.

qitt said:
Don't delete 357374E7_manila, it's slider icon. Just create 6BEE887F_manila from scratch or using existing files from rearrange tab.
Click to expand...
Click to collapse
So I can't copy "357374E7_manila" and paste as "6BEE887F_manila" (that's what I did - I didn't delete any files)? That doesn't explain why my slider icon is missing when the tab is selected ?

Related

[Updated 10/9/07 v1.0]Pandora's Kitchen Utility - Works on any BuildOS based kitchen

Pandora's Kitchen Option Utility
This utility will allow you to quickly save or recover your settings when customizing the options to your taste.
You will no longer have to go through BuildOS and check all your favorite programs every time you rebuild your image or install a new kitchen set.
Simply define your settings once, and from then on it's but a few clicks away
Troubleshooting:
If you receive an error when clicking "Load Kitchen":
1. The error message will display the path to the file. Check that it is formatted properly. See further down troubleshooting for more info.
2. Under the menu option File is the selection Log File. Click this to open the current log file for the kitchen you attempted to use. The last few lines should point to the option.xml file that caused the error.
3. Try running BuildOS. If it won't open, don't expect this to work. Try to isolate the trouble package and compare to other working ones.
Option.xml file formatting issues:
The file must be saved as Unicode
The file must follow the following format - noting that the entry for Tip is optional and the indention spacing is not displaying properly:
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
<Item name="Time Sync Tab" group="Registry Tweaks" checked="false">
<Tip>Add time sync Tab to Phone Settings</Tip>
<Guid type="p">2f1ae013-04e8-11dc-8314-0800200c9a66</Guid>
</Item>
</Items>
Can't load Saved Configuration:
Your configuration file may have corrupted. Retrieve a backup or recreate it.
Known MAJOR Issues:
No known
Known Deficiencies:
List sorted by in alphabetical order
Future build will integrate BuildOS functionality - single user interface for both
once updated, option.xml files no longer use <cr> for readability. No effect on performance or function.
v1.0 Beta 1 does not read / edit the SYS folder option.xml file(s).
Downloads:
Installer:
Public Beta coming soon... target release of 10/10/07
.NET Framework 2.0 Redistributable (required if you don't already have it on your PC)
RapidShare Link
Revision History:
v1.00 Beta 1: Initial limited beta release
How-to video:
RapidShare Link (updated 10/9/07)
Suggestions:
Word to the wise - BACK UP YOUR KITCHEN!! It will save you much headache should something go wrong.
I can only rub my hands in glee - really look forward to using this as it allows for formal comparative testing between builds for me ;-)
Looks great Matt,
one question, how east is it to update the OEM packages. Same as before,just put them into the kitchen folder?
allan1 said:
Looks great Matt,
one question, how east is it to update the OEM packages. Same as before,just put them into the kitchen folder?
Click to expand...
Click to collapse
Very, then run this utility to set your options to true/false as you desire, then backup the settings so you can easily re-set them if you download a whole new setup.
Super easy and super quick. Just have a few XML formatting issues to resolve before I can get this out
News?
It sounds so good....
i'm getting excited
You're a good egg, you!
are we any closer to a beta yet?

Touch Tips, Tricks, & Tweaks [Nov 8th, 2008][More to come!]

I AM NOT RESPONSIBLE FOR ANY DAMAGE TO YOUR DEVICE!​
EDIT & CHANGE @ YOUR OWN RISK!!!​
Personally, the Touch is the best phone I've used to date. But, there is always a way to make it run faster and custom to your needs. I figured I start a thread here with all available and possible system tweaks. I only know of a few, hopefully some of you out there know some more you can post.
*TO ENSURE YOU DO NOT NEED TO DO A HARD RESET AND LOSE ALL DATA, PLEASE MAKE SURE YOU BACKUP ALL YOUR DATA BEFORE CHANGING THE SYSTEM*​
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Contents
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Post I: The Basics
Code:
[SIZE="3"]1. Thanks!
2. Getting Started
A. Useful Tools
A1. Freeware
1. PHM RegEdit
2. Total Commander
3. schap's Advanced Config Tool
4. dotfred's PIM Backup
A2. Software [NON-FREEWARE]
1. Spb Backup
2. DinarSoft's MemMaid
2. Learning the Registry
A. Links
A1. Registry Explained [xda-wiki]
A2. Registry Editor Bible [xda-wiki]
A3. "How-To" Edit the Registry [WMExperts][/SIZE]
Post II: Simple Tweaks
Code:
[SIZE="3"]1. Disabling Auto-Suggest [xT9]
2. The Original HTC Cube
A. Removing the Cube
B. Disabling the Cube in S2U2
3. Keep the phone on during a call[/SIZE]
Post III: Advanced Tweaks
Code:
[SIZE="3"]1. GPS
A. Basic GPS Settings
B. aGPS Settings [VZW Only!][/SIZE]
Post IV: Additional Tips
Code:
[SIZE="3"]1. [URL="http://forum.xda-developers.com/showthread.php?p=2725830#post2725830"]Sync Album Art to the SD Card[/URL]
2. Commonly used Terms
A. The Basics
B. ROM
C. Extras
3. Button Shortcuts[/SIZE]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Thanks!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
big thanks to the following people for finding and sharing some of the tips & tricks posted here!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[xda!] [Philippe Majerus] [C. Ghisler & Co] [schaps] [dotfred] [Menneisyys] [itsme] [WMExperts] [rstoyguy] [panosha] [Slither2006] [Musicman247] [dharvey4651] [gc14]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Getting Started
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
below is a list of applications I either use or have used, and work great for tweaking your device
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Freeware
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
PHM RegEdit
A perfect tool for editing your registry.
*CAB file attached below due to some confusion with which file is correct from website
Total Commander
Probably the best file explorer I have used, also includes a directory to your registry for editing.
schap's Advanced Config Tool
Great application for tweaking the system, as well as changing your comm manager, button mapping, file associations, and others.
dotfred's PIM Backup
A great free backup tool to be sure all of your PIM data [contacts, calendar, messages] is safe.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Additional software I recommend [NOT FREE!!!]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
Spb Backup
This is a great tool for ensuring your data is backed up! I have it set to automatically backup every morning at 5:00. Works well since I always have a copy no more than 24 hours old. Great software, I completely recommend it. Also, it includes a desktop component which allows you to extract information in the backup file like your text messages and contacts.
DinarSoft's MemMaid
I have found this to be a great tool for managing your system. It includes specific tools to manage the memory in all aspects, as well as some system tweaks.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Learning the Registry
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Quote from our wiki, "The registry is a simple database where settings can be saved by windows applications, services, and the operating system itself."
In other words, the registry holds all of the important and sensitive data that your device uses to function properly, which is why you must BE CAREFUL!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*YOU MOST LIKELY NEED TO WAIT 60 SECONDS, THEN SOFT RESET FOR CHANGES TO TAKE EFFECT*
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I highly suggest taking a look at the below articles to better your knowledge.
Even if you already know what it is, you may learn something new!
| Registry Explained [wiki] | Registry Editor Bible [wiki] | "How-To" Edit [WMExperts] |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disabling Auto-Suggest [xT9]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
Not all of you may have this problem, but if you do, you'll know it, and it probably irritates you! Certain ROM's that include the Touch Keyboard are set to xT9 as default, which causes the auto-suggest when typing in certain applications, like text messaging. It's the little black bar that pops up above the keyboard, even if your not using the Touch Keyboard. It slows down the typing speed and makes sending a new text more work than it should be. To rid of it , change the following registry entries.
1. Edit three registry values
1A.
Code:
HKLM>System>CurrentControlSet>Control>Layouts>e0010409>Ime File
String Value: "\Windows\compime.dll"
1B.
Code:
HKLM>System>CurrentControlSet>Control>Layouts>e0010409>Layout Text
String Value: "COMP IME"
1C.
Code:
HKCU>ControlPanel>Sip]>SuggWords
DWORD Value: "0"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The Original HTC Cube
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Removing the Cube
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
Personally, I hate the original cube! Takes up a good bit of memory, and is almost impossible to change, at least for me. It may be that I'm using a custom ROM, but out of all the available cube sets out there, which includes the cube config app, it's never 100% correct. So I currently disabled it, prevented the use of the four associated apps, and use Slither's Cube. By doing this you can save some memory and prevent the accidental cube swipes in other apps.
1. Disable the cube - This requires one very simple registry edit
Code:
HKLM>Software>OEM>TFLOSettings>EnableCube
Set value from 1 to 0
2. To save memory, the four associated files, QuickDial.exe, MediaHubMini.exe, AppLauncher.exe, and BioTouch.exe have been recreated with a 0kb file size thanks to panosha.
The thread with the attahced files can be found here: http://forum.xda-developers.com/showthread.php?t=368269
All together this will prevent these apps from running in your memory, disable the cube, and still keep the remaining TFlo settings enabled, such as the kinetic scrolling.
*I have installed efrost's FTouchFlo, and it works great, doesn't interfere with anything else
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disabling the Cube in S2U2
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
Thanks to Musiman247, there is a registry edit that can prevent the cube from being opened while S2U2 is active (screen locked). There are two ways, manual and automatic.
1. Edit the registry (Manual)
Code:
HKLM>Software>HTC>Biotouch>Disable4SpecificApp
Create new key: "S2U2"
Create new string: "ClassName"
Value: "S2U2"
2. Install Musicman247's cab file (Automatic)
The cab file is found in this post at PPCGeeks, you will need to be registered to download: http://forum.ppcgeeks.com/showpost.php?p=277324&postcount=18
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Keep the phone on during a call
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
This has always bugged me to no end, having to turn the phone back on just to hang up.
I have found the best way to do this by using A_C's S2U2, and as xda users, you probably already have this installed.
Just a simple setting, here is how I have it set, basically you'll use S2U2 to control how your device shuts off.
1. System Settings
Code:
Settings>Backlight
Battery Power: Turn off after 30 sec
Code:
Settings>Power
Advanced>Turn off device if not used for: Disabled
2. S2U2 Settings
Code:
Lock when backlight turns off: On
Power Off in: 5 sec
but Blank Screen only: Off
Blank Screen on Talk: Off
Now you can talk all you want and not have to worry about turning the phone back on to enter digits or hang up!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GPS
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*THIS REQUIRES FLASHING A RADIO VERSION OF 3.XX, BEFORE YOU ATTEMPT TO FLASH, PLEASE BE SURE YOU UNDERSTAND WHAT YOU ARE DOING!*
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Basic GPS Settings
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
I always see this same question asked over and over again, so here it is, the proper settings of your GPS.
1. Before you can make any adjustments, you must, of course, have the GPS enabled. I will not get into flashing, since it is an entirely different subject. You could probably write a million word essay on how to do it, and there would still be questions. Best place to start is at PPCGeeks.
DHarvey made an awesome how-to guide, found here: http://forum.ppcgeeks.com/showthread.php?t=24979
For those who have already flashed, here are the settings, and one registry edit I've found, and seems to work.
2. System Settings
Code:
Settings>System>External GPS
Programs>GPS program port: COM4
Hardware>GPS hardware port: (None)
Hardware>Baud rate: 4800
Access>Manage GPS automatically: Enabled
3. Personal Settings
Code:
Settings>Personal>Phone
Location Setting>Location On: Enabled
4. Registry change that seems to help
Code:
HKLM>Software>HTC>SUPL AGPS>GPSMode
Change value from 2 to either 4 or 1
After everything is correct, it is best to use a GPS Primer to obtain your initial sat lock, that means only the very first time, unless you are in a completely different area. I currently use GPSViewer, it was included in the ROM I'm using, but there are few others like this floating around. Also, for the first time, it may take a few minutes, just be sure your outside on a fairly clear day, if you don't pick up the sats when your sitting in your basement on a cloudy day, don't be suprised!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
aGPS Settings [VZW Only!]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
After reading about this, I had to try it! By doing this, you will open your device to the aGPS servers. What that means is, you'll have a much faster and more precise GPS device than most stand alone devices available. After doing this, I was able to obtain my position, without using a GPS primer, inside my office building in under seven seconds! Before doing this, I had to stand outside for almost a minute, at least on good days. Still, weeks later, I'm able to get my GPS position when some people have don't even have phone service available!
If you are with VZW, and already have enabled your GPS, this is something I completely recommend doing!
Big thanks to gc14 for posting this on our wiki!
| VZW aGPS "How-To" |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sync Album Art to the SD Card
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I have found that you'll always want your album art tagged to your music, especially if you use S2P, here are two ways to sync, EASY and FAST.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
To save some space here on this thread,
here is a link to a previous thread of mine with the instructions for this.
| "How-To" Sync Album Art to the SD Card |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commonly used Terms
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
everywhere here in the community, are tons of terms and acronyms used that most likely have you thinking...............huh ?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The complete glossary of terms can be found in our wiki.
| xda-wiki Glossary |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The Basics
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
XDA: Wondering how the site got its name?
Code:
"This site is about certain PDA-phones, made by a firm called HTC in Taiwan.
Their makers named them 'Wallaby', 'Himalaya', 'Blue Angel', 'Wizard' and 'TyTN',
but almost nobody knows them by those names.
The mobile provider O2 sells them under the brand-name 'XDA',
and that's what we had in our hands first.
They're also known as Qtek, MDA, SX-56, Hermes and many, many other names."
HTC: High-Tech Corp.
PDA: Personal Digital Assistant
PPC: PocketPC
PIM: Personal Information Manager
SIP: Secondary Input Panel
AS: ActiveSync, the software used on your PC to transfer data to your PDA. Used with XP.
WMDC: Windows Mobile Device Center, same as AS, but for Vista.
CAB: Cabinet file, this is typically file you'll use for installing applications.
GPS: Global Positioning System, I hope you know what this is.
OS: Operating System, such as Windows Vista or Windows Mobile 6.1.
RAM: Random Access Memory, the term RAM is usually used for PC's, for PPC's, it's usually referred to as Program Memory.
Stylus: Worthless! Try to never use this in public, you'll just embarrass yourself!
Soft Reset: The same as restarting your PC, it's good to reset every day to help with system performance. To soft reset, simply press the button located to the right of the USB port on the bottom of the device with your stylus.
Hard Rest: Much like a System Restore for your PC, this will ERASE ALL DATA on your device and return it to factory defaults. You can do this by pressing and holding both the Send (Green) and End (Red) buttons, and performing a soft reset. You will then be given a set of on-screen instructions to continue the deletion of files.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ROM
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
ROM: Read-Only Memory, the set of system files, your OS.
Cook: For ROMs, it means to create or build a ROM.
Kitchen: The set of files used to cook a ROM, such as the PPCKitchen.
Chef: Ye who cooks the ROMs, and master of the kitchen!
Flash: Updating your ROM.
RUU: ROM Update Utility, the application used to flash your new ROM. If you've ever done a carrier ROM update, you may be familiar with this tool.
Unlocking: Typicallywhen you purchase your device from your carrier, it's locked, to prevent any system changes. You must unlock your device to allow changes, such as flashing the new ROM.
SPL: Secondary Program Load, is the boot loader of your phone, much like the BIOS is the boot loader for your PC. You'll hear more on this when unlocking your device.
Bootloader: This does the job of booting up the device hardware and loading various items into memory before the ROM starts in the device. You'll access the bootloader when flashing a ROM. To enter bootloader, press and hold the Power and Camera button, and perform a soft reset.
ExtROM: Extended ROM, a dedicated part of the ROM memory that is (by default) hidden to the user. This area typically includes cab files that are loaded upon Hard Reset. This space is frequently used by carriers, or others creating ROMs, to store cabs that load settings onto the phone.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Extras
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
CDMA: Code Division Multiple Access, you only really need to know, if you have the CDMA version of the HTC Touch, you have the Vogue.
GSM: Global System for Mobile communications, if your HTC Touch is a GSM model, you have the Elf.
BT: Bluetooth
A2DP: Advanced Audio Distribution Profile
AVRCP: Audio/Video Remote Control Profile
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Button Shortcuts
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
While in the Dialer:
Up/Right: Call History
Down/Left: Speed Dial
Screen Calibration:
Center+Camera
Soft Reset:
Use your stylus to press the small button located to the right of the USB port
Hard Reset:
Hold Send+End, Soft Reset
Boot Loader:
Hold Camera+Power, Soft Reset
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
wow....did you just type this all?
Whosdaman said:
wow....did you just type this all?
Click to expand...
Click to collapse
LOL ! Yeah, took about an hour, but there is still more. I've been wanting to do this for a few days. All I need are some contributions, I only have a few tricks up my sleeve.
thread
Thanks for the great info!
good info! very helpful! thanks.
Great post just one question I have the Bell rom, the new one with 3.50 radio but this doesnt have cube do you recomend the Slither's Cube or where can I get the original one.
Thanks.
This needs to be added!
This works for the Verizon Vogue! Unbelievable fix!
http://wiki.xda-developers.com/index.php?pagename=VerizonAGPSFix
Thanks GC!
Solidus_k said:
Great post just one question I have the Bell rom, the new one with 3.50 radio but this doesnt have cube do you recomend the Slither's Cube or where can I get the original one.
Thanks.
Click to expand...
Click to collapse
Yes! Use Slither's cube, it is without any doubt, much better, and easier to configure!
osurferx said:
This works for the Verizon Vogue! Unbelievable fix!
http://wiki.xda-developers.com/index.php?pagename=VerizonAGPSFix
Thanks GC!
Click to expand...
Click to collapse
I saw your thread on this yesterday, great find! But can anyone else prove this works as well? There is a bit more to this than simple reg changes, and I'd like to stay away from anything too complicated. If this is a proven fix, I'll post some additional instructions on it after I do it.
osurferx said:
This works for the Verizon Vogue! Unbelievable fix!
http://wiki.xda-developers.com/index.php?pagename=VerizonAGPSFix
Thanks GC!
Click to expand...
Click to collapse
Hmmm...When i get a chance i'll check this out
--------------------------------------------------------------------------------
All works well on my HTC Touch Elfin with this patch to disable the Cube, but now when I swipe up while in SPB MS I go back to today screen, kinda the lesser of 2 evils. How can I make the up swipe do nothing?
kbywg said:
--------------------------------------------------------------------------------
All works well on my HTC Touch Elfin with this patch to disable the Cube, but now when I swipe up while in SPB MS I go back to today screen, kinda the lesser of 2 evils. How can I make the up swipe do nothing?
Click to expand...
Click to collapse
If you did everything listed, you basically disable any actions. But, if I'm not mistaken, that is a default from Spb.
PHM Reg editor
Hey guys. Kind of a dumb question...perhaps. How does one exactly install PHM reg editor? I d/l it. I ran the executable. It installed itself in my Program files folder and that's it. Am I to transfer *.cab to my phone and rum them to install this app?
Like I said, probably a dumb question but I had to ask.
UberGolf said:
Hey guys. Kind of a dumb question...perhaps. How does one exactly install PHM reg editor? I d/l it. I ran the executable. It installed itself in my Program files folder and that's it. Am I to transfer *.cab to my phone and rum them to install this app?
Like I said, probably a dumb question but I had to ask.
Click to expand...
Click to collapse
Yes, the .cab file will install itself to your device.
TheChampJT said:
Yes, the .cab file will install itself to your device.
Click to expand...
Click to collapse
Thanks. I know the .cab will extract on my device. The problem is that I have 11 .cab files in the installed "C:\Program Files\PHM\PHM Registry Editor" folder.
Regedit.Jup_ARM.cab
Regedit.Jup_MIPS.cab
Regedit.Jup_SH3.cab
Regedit.Jup_SH4.cab
Regedit.Mrln_ARM.cab
Regedit.Rpr_ARM.cab
Regedit.Rpr_MIPS.cab
Regedit.Rpr_SH3.cab
Regedit.Stngr_ARM.cab
Regedit.Wyv_MIPS.cab
Regedit.Wyv_SH3.cab
Whice one(s) do I transfer to my Bell HTC Touch (Vogue) and unpack?
UberGolf said:
Thanks. I know the .cab will extract on my device. The problem is that I have 11 .cab files in the installed "C:\Program Files\PHM\PHM Registry Editor" folder.
Regedit.Jup_ARM.cab
Regedit.Jup_MIPS.cab
Regedit.Jup_SH3.cab
Regedit.Jup_SH4.cab
Regedit.Mrln_ARM.cab
Regedit.Rpr_ARM.cab
Regedit.Rpr_MIPS.cab
Regedit.Rpr_SH3.cab
Regedit.Stngr_ARM.cab
Regedit.Wyv_MIPS.cab
Regedit.Wyv_SH3.cab
Whice one(s) do I transfer to my Bell HTC Touch (Vogue) and unpack?
Click to expand...
Click to collapse
I don't have a clue what the three letter abbreviation is after "Regedit", check the first post for the correct .cab file, the one I have used in the past.
To properly make any adjustments said:
PHM RegEdit v0.70 [/B]- Obviously an app to edit your registry.
Developer's website: http://www.phm.lu/products/PocketPC/RegEdit/
*CAB file attached below due to some confusion with which file is correct from website
2. Total Commander v2.5 - Probably the best file explorer I have used, also includes a directory to your registry for editing.
Developer's website: http://www.ghisler.com/pocketpc.htm
3. Schap's Advanced Config Tool v2.1 - Great application for tweaking the system, as well as changing your comm manager, button mapping, file associations, and others. Currently open to contributors to add tweaks, there are a few floating around.
Original thread: http://forum.xda-developers.com/showthread.php?t=317070
Contributing thread: http://forum.xda-developers.com/showthread.php?p=1905058
Click to expand...
Click to collapse
This is the link I used to d/l PHM. I clicked the " Download PHM Registry Editor : Pocket PC Edition" link, d/l to .msi and executed it. That's How I got what I got. Any help would be appreciated.
Never mind....I finally saw the green font saying "*CAB file attached below due to some confusion with which file is correct from website"
Sorry for being such a tard.

[UC]XDA_UC V2.RC1, Automated & Silent User & Cook, Configuration Service[14/05/10]

[UC]XDA_UC V2.RC1, Automated & Silent User & Cook, Configuration Service[14/05/10]
V2.RC1 Update,... New AutoShortcut Commands, new SDConfig.txt Commands, Manual and Storage Card install folders added, Extra parameters for Cooks.
I'll be updating all documentation accordingly later today.​
Another (The?) new way to implement User Customization and Cooking.
This Thread is meant for Rom Cooks.
Users should take a look at the User To User Tips, Tricks ideas and issues thread.
What the XDA UC service does, is silently install (or not so silently if needed by User), .cab, .xdas, .xml, .reg, .mscr, copy over user manila files, install files from SDconfig.txt if wanted and then a few extra's for the freaks like copying folders or creating shortcuts from specific registries. This happens either at first or second boot depending on the existence of either RunCC.exe or Autorun.exe in rom.
It's all Mortcsript so it's very easy to get a grasp of it and change the behaviour and or Chip in adjustments/improvements.
But no knowledge of mortscript is needed to implement
It Uses DotFred's Taskmanager to parse and implement the .reg and .xml files. But it can also be used to disable or enable services or register DLL files.
More Information about the XDA Type Files at:
http://wiki.xda-developers.com/index...ename=XDA_file
My Shout out for this Two Year Long Evolving Collaborating Endeavour go to:
Bengalih (that has a very similar UC variant called Sashimi and helped with some of the early scripts I was trying to do with mort while cooking, I wish I could have collaborated more with him, it would have saved time re-inventing the wheel), RoryB for bouncing back ideas, supplying new scripts and perfecting older ones, serfer222 For making the script compacter, jmckeejr, Ameet & the whole Digital XDA SPC Cooking Crew, bbobeckyj, CLHatch, Scinor, Mort, Sleuth255, McCune, DotFred, MrVanx, danny_and_2, Cmonex, utak3r, Laurentius26, Radimus, and the Whole Original SPC Crew for accepting my obsessions.
For Knowingly helping me get the information, unknowingly helping me get the information or motivated me in keep going on in my Quest resulting in this.
If I Forgot you, Forgive me.
If you feel that certain information that has been used originated by you give me a holler and I will credit you if this is so.
Before you consider buying me a beer. Please consider Donating to XDA to help out with the maintenance of the forum and get cool stars next to your Nickname showing your appreciation. Then there are always the people that without their apps this wouldn't have been possible at all that you can consider showing some love. Mort, DotFred & Sleuth255 All of whom made Apps Seemingly simple But oh so useful for the whole XDA and PocketPC community.
Download and Info in next Post
What this version of the XDA UC service does, is silently install and execute (listed in the order the items get installed)
Run the Users customisations of course.
User side information here...
Run Cook.mscr in Windows folder(For Cooks Only)
More Cook info coming.
Add native support for .mscr, .mortrun, .xda, xdai, xdas & .xdaz files
(Where in "\Storage Card\" is read from HKLM\System\StorageManager\Profiles\SDMemory For MultiLanguage Support)
Requirements
The Rom should have the security relaxed in HKLM\Security\Policies\Polices by setting the value 0000101a to a 1.
So unsigned installations and Mortscript do not give a security error.
If you have a different language then English, don't forget to change the path in the initflashfiles.txt/app.dat file (if your using legacy kitchen )
The rest of the script should dynamcliy get the correct variable for the storage location.
In the end the process it comes down to the device starting after flashing and not needing any reboot while silently installing Cook and User configurations.
On the User end and cook end no SDConfig.txt ort config.txt file is needed.
Attached the OEM Package and a Sample Package for SD.
(Klaxon.Cab, GoogleMaps.xdas, two .reg files, two xml files, my.tsk, and a test mortscript)
The Control factors of the Sample SD Package is that is should install
HKLM\Software\XDA\Test\Reg 1 Parsed=1
HKLM\Software\XDA\Test\Reg 2 Parsed=1
HKLM\Software\XDA\Test\xml1parsed=1
HKLM\Software\XDA\Test\xml2parsed=1
These are the tweaks present in those files.
In addition everything installed will be found under
HKLM\Software\XDA\UC\
And the Morscript in the sample SD Card Package should give a message to confirm it was executed "Mort UC From SD Working"
Cab Files and XDAS files should eventually just be in the startMenu Programs.
G-Alarm is there because it needs User interaction and that will pop up when it needs your attention.
At the end of it all you get a message Installations have finished.
When using SDConfig.txt be sure to add a blank line at the end of it.
Disclaimer:
Please be aware that the XDA_UC script contains a disclaimer, not to post errors with it to the Mortscript forums, and the usual this **** cloud be dangerous to your phones health.
For Standalone version, place XDA_UC folder from "User_Storage Card" on Storage Card.
Then run "\Storage Card\XDA_UC\Install\XDA_UC.exe"
Information about the SDAutorun.exe V2 UC can be found here:
http://forum.xda-developers.com/showthread.php?t=366337
Information about SDConfig.txt & .xml user setup can be found here:
http://forum.xda-developers.com/showthread.php?p=5011285
Changelog:
V 1.0.01
Changed Sleep to start UC to 50 seconds for full device Boot before UC starts.
Changed "XDA UC Service Start" title to "customization" to match the old one.
Changed sleep before completion message to ten second in case the last cab needs user input and the Completion message pops up to early.
Changed Sleep at while for Theme installation to 2 seconds.
V 1.0.02:
Added Copy1 to Copy2 by reading from registry settings
[HKLM\Software\XDA\DirCopy]
"\\Storage Card\\Some Folder"="\\My Documents\\Some Folder"
Added Disabling Manila from Homescreen then Copying files from "\Storage Card\XDA_UC\manila" to Windows, The checking for existence of wallpaper_TF3D.png or wallpaper_TF3D.jpg and adding that to
[HKCU\Software\HTC\Manila]
"HomeBackgroundPath"="\\Windows\\wallpaper_TF3 D.jp g"
Import registry files from "\Storage Card\XDA_UC\manila\manila.reg"
Re-enable Manila on Homescreen and redraw it.
If not present do nothing.
Added RoryB's Complete SDAutorun.exe replacement/SDConfig.txt parser script.
Check for existence of Autorun.exe or RunCC.exe to automatic determine which method/bootcount to use.
There is no longer the need for two separate XDA_UC versions let alone a third.
.reg and .xml files will no be sent to renamed taskmanager "FS_TaskMgr.exe"
Added checking for cab files in "\Storage Card\XDA_UC\SD\", for those that don't have the luxury of changing the install paths in a cab file to hardcode these to Storage Card. So you get full user input to choose on these cabs.
V 1.0.03:
Todo's
Add Support For Diamond Internal Storage Need Someone with a Diamond to Test.
V 1.0.04:
Added Support for PimPackup files *.pib & .cer files.
Moved Disclaimer to the beginning and added an option to reset ad the end.
V 1.1.00:
Added extra Runs for Diamond and Samsung Internal Storage.
V 1.1.1B2:
Applied script improvements to reduce code used and make script a bit faster.
Removed Manila folder copy and replaced it with more general Copy2Root function/folder.
Added recognition of "REG: " command in SDConfig.txt parsing.
Added recognition of "CER: " command in SDConfig.txt parsing.
Testing:
Code:
If( FileExists( "\" & SDF & "\Cabs\pim.vol" ))
Kill("cprog.exe")
EndIf
During SDConfig.txt just before cpy1, cpy2 function.
V 1.1.1B3:
Mayor overhaul by new script from Serfer222
And then I started adding more crap and messing the new clean code up.
XCP1 & XCP2 commands for SDConfig.txt (Folder Copy with SDConfig.txt)
MCAB command for SDConfig.txt (Cabs that you want manual input for during SDConfig.txt)
SCAB command for SDConfig.txt (Cabs that you want installed to SD SemiAutomaticly during SDConfig.txt)
SC1 & SC2 commands for SDConfig.txt (Shortcut creation with SDConfig.txt)
KILL command for SDConfig.txt (Kill a running .exe/process)
EXEC: command for SDConfig.txt (Was already present but i removed the checking if the file is a .exe so anything can be executed and)
Del: Command for SDConfig.txt
.PROVXML now also get parsed in XDA_UC folder
Changed Serfer222's fix to parse mail xml files before PimBackup to "*mail*.*xml" so now if there's a file containing mail anywhere or is a .provxml get's parsed before PimBackUp.
RESET command for SDConfig.txt
WR1: & WR2: commands to write files using SDConfig.txt
Parse File containing "WiFi in it's name" Early like MyHomeWiFi.xml or MyHomeWiFi.provxml
Add a script to run and add XDA_UC to rom's without it.
"Manual" Folder in XDA_UC folder for Full Manual .cab Installs
"Storage Folder in XDA_UC folder for Semi Silent .cab installs to Storage
Early "*wifi*.*xml" parsing from XDA_UC for quick Wifi connecting.
Eauh maybe i forgot some stuff....
Bug Tracker for last Beta.
Wrong code for the WR1: & WR2: commands (Updated Beta Download with Fixed Script)
WR1: command needs a delete or else the next time it is run it will add text to the file instead of write a new one. Working on Fix. Fix Updated in original Download.
Changed XCP1: XCP2: commands into MOV1: & MOV2: to avoid confusion with CPY1: & CPY2: (TNX RoryB good one) Updated in original Beta Download.
Other Updates I'm looking into All Beta:
Changed Manila/Sense Script so it now Checks for manila.reg @ "\Storage Location\XDA_UC\Copy2Root\Windows\manila.reg" and runs the reg from there.
Test everything again
More optimisation of the code suggested by Serfer222
Call for Sashimi & PresetInstaller, so having Making an XDA UC Rom doesn't force users switching their preferred UC Setup.
Add DELT: command
Config.txt for Cooks (May not be included as it is partly redundant)
SDAutorun replacement without SDAutorun.exe
Information will be added about this in the future.
Some more changes to my method I thought I would share.
Run the items in SDConfig.txt without using SDAutorun. I do not have any tsk to run, but it would work the same. I put copy first since some EXECs like xcopy need to be copied before execution.
Code:
###############################
# SDConfig without SDAutoRun
###############################
; Wait 10 seconds to start to be sure SDCard can be accessed
Sleep( 10000 )
If( FileExists( "\Storage Card\SDConfig.txt" ))
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
While( IsEmpty( xcount ) = FALSE )
If( SubStr( xcount, 1, 5 ) eq "CPY1:" )
xcopy1 = SubStr( xcount, 6 )
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
If( SubStr( xcount, 1, 5 ) eq "CPY2:" )
xcopy2 = SubStr( xcount, 6 )
Copy( xcopy1, xcopy2, TRUE )
EndIf
ElseIf( SubStr( xcount, 1, 5 ) eq "CAB: " )
RunWait( "\windows\wceload.exe", "/nodelete /silent " & [COLOR=blue]"""" & [/COLOR]SubStr( xcount, 6 ) [COLOR=blue]& """" [/COLOR])
While( ProcExists ( "wceload.exe" ))
sleep( 3000 )
endwhile
Else[COLOR=red]if[/COLOR]( SubStr( xcount, 1, 5 ) eq "EXEC:" )
If( SubStr( xcount, -[COLOR=red]3[/COLOR] ) [COLOR=red]eq[/COLOR] [COLOR=black]"[/COLOR][COLOR=red]exe[/COLOR][COLOR=black]"[/COLOR] )
Run( SubStr( xcount, 6 ))
EndIf
[COLOR=red] ElseIf( SubStr( xcount, 1, 5 ) eq "XML: " )[/COLOR]
[COLOR=red] RunWait( "\windows\TaskMgr.exe", "/provxml " & SubStr( xcount, 6 ))[/COLOR]
[COLOR=red] While( ProcExists ( "TaskMgr.exe" ))[/COLOR]
[COLOR=red] sleep( 3000 )[/COLOR]
[COLOR=red] endwhile[/COLOR]
[COLOR=red] ElseIf( SubStr( xcount, 1, 5 ) eq "TSK: " )[/COLOR]
[COLOR=red] RunWait( "\windows\cusTSK.exe", SubStr( xcount, 6 ))[/COLOR]
[COLOR=red] While( ProcExists ( "cusTSK.exe" ))[/COLOR]
[COLOR=red] sleep( 3000 )[/COLOR]
[COLOR=red] endwhile[/COLOR]
[COLOR=red]Else[/COLOR]
EndIf
xcount = ReadLine( "\Storage Card\SDConfig.txt" )
EndWhile
EndIf
I have a mortscript I call user_C.mscr for some customizations that I used EXEC to run, but thought this way people could have multiple scripts.
Code:
If( DirExists( "\Storage Card\SDAUTO" ))
ForEach xscriptfile in Files( "\Storage Card\SDAUTO\*.mscr" )
CallScript( xscriptfile )
sleep( 3000 )
EndForEach
EndIf
Lastly, I have this final folder to hold cab files I want to install with user input. It also has a script to cleanup a few things from the cab install.
Code:
If( DirExists( "\Storage Card\SDAUTO\Final Files" ))
ForEach xcabfile in Files( "\Storage Card\SDAUTO\Final Files\*.cab" )
Runwait( "\Windows\wceload.exe", "/nodelete " & [COLOR=blue]"""" & [/COLOR]xcabfile [COLOR=blue]& """"[/COLOR] )
While( ProcExists ( "wceload.exe" ))
sleep( 3000 )
endwhile
EndForEach
ForEach xscriptfile in Files( "\Storage Card\SDAUTO\Final Files\*.mscr" )
CallScript( xscriptfile )
sleep( 3000 )
EndForEach
EndIf
I had to set config.txt to hide the overlay image and not lock the screen to allow seeing the messages and responding to them. Eventually I see this changing to have the first script copied to start up folder by an initflashfile and not even need AutoRun. Currently config.txt starts the mortscript and does nothing else.
Cook.mscr
If your cooking and want your own mortscript to also be run at first boot just name it cook.mscr and put it into Windows folder.
Update: From Version 1.2.0 Cook.mscr will be executed at the same moment as the rest of XDA_UC, so this is depended on if RunCC or Autorun is used.
Suggestion:
install the cabs in a known order, perhaps alphabetically, so that we can name the files in the order to install like so
10_MSVC.CAB
20_PIMBackup.Cab
etc means we can control the install order.
Reason I chose not to use the known "Cabs" folder is not to screw with that configuration.
(XDA_UC is backwards compatible with SDAutorun v2 SDConfig.txt)
Cabs will be automatically be parsed alphabetically that's a default when more cab's are being processed.
At least I think so
It's using MortScripts ForEach File command.
Almost Everything processed will be written to registry under.
HKLM\Software\XDA\UC
And no more hassle with cabs that need user interaction.
You just interact when they come up.
If it's a good idea I could also make it check for a present Welcomehead.png or the Existence of a TF3D folder to copy over personal TF3D files.
Uploaded the OEM and a Sample SD Test Package.
is there a way this could be done without removing the RUNCC?
Yes there is.
There's a few different solutions.
I have added your request to the first Posts.
It runs at second boot and skips a few things that RunCC takes care of like installing cabs present in the windows folder.
This way you can keep everything is with RunCC and the welcome.lnk in initflashfiles.dat
Personally I prefer the First method with no reboots at all but it does require some extra meddling in the Rom.
Hello,
I have some questions...
Noonski said:
(This Method is under Review as it seems the latest RunCC accepts config.txt files from SD)
Click to expand...
Click to collapse
Noonski said:
This didn't work in earlier versions i had my hands on.
Click to expand...
Click to collapse
Which version is this? 1.0.9.0?
RunCC can execute the same commands in config.txt? (EXEC, TSK, XML, CAB...)
I have yet to get a hold of the version l3v5y's using.
Yes RunCC can but it needs configuration. Now for a cook that isn't any problem. But for Simple users all they need to do is drop some cabs and tweaks they have collected throughout the forum into a folder not be annoyed by.
I posted a rom already that has runcc installing from sdcard's config.txt. Not too difficult at all, wonder why more cooks don't figure it out.
Because Earlier releases of RunCC from leaked roms did not except these commands.
I have just extracted a version of it from an official Rom and it's got the same version i was using before 1_0_9_0
So weird that it is now accepting it.
But looking back i did not use the addrun("RunExtra"
I did try the Run customer, and default tho.
(Slaps in his forehead)
But it's still not the same as i'm trying to offer here.
Noonski said:
Because Earlier release of RunCC from leaked roms did not except these commands.
I have just extracted a version of it from an official Rom and it's got the same version i was using before 1_0_9_0
Click to expand...
Click to collapse
Noonski said:
So weird that it is now accepting it.
But looking back i did not use the addrun("RunExtra"
I did try the Run customer, and default tho.
(Slaps in his forehead)
But it's still not the same as i'm trying to offer here.
Click to expand...
Click to collapse
What you're trying to offer here is IMHO a far better solution!
Sorry for not getting you my tweaked package, though you seem to have managed without...
I think having a complete solution, with automated install of all cabs in a folder would be great.
Well i also needed to Scour the new Roms for some updated OEMS and i needed to know for sure that welcomehead.192.png was named that way to add it to the process.
And maybe even a Copy User Preferred Manilla files from SD to device if present. There must be some other good ideas from people that like flashing, but are tired of installing their preferred skins, settings and Apps.
Unfortunately i found that the newer package of Connectionsetup asks for a reset where my previous VGA reskinned package did not.
All the Regs are te same (Except for two new unrelated ones).
I like the old non rebooting version better.
I know that a reboot isn't needed but i can see users unkowingly agree to that reboot. (But that's another subject)
I think i will change the package this weekend So it is only one method.
By default it is set to run at second boot, but it can easily be changed by the cook to run at first boot if that is the setup that one would prefer.
Also i'm still tinkering out the exact form of the XDA files.
But nice to hear i'm not on an island, l3v5y.
Noonski said:
Well i also needed to Scour the new Roms for some updated OEMS and i needed to know for sure that welcomehead.192.png was named that way to add it to the process.
And maybe even a Copy User Preferred Manilla files from SD to device if present. There must be some other good ideas from people that like flashing, but are tired of installing their preferred skins, settings and Apps.
Click to expand...
Click to collapse
Noonski said:
Unfortunately i found that the newer package of Connectionsetup asks for a reset where my previous VGA reskinned package did not.
All the Regs are te same (Except for two new unrelated ones).
I like the old non rebooting version better.
I know that a reboot isn't needed but i can see users unkowingly agree to that reboot. (But that's another subject)
I think i will change the package this weekend So it is only one method.
By default it is set to run at second boot, but it can easily be changed by the cook to run at first boot if that is the setup that one would prefer.
Also i'm still tinkering out the exact form of the XDA files.
But nice to hear i'm not on an island, l3v5y.
Click to expand...
Click to collapse
I think the "EXEC:" command waits for the process to close? If yes, then an application that runs some mortscripts could wait till all the mortscripts are run before continuing, so it can be run at first boot within RunCC. That saves the issue of an extra reboot...
Welcomehead.192.png is the file for VGA/WVGA devices, welcomehead.96.png is for QVGA devices, though it's actually set in the registry, so that could be checked at load time? (I'll find the registry key at some point...)
Something I've just thought of:
If there were a way for ROM cooks to block things that are known not to function or are included already, that would be quite useful. E.G. I include PIMBackup in ROMs, so why would anyone install an extra cab to do the same?
You could add a check for a specific .Cab name.
And if present change the extension.
Repeat and Rinse a few times.
Then at the end rename all .cabxx back to .cab
I think in general, not a lot of people change their cab names.
Unless like that previous post, someone likes to add numbers to them to control the order.
But in this Silent install method i can see that having one app being installed first could be useful as there's small pauses build into the script so the device isn't slow as hell the first minutes it boots.
I think it might get more error prone if it gets executed through RunCC.
With all the processes that get proccesed through the script.
It's using and starting, cusTSK.exe, TaskMgr.exe, wceload.exe and mortscript. But when Mortscript exitst it should be finished.
I would need to test this style to feel confident it doesn't reboot while there's still work in progress.
I Agree that getting it into the No Reboot style might be some extra work for cooks. And maybe i'm seeing this to much from my own perspective where i always remove and convert OEM configurations to straight forward packages.
Noonski said:
You could add a check for a specific .Cab name.
And if present change the extension.
Repeat and Rinse a few times.
Then at the end rename all .cabxx back to .cab
Click to expand...
Click to collapse
Noonski said:
I think in general, not a lot of people change their cab names.
Unless like that previous post, someone likes to add numbers to them to control the order.
But in this Silent install method i can see that having one app being installed first could be useful as there's small pauses build into the script so the device isn't slow as hell the first minutes it boots.
I think it might get more error prone if it gets executed through RunCC.
With all the processes that get proccesed through the script.
It's using and starting, cusTSK.exe, TaskMgr.exe, wceload.exe and mortscript. But when Mortscript exitst it should be finished.
I would need to test this style to feel confident it doesn't reboot while there's still work in progress.
I Agree that getting it into the No Reboot style might be some extra work for cooks. And maybe i'm seeing this to much from my own perspective where i always remove and convert OEM configurations to straight forward packages.
Click to expand...
Click to collapse
I personally hate having cabs installed, so in theory my ROMs should be good to go without the reset.
Based on what you said, it might be best if the number of complications are minimal, and device compatibility as great as possible. RunCC probably would make things more complex and error prone, so yes, I agree not having it as a dependency makes sense.
A mortscript could always recognise *cabname.cab, so even using an order flag at the front should work.
Silent install sounds like it could be great, although some of the cabs need user intervention... Also, having a flag settable somewhere that makes (or stops) a message box with "auto install is complete" would be useful...
At the moment i have G-Alarm in my SD folder for that User intervention.
It just pops up at the moment after it's install i know at first i waited for it, no i grab a beer and tap it when i arive but the script continues with the rest of the files present so it's not waiting on that user interaction.
The possible Pop up message would in theory come up at the moment the last cab is just starting to install but it should be possible to add a check if wceload is still active before it pops up.
Which reminds me i still need to contact some of the people that actually helped out a lot without knowing.
"Installation has Finished, if your in a good mood and were planning to get beer from the fridge choose yes to reset the device, If your not in the mood and need to actually use your phone right now, press no to reset whenever you feel like it"
Do you think that would fit in the screen

[MOD][SENSE2.5TAB] RSSTab Project - Developer Thread - (5Aug Release4.Beta.1)

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Twitter:
@rsstab
RSSTab Update Feed:
Meltwater's Sense RSSTab Release Feed - Will be updated each time there is a release!
Project Release Thread:
XDA: RSSTab Project - Release Thread - The latest release cabs are here! (This does not apply to the betas yet)
Project Online Code Page:
CODEPLEX: HTC Sense RSS Reader Tab
Project Wiki Page:
XDAWIKI: Sense RSS Tab Project
Project Donations:
PAYPAL: Developer
meltwater
Latest Info
12Oct2011 - Facebook has altered the authorisation slightly, so manual paste method needs a little extra care (details here - Thanks to Nullstring).
(19Sep2011) "Facebook" Theme Released
(5Aug2011) Release 4.Beta.1 Details here
(12June2011) Release 4.Beta.0 (298views) Details here
(05June2011) Stable Release 3.0 (CodePlex 8974) Details here
(02June2011) Release To do list
(01June2011) Big Development Announcement - Facebook Integration
(10May2011) 3.Beta.2 [Released] (115 views) Details Here
(28April2011) 3.Beta.1 Released (In-App Update Only - minor changes) Details Here
(26April2011) 3.Beta.0 Released Details Here
(14April2011) (140 views) Beta Countdown To-do List posted!
(24thFeb2011) Release Thread started
- The focus of this thread will now be development, allowing general Q&A in the release pages.
- Don't be scared to post in either thread (I monitor both)!
- I may start to release beta versions in this thread for testing
(31stJan2011) Release 2.2.2 (cabs on release thread or available in codeplex [6377] (zip 503 views), Theme-able Version Rev2.2.2) - meltwater_RSSTabV2.2.2&SenseUtil.cab (662 views) meltwater_RSSTabV2.2.2(SeperateCabs).zip (304 views)
(27thJan2011) Easy Cab Install Test - Please let me know if it works or not!
(26thJan2011) Release 2.2.1 (attached (views 50) [6309] or available in codeplex, small fix+german lang Rev2.2)
(25thJan2011) Release 2.2 (attached [6226] (19views) or available in codeplex, see Release 2.2 Notes)
(20thJan2011) Release 2.1 (attached [6048] (77views) or available in codeplex, see Release 2.1 Notes)
(23rdDec2010) PreRelease Beta2.0B (attached [5534] (237views) or available in codeplex or Captain Throwback Cab)
(22ndDec2010) PreRelease Beta2.0 (attached or available in codeplex or Captain Throwback Cab (see install post #4))
(11thNov2010) 11th Nov 2010 Available - Minor Update
(10thNov2010) Captain Throwback Cab (see install post #4)
(9thNov2010) WIP 9th Nov 2010 Available - Release Candidate Codeplex Release Page
(3rdNov2010) WIP 3rd Nov 2010 Available
(22Oct2010) WIP 22nd Oct 2010 Available
(7Oct2010) WIP 7th Oct 2010 Available
(6Oct2010) New Screenshots Animated Gif Screenshots [Large]
(5Oct2010) WIP 5th Oct 2010 Available
(4Oct2010) WIP 4th Oct 2010 Available
(1Oct2010) WIP 1st Oct 2010 Available
(29Sept2010) Codeplex: Project Code Page - HTC Sense RSS Reader Tab
(1Sept2010) RSS Feed Item Display Form Requested...
(25Aug2010) Graphics Resizing Code Requested... + Updated Developer Pack attached + added Control Design Ideas to wiki.
(from now on - additional baselines will be released separately to the pack - but the old pack needed fixes)
(24Aug2010) Icon Graphics Requested... +1st run by another user!
(23Aug2010) Project Update
(19Aug2010) Project Launch, Wiki Open for ideas etc [Sense RSS Tab Project], Developer Package attached (731 views)
Welcome to the RSS Tab Developer Thread.
This latest release of the RSSTab is now available.
Please read the Install instructions carefully and if you have problems feel free to post questions.
There is a user manual available in the wiki page, so if in doubt have a read of that.
NOTE:
Like most RSS Readers, the software will open up data connections to download related images.
Please ensure you are aware of your data connection settings to avoid data charges from your carrier.
The installation, the use &/or miss-use of this software is at your own risk.
This software is provided as is & without liability.
Reverse engineering or modification of the binaries is prohibited.
By downloading/using this software you accept these terms, regardless of if you choose to read them or not.
Introducing the RSSTab
Click on image to see Large Size Version
Author Request - Posting on other sites or building in ROMs
I am happy for the tab to be included in ROMs and links to this thread posted on other sites, however, I do request that feedback is relayed back here so I can see what issues people are having. This is the responsibility of either the original poster or ROM Author to do this, to help me with development.
In particular:
1. language display issues, which I can not see as my ROM only supports english chars and I subscribe to english feeds.
2. install problems - it is something which I hope is almost resolved (using Captain_Throwbacks cabs, senseutil and the shortcuts), if not then we will need to know. Hopefully the newer builds are easier to cook too.
3. problem feeds - I wrote the RSS reading code quite early on, so it was rough and I only had limited methods I knew worked in compact framework, if there are issues I may revisit this code and improve the way it works.
Also it would be nice to post links to these sites on here too, common issues/solutions etc can then be viewed by all.
What can it do?
Once setup, the tab will display your list of feeds from the RSSHub directly in sense and allow you to view the list of items in the feed and then you can view a particular item and/or play a previously downloaded podcast file (video etc).
The tab is very much under-development, which means I am focusing on building in the important functions and features at the moment.
Presently, the tab will not change anything in your RSSHub files, so an unread item will stay unread and your files will not be harmed (the tab will only create some thumbnails etc in sub directories of the Channel Data folder). The exception to this is if you have donated and received a donate code, then you are able to disable the read only mode (which is experimental).
If you have a particular feature you would like added, then please add to the "To Do List" within the Wiki page or Code-Plex To-Do list.
Thread Quicklinks:
Rev 4.Beta.1 Release from Post#911 Onwards...
Rev 4.Beta.0 Release Facebook Integration Discussed from Post#838
Rev 3.0 Release Discussed from Post#789
Facebook Integration Announcement from Post#772 Onwards...
Rev 3.Beta.2 Release Discussed from Post#744 Onwards...
Rev2.2.2 Release Discussed from Post#600 Onwards...
Releases/Development Plan Links
Installation Instructions (Must read before install)
Theme, Icons & Colours Links
Language File Support Information
Thread Tips/Guides:
XDAWIKI: Sense RSS Tab User Manual
XDAWIKI: Sense RSS Tab Theme Page
[Q] Can you recommend some good RSS feeds? - Includes details on adding Facebook, Twitter and Google+ RSS Feeds
XdaTV/YouTube Channel Podcast Links
Thanks to:
The main problem is simply time, all coding takes lots of it and sense coding even more so. Obviously donations help greatly, be it donations of time to help with installation issues, testing and translations OR motivational money donations (be it $1 or $10) [I am saving up for something to help me with development] it all provides a boost which will drive me to work further on the project and shows me that the project is a worthwhile use of my time.
Donating to the project (money/time/skill/charity) will entitle you to a "Donate Code". If you've donated, send me the code from the "Advanced" settings page and you will get a code for your device. The "Donate Code" will allow you to use the experimental features which I am currently working on (use at your own risk as many of these will change the RSSHub data store - backups are recommended).
Experimental features include, updating feeds directly from the tab, setting items as Read/Unread and facebook api enabled facebook feeds. This is my way to return back something to those who invest in some way in the project, if you are unsure of how you can do this, then please let me know.
Donations:
JDog2pt0 (21/10/2011)
dale5804 (27/08/2011)
1sin (9/8/2011)
ct_moi (1/8/2011)
jivkonik (2/7/2011)
osiedacz (24/6/2011)
user_99 (19/6/2011)
Eddie Dickens (16/6/2011)
lcd4linux (13/6/2011)
Skrobel (7/6/2011)
timjarsky (9/5/2011)
unknown XdaId (5/5/2011)
Laurentius26 (27/04/2011)
sharkie405 (27/01/2011)
Captain_Throwback (23/11/2010)
JVH3 (16/11/2010)
Cabs+Installs:
Captain_Throwback
Testing:
zard, Captain_Throwback, mike2nl, winderp, colossus_r, ric69
Language Files:
(zh-cn) winderp, (es-es,es-es_tradnl) amno1970, (de-de) SteveP86 & user_99, (fr-fr) mickey & ric69, (zh-tw) boa19861105, (it-it) bbonzz, (pl-pl) Budniu
Code Tips/Help:
eboelzner+greenhacks(Sense Looknfeel SDK), emuneee (itemwebview), joe_coolish (debugfile), johncmolyneux (filedialogue), Captain_Throwback/Co0kieMonster(sensehelp), Drakknar (fbtab/rsstab banner)
Everyone behind the kitchen (without which I would have got no-where):
12aon, 6fg8, chainfire, sztupy, Co0kieMonster etc
Plus anyone else I've forgotten...
Thanks even if I've not mentioned by name, for all help, testing and support.
Let me know if I've missed you off the list, thank you for donating (in this case, your time and effort!).
See post #4 for install links & instructions (must read before installing).
Note:
The cab files required for installing the "release version" of the tab are located on the release thread
meltwater_RSSTabVX.X.X(SeperateCabs).zip below contains the cab file for installing the tab and senseUtil to assist with registering it with Sense.
rsstab-xxxx.zip below contains the files required for manually installing the tab.
Link to EXT file, TO BE DETERMINED
NOTE: rsstab-8974.zip is Stable Release 3.0 (CodePlex 8974)
To save time, I don't usually release the Beta versions as ZIP files, but feel free to open the cab and extract the files if you need to.
Development Progress
For the current to do list, or to add your own suggestions, please visit the wiki page:
XDAWIKI: Sense_RSS_Tab_Project#To_Do_List
OR
CodePlex : Next Release To Do List
Check the quick links for details about the latest release.
Release 31st Jan 2011 - 2.2.2
Fix for feeds which are not in a category (2nd try)
Text Theme/4F9BE867_manila Working
Release 26th Jan 2011 - 2.2.1
Fix for feeds which are not in a category
+german lang Rev2.2
Release 25th Jan 2011 - 2.2
New: Filter Feeds
Updated language files 2.2 (fr-fr & templates)
appRSS.reg Updated to link to RSSHub by default (assumes windows dir installed location)
----------------
Like most RSS Readers, the software will open up data connections to download related images.
Please ensure you are aware of your data connection settings to avoid data charges from your carrier.
The installation, the use &/or miss-use of this software is at your own risk.
This software is provided as is & without liability.
Reverse engineering or modification of the binaries is prohibited.
By downloading/using this software you accept these terms.
_____________________________________________________________
Code:
Release 20th Jan 2011 - v2.1
Experimental ReadAll/UnReadAll (activated with donate code)
Single feed display fixed
Updated language files
(22ndNov2010) PreRelease Beta2.0
"Pre-Beta Samper/Taster"
This initial build should be considered a development version and work in progress, I intend to make several updates to it before it can be considered a proper release as several sections are not quite finished, however it should be quite usable.
New features:
1. Lauc Theme file [759E7B43_manila] for font colour changes
2. Settings Pages:
Tab Settings:
a. Fixed header position [loading feedback not completed yet, plus highlight selection not completed yet]
b. Item View Mode Selection - allows the different methods to be tried (OpenNetCF is the latest one)
c. Selection of stylesheet for item view
File Path Settings:
a. Register the app's location with the registry
b. Define/Select the app shortcut
Advanced:
a. Reset the tab data (should clear out the RSSFeed registry values, leaving only settings behind, plus should then reload the channel data)
b. Advanced settings (as the FbTab, allows the harder options to be shown)
c. Language file selection.
d. Donation Code Function
3. Highlight of unread items
4. OpenNetCF Browser - with my own custom gesture support (needs fine tuning but the principle is swip left/right to go to next or previous item - eventually will define the direction via a user setting, up/down will do nothing at the moment, there is also a special diagonal gesture which will toggle the fit to screen mode - again possible to detect each of the 4 diagonal directions). It's experimental, but is usable.
WIP - 11th Nov 2010 (Very Minor)
RSSUtil
1. Fixed exception on incorrect DataFeed location.
2. Added new language files fr-fr, zh-tw
[B]WIP - 9th Nov 2010 (RC?)[/B]
Manila
1. Lang Files - All updated to have IDS_RSSTITLE at the top (ensures title is populated on 1st run). Plus added translations for zh-cn, es-es/es-es_tradnl, de-de, cs-cz (many thanks for the translations).
2. Updated example 26948339_manila Tab Control file to have IDS_RSSTITLE.
3. Improved item selection handler (should avoid jump back on Channel List on 2nd item selection - when scrolled down)
RSSUtil
1. Support for "gb2312" encoded files.
[B]WIP - 3rd Nov 2010 (Major Update)[/B]
Manila
1. Selected Slider Icon Included
2. Details text resized when media icon present
RSSUtil.exe
1. Added language file templates.
2. Split out NativeWebBrowser (thanks to emuneee) into dll (may replace at some point)
3. Now using "Release" build
4. Added external WebViewStyle.css file support
5. Fixed reg issue on open of DebugPage on clean System
6. Added extra checking of Selection Item number (avoids erroneous loads of channel list by mistake) - will log when this occurs.
7. Attempt to convert PST/CET/xxx etc time zone information
8. Initial work on gb2312 encoding (needs testing)
[B]WIP - 22nd Oct 2010[/B]
(Small update)
RSSUtil.exe only!
1. Changed close method for RssTabItemWebView (need check this fixes issue - wasn't present for me in first place)
2. Better Icon for RSS Feed Item view (top header)
[clear out the [\Storage Card\]Program Files\RSS Hub\ChannelData\FeedIcons directory and it will generate new ones as and when they are needed.]
3. Extra debug in file
[B]WIP - 21st Oct 2010 BIG UPDATE[/B]
RSSUtil
1. meltwater.apiLang.dll - updated for multiapp support.
2. feed reading improvements
3. image resizer improvements
4. settings page reset channels
5. Sense DateTime support
Sense
1. New layouts
2. Rss Tab Menus
3. GTX Theme support in lauc file
4. Sense DateTime support
[B]WIP - 15th Oct 2010 - BUILD DIR ONLY[/B]
Again, work is in-progress for a lot of this, still got a few items which aren't quite completed.
RSSUtil.exe
1. Implemented developer mode
(to shut off WIP sections)
2. Testing ItemView - alternative browser
(requires checking on problem devices - note links don't work yet, feedback please on if it works)
3. Better Settings Page for 1st release
4. Added Meltwater.ApiLang
(needs additional work to support both tabs - plus any other app)
SenseRSSTab
5. Implemented developer mode
(to shut off WIP sections)
6. New install message
7. Update bar position can be controlled
(i.e. not moved by new fb events...)
8. DEV ONLY: Fixed position header (to keep feed feed title at the top - disabled for now)
[B]WIP - 7th Oct 2010[/B]
1. Reg file corrected
2. 5D3CA1C8_manila - en-us lang file started
3. Regkey view on debug page
4. Started development of local image/html cache (inprogress)
5. Better feed support, plus improved handling of failed read
6. Testing fixed font size in style sheet on ItemView (will see if it helps)
7. Read File test file default to Ch160.xml (was Ch199.xml for last release by mistake).
[B]WIP - 5th Oct 2010[/B]
1.Changed log file to store a single days actions
(hopefully will remain small enough)
2. Better PageLevel setting
(old debug test commands weren't setting them)
3. Better handling when a feed is not present
(will ignore the feed and not change pagelevel)
4. Correctly error message path info
(path was repeated)
[B]WIP - 4th Oct 2010 V3[/B]
1. Extra exception handling...
[B]WIP - 4th Oct 2010 V2[/B]
1. Improved ItemView!
2. Attempt to stop null exception...
[B]WIP - 4th Oct 2010[/B]
1. Removed the need to have Ch160-Logo2.img
(can be removed from "RSS Hub\ChannelData" location. No longer used by tab.)
2. Added RSSIcon.png to "RSSUtil\Icons"
(Ensure you include this in your directory. Used as default header icon.)
3. Header now should populate with FeedIcon or Default RSS Icon.
4. Added debugging #define
(will keep enabled at the moment) which generates "RSSUtilDebug.xml" in "\RSSUtil\". Please include if you get exception errors etc, more debug will be added as we go)
[B]WIP 1st Oct 2010[/B]
1. Tab auto-refresh working
(blank feeds not handled yet but process will support it now)
2. Resize of icons for the list is working
(still some resizing done by sense due to aspect ratio issues)
3. Changed command pop-up to registry value RSSFeed.LastApiCall
(has less impact on tab function)
[B]WIP 29th Sept 2010[/B]
1. Initial attempt at auto-refresh (some issues to work out)
2. Pop-up of last command sent (to help debug auto-refresh issues)
3. Tests of image resize (plus downloadfile code to try)
4. Custom commandline in DebugPage (to help debug auto-refresh issues)
5. Script to update build dir
6. Removed Obj directory (generated by build)
[B]OLD WIP BUILDS:
20100826B - WIP.zip[/B] (104 views)
FIXED - B version:
Corrected detection of not finding the required file.
DONE: Support feed list with sense links to/from feeds
Implemented:
1. I've removed a bit more of the hard coded info from the feed details and removed the title for every item in the item list.
2. Navigation to/from channel list is working (with manual update only)
- Load up the channel list (from running RSSUtil.exe), wait for waiting icon to finish and press Update Now button to reload screen
- Select feed item from channel list to load data for that feed, wait for waiting icon to finish and press Update Now button
- Select header from Rss feed item list to reload the channel list, wait for waiting icon to finish and press Update Now button
[B]20100826 - WIP.zip[/B]
DONE: Add code to remove any extra registry items not replaced when updated with new data
[B]BASELINE: 20100825-Sense RSS-ChannelList.zip[/B]
25Aug2010
DONE: Read channels from RSSHub opml file (works, but needs improvement - categories are combined with feeds) Purely manual operation.
24Aug2010
DONE: Removed copy of facebook data to registry when no feed data is defined (code was from initial testing).
23Aug2010
DONE: Implement launch media from icon [working!]
DONE: Transfer settings page from facebookUtil to allow developers to create new settings & use LangAPI. [Done but no "real" settings just transferred code]
20Aug2010
DONE: Changed colours to (RSS) orange [R242 G125 B50] from (Facebook) blue.
DONE: Added app launch keys for easy running of Support app.
RTFM - Read The Fantastic Manual
The Fantastic Manual:
Follow the link below to get to the user manual wiki, if you spot something which is wrong or you would like to improve then please go ahead (that is why it is a wiki).
XDAWIKI: Sense RSS Tab User Manual
Installation
Installation Instructions:
Follow the link below to get to the Installation Instructions wiki, if you spot something which is wrong or you would like to improve then please go ahead (that is why it is a wiki).
XDAWIKI: Sense RSS Tab Install Instructions
Note: Install instructions have been moved to the wiki, please visit there for the latest info
illi's 2.2.2 EXT file for cooks, available from here. Only use if you know what you are doing and know how to cook roms.
Also if you've tried it, please let me know if it works or not and I'll update the package/instruction if needed.
You can manually update to the very latest build/development by downloading the current changeset file from the CODEPLEX Project Page or using this direct link: http://rsstab.codeplex.com/SourceControl/list/changesets#.
The files need to simply install and run the tab as it stands are contained within \Build\..., the folders structure shows where each of the files should go (Note: Sense will probably need a reset and the tab must already be added to sense).
Remember this is a development project, so if something doesn't work, then it probably just doesn't work but please post details on the forum if it appears to be an error.
Themes, Icons & Colours
Themes, Icons & Colours
Cabbed Theme's should work with previous versions of the tab, but best support is with Release 3.Beta.1.
Installing Cabbed Theme's
Install the theme cab to the same location as you installed the RSSTab (check this using your file explorer if you are not sure).
After installing a theme cab, you must "Reset Sense", this is achieved by using SenseUtil and pressing the "Reset Sense" button.
If you see two icons on the sense slider, you will need set the option to remove the icon within the Tab Display settings (with Advanced enabled). [Not available yet - so remove 5AB7F814_manila from your \Windows\ directory (and restart sense).]
Note: Once you have installed a theme, you must then reinstall the Default theme if you remove it (you don't need to reset sense until you've installed the default theme). You must do this, unless your tab came "cooked" into your ROM, but I would still advise installing the default if you've since updated the tab.
If you update the tab then you will need to re-install your theme, as the files involved will be replaced.
Official Themes
Default Theme
meltwater_RSSTabDefaultTheme.cab
"Green" Example Theme
meltwater_RSSTabGreenTheme.cab
"Facebook" Example Theme
meltwater_RSSTabFacebookTheme.cab - Replaces the RSSTab Icons with Facebook Tab icons and text colour to facebook blue.
Info for theme developers
Theme Cab Files
The theme works by directly replacing the files which define the text colours and graphics, so it is important to remember that when a theme is uninstalled it will also remove these essential files (unless they are present in the ROM).
When generating a theme cab file, please ensure the Company Name is set to "RSSTab" and the Application Name is "Theme". This will stop more than one theme being installed at the same time, so that uninstalling one does not remove the files installed by the other.
Recommended Screenshots
Please provide sceenshots with your cabs if possible, I recommend one of the "Channel List", one of the "Feed List" ideally with podcast icons, and one of the "Item View" if you've changed the CSS file.
Developers Pack
meltwater_RSSTabThemeDevPack.zip
The developer pack contains the source for both the Default and the "Green Example" theme. If you do create a theme, even if it is a "default" for your ROM, then please ensure the name of the cab file is clear that it is a default for that ROM in particular.
Lauc Theme File (Text Colours)
Example "Green Theme Text Theme File"
Although lauc code can be quite difficult to follow, the code used for the theme file is simply assigning the colours to the required variables, so it isn't too difficult to understand.
The Colour is set by:
Color(40, 100, 60, 255) == Color(RED, GREEN, BLUE, ALPHA)
Note: The ALPHA channel is not always used for text, so it is left at 255 (the max value).
To pick your colour values, you can use sites like:
http://www.colorschemer.com/online.html
Code:
-- File name: 4F9BE867_manila \windows\htc\People\Scripts\People\rssTheme.luac
trace("[RSSFeed] 4F9BE867_manila \windows\htc\People\Scripts\People\rssTheme.luac Example")
local col_vdarkGreen = Color(40, 100, 60, 255)
local col_darkGreen1 = Color(100, 255, 140, 255)
local col_lightGreen1 = Color(200, 255, 200, 255)
local col_lightGreenDull1 = Color(150, 255, 150, 255)
local col_darkGreen2 = Color(100, 255, 100, 255)
local col_lightGreen2 = Color(200, 255, 120, 255)
local col_lightGreenDull2 = Color(180, 255, 71, 255)
Theme_RSS_TitleName_Unselected = col_darkGreen1
Theme_RSS_TitleName_Selected = col_vdarkGreen
Theme_RSS_TitleDetailUnread_Unselected = col_lightGreen1
Theme_RSS_TitleDetailUnread_Selected = col_vdarkGreen
Theme_RSS_TitleDetailRead_Unselected = col_lightGreen1
Theme_RSS_TitleDetailRead_Selected = col_vdarkGreen
...
The file then needs to be compiled using the CommandLine Manila Kitchen or similar.
If you have difficulty using the Manila Kitchen etc, then simply post your lauc file on the thread and I (or anyone else who spots it) can compile it for you.
This section will be updated soon for 3.Beta themes
Follow the link below to get to the Sense RSS Tab Theme Page wiki.
XDAWIKI: Sense RSS Tab Theme Page
Users are able to change the graphics, text colours and item view page theme (see above link for full details).
For now, you can visit some initial themes:
Sharkie's Black and Gold, Blue and White, Man on Chair
RSS Tab Important Files:
Sense Tab Files:
Code:
TabControl:
26948339_manila
Graphics:
0E8DE6B8_manila \windows\htc\Common\Assets\Images\Common\RssFeedline.qtc [thin line]
[ATTACH]437917._xfImport[/ATTACH] 5AB7F814_manila \windows\htc\Assets\Images\Manila\icon_on\RssFeed_tray.qtc [tray icon active - Not required for NRG ROMs]
[ATTACH]437918._xfImport[/ATTACH] 6A42A5E4_manila \windows\htc\Assets\Images\Manila\icon_preview\RssFeed_large.qtc [preview icon]
[ATTACH]437919._xfImport[/ATTACH] 6C1F1212_manila \windows\htc\Assets\Images\Manila\icon_off\RssFeed_tray.qtc [tray icon inactive]
[ATTACH]437920._xfImport[/ATTACH] 2202FA31_manila \windows\HTC\Settings\Assets\Images\rearrange\rssfeed.page.qtc [rearrange icon]
45154810_manila \windows\htc\Common\Assets\Images\Common\VGA\RssFeed_divider.qtc [update bar]
Luac Scripts:
476C4205_manila \windows\htc\people\scripts\people\rssfeedpage.luac
0D4FCC6F_manila \windows\htc\people\scripts\people\rssfeedpage_Landscape.luac
Mode9:
26774112_manila \windows\HTC\Manila\rssfeedicon.mode9
6B54437C_manila \windows\htc\people\RssFeed.mode9
XmlPage:
RssFeed_Pages.xml
Language Files:
Manila Language files are defined in Post#7 below.
Registry Keys (Items are out of date, but the idea is the same):
Code:
[HKEY_CURRENT_USER\Software\HTC\Manila]
RssUtil app launch (for testing):
"RSSFeed.LaunchAppSel"=dword:0
"RSSFeed.LaunchAppName0"="RSS Util Debug"
"RSSFeed.LaunchApp0"="\\Program Files\\RSSUtil\\RSSUtil.exe"
"RSSFeed.LaunchAppArgs0"=""
"RSSFeed.RSSUtilExe"="\\Program Files\\RSSUtil\\RSSUtil.exe"
"RSSFeed.FeedDataStore"="\\Storage Card\\Program Files\\RSS Hub\\ChannelData\\"
data item display (may not keep them all):
"RSSFeed.nName"
"RSSFeed.nDetails"
"RSSFeed.nFileLink"
"RSSFeed.nIcon"
"RSSFeed.nStatus"
"RSSFeed.nTime"
Code:
display control:
"RSSFeed.ItemCount"=n
"RSSFeed.ViewMode"
data header display:
"RSSFeed.FeedTitle"
"RSSFeed.FeedDetails"
"RSSFeed.FeedIcon"
Page control:
"RSSFeed.RefreshState"
0 - None [Set by SenseTab following screen refresh]
1 - Wait for RSSUtil [Set by SenseTab following request which needs new data]
2 - Processing data [Set by RSSUtil to indicate it is working on getting the data]
3 - Data ready [Set by RSSUtil to indicate it has finished and SenseTab can
refresh the screen]
"RSSFeed.PageLevel"
2=feed list [view of each of the available feeds]
1=item list [view of all the items within a feed]
0=item detail [view of a particular item within a feed]
- may need to change depending on what levels we put in
(the moment - level 0 - item detail I think will be handled within the supporting
app rather than attempting to display within sense).
Theme:
"Theme.Gtx"
Not present or 0 = non-GTX
1 = GTX Theme (applies only to lauc script, mode9 files still need to be replaced)
Debugging keys:
"RSSFeed.LastApiCall" - info only, to help with debugging (set whenever the
RSSUtil is called by the tab)
"RSSFeed.Debug_HIT" - records if we have selected the right side "Icon" or co-ords
of the hit position on the reset of the item
"RSSFeed.Debug_Y" & "RSSFeed.Debug_X" - records of the position of the
"mouse" when item is selected
there are others which are used for debugging and testing at the moment.
Language Files
Language Files
Please note:
If you are editing the tab control file (26948339_manila) or language files, it is recommended you use an editor which supports the following format:
Line Endings:Unix(LF)
Encoding:UTF-16 Little Endian
Editors such as Programmers Notepad and Notepad2 appear to work well.
If not, then simply post the file when you are done and I will convert for you.
To create a language file, use one of the language files as a template.
Alternatively, you need to determine the manila name (using ManilaHash.exe (part of the Manila kitchen package), file-names are listed below):
1. Lookup the filename for your language and use that file. Use something like win-merge to identify any new entries in 5D3CA1C8_manila (en-us) file (which the master file which will always be up to date with the latest revision).
2. Add the new entries and your translations as you wish (Make sure you use UTF-16 Compatible Editor)
Sense requires the following file format:
Line Endings:Unix(LF)
Encoding:UTF-16 Little Endian
Any entries which are not translated in the file, will have <!--en-us--> before them. Once you have translated the entry, remove this comment on the line.
3. Update the rev number to match the revision you have updated to:
<trans-unit id="IDS_RELEASE_VERSION">
<source>Rev 0 - Template</source>
</trans-unit>
4. Upload to this thread, and it will be added to the list.
[Note:The tab name IDS_RSSTITLE is specified in the another file, see the SenseUtil thread for details on this (Language Title Files section).
Post any updates to that thread and they will be included]
Language File List (Beta Builds):
Names are generated using ManilaHash (\windows\htc\people\locales\nl-nl\rssfeed.nl-nl.xml -> 45C5183A_manila)
Unless otherwise stated, the un-updated files are templates (untranslated en-us) currently at Rev4.Beta. If you get IDS_ values displayed then you will need an updated language file.
In future I will not be updating the template files, and they will not be included in the install (this allows sense to use the default - en-us file).
en-us --> 5D3CA1C8_manila #### MASTER FILE (Rev4.Beta) - WILL ALWAYS BE UP TO DATE IN THE BUILD ####
en-gb --> 52BB74CA_manila (Rev4.Beta)
cs-cz --> 103878F8_manila (Rev 3 (+fb) - thanks to jirkab)
de-de --> 66FAC0B6_manila (Rev 3 (+fb) - thanks to SteveP86 Saugbaer User_99 (+BeeGee_Tokyo))
es-es --> 501DCF32_manila (Rev1 - thanks to amno1970)
es-es_tradnl --> 467C6FDA_manila (Rev1 - thanks to amno1970)
fr-fr --> 4B7197B2_manila (Rev 3.Beta (+fb) - thanks to mickey ric69 (+romualdrichard))
pl-pl --> 5C21E5C2_manila (Rev 2.2 (+fb) - thanks to Budniu (+Skrobel))
zh-cn --> 24E697B8_manila (Rev1 - thanks to winderp)
zh-tw --> 1378D3AC_manila (Rev 2.2 (+fb) - thanks to wstephen boa19861105 (+mudhi))
sk-sk --> 6DD27BCA_manila (Rev 3 (+fb) - thanks to juben (+pa3x))
it-it --> 0CB20886_manila (Rev 1 (+fb) - thanks to bbonzz (+etoy & Drakknar))
## Rev 4.Beta - Template (+fb) ## - Template files where I've been able to pull in fbTab translations for some parts!
nl-nl --> 45C5183A_manila (+mike2nl)
el-gr --> 23A721E6_manila (+colossus_r)
pt-br --> 2E511842_manila (+dotcompt)
pt-pt --> 5AF6D7E2_manila (+dotcompt)
nb-no --> 233D596C_manila (+agaPer)
hu-hu --> 115E4006_manila (+zoliwr)
ru-ru --> 012E43AE_manila (+Bumeranghc)
## Rev 4.Beta - Template ##
ar-sa --> 58934920_manila
ca-es --> 29FB788A_manila
da-dk --> 10CD3B3A_manila
fi-fl --> 4F878394_manila
ja-jp --> 48821D9C_manila
ko-kr --> 668F3B00_manila
ro-ro --> 220E8E16_manila
sv-se --> 5C82DDD4_manila
tr-tr --> 67FB366A_manila
Beware of the first line --> Normal is:
<xliff version="1.0" lang="en-us">
It should match your Lang!!!
Then translate the entries i.e "RSS Tab Settings" and "Settings Page Disabled":
Code:
<trans-unit id="IDS_SETTINGS_TITLE">
<source>RSS Tab Settings</source>
</trans-unit>
<trans-unit id="IDS_SETTINGS_DISABLED">
<source>Settings Page Disabled</source>
</trans-unit>
Then copy back to your \windows\ folder (and post on this thread).
When people have performed translations, I'll post up the completed files here.
Note:
I've added the following entry to help track the versions of the language files:
Code:
<trans-unit id="IDS_RELEASE_VERSION">
<source>Rev 4.Beta</source>
</trans-unit>
<trans-unit id="IDS_LANG_AUTHOR">
<source>lang file authors</source>
</trans-unit>
Every time I update the language file in a release (En-Us) (add or change a translation) I shall try to remember to increment the release value - this way people should be able to update the language files each time. If another language file is updated (i.e. to correct a translation, the Rev should be set to "Rev 1A", "Rev1B" etc.), or if entries are added to match the En_Us release then increment the Rev#.
When I enable the settings page I'll display the Rev number of the selected language file so it will be clear if the file is out of date (hopefully this will work ok).
RSS is main app to use on my HD2. (use spb news now)
Are this app using the sense SDK to build?
I think I interesting on this app, will spend some time to have a look if i have.
mike3000c said:
RSS is main app to use on my HD2. (use spb news now)
Are this app using the sense SDK to build?
I think I interesting on this app, will spend some time to have a look if i have.
Click to expand...
Click to collapse
I expect the supporting app will use sense SDK when a visual interface is required for settings etc, however the part of the project within sense has to be created using manila mode9 and lauc scripts which is different to sense SDK (sense look and feel for .net apps).
at it again, I see!
Hey melt - another great idea.
Curious - are you going to start with this as you did with the FB tab, using HTC's code as a basis? As I'm sure you know, the OBOE Sense has a scrolling RSS Feed on the Home tab, using RSSReaderService.dll as the service that runs it. Is that where you're starting, or are you basing this one all on custom code from the start?
Captain_Throwback said:
Hey melt - another great idea.
Curious - are you going to start with this as you did with the FB tab, using HTC's code as a basis? As I'm sure you know, the OBOE Sense has a scrolling RSS Feed on the Home tab, using RSSReaderService.dll as the service that runs it. Is that where you're starting, or are you basing this one all on custom code from the start?
Click to expand...
Click to collapse
Nope, this time I'm using RSShub It leaves all the rss data sitting in ChannelData directory so it's a nice starting point, the RSSUtil.exe reads the xml file and transfers what we want to display from it to registry.
Using the facebook tab as a base I've managed to inject all the info for display via registry (eventually can do the same with the facebook tab itself and rid ourselves of the facebook.dll and display much better info). Might put a bit of strain on the registry but should only need to store the currently displayed info in the registry.
I've not used the OBOE sense feed, can't see how a small feed can give you the info you'd want. Couldn't find anything other than vague screenshots of the hometab. Any good features worth having?
Hopefully we can tie into the notification mechanism and have alerts of new feed items and a cookie widget
Hi meltwater,
this is another very good idea. One of the missing links i really need. I will supportthis too for GTX. I hope this will be also a very big success as FB. Go, go, go...
meltwater said:
Nope, this time I'm using RSShub It leaves all the rss data sitting in ChannelData directory so it's a nice starting point, the RSSUtil.exe reads the xml file and transfers what we want to display from it to registry.
Using the facebook tab as a base I've managed to inject all the info for display via registry (eventually can do the same with the facebook tab itself and rid ourselves of the facebook.dll and display much better info). Might put a bit of strain on the registry but should only need to store the currently displayed info in the registry.
I've not used the OBOE sense feed, can't see how a small feed can give you the info you'd want. Couldn't find anything other than vague screenshots of the hometab. Any good features worth having?
Hopefully we can tie into the notification mechanism and have alerts of new feed items and a cookie widget
Click to expand...
Click to collapse
To be honest, that simple little widget on my Home screen made Sense worth using again for me . Here's my very short YouTube video of it working on my Tilt 2:
It's very simple, but it gives you a quick glance of articles in the channels you selected, and if I see one that catches my eye, all I have to do is press the widget, and it opens the article in RSS Hub. I do see the practicality of an entire tab, of course, but I also like the idea of tying the press of the widget to the tab, where the feed can be viewed, rather than directly to RSS Hub, as it is, currently. Just an idea, I guess.
EDIT: YouTube embed code doesn't seem to be working . . . here's a link: http://www.youtube.com/watch?v=eWlyBgICJYg
Captain_Throwback said:
To be honest, that simple little widget on my Home screen made Sense worth using again for me . Here's my very short YouTube video of it working on my Tilt 2:
It's very simple, but it gives you a quick glance of articles in the channels you selected, and if I see one that catches my eye, all I have to do is press the widget, and it opens the article in RSS Hub. I do see the practicality of an entire tab, of course, but I also like the idea of tying the press of the widget to the tab, where the feed can be viewed, rather than directly to RSS Hub, as it is, currently. Just an idea, I guess.
EDIT: YouTube embed code doesn't seem to be working . . . here's a link: http://www.youtube.com/watch?v=eWlyBgICJYg
Click to expand...
Click to collapse
Cheers, can see what you mean (quite like the android feeds I've seen), although I tend to use RSS for podcast content too so both would work nicely.
So it is tied into RSS Hub too, wonder if there are any command line links we can find (would save programming stuff which is already in there) - update the feeds would be a handy one! Any chance of decompiling the code for the widget?
The RSSHub channel list and feed status is all in xml so it's nice and easy to access the content (decoding the content for the example took an evening and I've probably done it the hard way).
meltwater said:
Cheers, can see what you mean (quite like the android feeds I've seen), although I tend to use RSS for podcast content too so both would work nicely.
So it is tied into RSS Hub too, wonder if there are any command line links we can find (would save programming stuff which is already in there) - update the feeds would be a handy one! Any chance of decompiling the code for the widget?
The RSSHub channel list and feed status is all in xml so it's nice and easy to access the content (decoding the content for the example took an evening and I've probably done it the hard way).
Click to expand...
Click to collapse
The "update the feeds" function isn't actually done by the widget; that's through RSS Hub ("Refresh" soft key). There is a reg key to update the feeds automatically, of course. The widget depends on a specific version of RSS Hub (the one from the Oboe), and the Home tab from the Oboe obviously includes additional Manila files than other versions (the ProjectCode reg key must be "OBOE" for the widget to work at all). Is there anything I can upload for you that would help?
Captain_Throwback said:
The "update the feeds" function isn't actually done by the widget; that's through RSS Hub ("Refresh" soft key). There is a reg key to update the feeds automatically, of course. The widget depends on a specific version of RSS Hub (the one from the Oboe), and the Home tab from the Oboe obviously includes additional Manila files than other versions (the ProjectCode reg key must be "OBOE" for the widget to work at all). Is there anything I can upload for you that would help?
Click to expand...
Click to collapse
RSS Hub refresh soft key could probably be scripted using mort script to start with, although shouldn't be a big job to implement download of rss data in the RSSUtil.exe (no more than posting to/reading from facebook anyway).
Humm, sounds like it could be doing something similar to me then but from a dll to feed the data into the widget (more efficient but less control for us). It would be interesting to see the manila scripts involved with the widget, but I think that would be a job later on & cookies home tab widgets might be easier to work with.
I have to say I'm excited to see this started. I hope you continue and finish this off properly as it'll be an awesome addition to Sense's collection of tabs
could you integrate this with google reader as source?
s2007 said:
could you integrate this with google reader as source?
Click to expand...
Click to collapse
+1 that would be perfect.. Great work on this
Me, too. Also, a way to have the music tab use s2p.

[tutorial] How-To-Make-A-CHT-Widget

Are you interested in making or editing a CHT widget? To make a widget for Co0kie Home Tab 2.0.0 is not such a difficult job as you may think, I tell you by experience. I have no previous formation in programs or informatic code but i could make a few widgets(*) and I would like to share this experience with you. This is not so altruistic work, I am expecting a huge amount of widgets made by all of you to install and enjoy in my brand-repaired HD2
Co0kie Master has allready published a guide for making a CHT widget (it is into the widgets kitchen); also Genius_Rat_2665 has made a tutorial for making a cht clock widget, so -the third time lucky- lets bring here all that knowledge and try to make a simple widget step-by-step. Also this could be a good place to share and learn each other some code for widgets. Things like how to make an blinking element, how to change number in text, how to read from the registry, etc.
(*) What is for sure is that no one widget I could ever do without the help of others. Lets start quoting the existing Co0kie's guide:
Here is a guide on how to build your own widget for CHT.
I decided to break this up into 3 parts.
The kitchen section is a brief description of the kitchen structure and batch files.
The guide section will tell you how to build your own widget and make a cab to install it.
The "how it works" section will tell you what's going on in the background - why the system is the way it is.
#####################
*** 1) Kitchen ******
#####################
Just a few words about the kitchen folder structure:
- Workspace - here you'll find all the raw files that are being worked on currently
- Tools - all the needed tools
- deploy - just a little temp dir used by the batch scripts to compile and deploy files directly to your device
- cab - the cab file and setup.dll
- cab\_files_final - all the final compiled files that will need to be inside the cab
The batch files:
These files automate the process of editing manila files.
Connect your device to your PC via ActiveSync to be able to run the batches.
z_init.bat - You need to run this one before starting. You just need to run it one time. It will copy restartmanila.exe to you device.
_Deploy_to_device_in_dev_mode.bat - this batch will:
1) compile the lua files from \workspace\_lua and copy them to the deploy folder
2) copy all files from \workspace\mode9 and other \workspace\ subfolders to the deploy folder
3) use rapicopy.exe to copy everything from the deploy folder to \windows on your device (it's set to overwrite exitsting files)
4) restart manila on your device
_Generate_files_for_cab.bat - this will compile and copy the workspace files but it will not deploy them to your device,
instead it will copy them to \cab\_final_files
it will also rename the base mode9 and lua files to CHTmode9 and CHTlua - more on this in the "how it works" section
[[ It also needs to be modified the files _Generate_files_for_cab.bat & _Deploy_to_device_in_dev_mode.bat to addapt them to your own widget. Click with the right button of the mouse over the files and select edit, then change the name of the widget (PoyTEST.lua & PoyTESTtranslation.lua in the attached example) and the corresponding manila files ]]
[[ Tools folder includes m9editor for the edition of mode9 files, notepad2 for the edition of the Lua files, CFC_GUI for the qtc files (graphics), manilaHASH to obtain the right manila names corresponding to .luac files, and some other .exe files used automatically by the kitchen. ]]
################################
*** 2) Making your widget ******
################################
Guide - how to make CHT addon widgets:
First of all, because you will be developing, you need to turn on CHT's dev mode.
Open the reg key HKCU\Software\HTC\Manila\ and create a DWORD value, call it "CHTI.AddonWidgets.DevMode" and set it to 1.
This will allow you to deploy and test your widget directly from the kitchen.
[[ This is very important as you do not need to create and install the cab for test the widget, just using DevMode the widget will go from \workspace\ directly to your device, so you can make changes and see results easily. ]]
Now proceed to build your widget. I suggest you use the analog clock addon as a base. [[ You can use PoyTEST, its much simplier ]]
There are two rules you simply must follow:
1) For every new widget, its CHTWidgetDev.lua file must change the "widgetName" property. It must something unique.
I suggest a naming system of "CreatorName_WidgetName" - that should ensure that the names are unique - there must not any conflict here!
Modify anything else however you'd like. The rest of the fields in that file don't need to be as unique as the "widgetName" property.
2) The 30182CB6_manila mode9 file must follow a special rule: The "Scene" section must not contain any components. See how it looks like in the example addon.
That's how it must look for all new widgets.
[[ Making a widget is like making a puzzle (but much more funny ), you have to put the right pieces in the right places. There is no a fix rule and there is a lot of trial and error. Where to find the right pieces? Co0kie gave us thousand of decompiled lines of Lua code in CHT_Source. Download it from post#6 of CHT 2.0.0 thread. Also look in every published widget's kitchen in CHT thread, Rat_2665, Dunc0001, ZaxXx, Azarbel, Colossus_r, RoryB, MnCessna ... (Sorry I dont remember all right now!) ]]
Once you've done that you can do ahead and run "_Deploy_to_device_in_dev_mode.bat" - that will compile the files, copy them to your device and restart manila.
Then just go to the edit widget menu in CHT - your widget should be at the bottom of the list - add it and test it.
When you have finished making your widget, you can pack it up into a cab file.
To prepare the files for the cab you have to run "_Generate_files_for_cab.bat".
The final files will be in the \cab\_files_final\ folder.
Making the cab file - this is what an addon cab must have:
1) Every last one of those files from \cab\_files_final\ need to be in the cab and they have to be set to be copied to %windows%.
Do NOT set the install dir to %windows%, set the files to be copied to %windows%.
2) The setup.dll that is in the \cab\ folder also needs to be added to the cab.
3) Last, but extremely important, set the install dir to \CHTAddons\^widgetName^ - where ^widgetName^ should be your unique widget name same as in the lua file.
[[ This is really important. If you are not creating a new widget but just editing the mode9 and/or lua files, please do not modify the installation dir in the cab properties, as it is used in the installation process and modification may cause problems in CHT ]]
If you want to test that cab on your device make sure you disable dev mode first ("CHTI.AddonWidgets.DevMode" to 0), so that the dev mode widget you were working on and the newly installed one do not conflict.
A widget must not be installed in both dev mode and as a cab at the same time!
##########################
*** 3) How it works ******
##########################
CHT addons plug into slots that interface with the core layout manager.
There is maximum number of addon slots (that number is 10 for the dev preview beta, but it will be 20 for the final).
Each widget consists of 4 parts:
1) a mode9 file for the CHT widget interface
2) a lua file for the CHT widget interface
3) any number of extra mode9 or lua files
4) xml file with a manila file list for CHTScheduler
Numbers 1-3 there are directly needed for CHT. Number 4 is needed for CHTScheduler (I'll leave the explanation of that for the CHTS thread - it's not need for now if you just want to try to build your own widget).
Numbers 1 and 2 are the most important and they are directly linked to the slots.
Here is how:
The interface mode9 and lua need to have a specific names depending on which slot they go into.
To make this happen those 2 files are dynamically named on install.
While you are developing your widget you are working with the dev widget slot. There is only one of these so it has one pair of mode9/lua names (30182CB6_manila and 7D241726_manila).
But once you make the addon cab the widget can be installed in any slot (first one found to be free). That's why in the release files, there is a CHTmode9_manila and CHTlua_manila.
Those are the same files that you were developing with (30182CB6_manila and 7D241726_manila) - they will be renamed on the fly once installed - this is where the special setup.dll comes in.
The dll will look for the first free addon slot and install the widget there, i.e. it will rename the files so they correspond to the first slot.
The install dir name that you had to specifically enter is used as the widget install ID and will be stored in HKCU\Software\HTC\Manila\ "CHTI.AddonWidgets.SlotX" (this is needed to uninstall the widget correctly).
The files that are being installed should all go to \windows so you set that directly for the files, and that allows the install dir name cab field to be used for this purpose.
Click to expand...
Click to collapse
If you have reached here I recomend you re-read Co0kie's guide, is short but it contains a lot of information, i would say every word is important!
So now the first trial:
1.- Install the kitchen: Every widget has its own kitchen, I have attached a kitchen for a very simple widget. Just download in your PC and copy all the files & folders in a separate folder (\CHTwidgets\PoyTEST\) same as they are inside the .rar
Now connect your PC and your device via USB and sinchronize. Then run the file z_init.bat - You need to run this one before starting. You just need to run it only one time. It will copy restartmanila.exe to you device.
2.- Put your device in DevMode: Go to HKCU\Software\HTC\Manila\CHTI.AddonWidgets.DevMode and change to DWORD =1 (create if does not exit). Now restart Sense.
3.- Run the file _Deploy_to_device_in_dev_mode.bat. Your device will automatically restart Sense. Then go to Edit Mode - Add new element - Select PoyTEST - done. You should see now the simple widget in your device's screen.
It will continue ....
SENSE CRASHED? NO PANIC
It is normal to crash sense when you are doing some experiments, but it normally get solved just deleting files 30182CB6_manila & 7D241726_manila in \windows folder\ and/or dissabling DevMode in registry HKCU\Software\HTC\Manila\CHTI.AddonWidgets.DevMode = 0
rat_2665 said:
It's a tricky thing. Do you use one of Co0kies widgets? For this I "took it over" at first. I didn't change the structure, only made new names in the manila files. You have to check over and over. A blank space in a name in the mode9 file cost me a day. In the next step you can try to change the behaviour.
What you see is the normal screen for an error (i had it often ). Check if all variables in the lua files are also in the mode9 file. Then in the developer mode you can't see errors in the lua scripts (absent end in functions and so on). For this I used sometimes the m9editor, compiled the scripts and looked for errors.
Click to expand...
Click to collapse
Even we can learn from this crashs:
Co0kie Monster said:
Sense nuke and lua "debugging"
The empty screen after adding your widget will happen if there is an error in your widgets lua code. Alternatively it could be a bug in the mode9 file (but those usually cause sense not to start at all), or maybe you left dev mode on and installed your widget via cab - dev mode uses a special widget slot and it will cause a conflict if a widget is installed both via cab and in dev mode at the same time, so remember to turn off dev mode.
But, anyway I'm guessing the problem would usually be in the lua code. In that case you need to debug it. I've uploaded all the needed tools to "Co0kie's Home Tab\_Development\Lua_debugging_tools". (* inlcuded in the widget kitchen)
Because lua is a script It's not really debugging, it's pretty much just a trace log.
Run attach.bat while your device is connected via active sync and that will collect trace information and display any errors along with the file and line where they occurred.
All the info is collected in debug-attached.txt.
Do whatever causes the bug, then run terminate.bat to stop pdebug (that will also restart manila).
Open up the log and look for **Lua Error******.
Other than that you will also see trace() output there.
The other batch (run.bat) is for debugging from startup. You need to turn off manila (WM Settings->Home-> turn off HTC Sense from the list) and then hit run.bat - it will start manila and log at the same time. That's only needed in case of startup errors.
Click to expand...
Click to collapse
HOW TO SOLVE SOME GRAPHICS ISSUES
santod040 about some graphic issues said:
I am not exactly sure yet why the 16 rule only applies to some roms. I think this may actually be the difference between a CFC and non CFC manila.
Though Im digging into this more still.
I also think of this more as one rom listening to the mode9, no matter what the image claims to be or is.
Where the other needs the image to specifically be what it expects, according to the mode9 and lua.
I also think it's more about "4" and "16"
Here's a few key items from Mode9 and a small bit about each.
Though it may be somewhat irrelevant mostly.
String: UTF-16LE encoded strings (represented as UTF-8 in XML and YAML)
Path: UTF-16LE encoded strings (represented as UTF-8 in XML and YAML)
UInt32: 4 byte unsigned integer
Q16: 4 byte Q16.16 fixed point number
Int32: 4 byte signed integer
Boolean: 4 byte, either 1 or 0
Vector3: 3*4 bytes of Q16 numbers (X,Y,Z)
RectQ16: 4*4 bytes Q16 numbers (X,Y,Width,Height)
RectInt: 4*4 bytes of signed integers (X,Y,Width,Height)
Size: 4*2 bytes of Q16 (Width,Height)
Color: 4*1 bytes (R,G,B,A)
Viewport: either a Vector3 or a RectQ16, depends on size
FrameValue: either a Vector3 or a Q16 number, depends on size
BinaryScript: a binary value, encoded as Base64 in the XML or YAML file
The CFC should not be used as a standard.
Heres why:
Non Cfc and Cfc images, will work on a Cfc rom.
Whereas Cfc images will not work right on a non Cfc rom(any stock rom).
So to be universal, non Cfc is the best approach.
Also consider that manila, and your device have to decompress as they use the images.
So, to offer Cfc as an option is nice, but not the universal offering.
Click to expand...
Click to collapse
santod040 said:
Similar issue again.
The qtc needed to be a more accepted dimension by manila.
I still don't have any concrete answers behind it, other then the info I already posted regarding textures and sizes in manila.
So, I adjusted the mode9 and also the qtc to be standard sizes.
I have made a few that worked.
The first was 256x64, but then was hard to move, lol.
So I edited again and made it 512x64 and reposted just now.
It seems to move just fine.
Now only to move the resize button up some and it would be near perfect.
But since it's almost 3am, that will have to wait.
Click to expand...
Click to collapse
santod040 said:
Something else to think about.
As far as the 16 rule.
I also mentioned 4.
So for example,
64 divided by 16 = 4 (good number)
96 divided by 16 = 6 (bad number)
128 divided by 16= 8 (good number)
Click to expand...
Click to collapse
only 10 widget slot problem solution
mike2nl said:
We, the CHT teams, have found a solution for the 10 slots for widget issue.
After we had changed things we are now in state to use 20 widgets(*) at all (0..19).
It is tested on HD2 and TP2 WM phones, and it's running without any issue until now.
The new file was tested by santod040, MichelDiamond, poyensa and me.
My last test was to use 20 widgets on the HD2 about the performance. And yes it does the work .
How to install the fix:
1. unzip the manila file
2. switch off sense
3. copy the 7c60907d_manila file o the \Windows directory
4. restart your phone
5. switch on sense
6. have fun to install more widgets now (max. of 20)
7. follow the install routine from every widget
Click to expand...
Click to collapse
Last but not least, thank you to all involved team members...
Click to expand...
Click to collapse
You can do your own widget just changing PoyTEST - PoyText1 - PoyGraphic1 for your own names
The best way to make a new widget is start from another widget, in this case we can start from PoyTEST, its a simple widget with 2 variables to display in the home screen of our devices: one graphic file as background and one text field. This 2 fields (or variables) will be created by the mode9 file. We have to give unique names for all the variables so the easiest way is just to change PoyTEST - PoyText1 - PoyGraphic1 - for your own names in every line of the files involved. So open file 30182CB6_manila using m9editor and do the changes. (If you are not familiar with m9editro go here)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The mode9 file 30182CB6_manila use to define also the content of the graphic variables (SetTexture) but we will do it later for this example. Other important thing is the order in mode9 stablish the order of the elements shown in ours screen. It means that we will see PoyText1 over PoyGraphic1 as we like.
Now we have to change the file CHTWidgetDev.lua using Notepad2 and change all the PoyTEST - PoyGraphic1 & PoyText1 for the name previously used in the mode9 file. It not dificult just change PoyTEST -nothing else- in every line where it appears, substitute for the name previously used in mode9 file. YES YOU HAVE TO LEAVE THE SMALL w
Some important things:
Be careful with capital and lower letters. For lua languaje 'PoyTEST' is different than 'poyTEST' so only one letter can make the widget not working.
If the line strat with '--' then the line is dissabled, this is usefull for notes & reminders and also to activate and deactivate lines. If you use Notepad2 the deactivated line will be green coloured.
The files 30182CB6_manila (mode9) & CHTWidgetDev.lua always have to be in any CHTwidget, and they must have always the same structure. In mode9 file 30182CB6_manila we do create the variables and in CHTWidgetDev.lua (renamed as CHTlua_manila in the cab) we connect the widget to the rest of Co0kie Home Tab.
Now we do not need to change anything, may be later when we are more familiar with widgets:
* Lines 3-8 is to register the widget in CHT
* Line 8 is connected to line 82-83-84. We define there how many layouts is going to have the widget (black-white-etc). We leave everything as it is now ...
* Lines 10-48 are to control the size of the widget, in the future you can play there a bit specially in line 42 if you wish your widget bigger, but now we leave it as it is.
* Lines 50-62 are very important. We do nothing there -never- just change the names for our's widget name. Specially line 62 we put there the object (clockface, bakcground, etc) that is going to react when we press it with our finger. In our case it will be PoyGraphic1 (change it for the variable name used in mode9 file 30182CB6_manila).
* Line 64 conect to our widget lua file. As you may know the lua file defines the behaviour of the widget. In this lua file we are going to say what our widget is going to do. Is time to open ManilaHash and find the manila name of our widget's lua file. Dont change the path just the final name, you can use any but by convention better use something like CreatorName_WidgetName.lua
* Lines 82-84 is to add more layouts in our widget. You can see some examples in other widgets and also in CHT_Widgets.lua (CHT source), but dont forget to modify line 8 then!
* Lines 88-104 is defined the animation effect how the widget comes to the screen when swipping between levels. I never touch anything there.
* same for lines 106-116. It was there before me and i never modify anything there (just the widget name)
* Now have a look again to every line, check the spelling, capital letters, etc.
Now you are using manilaHash you can also find the name for any other graphic file you are going to use. e. Dont change the path just the final name
Now we can start to modify the file PoyTEST.lua. Using Notepad2 you have to change PoyTEST for your widget name used in the previous lua file and also modify the name of the variables defined in the mode9 file 30182CB6_manila (PoyText1 & PoyGraphic1) in all the lines where those appears.
In this lua file can be added some properties that use to be set in mode9 file (lines 15-25) I do that for one reason: This file does not change the name in the widget installation process, as the other CHT files (CHTmode9_manila & CHTlua_manila) does. This file will be always 41CBC6DC_manila in \windows\ folder so it is easy to substitute later to correct some bugs, etc.
You can get out of the line 29 (just put -- at the begining of the line it will be green cloured) This is a test I am doing for translate widgets regarding this post. If so you have also to activate the line 28 (delete -- then the line will be black colour) and delete file PoyTESTtranslation.lua in \PoyTEST\workspace\_lua
I cannot say much more for this file. Here comes the problems. How to do things? I am not a coder I have only read and read and read a lot of code in other widgets and CHT_Widgets.lua and other files in CHT source, and try and try and try a lot, and finally ask rat_2665
* Line 33 is a way to set texture for graphic fields in lua files instead of mode9 files
* Lines 38-63 is to define what the widget does when pressed
You can do your own widget just changing PoyTEST - PoyText1 - PoyGraphic1 for your own names
Now is time to check the USB conection, device is sinchronized, then click on _Deploy_to_device_in_dev_mode.bat and see your widget working!
[[be sure the .bat file has been edited correctly by adding your widget name, as explained in post#8]]
Sense crashed ... dont worry. Nobody has got it at the first time!
1. Be sure you are in DevMode
2. Check that all the names are correctly written, specially capital letters- lower letters
3. if you got an error in the black screen after run .bat file, read it slowly. It will help
4. Once you make the corrections you can run again .bat, even with sense crashed.
MAKING THE CAB
Co0kie Monster said:
When you have finished making your widget, you can pack it up into a cab file.
To prepare the files for the cab you have to run "_Generate_files_for_cab.bat".
The final files will be in the \cab\_files_final\ folder.
Making the cab file - this is what an addon cab must have:
1) Every last one of those files from \cab\_files_final\ need to be in the cab and they have to be set to be copied to %windows%.
Do NOT set the install dir to %windows%, set the files to be copied to %windows%.
2) The setup.dll that is in the \cab\ folder also needs to be added to the cab.
3) Last, but extremely important, set the install dir to \CHTAddons\^widgetName^ - where ^widgetName^ should be your unique widget name same as in the lua file.
Click to expand...
Click to collapse
Be sure that you have edited the file _Generate_files_for_cab.bat with your own name widget as explained in post#8. By running this file all the lua files will be recompiled automatically and all the files will go from \workspace\ to \cab\_final_files\ If you have a look to the screenshot you will notice that some files names have changed: we will find there CHTlua_manila & CHTmode9_manila. This 2 files will change the name again when the cab be installed in the device, depending the free slot asigned will take the final manila in \windows\ folder in your device. Isn't magic?
Dont forget to add the magic setup.dll. When you add the files into the cab select windows as location. Then in cabinet properties - Installation directory do create a folder in \root\CHTAddons\NameOfTheWidget with the same name as your widget (line 5 of chtwidgetdev.lua) and mark hard-coded-path. Finally save the cab.
CHTScheduler
If we add a xml file named as CHTWidget_NameOfYourWidget.xml (CHTWidget_PoyTEST.xml in this case) directly in \windows\ folder with just a description of the manila files names used in our widget (see some of them as example) this widget will be used by CHTSheduler for diferents profiles, baselines, etc.
It does not seems dificult, isnt it? it simple but if you substitute the qtc file attached 1F88A376_manila, and change the color property for the text in line 17 of PoyTEST.lua to black (0,0,0,255) .... it could be the begining of an usefull widget
1.- Lets do our own CHTwidget
2.- Using JMLMenuSense
3.- Final touches
4.- A Bit of CHTS
Its good to have a look into CHTWidgetDev.lua from Co0kie's Standalone Analog Clock, with extended comments by Co0kie (in green). You have it into the Co0kie's widgets kitchen. We all started here:
-- File name: 7D241726_manila -- \windows\htc\home\scripts\home\chtwidgetdev.luac
-- ##### CHT Wigdet interface file #####
-- this script is an abstraction layer that sits between a widget and the core CHT Layout Manager
-- the template needs to be filled in the correct way, but once it is, the created widget will be plugged into the layout manager
-- and automatically behave like any other CHT widget - be movable, have access to different layout profiles, correct lockscreen behaviour etc.
-- even if I do say so myself, the system is *very* powerful
-- the comments below should provide a good description of the template
-- the primary and most important comments will be marked plainly with --
-- secondary comments will be marked with --// and they will contain some additionl points of interest, but not critical info
-- on your first read through I suggest you stick to just the primary comments
-- lines marked with --%% are commented out code that could be part of a template, but is not needed for this example in particular
-- if you have any other question, hit me in the social group
-- this first line creates a new template file based on 'WidgetTemplate' (defined originally in CHT_core.lua)
--// it's best to make it a local - it can be a global too, but there's really no need since it will not be accessed directly anywhere
--// except in this file - and one less global means less polution in the global namespace which could be very important going forward
local wStandaloneAnalogClock = WidgetTemplate:new()
-- this next step registers the newly created widget with the core CHT Layout Manager
CHTLayoutManager:RegisterWidget(wStandaloneAnalogClock)
-- some basic information needs to be filed in about the widget
-- 'widgetName' field - try to make this name as unique as possible, because it is used to save/load widget registy information
-- the core widgets have plain names (Clock, Appointments, Tasks...), but give your widget unique names to avoid conflicts
-- the simplest unique naming scheme would be to just add your name before the widget name
wStandaloneAnalogClock.widgetName = "Co0kieStandaloneAnalogClock"
-- this defines the text that will appear in the advanced settings/add a widget menu
--// sadly, I could not find a way to make the localization system distributed for every widget so you can't enter localized "IDS_*" strings here
wStandaloneAnalogClock.settingsString = "Standalone analog clock"
-- this defines the category in which the widget will appear in the advanced settings/add a widget menu
wStandaloneAnalogClock.settingsCategory = "Clock"
-- the maximum layout count (the layouts that are cycled by the previous/next button on the popup menu or in the settings menu combo box)
wStandaloneAnalogClock.layoutCount = 1
-- should the widget snap to the center of a page
-- // but "center" isn't really center - it's more like snap to posX == 0, 480, 960..., if that position X is the center of a page depends on how you made your widget
wStandaloneAnalogClock.snapToCenterX = false
-- here you can define default settings for your widget on a "per layout" basis
-- if defaults for a level are not given, it will use {visible = false, layout = 0, posX = 0, posY = 0, scale = 1, pinned = false}
-- the visible, posX and posY fields speak for themselves
-- the layout field is the layout number (can be between 0 and layoutCount-1)
--// scale is used for storing size info for resizable widgets
--// pinned is used for storing the pinned state of pinnable widgets
--%% wStandaloneAnalogClock.defaults["HomeLevel0"] =
wStandaloneAnalogClock.defaults["HomeLevel1"] = {visible = false, layout = 0, posX = 0, posY = 0, scale = 1, pinned = false}
--%% wStandaloneAnalogClock.defaults["HomeLevel2"] =
--%% wStandaloneAnalogClock.defaults["HomeLevel3"] =
--%% wStandaloneAnalogClock.defaults["HomeLandscape"] =
--%% wStandaloneAnalogClock.defaults["CHTLockscreen"] =
-- now come the widget function definitions
-- 'Initialize' - and extremely important function
-- it's called when the widget it loaded for the first time (on startup or when added from the advanced menu)
wStandaloneAnalogClock.Initialize = function(self)
-- these first few lines should be the same for all addon widgets
local newComponent = Component()
WidgetLayer2D:Attach(newComponent) -- you may modify this to be either WidgetLayer2D or WidgetLayer3D -- more info on this later
if not self.addonWidgetID then -- this is very important, every addon widget must have these line - do not modify them
newComponent:SetComponentClipCharacter("CHTWidgetDevSlot")
else
newComponent:SetComponentClipCharacter("CHTWidgetSlot" .. tostring(self.addonWidgetID))
end
self.positionLayer = newComponent
-- these two need to be filled in but they differ depending on how you named your mode9 fields
self.animationLayer = StandaloneAnalogClockAnimationLayer -- the layer that will be animated (fade in/out or any other more interesting effect that you can define - dee below)
self:AddObject(SACFace) -- defines the touch surface that, when touched, will enable the widget to be moved
-- the rest is completely up to you
require("Home\\Scripts\\Home\\Co0kieAnalogClock2") -- the script file that describes the behaviour
-- make sure that all new names that you add are unique so that there are no conflict with built-in widgets or any other addon widgets
-- suggested naming scheme is: yourname_variablename
-- the unique name requirement goes for all objectc in mode9 files, lua global variables and classes
StandaloneAnalogClock = StandaloneAnalogClockClass(StandaloneAnalogClockGroup, SACFace, SACMinuteHand, SACHourHand, SACSecondHand)
end
wStandaloneAnalogClock.GetPosX = function(self)
return self.posX + 128 * (1 - self.scale)
end
wStandaloneAnalogClock.GetPosY = function(self)
return self.posY - 128 * (1 - self.scale)
end
-- GetHeight and GetWidth provide feedback for layout manager so it can know the exact borders of a widget
wStandaloneAnalogClock.GetHeight = function(self)
return 256 * self.scale -- in this the base width of the analog clock is muliplied by the scale
end
wStandaloneAnalogClock.GetWidth = function(self)
return 256 * self.scale
end
-- resizing system definitions - I suggest you skip this part on your first read
wStandaloneAnalogClock.isResizable = true
wStandaloneAnalogClock.rotatingResizeButton = true
wStandaloneAnalogClock.GetResizeRefX = function(self)
return self.posX + 128
end
wStandaloneAnalogClock.GetResizeRefY = function(self)
return self.posY - 128
end
wStandaloneAnalogClock.GetResizeButtonXDelta = function(self)
return 90
end
wStandaloneAnalogClock.GetResizeButtonYDelta = function(self)
return -90
end
wStandaloneAnalogClock.CheckScaleLimit = function(self, scale)
return (scale >= 0.5 and scale <= 1.3), 0.5, 1.3
end
wStandaloneAnalogClock.GetResizeUnit = function(self)
return 128
end
wStandaloneAnalogClock.ApplyScale = function(self, newScale)
self.scale = newScale
local newRadius = self:GetResizeUnit() * newScale
self.animationLayer.Scale = Vector3Property(Vector3(newScale, newScale, newScale))
end
-- these are the layout control functions
-- this example widget has only one layout available, but these function come in very handy for defining multiple layouts
-- this function is run before any of the defined layout functions
-- this should contain something that should be set commonly for any layout
wStandaloneAnalogClock.CommonPreSetLayout = function(self)
StandaloneAnalogClockAnimationLayer.Center.x = SACFace.Size.width / 2
StandaloneAnalogClockAnimationLayer.Center.y = -SACFace.Size.height / 2
if not self:CheckScaleLimit(self.scale) then
self.scale = 1
end
self:ApplyScale(self.scale)
end
-- one of these functions is run depending on the selected layout
-- the string to be shown in the settings menu combo box is also defined here
wStandaloneAnalogClock.layoutName[0] = "[[IDS_NO_ALT_LAYOUTS]]" -- combo box text
wStandaloneAnalogClock.SetLayout[0] = function()
end
-- additional layouts can be defined here
-- the number of functions must match the layoutCount field defined above
--%%wStandaloneAnalogClock.layoutName[1] = "Second layout"
--%%wStandaloneAnalogClock.SetLayout[1] = function()
--%%end
--%%wStandaloneAnalogClock.layoutName[2] = "Third layout"
--%%wStandaloneAnalogClock.SetLayout[2] = function()
--%%end
--%%wStandaloneAnalogClock.layoutName[3] = "Etc"
--%%wStandaloneAnalogClock.SetLayout[3] = function()
--%%end
-- like CommonPreSetLayout this function is run for any of the layouts
-- but it's run after the layout specific function
--%%wStandaloneAnalogClock.CommonPostSetLayout = function(self)
--%%end
-- animation function, they are run when switching between level or adding/removing a widget
-- the basic thing that needs to be done here is make the widget visible or invisible,
-- but you can play around with the animations and put in some eye candy
--// Interopolate can be used with Opacity, Position, Rotation and Scale and some cool effect combinations can be made
--// post in the social group if you need more info
wStandaloneAnalogClock.AnimateIn = function(self, instant, swipeDown)
if instant then
self.animationLayer.Opacity.value = 100
else
self.animationLayer.Opacity:Interpolate(100, 10, 0, Interpolate_Linear)
end
end
wStandaloneAnalogClock.AnimateOut = function(self, instant, swipeDown)
if instant then
self.animationLayer.Opacity.value = 0
else
self.animationLayer.Opacity:Interpolate(0, 5, 0, Interpolate_Linear)
end
end
-- these two functions define what should be run to connect or disconnect widget press actions
-- the functions are called on transition to the lockscreen, edit mode, but also for some smaller details (like when menus are up)
wStandaloneAnalogClock.ConnectPressHandlers = function(self)
StandaloneAnalogClock:ConnectPressHandlers()
end
wStandaloneAnalogClock.DisconnectPressHandlers = function(self)
StandaloneAnalogClockisconnectPressHandlers()
end
-- these two do much the same as the previous functions, but the serve as exceptions for the lockscreen
-- in this case the analog clock should not have any action on the lockscreen
-- but for example, the music player uses these functions to reconnect the play controls on the lockscreen
--%%wStandaloneAnalogClock.ConnectLockscreenHandlers = function(self)
--%%end
--%%wStandaloneAnalogClock.ConnectLockscreenHandlers = function(self)
--%%end
-- this one is used to clear the the widgets selection status
-- in this example when the clock is pressed it sinks in a bit
-- in certain situations, there might be a need to deselect a widget even if it's still under the finger
-- (for example when a side scroll is started)
-- that's when this function is called
wStandaloneAnalogClock.ClearSelection = function(self)
StandaloneAnalogClock:ClearSelection()
end
Click to expand...
Click to collapse
You can try now making your own Clock-CHTWidget, following rat_2665 tutorial:
This is a little guide for clock widgets:
Read at first the widget development guide by Cokie (it's in the below mentioned kitchen) !!!
Step 1 manila hash names
1. Download the kitchen for the analog clock widget by cookie and make a temp folder in there. Copy the files for your analog clock in this folder (best if you have already a working clock for CHT 1.8.5). Save the pictures out of the qtc manila files as png in this folder (this is only useful for oversight). Rename the whole widget with your widget name.
2. Make a list with new names for your text and image objects with manilaHASH.
- the names should be unique. I use my name and a widget number as prefix, f.e. rat_w001_secondHand
- determine the manila hash name. For this use the line
\windows\htc\home\assets\images\Home\VGA\Your_Name.qtc
Save this list. You need it all the time for oversight.
3. Rename your images in the temp directory with the new manila names (this is only useful for oversight); then rename also your manila image files with these names.
4. Delete all files in the workspace\qtc directory and copy your new manila files into this (but not the old 1E1A6CCD_manila and 1EC5924B_manila)
Step 2 mode9 file.
5. Open the mode9 file in the workspace directory. Go in the library to the StandaloneAnalogclockGroup. There are the image and text objects for the clock.
6. If you have more objects in your old 1E1A6CCD_manila file for your analog clock add these objects in the group.
7. Then substitute
- for all objects the Instance value with your new name (f.e. rat_w001_secondHand),
- for the image objects the Texture path with the (here shortend) string that you used for the manila hash name (f.e. .\Assets\Images\Home\VGA\rat_w001_secondHand.qtc)
- for the text objects the String value to the variable used in the lua file (f.e. rat_w001_weekday). If you want to use AMPM like in the normal clock, don't change this value.
8. Change the name of the StandaloneAnalogClockGroup to a unique name (that is used later in the lua files, f.e. rat_w001_ClockGroup)
9. Change the name of the StandaloneAnalogClockAnimationLayer to a unique name (that is used later in the lua files, f.e. rat_w001_ClockAnimationLayer)
10. Save the file.
Now to the lua files.
Step 3 CHTWidgetDev
Substitute all uses of wAnalogClock2 with a unique name (f.e. w_rat_w001_Clock). You can do this in Notepad2 with the Edit/Replace function.
Then substitute in line 69 StandaloneAnalogClockAnimationLayer with the new unique name you used in the mode9 file for the animation layer (f.e. rat_w001_ClockAnimationLayer).
Do the same in line 74, 135, 136, 191, 195 and 212 for all uses of StandaloneAnalogClock (f.e. rat_w001_Clock)
Replace the string in line 28 with the name of your widget (f.e. "rat_w001_clock").
In the next line insert the string that is shown for the widget in the home layout (f.e. "my analog clock").
For an analog clock you don't need to change the next item (""Clock").
In line 70, 135 and 136 is the image object for touching mentioned. You have to substitute "SACFace" with your image object (at best the greatest, f.e. rat_w001_clockface)
The last part is line 73 and 74. In line 73 you have to substitute "Co0kieAnalogClock2" with the name of your special lua script (f.e. rat_w001_clock).
Line 74 is the bridge to your lua script. Here are the arguments of the ClockClass defined that are used in the StandaloneAnalogClockClass.__init function in your special lua file. Of course the name of the function is later also to be changed.
In the example it is:
rat_w001_Clock = rat_w001_ClockClass(rat_w001_ClockGroup, rat_w001_clockface, rat_w001_minuteHand, rat_w001_hourHand, rat_w001_secondHand)
Step 4 special lua file
For naming use the lua script file name you used in the CHTWidgetDev.lua file (rat_w001_clock)
In the first (commentary) line change the location with the new name instead of Co0kieAnalogClock2 and use the manilaHash app with this string:
\windows\htc\home\scripts\home\your_widget_name.luac
Then substitute also the manila name (f.e. -- File name: 1F2E1A7D_manila --\windows\htc\home\scripts\home\rat_w001_Clock.luac )
Substitute all uses of StandaloneAnalogClock with your name (rat_w001_Clock)
Change all uses of SACShowAMPM to your name (rat_w001_ShowAMPM).
That would be all if you only want to make a normal analog clock widget, but if you want to change more you have to go to the central function for the behaviour. For this you have to look in this two functions (these are the old Co0kie names):
StandaloneAnalogClockClass.UpdateTime = function(self)
StandaloneAnalogClockClass.UpdateSecondHand = function(self)
Here the update interval and the rotation of the hands is defined. In Co0kies clock it is pretty simple. If you want to add more functions here is the place. The names of the standard arguments clockGroup, clockFace, minHand, hourHand and secondHand should be unchanged in the whole file. For every other variable and object use your special unique name.
Of course you can add other functions in their own place. You find examples for this in my clock thread.
Now it is testing, testing, testing.
Step 5 bat.files
In the kitchen there are these two files
_Deploy_to_device_in_dev_mode.bat
_Generate_files_for_cab.bat
for handling in the development process.
Here you have to substitute in both files in the second luatool line 35E966AF_manila ..\Workspace\_lua\Co0kieAnalogClock2.lua
with your new widget name and its manila hash name. (in the example: 4C0089BA_manila ..\Workspace\_lua\rat_w001_Clock.lua)
Step 6 CHTS file
Rename the file in the CHTS with your new widget name (f.e. CHTWidget_rat_w001_Clock.xml).
Open the file with the windows editor.
Take your list with the manila hash names and substitute the objects with your new names and the manila names.
For the third line use your widget name and in the fourth line ("description") the string you used in the CHTWidgetDev.lua for the home layout description.
Click to expand...
Click to collapse
This links always useful ...
TUT: Editing manila!
LuaTool 1.2 - Lua Decompiler, Compiler and Compare
TF3D manila mode9 editor
CFC GUI - THE Manila/TF3D Image Editor
Manila file names
Manila CMD Kitchen Environment
Lua 5.1 Reference Manual
Manila Development for Beginners
Example of use of longpress thanks to RoryB
Modifications of the lua script/functions thanks to rat_2665
and reserved5 (i hope is enough )
Great post...I have been wanting to work on my own widget for CHT. Hope this thread will help me jump start...
So here are a few little things I have gathered over the last few months which I have found useful.
The ManilaHash.txt contains two lines of text for you to cut and paste into Manila Hash which you need to generate the correct manila filenames for your widget scripts and qtc image files. Just open Manila Hash, open the txt, copy and paste the relevant line into MH and alter the last bit to your image/script name. Then click Get Manila and you'll have your unique manila filename. Then highlight the hashed name, right click and copy. If it is the name for your widget script you are generating you then need to use this in the two bat files (Deploy to device in dev mode/Generate files for cab) before you run either bat - right click and Edit and you'll see something like this:
Code:
@echo off
pushd tools
luatool /c -o ..\deploy\7D241726_manila ..\Workspace\_lua\chtwidgetdev.lua
luatool /c -o ..\deploy\3DFA729F_manila ..\Workspace\_lua\dunchexclock.lua
copy ..\Workspace\mode9\*.* ..\deploy >nul
copy ..\Workspace\qtc\*.* ..\deploy >nul
copy ..\Workspace\png\*.* ..\deploy >nul
copy ..\Workspace\locales\*.* ..\deploy >nul
copy ..\Workspace\CHTS\*.* ..\deploy >nul
rapicopy -d -e -s ..\deploy \windows
rapistart restartmanila.exe
del /q /s ..\deploy\*.* >nul
pause
NB - The bat files included in the widget kitchen contain notation by co0kie but the code above shows the actual active parts of the bat.
The line you need to change is this one:
Code:
luatool /c -o ..\deploy\3DFA729F_manila ..\Workspace\_lua\dunchexclock.lua
Change the manila name to the one you just generated for the script (highlight/paste from MH) and change the script name to whatever name you are giving your widget script. BTW confusing as it may seem the hashed name is generated using .luac and the bat refers to it as .lua - this is correct!
Also for reference you should also edit the first line in your widget script to show the correct script name and hashed manila filename. Incidentally you'll notice this line in the script has -- at the start. This basically 'disables' the line so it becomes for reference only. This is handy during testing because you can remove elements from use without actually removing the text from the script, so they are easy to add back in later. If you are using Notepad2 which is in the tools folder (and I strongly recommend you do because it is specifically formatted for editing these scripts) you'll see that lines beginning with -- appear in green so you can easily identify inactive lines.
If you have generated a hashed name for a qtc file then simply copy the name, right click on your qtc file and Rename, highlight current filename and paste.
Widget mode9 Filenames.txt contains the hashed filenames for the mode9 files of each widget depending on which widget slot it is installed into. The mode9 and WidgetDev.lua filenames are generated during install depending on the slot number so you will need these if you are going to edit the mode9 after you have actually installed a widget (not relevant if you are still working on it in dev mode). You can also use this list to locate the mode9 file for any widgets you already have installed but which you may want to take a look at for reference or edit.
LUA Ref v5.1.pdf is a really useful quick reference guide for lua syntax, but before you get in a spin trying to get your head around lua for the first time I would strongly recommend reading this BEGINNERS GUIDE. There are many online references including the main LUA Reference Manual (there's a link to it in the site I've just linked to) but this one gives an easy to follow guide to the basics so read it first!
rat_2665's CHTAddon Dev Mode Switch - adds a new toggle switch in the CHT Toggle Switches list. Works like every other toggle to activate/deactivate Dev Mode rather than having to do it manually with a registry editor. Just toggle on/off and soft reset after each change to enter/leave Dev Mode. I'm sure rat won't mind me posting this here - it's all his work so all credit to him for this one - but it really is a timesaver when you are developing!
One final word of advice/experience - when you are first starting out on developing widgets it can be very VERY frustrating, especially if like me you have absolutely no previous experience of coding. However we are all here to help -that's what this community is all about. If you have a problem just ask. And be prepared for many many Sense crashes and resets! But hey, that's what dev mode is there for - another of co0kies little flashes of genius!
Right, that's just to give you all a hand with some basics! We are now open for business - ASK AWAY
Thanks Poy, Rat, Dunc, and all those involved with CHT and CHT widget dev.
This could prove to be very useful for anyone wanting to jump into making their own widgets and for collaborative efforts as well.
I look forward to seeing where this goes from here.
If I decide to add anything to the great info already posted, I will place it here.
Thanks for your efforts to get this going Poyensa.
Excellent thread, hope to try out the tutorial at some point.
At the moment interested in the toggle switches and how to make them, since it's not covered anywhere.
I've opened up rat_2665's toggle switch cab (hopefully that is ok - it is a good example).
The two key files are:
CHT_switch_DevMode.png
CHTlua_manila
The lua code is as follows:
Code:
Co0kieSwitchLink("DevMode Switch", "\\Windows\\CHT_switch_DevMode.png", _application.Store:GetValueChangedEvent(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode"), function(l_1_0)
if _application.Store:GetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode") == 0 then
_application.Store:SetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode", 1)
else
_application.Store:SetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode", 0)
end
end
, function(l_2_0)
if _application.Store:GetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode") == 0 then
return false
else
return true
end
end
)
From the above you can identify:
The switch title - "DevMode Switch"
The graphic - "\\Windows\\CHT_switch_DevMode.png"
Trigger - _application.Store:GetValueChangedEvent(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode")
Action - function(l_1_0)
Switch position - function(l_2_0)
The setup.dll in the cab, sorts out the install side (as mentioned in the other posts).
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
meltwater said:
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
Click to expand...
Click to collapse
I would like to know that as well.
ai6908 said:
I would like to know that as well.
Click to expand...
Click to collapse
The wifi switch is in the Co0kieLink.lua file
Code:
Co0kieSwitchLink("[[IDS_WIFI_TOGGLE]]", "\\Windows\\CHT_switch_wifi.png", machineStatus.WifiOn.OnValueChanged
,function()
JMLComm("wifi")
end
,function()
return machineStatus.WifiOn.Value
end)
meltwater said:
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
Click to expand...
Click to collapse
ai6908 said:
I would like to know that as well.
Click to expand...
Click to collapse
Download CHT_AddonLinksKitchen.zip in post#6 of CHT2.0 thread. Inside \workspace\_lua\ you will find decompiled 6ADCC943_manila -- \windows\htc\home\scripts\home\chtlinksdev.luac with comments from co0kie
You beat me to it! BTW, Meltwater in the house - we are honoured
Making new links is actually way easier than making new widgets because there are only very small scripts involved and no mode9. You can either make new links to add in to the existing link sets (Miscellaneous, Toggles, etc) which is really straightforward, or you can create entirely new link sets. I have done both, adding new DatePicker and All People links into the Misc group, and making the new Page Switch Link set. Making a new set is also pretty straightforward although you also have to define the class and function, but most importantly each new set of links must have a unique link ID. This ID needs to be chosen and then notified to the CHT dev group in the Widgets discussion. If you don't have access to it then ask here and we'll provide you with one and feed it back to the dev group.
I can't remember what's in the kitchen Poy just linked to so I have attached my three kitchens below, along with a zip containing the CHT_quicklinks and freelinks luas and one of MichelDiamond's scripts for some of the links he added in for CHTS.
Again, any questions you have keep asking. We're waiting to see what amazing new stuff you come up with...
Dunc001 said:
You beat me to it! BTW, Meltwater in the house - we are honoured
Making new links is actually way easier than making new widgets because there are only very small scripts involved and no mode9.
... ...
Again, any questions you have keep asking. We're waiting to see what amazing new stuff you come up with...
Click to expand...
Click to collapse
Thanks guys. I did look at this when it was released, but found it difficult to get started with it.
That was my theory, make a few switches and get used to the plugins. Thought I could make some custom ones for switching on an in-car mode and various other things (switching into development modes for debugging the tabs would be handy too).
Obviously there is potential for using the stuff I've got for an improved RSSWidget and FbWidget but I'm still working out how to create stuff from scratch (but I am getting there).
Would be interesting to make a widget which displays set text items (perhaps a graphic too) from the registry, with callbacks to an app if pressed. That would be enough for a .net program to tie into, this is the basis of the RSSTab. Such a general widget could be used for a lot of things.
By the way, if you want to use some wiki space, feel free to carve out a chunk!
http://forum.xda-developers.com/wiki/index.php?title=WM6_HTC_Sense_Developer_Wiki
Have you got the CHT RSS widget kitchen? I'll upload it if not. If you could make a widget template for an updated rss widget or Facebook/Twitter widget to look/function in a similar way to the Android sense widgets that would be fantastic. Scrollable, with channel icon/Facebook pic beside each item, and also showing update time. Core CHT tasks and contacts widgets are already scrollable so all the necessary code should be available to copy/adapt. Let us know what you need any help with.
Dunc001 said:
Have you got the CHT RSS widget kitchen? I'll upload it if not. If you could make a widget template for an updated rss widget or Facebook/Twitter widget to look/function in a similar way to the Android sense widgets that would be fantastic. Scrollable, with channel icon/Facebook pic beside each item, and also showing update time. Core CHT tasks and contacts widgets are already scrollable so all the necessary code should be available to copy/adapt. Let us know what you need any help with.
Click to expand...
Click to collapse
I think I'll get my feet wet by doing some toggle switches first.
At the moment don't have the time to do the full widgets yet, got plenty that needs doing on the tab itself, but it would be great to get it all to tie in.
Well, the basics are done. If you miss something let us know. We also will try to bring here some tricks, fixes, mods, etc. And of course the answers for all your questions, excepting the date for next CHT update!
meltwater said:
Would be interesting to make a widget which displays set text items (perhaps a graphic too) from the registry, with callbacks to an app if pressed. That would be enough for a .net program to tie into, this is the basis of the RSSTab. Such a general widget could be used for a lot of things.
Click to expand...
Click to collapse
I totally agree with you.
I am monitoring this thread since its creation and I plan to investigate it when I will have more free time next week.
My goal: modify the RSSWidget to display feed informations from Google Reader (via the "Speeed Reader" application and probably a mortscript to parse the .xml and update registry).
kalhimeo said:
I totally agree with you.
I am monitoring this thread since its creation and I plan to investigate it when I will have more free time next week.
My goal: modify the RSSWidget to display feed informations from Google Reader (via the "Speeed Reader" application and probably a mortscript to parse the .xml and update registry).
Click to expand...
Click to collapse
Well I hope to integrate Google Reader into the RSSTab at some point.

Categories

Resources