Monday, September 12, 2011

Simple Media Player

Update: I had to change the name from "HitAMP" to Simple Media Player because "AMP" is a registered trademark of Playmedia Systems Inc. and the nice folks from Playmedia Systems Inc. decided that since they own "AMP", "HitAMP" (a single word, not "Hit" and "AMP") cannot be used.

There is one thing which annoys me on all media players for Android which I've tried: creating and managing a playlist is unnecessary complicated. You need to create a playlist, after that browse though the song files, find one which you want in that playlist, long click on it and select Add to playlist, select the playlist and after that browse for another song and so on. What if you want to create a playlist with 100 songs? I find this really complicated and time consuming. And if you organize your music directory like me, with subdirectories for different genres or different artists, and at some point you want to listen just to some artist, what can you do? Same thing: create a playlist, after that browse though the song files, find one which you want in that playlist, long click on it and select Add to playlist, select the playlist and after that browse for another song......

So I've decided to create my own media player for Android, a media player with better playlist management. I'm still using the old PC version of Winamp (2.91) and i really like the simple playlist management. Want to add some media files to the playlist? Just navigate to the location of those files, select them and press a button - all those files will be added to your playlist. You want to add to your playlist all media files in a specific directory? Navigate to that directory and press a button and all the files found in that directory will be added to your playlist. And of course, you can save a playlist, or load previously saved playlists. And that's what I've done with my media player for Android. It's a simple media player which can play mp3, ogg and wav files; it can read ID3 tags; it has all necessary functions (repeat, shuffle, search, save/load playlists) for a media player and nothing more, just to keep it simple and user-friendly. Some screenshots below:




Button functions:
- "REP" buton toggles on and off the repeat function; while repeat is on (REP will be highlighted) HitAMP will skip to the first song in the playlist after it finishes playing the last entry in the playlist.
- Search button (the one with the magnifying glass on it) will open the search window - here you can search for a particular song or artist in the playlist.
- "PL" button will open a small menu from where you can add new files to your playlist, delete it, save it or open another playlist.
- "SHF" button will toggle shuffle on and off. While shuffle is on (SHF will be highlighted) HitAMP will play the songs in a random order.
- on top left part of the interface, above the playlist there is a button which will change from the playlist display to the album art display and vice-versa
- Play/Next/Previous and Stop buttons have the same function as in any other media player.

Simple Media Player is available on Android Market, you can buy it for ~2$. A free version, supported by adds, is also available.

Many thanks to Rhor, which allowed me to use his icons for media files and directories. Many thanks to Jeremy Sallee, who has some nice free icons, one of them ending up as Simple Media Player's icon. Play/Stop/Next/Previous buttons are licensed from psdgraphics.

Friday, June 3, 2011

Pass Safe Gingerbread update

Upgrading to Gingerbread (Android 2.3) will break the Pass Safe's database. In order to avoid losing all your passwords, you should make a backup of your passwords (Export DB function in Pass Safe - unencrypted to make sure that you will be able to read the passwords after upgrade), upgrade to Gingerbread, reinstall Pass Safe and import the passwords (Import DB function in Pass Safe - make sure to use "Import DB (unencrypted)" if you saved the database unencrypted).

And remember, it's always a good idea to make backups before doing any firmware update, no matter how small!

1.5.1 Update:
Pass Safe (even the free version) will dump the database if it will crash after a system update on the sdcard's root directory, in a file named passsafe_crash_db.dump. If you did not create a backup before the system update, you can use this file to recover your passwords. However, you will need an Android phone which was not updated to Gingerbread in order to read these passwords. Follow these steps to recover your database:

1. After update, try to start Pass Safe. It will create a file named passsafe_crash_db.dump on your sdcard's root directory
2. Rename that file passsafe.dump. Warning - it will override any other file named passsafe.dump on your sdcard's root directory.
3. Find another phone which was not updated to Gingerbread (Android 2.3.3) and insert your sdcard (containing newly renamed file - passsafe.dump) into this phone.
4. Install (or update to the last version) Pass Safe Free.
5. Open Pass Safe Free, press menu button and select "Import Database". Caution - do not select "Import DB (unencrypted).
6. Press menu button again and select "Export DB (unencrypted)". Caution - do not select "Export Database".
7. Remove the sdcard and plug it into your phone (the one updated to Gingerbread).
8. Reinstall Pass Safe on your phone.
9. Open Pass Safe, press menu and select "Import DB (unencrypted)". Caution - do not select "Import Database".

Your passwords should be available now.

Wednesday, January 5, 2011

Find Me!

I’ve wrote a new application which can help android users to locate their phone in case it was stolen. With this application, you can setup your phone to send its location upon receiving an SMS which contains a predefined keyword.

After installation, the first thing which has to be done is to setup the application:

Find Me 1 Find Me 2

1. Choose a keyword. When the phone receives an SMS containing only this keyword (please note that it is case sensitive), it will start sending regularly its location to a predefined destination. Or you can even specify the destination inside the SMS – I’ll get back to this.

2. Select a delivery method – SMS or e-mail. If you prefer e-mail, you need a data plan for your phone. If you select SMS, normal SMS rates will apply. Please note that if you select e-mail, you will also receive an attachment – a KML file which can be uploaded into Google Maps or Google Earth; you’ll be able to track the movement of your phone since you’ve started to monitor its location.

3. Select a destination – a phone number, if at previous step you’ve selected SMS, or a e-mail address if you have selected e-mail as a delivery method.

4. Select the update rate. This is the frequency of e-mails or SMS messages with location updates.

5. If you have selected e-mail as delivery method, you have to setup an email account from which the e-mails with your phone location will be sent. You have to input a username and a password (the password will be encrypted, so nobody will be able to extract it). It works only with Google email accounts.

6. Press “Save” button. From now one, you can track your phone by sending an SMS containing the keyword. Your phone will keep sending updates to its location until it receives an SMS containing only “STOP” – case sensitive.

A helpful feature is that you can also control some parameters via SMS. You can specify in the message parameters like the frequency of the updates, delivery method and destination. For this, your SMS should look like this:

<keyword>

Param:<delivery method>:<update rate>:<destination>

where <keyword> is the keyword chosen by you (it’s case sensitive) when you’ve setup the application, <update rate> is the frequency with which the application will send the location, in minutes, delivery method can be either “SMS” or “e-mail” (case sensitive) and the destination is a phone number or an email address. “Param:” is important and it is case sensitive, after this the application expects some parameters. Here is a real life example:

myKeyword Param:e-mail:5:myemail@someemail.com

Note that there is a space only between the keyword and “Param:”