This small application just shows list of Moscow FM and UKV radio stations.
The most interesting thing with this application is that it contains very small XML parser
and radio station data is stored inside normal XML file. You can use this program as template
for creating similar application, providing mobile phone owner some useful information.
The only thing you need is create XML file with your own data.

Notes

If XML element contains no value and attributes, element form display list of siblings.
If element contains value or attributes, then XML browser will show form with key:value
pairs for attributes and element value. To get list of element siblings execute "Siblings" command.

You can perform search through all element siblings. Search is performed recursively.
If searched pattern is located inside value of some element or value of its attribute,
or matches with element or attribute name, then sibling containing this element is selected.
Search is case insensitive.

This application also contains Locale class we can be used to perform localization of your
application. This class is small analogue of J2SE ResourceBundle.
Also allows localized string depending on system locale.

You mobile phone is always with you. It is very convenient to store in it some secure information,
like passwords, PINs, ... But mobile phone can be stolen. And worst of all it can be stolen together with
your credit card. You may imagine how excited the pickpocket will be if he found in your phone PIN code
for your credit card. Cryptex midlet was designed to avoid such situation.
Data you have entered in encrypted, somebody except you will be able to read it.
How it is possible? When starting Cryptex you have to specify password (more precisely it is not
password by encryption key used to encrypt data). You can ask - is there any sense to store in Cryptex
one password (or PIN) and protect it with another password. The answer is yes. You are not free
to choose PIN code of your credit card and usually not able to use password you like for your account.
And Cryptex allows you to specify any password you like and more over remember leading question
for it, for example "Name of my dog", "Maiden mother's name", "My old phone number"...
So it is unlikely that you will forget answer for such question and at the same time probability that other person
can answer is very small.

Notes

When you start the program first time, you need to specify leading question and answer to it (password).
It is up to you which question too choose. I can only give you some hints:

It is more convenient to input password containing only digits (in this case Cryptex will switch phone
to numeric input mode). Please notice that password is case sensitive.

If you want to protect you data from relatives, do not choose questions which are known by all members of your
family (like maiden mother's name)

Do not use facts which are easy to know. For example name of your dog - the pickpocket can call at your
home phone (this number is in address book) said that he is from veterinary clinic and ask some information about
your dog (including name).

There will be no way to recover data if you forget password. So be sure that you will always be able to
provide answer for your questions.

Once password is specified, you are in secure content list. Each element of this list contains
of pair key:value. Both are encrypted. If you (or somebody else specified wrong password, then you will
see garbage or "***" instead of key and "???" instead of value.

You can add/edit or remove items. I need to notice that you or anybody else can edit data even if he doesn't
know right password. I see not so much sense in protecting data from modification, because
it is not possible to do it in such way, that owner doesn't notice it and erasing data can be done much easier - by
deleting application from phone.

You can change leading question and password later as many times as you want. When password is changed all
secure content is encrypted using new phrase. Update is done in safe way to avoid loosing of data if
application is terminated during this process. First new entries are created encoded with new password,
then new password is stored and old entries are deleted. So if something happen (for example discharging of battery)
during this operation, you still be able to see all data may be with some dummy items (which should be manually deleted).

Cryptex uses RC4 encryption method. Its level of protection certainly depends on length of the phrase
(password) you have chosen. But I think it is more than enough to protect your data from pickpockets.

PhoneDir midlet is phone directory of your city at you mobile phone.
Currently midlet includes phone directory of town Baranovichi (about 80000 entries).
The source distributive includes utility for importing phone directory from text format, so you can create
midlets for you own city (certainly if you have phone directory in electronic form).

Notes

You can find out the owner of the given phone number (last name, initials and address).
Just input phone number and you will get last name, initials and street address of the owner of this phone number.

To find phone number or address of some particular person, input prefix of his(here) last name.
If there are more than one persons with such last name of prefix of last name, then select proper
person from the list looking at the persons initials and street address.
and select in the result list