Theme developers have been literally left in the dark for building themes on BlackBerry 7 devices. It was thought that liquid graphics broke the theme engines used to create and edit themes. Some developers took it upon themselves to hand-make their own themes without a Theme Builder. RIM has now issued the following how-to for altering Theme Builder 6 to allow you to build themes for BlackBerry 7 devices.

If Liquid Graphics broke theme support, then how can themes be made?

ADVERTISEMENT

For the most part, the anatomy of a theme has stayed relatively unchanged between OS releases. With the introduction of BlackBerry 7 OS, several screens now use a completely new mechanism to create the UI, known as Liquid Graphics. Because of this large change, some features and functionalities supported in previous OS themes may be unsupported. This would be a limitation of BlackBerryTheme Studio 6.0 not being aware of how themes are expected in BlackBerry 7 OS. For example, both the phone and home screens previously used SVG for layouts and actions; in BlackBerry 7 OS, the phone screens no longer use SVG at all, while the home screen only uses SVG for layout purposes. All animations on the home screen and the layout of the phone screens are handled by Liquid Graphics.

Understanding how BlackBerry Theme Builder works

For the sake of simplicity, I will be referring to the BlackBerry Theme Studio 6.0 installation directory (wherever you may have chosen to install it on your system) as <ThemeStudio>.

Once BlackBerry Theme Builder is launched, it starts off by determining which devices and theme types are supported by reading bundled property files:

1) <ThemeStudio>\resources\devices\device_profiles.properties
This file contains a list of information for all supported BlackBerry smartphone models, including a link to a file which describes the characteristics of each device and a thumbnail view of the device.

2) <ThemeStudio>\resources\devices\blackberry\BB<Model>.properties
One of these files is included for each device model/series supported by BlackBerry Theme Studio. It lets BlackBerry Theme Builder know information about the device, such as display resolution, supported fonts, et cetera.

3) <ThemeStudio>\resources\theme\<ThemeDir>\<Model><ThemeType>.properties
Once BlackBerry Theme Builder reads the list of supported devices (1) and determines their properties (2), the next step is to determine which themes are available for each device. All found theme types will be displayed in the splash screen’s Select Layout Type drop-down. These themes will be based off the .thm file located in the same directory as this file.

ADVERTISEMENT

After BlackBerry Theme Builder launches, and you make your changes to the theme and export your created masterpiece, BlackBerry Theme Builder does the following:

1) Analyzes the theme for any changes from the base theme (the default theme loaded by BlackBerry Theme Builder before any modifications are made).

2) Any changes found results in certain files being created during the export process by BlackBerry Theme Builder.

  • Layout changes: SVG and associated PME files are created.
  • Image changes/additions: New image files are included.

The more modifications that are made, the more files that will be exported (one image file for each image that is added). The SVG files are used to specify the layout, behavior, and reference the appropriate image files for the various icons, backgrounds, and other UI components.

3) These files are exported to the current user’s Windows® temp directory in a folder named with the following format:
pz_<5-RandomLetters>

Also, a properties file will be exported to the temp directory in the following format:
pz_<5-RandomLetters>.properties

4) BlackBerry Theme Builder then compiles these files into the theme COD file and stores that COD in another folder in the Windows temp directory with the same naming format.

5) BlackBerry Theme Builder then copies the COD to the defined output directory along with the required installation files (JAD, ALX etc) and deletes the two directories created in Step 4 from the file system entirely.

By now you should have a good idea of how BlackBerry Theme Builder figures out which devices should be supported and what happens in the theme export process behind the scenes. This should serve as a good base for the next section where we go into how to actually interrupt the build process for BlackBerry Theme Studio to create themes for devices that are not originally supported. 

via BB DevBlog