Theming the MMS Background - Samsung Galaxy Nexus

Hey guys,
I was wondering whether it's possible to add an image as the background when you theme the default messaging app?
I've been told it's possible, but nobody's told me how..
So if anyone's able to shed some light on it, that would be much appreciated
Cheers,

Yeah im sure it's possible just by changing some image files, but im not out much use in that category. If you want to take the easy way out I think go SMS or one of the third party SMS apps give you that option
Jellin' like a felon

Yeah, I thought about it and I've been modding android for a while, but never really looked into theming until now. I know all the standard changing colours and such, but i'm not so familiar with adding in content.

Hey man- i'll be sure to show you how- i forgot earlier and i'm exhausted at the moment. Tomorrow, i'll post some steps. Pretty easy actually.

you'll need to edit some xmls. (This is off the top of my head)
conversation_list_screen.xml
change line 4
Code:
android:background="#ffffffff"
to
Code:
android:background="@drawable/your_image"
create an image for your background and place it in the drawables-xhdpi folder. Name it whatever you want but make sure it matches the code above where it says 'your_image'
conversation_item_xml
you want this to be transparent, so your image behind it will show.
make sure at line 2, the background is set to this:
Code:
android:background="#00000000"
message_list_item_send.xml
Set the linear layout at line 8 to transparent. Make sure the background is set to
#00000000.
Do the same thing for the time stamp at line 14.
message_item_list_recv.xml
Set the linear layout at line 8 to transparent. Make sure the background is set to
#00000000.
Here, the timestamp is at line 11. make it transparent too.
This should take care of all the transparencies. Text colors can be altered here too if you need. Try it out and post some screens!

Thankyou so much!
I'm just heading off to bed now, but you've been more than helpful. I'll try it out in the morning and post results

artvandelay440 said:
you'll need to edit some xmls. (This is off the top of my head)
conversation_list_screen.xml
change line 4
Code:
android:background="#ffffffff"
to
Code:
android:background="@drawable/your_image"
create an image for your background and place it in the drawables-xhdpi folder. Name it whatever you want but make sure it matches the code above where it says 'your_image'
Click to expand...
Click to collapse
Can you alternately point it to an image in framework, say for instance, background_holo_dark.png?
.....memoirs of a flash addict.

stumpy352 said:
Can you alternately point it to an image in framework, say for instance, background_holo_dark.png?
.....memoirs of a flash addict.
Click to expand...
Click to collapse
Yep- that's what 99% of all "dark mms" mods do. Only thing you change is instead of conversation_list_screen line 4 redirecting to your own image, make the background #00000000 as well. Also, make sure in styles.xml, your parent theme is theme.holo

artvandelay440 said:
Yep- that's what 99% of all "dark mms" mods do. Only thing you change is instead of conversation_list_screen line 4 redirecting to your own image, make the background #00000000 as well. Also, make sure in styles.xml, your parent theme is theme.holo
Click to expand...
Click to collapse
Ah, I think I get it. So the mms background will be transparent, and will instead be able to see the parent theme behind. Is that right? Can you also change the parent to theme.holo.light?
.....memoirs of a flash addict.

stumpy352 said:
Ah, I think I get it. So the mms background will be transparent, and will instead be able to see the parent theme behind. Is that right? Can you also change the parent to theme.holo.light?
.....memoirs of a flash addict.
Click to expand...
Click to collapse
Yes, and yes.
Sent from my Nexus 7 using Tapatalk 2

Hey guys, I'm having a little trouble with my theming, here's the error:
Code:
..Mms.apk\AndroidManifest.xml:45: error: No resource identifier found for attribute 'parentActivityName' in package 'android'
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Sean\AppData\Local\Temp\APKTOOL4227949827898671239.tmp, -I, C:\Users\Sean\apktool\framework\1.apk, -S, C:\THEMING\other\..\projects\Mms.apk\res, -M, C:\THEMING\other\..\projects\Mms.apk\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:193)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
at brut.androlib.Androlib.buildResources(Androlib.java:248)
at brut.androlib.Androlib.build(Androlib.java:171)
at brut.androlib.Androlib.build(Androlib.java:154)
at brut.apktool.Main.cmdBuild(Main.java:174)
at brut.apktool.Main.main(Main.java:59)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Sean\AppData\Local\Temp\APKTOOL4227949827898671239.tmp, -I, C:\Users\Sean\apktool\framework\1.apk, -S, C:\THEMING\other\..\projects\Mms.apk\res, -M, C:\THEMING\other\..\projects\Mms.apk\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191)
... 6 more

Did you modify your AndroidManifest.xml? looks like there's an error at line 45 at the parent activity name. be sure yours matches this exactly
".ui.ConversationList"
there are ways around it if you keep getting that error.

Nope, I only got that error once adding my image in, which is weird since i never touched anything apart from what was needed.
What do you thinks the best way to get around it?

Related

[TUT][10/21/09] CPR File Editing (Catered for the Excalibur)

CPR File Editing​ For the HTC Excalibur/S620/T-Mobile Dash
In this tutorial, you will learn how to safely, and effectively, modify the HomeScreen CPR File on your phone.
This tutorial will be based off of the Windows Mobile 6.5 Titanium_320x240.CPR file (found in Ookba's 3VO 2.8 ROM)
First off, make a backup of your current .CPR file (located in /Windows) to a separate folder, or duplicate it. This is in case something goes wrong. (Do the same for the .home.xml file located in /Application Data/Home)
[Pre-Tutorial] - A Couple of Handy Apps
(This is updated as recommendations come by)
1)Free XML Editor - Here - hewhoisnotasothers
2)Notepad++ - Here - Me
[Tutorial Part 1] - Intro to the CPR file.
The Windows Mobile CPR file is located in the /Windows folder on your phone. This file controls the positioning, sizing, and some effects applied to text and image objects present on the Today Screen. While its extension is CPR, it can be opened by any text editor, and edited like any XML. After editing the CPR (and placing it in the /Windows folder) you must run a program (included in Ookba's ROM's and which can be found by searching) called TitaniumRefresh which reloads the Today Screen. This tutorial assumes you know the basics of the XML language, so if you do not, it is recommended you visit this link.
[Tutorial Part 2] - A First Look: Opening and Analyzing
To open the CPR file, I use Notepad++ (which can be found here). Alternatively, you can use Notepad or any other text editor. After opening the file, we see it starts with <form>, like any XML will. Scroll down a couple lines, and look at the first chunk of code.<Image ID="Background" Opacity="1.0" Top="-54" Width="320" Height="240" Source="ConfettiPlus::WallpaperBitmap"/>
<Layer ID="StaticHomeArea" Visible="False" />
​Let us break this down. First off, I colored Image and Layer RED. For the rest of the tutorial, I will refer to these RED colored texts as "tags" (as they are referred to in XML). The Image tag, much like HTML, will create an image on the Today Screen. The Layer tag will tell the Today Screen to move UP a layer and start putting newly inserted objects ABOVE all previously created objects. In this case, anything declared after this snippet of code will be put over the "Background" Image.
The text in DARK BLUE will be referred to as "ID's" (coming straight from their name). ID's will be covered later on, but basically they interact with either the Registry or the files used to create a panel. These are essential to any CPR file.
The text in LIGHT BLUE will be referred to as "parameters" (because they define specific details about the tags). Look at the Image tag. The use of the parameter is to tell the Today Screen exactly what to do. Without the Width or Height parameters, how would your phone know how big to make the image? Most parameters are self-explanatory because of their names, but as I see that some may become confusing, I will point them out. For instance, "Top". The function of Top, in any case, is to define how far from the top of the defined layer the object should be placed.
[Tutorial Part 3] - The .home.xml file
Before getting any deeper into the CPR file, lets see some background on it. How does the Today Screen know which panels to place where, and what the Background is? After all, the image tag for background had some gibberish about Confetti!
Now then, go to /Application Data/Home/ and pick out any .home.xml file with the name Titanium. (I will be using my own slightly modified Horizon.home.xml file from my Horizon Skin). Just like the CPR file, open this up with a text editor. Notice the first couple of lines just talk about who made the theme, and where it is located. We can ignore that for now, as it is not essential. Look now at this snippet of code:
<default target-width="240" target-height="320" font-face="Segoe Condensed" font-size="19" font-weight="bold" padding-left="5" padding-right="5" bgcolor="transparent" fgcolor="COLOR_HOMETEXT" padding-top="3" b-border-color="COLOR_HOMERULE" b-border-width="0">
<format state="selected" fgcolor="COLOR_HOMEHIGHLIGHTTEXT" />
</default>
​The default tag is describing to the Today Screen what the default screen orientation is. It is telling it to have a width of 240 pixels and a height of 320 pixels. It is telling it to set the default font to Segoe Condensed, size to 19, weight/style to bold. It is also telling it to leave some space on the top/bottom and sides of the screen (5 pixels) so that you don't get objects cut off by the edge of the screen. It is telling it to have no background color and the Foreground color is defined later on by a variable COLOR_HOMETEXT. Same principles go for the format tag.
Move on to the next snippet of code:<background bgimage="\Program Files\Horizon\BGIMG.jpg" bgimage-rotated="\Program Files\Horizon\BGIMG.jpg" valign="bottom" bgcolor="COLOR_TRAYGRADLEFT" />
​Just from the tag, you can see how this is related to the background tag in the CPR file. So all that confetti jargon is really just telling it to look here (for the initial setup that is. The value in the registry is changed when the background is changed). So this tag is telling the Today Screen to set the image at "\Program Files\Horizon\BGIMG.jpg" as the default background. Since there is currently no way (as far as I know) to change the screen orientation, the bgimage-rotated is the same as the bgimage. "valign", which should sound familiar, is set to the bottom, and bgcolor is set to the variable COLOR_TRAYGRADLEFT.
So what are these variables exactly? Lets see:<scheme>
<color name="COLOR_TRAYGRADLEFT" value="#000000" />
<color name="COLOR_HOMEHIGHLIGHT" value="#4683af" />
<color name="COLOR_HOMEHIGHLIGHTTEXT" value="#C0C0C0" />
<color name="COLOR_HOMETEXT" value="#FFFFFF" />
<color name="COLOR_HOMERULE" value="#4683af" />
<color name="COLOR_HIGHLIGHT" value="#4683af" />
</scheme>
​Scheme, which is not an evil plot in this case, refers to the color presets for the phone's theme. Those variables I mentioned earlier are defined here. The value (which is the color value) is written in HEX-HTML code. It goes from 00 - FF, where F is the greatest, 0 the least, and is written in 2's. so COLOR_TRAYGRADLEFT has 00, which is 0 RED, 00, which is 0 GREEN, and 00, which is 0 BLUE. These aren't too important unless you are doing a whole theme makeover for your phone.
Below that you may have a plugin tag with the "name" parameter equal to iconbar. You won't deal with that much. So look at the next plugin tag, which is titled "name = Bronze". Lets look at that:<plugin clsid="{E9267CAB-02EE-4f37-8216-6BF6A8FF5A71}" name="Bronze" height="266">
<Plugins Order="CMyPhotos;CMusic;CLinks;CLauncher;CComm;Settings;TitaniumWeather;CClock;CHome;CAppointments;CPhone;CText;CMessage;CEmail;CVoicemail;CWindowsLive" CPRFileName="Horizon" />
</plugin>
​This is the big one. Here you can see, from the plugin tag, that the Plugins (or more commonly called Panels) are given 266 pixels of space on the homescreen. Below that is the Plugins tag, which very nicely tells us what the order, from top to bottom, is for the Panels. This is how the Today Screen knows how to put what where! Notice that the parameter "CPRFileName = "Horizon"" in the example. This changes depending on the CPR being used. This gives users the choice to run either their own theme or the default theme provided without having to delete any other CPR files.
[[CONTINUED IN NEXT POST]]​
Tutorial Continued
[Tutorial Part 4] - Venturing On: Digging Deeper into the CPR File
[Tutorial Part 4.1] - Looking at more of the essentials
Go back to the CPR file you had opened for [Tutorial Part 2]. Let us start off by looking at a snippet of code below what we analyzed earlier. This is what I refer to :<TitaniumListView ID="HomeNav" Width="320" Height="185" Columns="1" Rows="5" ItemWidth="320" ItemHeight="34">
<Layer ID="Focus" Width="320" Height="67" Clip="False">
<Image ID="Image Default" Left="0" Top="-6" Width="320" Height="82" ScalingAlgorithm="TriLinear" Opacity="1.0" />
<ControlSequence ID="Action Sequence" FramesPerSecond="30" Loop="False">
<Image ID="Image" Left="0" Top="0" Width="320" Height="67" ScalingAlgorithm = "TriLinear" Opacity="1.0" />
</ControlSequence>
</Layer>
<Layer ID="ListItem" Visible="False" />
<Layer ID="No Items" Opacity="0">
<Text ID="Text" Width="100" Height="19" FontFamily="Segoe Condensed" FontSize="8" FontStyle="Bold" Wrap="False" Trimming="EllipsisCharacter">No Items</Text>
</Layer>
</TitaniumListView>​This is quite a large snippet, and may look confusing, but in reality it does just the very basic functions of setting up the Today Screen. To start off, a new tag is called "TitaniumListView." In older roms, this is named "BronzeListView." The Titanium part makes it so that the middle panel (CClock on default set-ups) is centered on the screen in default position. So in this CPR, the Today Screen Panels are given 320 pixels across (the full screen width) and only 185 pixels top-to-bottom to fit into. These values can be changed, but be warned that they will change most everything. The effect of changing the screen size will be discussed in greater detail later on when I go over specific object positioning.
The first tag under "TitaniumListView" is "Layer", which, as mentioned earlier, is creating a new layer for objects ontop of everything prior. This layer is titled "Focus" and it is a vague name, but think of the Today Screen. You have the main panel and the semi-hidden panels, so the MAIN one must be the FOCUSED one. Now that that is understood, let us see what it is saying. It is defining the DEFAULT width and height for a Focused panel. The parameter "Clip = False" is just saying that 'if an image/text goes out of the boundaries assigned, do not omit it from rendering, render it on top of layers before it anyway'. So usually that is a good thing, since nobody wants half an image or part of their text to be cut off randomly.
Next up, it is describing an image that is being loaded to be rendered onto the screen. The location of this image is found in the registry, which will be discussed with greater detail later on.
This is obviously clean code, since everything opens and closes correctly. It isn't recommended to tinker with these values too much unless you have a backup and are willing to get some funky results.
Moving on...
Below this snippet, you see comments about NPI and MPI. What the heck is a NPI? Well, the NPI is actually the arrows you see when on a multi-page panel. Feel free to reposition them to your liking. As far as the MPI, I will be honest, I do not entirely know what it is. I have changed its values and have yet to have results, but fear not, I am venturing!
Moving on...
Below this snippet, you may see a Branding Comment. This is just a Text tag which writes to the screen at the given coordinates a "branding" message to show people who made the CPR or ROM. For the sake of being nice and not stealing, leave this alone (unless you make a custom CPR).
Moving on...
[Tutorial Part 4.2] - Looking at the CClock Panel
Finally! You get to see the code behind the most well-known panel out there, the CClock Panel! So lets take it slow and savor the joy:<Layer ID="ClockExpanded" Visible="False" Width="320" Height="82" Clip="False">
<Layer ID="Page" Clip="False">​In just these two lines of code, the Today Screen is instructed to do many things. It is told to make a new Panel called "ClockExpanded" (which goes back to Focus) with a width of 320 and a height of 82, and to be nice, clip is set to false. But wait, How does it know where to put the panel?!?! Well remember about the TitaniumListView VS BronzeListView ... well in Titanium it is centerbased, in Bronze it is top based! (Ohhhh!)
But wait! It says Visible is false? How do I see it?! Well, as far as I know from the tinkering I have done, that is like a Switch. The default is set to false for every panel to avoid issues, however when the Today Screen is shifting panels, it will flip these switches. So I wouldn't concern myself with this too much.
Next up, it is creating a Layer , within a Layer. This is just to make sure that objects created from then on are put to the "top" of the screen, visible to everyone.
Moving on...<Image ID="ImageFixed" Source="\Program Files\TitaniumWeather\condicons\CurrentIcon.png" Left="205" Top="-30" Width="120" Height="100" />​Okay, this looks simple enough... For starters, the CPR file is telling the Today Screen to create an image called ImageFixed at (205, -30) ... wait ... -30? Well look closer. The parameter says "Top="-30"", and I mentioned earlier that Top refers to position from the top of the layer. And since this layer is located in the middle of the screen and is only 80~ pixels tall, without clipping, we can place images anywhere! Have fun, try changing this value and see what happens! Continuing on, the image is given the size of 120 x 100.
You now know how the Image on the 'top' right of the CClock panel got there!<Image ID="ImageFixed" Source="\Windows\carrier.png" Left="-3" Top="3" Width="30" Height="15" ScaleStyle="Fit"/>
<Text ID="Network Name" Left="22" Top="3" Width="100" Height="18" FontFamily="Segoe Condensed" FontSize="7" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter" HorizontalAlignment="Left">
<TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0"/>
<TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF"/>
</Text>​Let us analyze! This snippet starts off with creating another Image called ImageFixed whose source is a carrier.png. Luckily, the creator of this CPR was nice and made things easy to comprehend. Obviously this is making the little "bars" and Operator text on the panel. Now that we know what it is, lets see how it comes to be. (Which takes up to the next part of the tutorial.)
[Tutorial Part 4.2.1] - The ID 'parameter' and How it is Helpful!
Looking at the Text tag, one thing comes to mind...I know what the result is, but where on earth is it getting this data from! Well I have been mentioning the registry a lot and saying I will explain later, well...I am not going to fully explain now since this is just the basics!, but I will do a brief fill-in on the topic. In the registry is a Key set up to let this panel operate. Inside of it are values that tell the Today Screen what to make the SoftKeys do, what the text should be, image sources, etc. But how does it all get accessed? Well the ID is also like a variable! The ID (in many cases) is compared to the Registry Key for the panel, and the resulting output is what is located in the registry under that ID name (for that reason, making two ID's the same name is dangerous!).
[[CONTINUED IN NEXT POST]]
Tutorial Continued
[Tutorial Part 4.2.1.1] - A Good Example of ID usage!
Let us look at my custom 'Horizon' Skin. A nice feature I added in was a CComm (Communications) Panel that allowed you to see ALL the connection status's at the same time. In order to do this I had to edit a file related to the CComm panel and tell it to add more registry entries when doing what it needed to do. Even though any of you could install my custom theme (hint hint), I will just put the code here.<Image ID="icon1" Left="40" Top="25" Width="90" Height="115" ScaleStyle="Stretch" />
<Image ID="icon2" Left="260" Top="5" Width="40" Height="56" ScaleStyle="Stretch" />
<Image ID="icon3" Left="260" Top="58" Width="40" Height="56" ScaleStyle="Stretch" />
<Image ID="icon4" Left="260" Top="105" Width="40" Height="56" ScaleStyle="Stretch" />
​While it may strike some as odd, that entire feature is right here in these 4 lines of code! See, the reason I refer to ID's as Variables is because they change as pages change! In this case, the CComm panel (like most, if not all, others) does not tell you every single page in its code! So by adding lines to the file associated with CComm (as i metioned earlier) i was able to load pointers to images into the variables icon1 - 4 and place them in the corresponding folders in the registry. [If you want to learn more into how I did that, PM me or check it out by installing and investigating]
[Tutorial Part 5] - Interactions with the Registry
Like many programs on a windows OS, there are registry keys and values related to the executable (or similar). The Today Screen is no exception to this rule. In this section I will inform you on how the Today Screen 'interacts' with the registry and how you can make your own interactions.
[Tutorial Part 5.1] - How it works!
I have been mentioning a lot about how the Today Screen (consisting of multiple DLL's and XML files) interacts with the registry, when that is actually not true! In order to interact, it must be able to write and read. To the extent of my knowledge the Today Screen CANNOT write to the registry.
"WAIT WHAT!!! So how is it that when I click on that awesome CComm set-up you have stuff happens!?!"
Well...It is magic! ... The magic of PROGRAMMING! There is no actual command for the Today Screen to write something. It can only read. So amazing people figured out how to gain this access.
Like I explained, the ID's act like variables, reading certain entries in the Registry. So let's get a bit more in depth with that by an example. Below is the code for my CComm Panel layout ... I reviewed this earlier, but will use this as a prime example.
<Image ID="icon1" Left="40" Top="25" Width="90" Height="115" ScaleStyle="Stretch" />
<Image ID="icon2" Left="260" Top="5" Width="40" Height="56" ScaleStyle="Stretch" />
<Image ID="icon3" Left="260" Top="58" Width="40" Height="56" ScaleStyle="Stretch" />
<Image ID="icon4" Left="260" Top="105" Width="40" Height="56" ScaleStyle="Stretch" />​Now, let us all grab our phones, go to the start menu, and open up RegEdit or Resco Registry (or any app that you use). I want you to navigate to:
HKEY_LOCAL_MACHINE\Software\Microsoft\CHome\
In there is everything that has to do with the Today Screen (Remember it is also called CHome!) More specifically, for the sake of this tutorial, go into CComm. Remember I mentioned "pages" and layering. Well this is where it matters. Notice there are 6 Keys called Page1 - Page6 (and there are 6 pages on the Today Screen!) Take a walk around, investigate for a moment, the continue reading and see if you got what you thought correct....
...
...
Okay, so the correct assumptions for how all this works would be that what is written in the CPR is exactly what is taken from the Registry. But that brings us to another question...HOW does all this get there? What all-mighty programming goblin is in my phone feeding this information!?!
Simple...that is covered in the next section...
[Tutorial Part 5.2] - Going from Acting to Inter-Acting!
Now it gets a bit more complicated...you, the eager [young] computer programmer wants to make a panel that gives all this information to the user and does a bunch of changes on the phone, but HOW!
The simplest (not the only) way to do this is to use MortScript (in my opinion). MortScript is a scripting language that is very basic when you get the hang of it. It will do everything you need it to do, in most cases, as long as it doesn't involve things it can't do (duhh).
I strongly advise people interested in the Today Screen to learn MortScript because it will make a bunch of things a whole lot easier!
[Tutorial Part 5.2.1] - My First Registry Interaction!
Let us say you want to make a panel that shows you the Phone Owner's name, email, and a random note. To start off, open up NotePad ++ (or whichever text editor you want to use) and make a program. Done. Haha, just kidding! Let us take this step by step.
Let us assume the panel has a registry entry already and is called MyFirstPanel (located at HKML\Software\Microsoft\CHome\MyFirstPanel) There is one page, so we go to the Page1 Key.
We can do this one of two ways. We can make it Device Specific and pre-define all that data, or we can make it device independent and use MortScript to fill in the blanks. I will opt for number 2, but for those who do decide to do the first, make some Strings with your data, then in the CPR, add those ID's (correctly with the correct tags, which I will go over in a later tutorial).
Taking the second method, go back to your text editor. Let us see what we need to do. We need to find the user information, assuming there is any, and access it. The problem with the Registry interactions and the Today Screen is that the Today Screen is LIMITED to the Chome\PANELNAME key. That is where MortScript comes in handy...
I will tell you this time that the Owner Information (which can be entered in settings) is located at HKCU\ControlPanel\Owner\ . So let us make a script that will copy this data.
Code:
//Reads the Registry Entry for the NAME
name = RegRead("HKCU", "\ControlPanel\Owner", "Name")
//Reads the Registry Entry for the Telephone Number
phone = RegRead("HKCU", "\ControlPanel\Owner", "Telephone")
//Reads the Registry Entry for the E-Mail
email = RegRead("HKCU", "\ControlPanel\Owner", "E-mail")
//Reads the Registry for an extra note
note = RegRead("HKCU", "\ControlPanel\Owner", "Notes")
//Writes the NAME to OUR PANEL for later use.
//Assigns the ID to be used to name1 (I use numbers as a precautionary)
RegWriteString("HKLM", "\Software\Microsoft\CHome\MyFirstPanel\Page1", "name1", name)
//Writes the PHONE NUMBER to OUR PANEL
RegWriteString("HKLM", "\Software\Microsoft\CHome\MyFirstPanel\Page1", "phone1", phone)
//Writes the EMAIL to OUR PANEL
RegWriteString("HKLM", "\Software\Microsoft\CHome\MyFirstPanel\Page1", "email1", email)
//Writes the NOTE to OUR PANEL
RegWriteString("HKLM", "\Software\Microsoft\CHome\MyFirstPanel\Page1", "note1", note)
That is it! Assuming you have learned enough of this language, this should act as a great backbone when it comes to registry interactions.
So now that you know the very basics of the CPR file, and how some things work, you can rest assured that I will continue this tutorial when more time becomes available! It pains me to say it but:
TUTORIAL TO BE CONTINUED!!!
saved
Saved for future reference
Sweeeeeet added to sticky
great tutorial, thanx , really , good job.
Wonderful job Cyclone..!!!! keep it up
this free program is very useful in editing both cpr and home.xml files....it will color code and proof the tags for you..
hewhoisnotasothers said:
this free program is very useful in editing both cpr and home.xml files....it will color code and proof the tags for you..
Click to expand...
Click to collapse
Thanks for the link. I'm going to make a post/section specifically for software. Will be sure to add this.
I believe MPI is the arrows for the Media Player. They are arrows, that's for sure. Just which arrows, I don't know to be certain. I would think Media Player as "M". Media Page Indicator? or Media Player Indicator? NPI=Next/Previous Indicator?
waiting...
Have been checking this thread in the hope that the tutorial continues.
Please
I have lots of questions that might be solved by the next part of the tutorial.
Hey,
Sorry for not updating sooner. I am still in school and this past week I had intense Marching Band rehearsals to lead up to our competition on sunday. Its all over now, so I have distinctly more time get back to my projects. Expect an update soon.
Cyclonezehpyrxz7
I did a minor update. I am sort of out of ideas. I did the unthinkable and left this alone for too long and lost my train of thought. So now I call upon you, the eager readers! What is it that I need still incorporate?
Don't mention the following because i already plan on implementing them:
-Interactions with the Registry (a bit more in depth with examples).
-Simple guide to making a basic panel (that doesn't do much)
-Go over more specifics about different TAG types.
Thats it...my mind is dry (oddly and unfortunately enough). So please, anything you would like to know more indepth (or at all) just post it here and I will fill as many requests as possible!
CPR - Registry interaction
Most of my 100000000's questions are Registry related so for that part I'll wait until your Tut covers it.
In the meantime, do you know what this does?
<ControlSequence ID="Action Sequence" FramesPerSecond="30" Loop="False">
YesHoney said:
Most of my 100000000's questions are Registry related so for that part I'll wait until your Tut covers it.
In the meantime, do you know what this does?
<ControlSequence ID="Action Sequence" FramesPerSecond="30" Loop="False">
Click to expand...
Click to collapse
The ControlSequence tag is, in our case, useless. As Drkfngthdrgnlrd explained it to me a while ago, that controls animations that go on on-screen. It works for making buttons, etc. but since our phone's not a touch-screen, buttons really cannot exist. I believe that it is in there because this is a "stock" CPR, and realize that there is no OFFICIAL 6.5 for our smartphone, what the master chefs here have done is take megapacks (i believe that is what they are called) from official 6.5 ROM's for other phones and sort of splice them together to emulate a 6.5 environment.
Thank you
Why do I think you will come up with some rom made by you?
Thanks for the tutorial!
Regards
ControlSequence ID="Action Sequence"
According to what you explained, I deleted
<ControlSequence ID="Action Sequence" FramesPerSecond="30" Loop="False">
<Image ID="Image" Left="0" Top="0" Width="320" Height="67" ScalingAlgorithm = "TriLinear" Opacity="1.0"/>
</ControlSequence>
from the CPR and absolutely nothing changed in the behaviour of the home screen.
Which is expected. Like I said, it is a "stock" CPR...that is designed for button's, etc. Much like the cmhome.dll (which contains the atual code for the CPR), it is all pretty stock and based for touchscreens because M$ knows that if they dare change anything, they could mess it all up (haha *sigh*).
Now that you mention cmhome... could you please see http://forum.xda-developers.com/showthread.php?t=573863
Plspls

[REQ] Kill the "snowman"

I have a theme request for the Galaxy Nexus... I've tried doing this myself, but with my novice level of expertise, I'm afraid it's hopeless...
I really detest the new "Evil Snowman" image that shows up for all contacts without a pic, caller ID, text messages and some icons. I have no idea why Google chose this image. The little robot was much nicer. Anyway, if anyone has the time, I would really appreciate a theme that keeps everything stock, but replaces all the horrible "Evil Snowman" images with something better - a little Android Robot would be great.
I'd be happy to donate to anyone that can do this.
Thanks so much...
if you look a little further back in this forum (or maybe it was in Rootzwiki, not sure which) there were a few themed apks and zips that I found I looked through them but never saw anything that interested me.
I looked too... The problem is that I really just want a stock look, and no snowman. I don't want to change everything else.
Matt_TX said:
I looked too... The problem is that I really just want a stock look, and no snowman. I don't want to change everything else.
Click to expand...
Click to collapse
what img do you want there instead? i can do that for you as i get back home.
tell me what rom/version you're using too
Sent from my Galaxy Nexus
etoy said:
what img do you want there instead? i can do that for you as i get back home.
tell me what rom/version you're using too
Sent from my Galaxy Nexus
Click to expand...
Click to collapse
Honestly, I'm not that fussy... Perhaps a little Android man in a color scheme that goes with the stock look.
The problem is that the snowman is everywhere... Here's a list of places I've seen, there may be more...
- Phone App / Contacts
- Caller ID
- Conference Call
- Messaging
- People App Icon
- People App top of screen
- People App contacts
If you can do this for me, I would be delighted... I will also gladly donate if it works.
BTW, I'm running Stock 4.0.4 for the CDMA/LTE Galaxy Nexus (Rooted and De-odexed)
EDIT: I like the contact image shown here, but perhaps in colors that better fit the stock look:
http://forum.xda-developers.com/showthread.php?t=1467139
I agree with you Matt...although I never thought of the stock 'unknown' contact image as an Evil Snowman, lol.
Anyways, the files that you want to change are in framework-res.apk\res\drawable-xhdpi\ic_contact_pictureXXXX.png. Attached to this post below, you'll find a quick screengrab that I took from my theme's working project folder.
Speaking of which, I will be updating my PCB Blue theme to include the Android robot image (specifically 'ic_contact_picture_2.png') by default, as I also prefer it over the "Evil Snowman"
You should be able to just edit framework-res.apk with WinRAR since you're only replacing normal PNG files. Extract them first, rename them, then drop them back into the .APK...on the other hand, if you like my PCB Blue theme, you can always wait for the next version where that will be done.
** EDIT ** - I am attaching the 3 untouched PNGs from framework-res.apk to make things a bit easier for you. They have been renamed properly to have Android use the robot as default. You therefore shouldn't need to do anything else but pop them into your framework-res.apk (many guides exist on how to edit this file, but the quick version would be to use ADB in Recovery to make changes (pull --> edit --> push --> set permissions) to the file.
Also, it may be possible that the other apps/APKs have their own resource image for an unknown contact. If that's the case, you'll have to dive into those APKs too (I only mod framework-res.apk myself, didn't peek into any others).
Hope that helps.
scar45 said:
I agree with you Matt...although I never thought of the stock 'unknown' contact image as an Evil Snowman, lol.
Anyways, the files that you want to change are in framework-res.apk\res\drawable-xhdpi\ic_contact_pictureXXXX.png. Attached to this post below, you'll find a quick screengrab that I took from my theme's working project folder.
Speaking of which, I will be updating my PCB Blue theme to include the Android robot image (specifically 'ic_contact_picture_2.png') by default, as I also prefer it over the "Evil Snowman"
You should be able to just edit framework-res.apk with WinRAR since you're only replacing normal PNG files. Extract them first, rename them, then drop them back into the .APK...on the other hand, if you like my PCB Blue theme, you can always wait for the next version where that will be done.
** EDIT ** - I am attaching the 3 untouched PNGs from framework-res.apk to make things a bit easier for you. They have been renamed properly to have Android use the robot as default. You therefore shouldn't need to do anything else but pop them into your framework-res.apk (many guides exist on how to edit this file, but the quick version would be to use ADB in Recovery to make changes (pull --> edit --> push --> set permissions) to the file.
Also, it may be possible that the other apps/APKs have their own resource image for an unknown contact. If that's the case, you'll have to dive into those APKs too (I only mod framework-res.apk myself, didn't peek into any others).
Hope that helps.
Click to expand...
Click to collapse
Scar,
The snowman is definitely evil. I feel like he is mocking me with that sideways smile. I don't like it... Hahaha... Just kidding
From what I can tell, the contacts.apk, phone.apk and mms.apk all have their own "snowman" images so I think they would all have to be edited. I know that I can do this using 7-zip, but it's really a bit beyond my comfort level right now. I'm still learning
If I edit the framwork-res.apk, does it override the files in the individual apps? It sounds like it doesnt. BTW, your image with the droid at 45 degrees is fantastic. It is EXACTLY what I'm looking for. Do you have a larger version for to replace the one that shows up with caller ID?
Thanks,
Matt.
Matt_TX said:
Scar,
The snowman is definitely evil. I feel like he is mocking me with that sideways smile. I don't like it... Hahaha... Just kidding
From what I can tell, the contacts.apk, phone.apk and mms.apk all have their own "snowman" images so I think they would all have to be edited. I know that I can do this using 7-zip, but it's really a bit beyond my comfort level right now. I'm still learning
If I edit the framwork-res.apk, does it override the files in the individual apps? It sounds like it doesnt. BTW, your image with the droid at 45 degrees is fantastic. It is EXACTLY what I'm looking for. Do you have a larger version for to replace the one that shows up with caller ID?
Thanks,
Matt.
Click to expand...
Click to collapse
LMAO! You know, the more I look @ him, the more I dislike him too...especially with that sideways smirk...
If you did check those other APKs and see snowman images, then yep, it's quite certain that those APKs will need to be modded. I use WinRAR and it couldn't be easier...one thing you must remember is to choose ZERO or STORE compression when working with 'framework-res.apk' and possibly others. They are not compressed in the ROMs (at least AOKP, which I run).
So, if you edit only framework-res.apk, then it probably will NOT change the caller ID, contacts photos, etc.. In terms of the image, I took that directly from 'framework-res.apk', so I unfortunately don't have a better/larger image. You might try Photoshop/GIMP, using an image resize method that is "better for enlargement".
Cheers Matt!
I'm still no further forward in my quest to kill the snowman. I like the robot image posted above, but the issue is that it's 108x108 pixels. I basically need 4 different images. One light grey as shown which is 128x128, this will work for the People App, MMS and the Framework. Then I need a darker one which is also 128x128 for the contacts list in the phone app. Next I need a dark image which is 360x360 (for caller ID screen) and another light image which is 360x360 for the People app (viewing a contact).
In summary:
128x128 light grey
128x128 dark grey
360x360 light grey
360x360 dark grey
I have tried to resize the image, but it looks like crap. Can someone please help me? I think I can get this done with the right png files.
Thanks,
Matt.
Matt_TX said:
I'm still no further forward in my quest to kill the snowman. I like the robot image posted above, but the issue is that it's 108x108 pixels. I basically need 4 different images. One light grey as shown which is 128x128, this will work for the People App, MMS and the Framework. Then I need a darker one which is also 128x128 for the contacts list in the phone app. Next I need a dark image which is 360x360 (for caller ID screen) and another light image which is 360x360 for the People app (viewing a contact).
In summary:
128x128 light grey
128x128 dark grey
360x360 light grey
360x360 dark grey
I have tried to resize the image, but it looks like crap. Can someone please help me? I think I can get this done with the right png files.
Thanks,
Matt.
Click to expand...
Click to collapse
Looking for the same here. Any luck?

[Newbie Friendly] Zooper Q&A Help Thread

Ask Your Zooper Question!
Having gone through the, at the moment of typing, 7 pages in this subforum; it quickly became apparent that a lot of members had questions they wanted answered regarding varying components of Zooper Widget Pro ranging from problems "caused" by it to some coding/programming help.
My aim is to create a singular thread where members can dump all of their queries and, hopefully, in that process help each other out where possible. Of course, it wouldn't go amiss if a few wisened senior members (read: not me) can drop in every now and then to aid replying to the questions. If you have some niche/specific questions, by all means go ahead and create your own thread if you can't find your solution here.
As thread starter, I'll make it clear that, unlike Zooper Widget, I'm no Pro. I've been playing around with UCCW for a long time until recently another member advised me to give Zooper a try. It's been a week since then, and I'm still being amazed by the features available. I've still got to learn more about integrating with Tasker in order to add even more functionality but I've got plenty of time to work that out.
Currently, I've been working on a mainly Zooper based homescreen pack which I may post later on. Suffice to say, I have basic knowledge of manipulating codes, editing layout, and dabbled my hands in progress bars, changing icon sets, etc. I think it would be a great idea to spread what I know and, perhaps, get something back as well.
Links to somewhat helpful resources which you should probably have a look at before making your post here:
- Zooper Widget - The Complete Guide VIDEO
- Zooper Widget Conditionals - The Basics VIDEO
- Zooper Widget - Advanced Parameters VIDEO
- Comprehensive list of Zooper Guides, References & Advanced Parameters as compiled by Kwerdenker XDA
Cheers.
Okay, I'll start. I can't get my widget transparent. Under Widget Background I have moved the slider all the way to the right, but when I back out, the setting doesn't stick. Is this a Pro-only feature? Thanks
jdjohn said:
Okay, I'll start. I can't get my widget transparent. Under Widget Background I have moved the slider all the way to the right, but when I back out, the setting doesn't stick. Is this a Pro-only feature? Thanks
Click to expand...
Click to collapse
Definitely a free feature. Ensure you are doing the following:
- Select "Widget Background"
- Slide alpha handle all the way to the right until the first 2 characters after the number sign is 00
- Tap on the 2nd colour preview box (the one which shows the new colour) instead of backing out
- Select force update
- Exit Zooper configuration
- Background should be transparent now
Let me how you get along.
Rickav said:
Definitely a free feature. Ensure you are doing the following:
- Select "Widget Background"
- Slide alpha handle all the way to the right until the first 2 characters after the number sign is 00
- Tap on the 2nd colour preview box (the one which shows the new colour) instead of backing out
- Select force update
- Exit Zooper configuration
- Background should be transparent now
Let me how you get along.
Click to expand...
Click to collapse
That worked! Tapping the 2nd color preview box was the trick. Thanks very much! Attached is a screenshot of my humble beginnings.
jdjohn said:
That worked! Tapping the 2nd color preview box was the trick. Thanks very much! Attached is a screenshot of my humble beginnings.
Click to expand...
Click to collapse
Brilliant... The first happy customer of the thread. Hopefully, the first of many to come...
I have a question about creating a network status Iconset. I read through the official zooper post about creating a battery set, then I changed that to network variables. I set up the images and the config xml and everything "seems" to be ok. When I create the widget and call the Iconset it displays only full signal. I also called dbm and ncsig separately in a text module to compare and troubleshoot.
I get a constant full signal Iconset, 85 dbm and 99% signal without change throughout the day.
I'm at work so I can't post my config text but I set it up to look at ncsig mode and display different icons depending on if ncsig=0 ncsig>0 ncsig>25 ncsig>50.. Etc. I'm not sure what is exactly wrong but nothing updates or changes.
I'm on a Samsung Galaxy, usually getting 4G, with a custom Paranoid Android ROM 3.99+ and I'm using lightning launcher. I would consider myself an advanced User but I can't find any real resources for signal status and bars to work this out on my own.
Sent from my Galaxy Nexus using xda app-developers app
.ax said:
I have a question about creating a network status Iconset. I read through the official zooper post about creating a battery set, then I changed that to network variables. I set up the images and the config xml and everything "seems" to be ok. When I create the widget and call the Iconset it displays only full signal. I also called dbm and ncsig separately in a text module to compare and troubleshoot.
I get a constant full signal Iconset, 85 dbm and 99% signal without change throughout the day.
I'm at work so I can't post my config text but I set it up to look at ncsig mode and display different icons depending on if ncsig=0 ncsig>0 ncsig>25 ncsig>50.. Etc. I'm not sure what is exactly wrong but nothing updates or changes.
I'm on a Samsung Galaxy, usually getting 4G, with a custom Paranoid Android ROM 3.99+ and I'm using lightning launcher. I would consider myself an advanced User but I can't find any real resources for signal status and bars to work this out on my own.
Sent from my Galaxy Nexus using xda app-developers app
Click to expand...
Click to collapse
Without seeing your iconset XML I can't say much but here is my current variant to emulate a network status display. These values follow the ones used in Androids SignalStrength.java.
Code:
$[#NCSIG#>=12] && [#NCSIG#<99]?4$
$[#NCSIG#>=8] && [#NCSIG#<12]?3$
$[#NCSIG#>=5] && [#NCSIG#<8]?2$
$[#NCSIG#>2] && [#NCSIG#<5]?1$
$[#NCSIG#<=2] || [#NCSIG#=99]?0$
Hope this helps you out
kwerdenker said:
Without seeing your iconset XML I can't say much but here is my current variant to emulate a network status display. These values follow the ones used in Androids SignalStrength.java.
Code:
$[#NCSIG#>=12] && [#NCSIG#<99]?4$
$[#NCSIG#>=8] && [#NCSIG#<12]?3$
$[#NCSIG#>=5] && [#NCSIG#<8]?2$
$[#NCSIG#>2] && [#NCSIG#<5]?1$
$[#NCSIG#<=2] || [#NCSIG#=99]?0$
Hope this helps you out
Click to expand...
Click to collapse
SOOOO sorry I posted in your thread, I was on my xda app and I didn't notice it was all on your screens, didn't mean to muck it up.
Those last few variable lines look foreign to me, I haven't seen the signalstrenght.java, I'll have to take a look.
This is super basic, I'm completely based of limited examples online, I can't find any resources on code for the signal anywhere. I'd love some resources if you have any. I can pick apart code to make things work for me I just need to see working examples.
My config.xml looks like this:
<?xml version="1.0" encoding="utf-8" ?>
- <!-- #NCSIG# 25% Bars -->
- <config>
<title>Cell Status Icons</title>
<description>Cell / Alarm Set</description>
<demo>demo.png</demo>
<icons>icons</icons>
<default>alarm2.png</default>
<mode value="#NCSIG#">Cell Signal</mode>
<mode value="Alarm">Alarm Set/Not Set</mode>
- <condition>
<test>#MODE#=Alarm</test>
- <condition>
<test>#SALARM#=Not Set</test>
<image>alarm2.png</image>
</condition>
- <condition>
<test>1=1</test>
<image>alarm1.png</image>
</condition>
</condition>
- <condition>
<test>#NCSIG#>75</test>
<image>signal-4.png</image>
</condition>
- <condition>
<test>#NCSIG#>50</test>
<image>signal-3.png</image>
</condition>
- <condition>
<test>#NCSIG#>25</test>
<image>signal-2.png</image>
</condition>
- <condition>
<test>#NCSIG#>0</test>
<image>signal-1.png</image>
</condition>
- <condition>
<test>#NCSIG#=0</test>
<image>signal-0.png</image>
</condition>
</config>
Is there any way to get an unread count of all unread emails in K9 Mail? I tried following the instructions here: http://www.zooper.org/wp/old/topic/email-widget but I don't see how to get the folder_id of the INBOX folder or how to add multiple accounts together.
problem with zw skin
hello everyone..happy new year to all...need some assistance...I'm having trouble with my zooper pro widget...i can't add any skin to my homescreen and it keeps popping out not responding...this happens to me for over a month now and i don't know what else to do...i changed ROMs, install and uninstall my zooper, clear cache and and any that i can possibly think of...i'm currently using PA 4.0 beta ROM and zooper pro v2.44...please anyone...i need some help..
.ax said:
SOOOO sorry I posted in your thread, I was on my xda app and I didn't notice it was all on your screens, didn't mean to muck it up.
Those last few variable lines look foreign to me, I haven't seen the signalstrenght.java, I'll have to take a look.
This is super basic, I'm completely based of limited examples online, I can't find any resources on code for the signal anywhere. I'd love some resources if you have any. I can pick apart code to make things work for me I just need to see working examples.
Click to expand...
Click to collapse
I'll try to translate it to more "human readable" terms:
$[#NCSIG#>=12] && [#NCSIG#<99]?4$ => If #NCSIG# is equal-or-larger then 12 and smaller then 99, signal strength is four bars
$[#NCSIG#>=8] && [#NCSIG#<12]?3$ => If #NCSIG# is equal-or-larger then 8 and smaller then 12, signal strength is three bars
$[#NCSIG#>=5] && [#NCSIG#<8]?2$ => If #NCSIG# is equal-or-larger then 5 and smaller then 8, signal strength is two bars
$[#NCSIG#>2] && [#NCSIG#<5]?1$ => If #NCSIG# is equal-or-larger then 2 and smaller then 5, signal strength is one bar
$[#NCSIG#<=2] || [#NCSIG#=99]?0$ => If #NCSIG# is equal-or-smaller then 2 or or equal to 99, signal strength is not existent (special case)
You would have to port these conditionals as <test>'s to make your icon set. You can see from your XML that your values for NSIG were not in the correct value-range to make the icon change in any way
If you haven't seen it yet, here is the official tutorial on how to make icon sets for Zooper that explains the general structure and some caveats you have to keep in mind: Simple ZW Battery Iconset example
irasujamang said:
hello everyone..happy new year to all...need some assistance...I'm having trouble with my zooper pro widget...i can't add any skin to my homescreen and it keeps popping out not responding...this happens to me for over a month now and i don't know what else to do...i changed ROMs, install and uninstall my zooper, clear cache and and any that i can possibly think of...i'm currently using PA 4.0 beta ROM and zooper pro v2.44...please anyone...i need some help..
Click to expand...
Click to collapse
Could you explain a bit more of what you mean by "can't add any skin to my homescreen". Are meaning 3rd party apps such as Themer or Buzz out-fitting your homescreen in a new skin or something.
Also, you mentioned you are on Paranoid Android rom. I heard one of its main features is changing dpi. Currently, I too am on a custom rom in 240dpi and I can assure you 3rd party apps attempting to apply a new skin to a dpi other 320dpi has a very high tendency to break. If that's the case, perhaps try to change dpi settings through the appropriate Xposed module to see if that has a more positive effect.
Hi all!
I'm trying to create a curved text for hours on clock like that one in the screen shot attached to post. Unfortunately I can't get it done. Maybe someone have created this kind of text and could help me with it? Thanks in advance!
bladehawk said:
Is there any way to get an unread count of all unread emails in K9 Mail? I tried following the instructions here: http://www.zooper.org/wp/old/topic/email-widget but I don't see how to get the folder_id of the INBOX folder or how to add multiple accounts together.
Click to expand...
Click to collapse
The site you linked seemed to be pretty thorough in its instructions. I looked around and couldn't find much to add to that. Personally, I simply use Gmail so it's easy enough to link to that account. I'm guessing you've looked here as well.
It seems as if K9, and some other alternate e-mail providers, are not supported all that well with Zooper at the moment. Even with Tasker integration.
EDIT: Hold on, I have 2 email accounts; 1 Gmail & 1 Yahoo. I'm gonna download K9 & check if I can make it work with Zooper somehow. Let you know in a few.
2nd EDIT: That's a negative. Couldn't get K9 to work with Zooper. Kept giving me "-1" as unread number. Maybe wait for future updates for a fix.
Rickav said:
The site you linked seemed to be pretty thorough in its instructions. I looked around and couldn't find much to add to that. Personally, I simply use Gmail so it's easy enough to link to that account. I'm guessing you've looked here as well.
It seems as if K9, and some other alternate e-mail providers, are not supported all that well with Zooper at the moment. Even with Tasker integration.
EDIT: Hold on, I have 2 email accounts; 1 Gmail & 1 Yahoo. I'm gonna download K9 & check if I can make it work with Zooper somehow. Let you know in a few.
Click to expand...
Click to collapse
I use Gmail and the Email app that is found stock with android. I got counters to work for the email app with tasker integration. Only problem I have with it is that I have to open the app in order to clear the number (so if I delete the email from the notification, I still have the unread count as 1 due to not opening the app). It's a work in progress.
thanks
thanks for the info...maybe the DPI setting is causing the problem...whenever i tried to apply any skin...my zooper widget just froze up and pop up the notification saying that my zooper has stop responding...i will tried your solution. thanks again for helping.
Rickav said:
Could you explain a bit more of what you mean by "can't add any skin to my homescreen". Are meaning 3rd party apps such as Themer or Buzz out-fitting your homescreen in a new skin or something.
Also, you mentioned you are on Paranoid Android rom. I heard one of its main features is changing dpi. Currently, I too am on a custom rom in 240dpi and I can assure you 3rd party apps attempting to apply a new skin to a dpi other 320dpi has a very high tendency to break. If that's the case, perhaps try to change dpi settings through the appropriate Xposed module to see if that has a more positive effect.
Click to expand...
Click to collapse
Issue with icons on imported template
I've imported a media player template, that I downloaded from one of the forums here. However it is missing the icons, the template did not have any iconset files or anything else? are the iconsets built into the templates?
I have been doing a lot of reading but have not found anything about wind chill does anyone have any idea how to show it?
Sent from my Nexus 7 using XDA Premium 4 mobile app
Wind chill $(35.74+0.6215*#WCTEMPN#-35.75*#WCWSPEED#^0.16+0.4275*#WCTEMPN#*#WCWSPEED#^0.16)$
If anyone wants it I think I got it worked out
Sent from my Nexus 7 using XDA Premium 4 mobile app
force update not working on widget on tap action... toast is displayed.. but widget is not updated.. any known issue with conflicting apps?

Is there a trick to updating a static image?

Greetings!
I have a Tasker task that goes out and grabs an image from the web. I save it with the same name in the same location each time. And I verified that it is different.
In Zooper I added a bitmap module and pointed at that image. The image never changes. Not even on a reboot of the phone.
So, what is the trick to get it to update?
This will be my new thing to learn today!
Thank for any help in advance!
Dave
Sent from my Nexus 5 using Tapatalk
MrBiggzz said:
Greetings!
I have a Tasker task that goes out and grabs an image from the web. I save it with the same name in the same location each time. And I verified that it is different.
In Zooper I added a bitmap module and pointed at that image. The image never changes. Not even on a reboot of the phone.
So, what is the trick to get it to update?
This will be my new thing to learn today!
Thank for any help in advance!
Dave
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Saving it with the same name is actually the problem in this case. Zooper caches external images for its widgets and doesn't reload them after the initial load. If you want your image to change you have to use the same method Media Utilities uses for the coverart: Save the image under a different name on each save (append a random number or a timestap to the name), push the path to the new image as a variable to Zooper (lets say "CHANGINGIMAGE") and then use that variable as an advanced parameter on the bitmap module in your Zooper Widget as follows
HTML:
[b]#TCHANGINGIMAGE#[/b]
Since the name of the bitmap changes, Zooper recognizes it as a new bitmap and will reload it on the widget.
kwerdenker said:
Saving it with the same name is actually the problem in this case. Zooper caches external images for its widgets and doesn't reload them after the initial load. If you want your image to change you have to use the same method Media Utilities uses for the coverart: Save the image under a different name on each save (append a random number or a timestap to the name), push the path to the new image as a variable to Zooper (lets say "CHANGINGIMAGE") and then use that variable as an advanced parameter on the bitmap module in your Zooper Widget as follows
HTML:
[b]#TCHANGINGIMAGE#[/b]
Since the name of the bitmap changes, Zooper recognizes it as a new bitmap and will reload it on the widget.
Click to expand...
Click to collapse
Interesting! That variable would have the path to the image is what I'm understanding. The rest makes perfect sense!
Thanks @kwerdenker
It works .. but
It only updates when a minute flips. It doesn't change on request. I'm even displaying the Tasker Zooper variable and it changes but the image waits till the minute changes.
I there a way to make the widget refresh itself automatically??
MrBiggzz said:
It works .. but
It only updates when a minute flips. It doesn't change on request. I'm even displaying the Tasker Zooper variable and it changes but the image waits till the minute changes.
I there a way to make the widget refresh itself automatically??
Click to expand...
Click to collapse
[SOLVED]
Ok I feel like an idiot now! After staring at this for an entire weekend back and forth from other things. I finally licked it!
It's all about bitmap opacity
The Tasker part was just to supply a 0 or 1 as the toggle switch via the ON TAP event supplied by Zooper.
You have to have two bitmap modules in the exact same position to create the switch effect.
Code:
$#TMAPTOGGLE#=0?[b][bo]ff[/bo]/sdcard/ZooperWidget/Bitmaps/map.png[/b]:[b][bo]00[/bo]/sdcard/ZooperWidget/Bitmaps/map.png[/b]$
That above was my first module and below that I had one with the same code except I was testing for a 1 instead of a 0 and the bitmap name was different.
I would be nice it Zooper gave the mechanism to do this with out having to reach out to Tasker. But it works! :good::highfive:

[Q] Display bitmap at a certain time

I have 4 modules in 1 widget that all switch and display text at a different time. I'm using #DH# to determine the time, and complete string is:
Code:
$#DH#<=maxtime && #DH#>=mintime?message$
So for example, $#DH#<=11 && #DH#>=6?Good Morning$ would display "Good Morning" between 6am and 11am and so on. Is there a way I can edit this string in a new module to display a bitmap at that time? Or is there a way I can make my own bitmap "icon" set and have the bitmaps change whenever they reach a certain time just like the text?
Wrong thread
Mokum020 said:
I thought you were asking a different question, so I was looking into that, I will give you the answer/code anyway:
Code:
$#DH#>=5&&#DH#<12?message1$
$#DH#>=12&&#DH#<17?message2$
$#DH#>=17&&#DH#<21?message3$
$#DH#>=21?message4$$#DH#<5?message4$
These should be placed in the text field and as you can see the last one is different and I also changed <= to < for the end time otherwise you will get a double message at that time.
It's also possible to do this with a bitmap, the best way to do this is to place the bitmap offscreen when inactive and onscreen when active with the offset parameters:
Code:
[ox]$#DH#>=5&&#DH#<12?:1000$[/ox]
[ox]$#DH#>=12&&#DH#<17?:1000$[/ox]
[ox]$#DH#>=17&&#DH#<21?:1000$[/ox]
[ox]$#DH#>=21?:1000$$#DH#<5?:1000$[/ox]
These should be placed in the advanced parameters of the bitmap modules.
Click to expand...
Click to collapse
Oh thanks. I actually was able to figure out my first issue after doing some more research and tweaking, but your code is a lot cleaner than mine in the end. Sorry for switching it out like that.
And with the bitmaps, does having this many active at once effect the performance?
Wrong thread

Categories

Resources