Saturday, February 28, 2009

My Collection Free - Release 1.4.6

Changes:

  1. I found and fixed a rare import bug where names of movies with just numbers would throw an error
  2. Added a new about page with a link to my blog and a link to the paid version of the app

My Collection Pro - Release 1.5.7

Changes:
  1. I found and fixed a rare import bug where names of movies with just numbers would throw an error

Friday, February 27, 2009

Market Bug Update

T-Mobile support contacted me back and here is what they have to say:


Yea sorry about the market bug. Our G1 Market team is working on a fix.
If people keep asking let them know to uninstall and refund then
redownload within the 24 hr period. Appears to work for the most part.

Jake
T-Mobile Tier III Device Support Technician

Monday, February 23, 2009

My Collection Free - Release 1.4.4

This change incorporates what changes I can back-port from the paid version. Some changes are just not compatible but I've put in what I can.

Changes:
1. Handle mismatch of album art to artist
2. Fix bug where movie was not selected when loaned out with long-press

My Collection Pro - Release 1.5.6

Simple bugfix release.

Changes:
1. Fix issue where cover art would not download.

Saturday, February 21, 2009

Android Market Trouble

I'm getting messages from the users that they cannot download the updates from the Android Market. I'm posting some messages on the Google message boards but I encourage everyone having trouble to contact T-Mobile tech-support.

I'm not the only developer seeing this and I need Google/T-Mobile to address the issue or tell us what we are doing wrong...

My Collection Pro - Release 1.5.5

Wow, Carl has just really been helping me out on the bug hunt. In thanks, I've refunded his purchase (it's only 1.99 but at least it's something).

I probably won't refund everyone who finds a bug, but he went above and beyond.

Changes in 1.5.5:

1. First item added to system didn't export
2. Incorrect sort for movies and games

My Collection Pro - Release 1.5.4

Simple change here:

1. Added release date field to games and movies.

This is the last update this week while I work on some of the bigger changes. Some of the code is already in the current release while other bits are still only banding around in my brain.

I plan to add the ability to snap your own cover art pictures, and the ability to properly handle multiple results from a search. The picture taking has been a hot item for a long time and the multiple results is the start or more powerful searching.

Friday, February 20, 2009

My Collection Pro - Release 1.5.3

Just one change:

1. Fixed an export bug

My Collection Pro - Release 1.5.2

Thanks to Carl and mightyab for finding the bugs...


Changes:
1. Release date now saves ALL the time
2. long-press an item and choose 'Loan out' now selects the movie on the loan screen

Todo for next release:
1. I'm still working on handling multiple results which will feed into other search methods. Progress continues well
2. I'll be adding the release date field to all items. Thanks to Carl for the suggestion!!!

Wednesday, February 18, 2009

My Collection - Update

Work continues on the next release. I've noticed (especially for CD's) that UPC scans can return multiple results. Sometimes this would make the app show the right image but the wrong title (it just depends on how the XML is structured).

I've been able to re-work my XML parser to now dump the multiple results into generic lists and I'm working on the UI to allow the user to select which item they have.

This will pay off 10 fold because I can start allowing searching by other fields such as title, author, and artist. This is a LOT of code to write and I've also written in the release date functionality to this release so hopefully users will be happy.

I've moved all the code into a new package (namespace for your non-Java programmers) and this is quickly becoming a new application (for which I will charge $1.99). I'll continue to support the old version but some of these features are just not compatible with the old codebase (sorry!).

So far, I've been able to keep the databases compatible from the "My Collection" application to this new one but that might not be the case for future releases...

I have removed the code to copy the version 1.0.0 database from the device to the SDCARD; therefore, people upgrading from my first app (My Movies) will not be able to port their database over (sorry, but I had to move on).

I will however support those users by manually upgrading their database for them so they can plug it in to the paid app (this is a huge pain in the butt but I want to at least be good at support).

Friday, February 13, 2009

Paid App Comming

Google finally released the market features to charge for the application. In accordance with the policy, I'm leaving the version that has been out there for the last couple of months and I've re-published the application with a few changes.

The new version is 1.5.0 and the app package is now com.app.my_collection rather than com.app.mymovies. I've also changes the books to sort by author and then title and the CD's sort by artist and title. I'm planning on releasing a new release where the sort options are configurable now that I've figured out a good way to do it.

Anyone can continue to use the old version and I'll still support both versions the same way I always have. Hopefully, I can finally pay for the developer phone and Android will get more phones on the market.

Some of the weirder bug reports

For a long while I've been getting weird bug reports like, 'last upgrade deleted all my movies' and 'last upgrade made it so I can only enter games', or my favorite 'last uprade force-closes' and other such items.

I've been banging my head against the wall because none of my upgrades did ANYTHING that would delete all the movies or would just force-close.

About 20 releases back, I moved the database upgrade portion of the upgrade process to a background thread and I threw up a waiting dialog saying 'please wait while your database is verified. This can take up to 5 minutes after an upgrade'

It appears that some users got impatient and killed the process and the upgrade was half finished. This isn't a problem for upgrades that alter data, but for the upgrades where I alter the database schema, this causes all kind of nastyness...

Now that I know what is happening, I'm going to try to build restart logic in to the upgrade process but it's not going to be pretty. I really need the upgrade to complete once it starts and determining where it was left off is going to be a real challenge.

I could create a table where I insert the queries to run for an upgrade. The upgrade process will get a query, run it, and then delete it. That way I know which ones I've run but I would have to insert those records and the user could kill that process.

I could inspect the database schema and only run the alters I need (probably the best way). I'll need to get familiar with the metadata commands for sqlite to make this a reality.

Right now, I store all the commands I need to perform on the database in a static array:


private static String[] DATABASE_UPGRADE_FROM_9_TO_10 = new String[] {"ALTER TABLE movies ADD COLUMN author NULL", "ALTER TABLE movies ADD COLUMN artist NULL"};

for(int i = 0; i < DATABASE_UPGRADE_FROM_9_TO_10.length; i++) {
db.executeRawSql(DATABASE_UPGRADE_FROM_9_TO_10[i]);
}



I run these strings in a for loop. I think what I'll need to do is create an object to describe the alter and then create a helper class to check if the update is needed. I'll create an interface or abstract class and methods like Alter, Update, Insert, and Delete and describe the changes I want. The end-result would look something like this:


private static DbOpInt[] DATABASE_UPGRADE_FROM_9_TO_10 = new DbOpInt[] {
new Alter("movies", "add", "column", "author", true)
,new Alter("movies", "add", "column", "artist", true)
,new Update("movies", new String[] {"subtype"}, new String[]{"DVD"}, new String[]{"type"}, new String[]{"DVD"})
,new Update("movies", new String[] {"type"}, new String[]{"Movie"}, new String[]{"type"}, new String[]{"DVD"})
};

for(int i = 0; i < DATABASE_UPGRADE_FROM_9_TO_10.length; i++) {
if(upgradeHelper.needed(DATABASE_UPGRADE_FROM_9_TO_10[i], db) {
db.executeRawSql(DATABASE_UPGRADE_FROM_9_TO_10[i].toString());
}
}

Sunday, February 8, 2009

Stupid Android User Comments

Okay, I'm going to rant for a bit...

I honestly just had someone drop the rating on my app because I didn't add the feature they wanted. They rated me at 3 stars before and now dropped me to 1 star. All I've done since I've built my app is add features users request and I can't please everyone but I can't believe home cruel some people can get over FREEEE software.

If I was 3 stars before and 1 star now and nothing has changed but NEW features requested why users, why did my rating just go down. I wish I could bar people from downloading my app on the market.

The "flaw" as he/she describes it is that I don't automatically populate the movie and game rating as well as the category. Category is nearly impossible because users can enter their own category and I will almost never get a match.

Rating is tricky because Amazon does not provide me with the ESRB or MPAA rating in my lookup. I could use another service but then the lookup would take twice as long and I woud get more user complaints because the lookup is to slow (I already get a few now because of that). Most T-Mobile users are still on edge which isn't that fast.

People keep suggesting that I use other providers such as IMDB but IMDB doesn't have web services and I would have to scrape their website which isn't something I'm willing to do. I need a single and SIMPLE web-service call to get the data I need or it will never be 100% reliable.

I don't want to build a feature into the app that works 70% of the time and I runs the risk of breaking when IMDB changes their website layout.

My application is for cataloging your games, movies, books, and CDs. It started off only cataloging movies but I added the others at the users request.

Once you enter the rating, it doesn't change so the effort involved in selecting the rating is a one-time thing. So is the category but you might argue that can change over time as people define new terms for movies and such.

Okay, I'm done. I just can't believe how rude people can be for something I do in my spare time for free. I respond to almost every user support email the same day, usually in 30 minutes. I'm ready to open source the app and stop development. I'm tired of all the crap I get for something I don't get paid for. Maybe once I start charging 99 cents for the thing I'll be more open to criticism...

My Collection - Release 1.4.2

Release 1.4.1 and 1.4.2 encompass bug fixes. Here are the changes:

1.4.1:
  1. Disable loan-out and delete buttons for un-saved new items.
  2. Removed all compiler warnings
1.4.2:
  1. Fixed incorrect type list for game. Movie type accidentally snuck in there.

My Collection - Release 1.4.0

I've been trapped in blizzards and sick with the flu so this release is a little longer coming than I would have liked. This is the start of the 1.4.* branch and I'll start taking feature requests...

Changes in this release:
  1. CD now has field for artist and is populated from Amazon lookup
  2. Book now has field for author and is populated from Amazon lookup
  3. Author and Artist are shown in item lists
  4. CD and Book no longer show "Rating" field
  5. Long-press menu on list shows title. This should help with fat-fingers
  6. Fixed some VERY VERY rare force-close bugs
  7. CD and Book export need to use the "Rating" field for the Artist and Author respectively
Things not fixed in this release:
  1. I still can't handle corrupted database files from bad or missing SDCARDS. If the database goes missing during the running of the application, I obviously can't read the data from it. If I ever get an epiphiny and figure out a way to fix this I will; however, my guess is I'll have to wait for Android to officially support apps installed on the SDCARD. This will eliminate SOOOOOO much of my nasty-hack code...
  2. I am still using Amazon as my only search provider. People keep sending me websites I can use but I really don't want to build code to scrape the contents of a URL get get data. That is more than I'm willing to do at this time. I need providers with services that I can use and use for FREE!!!
  3. If you have an 8-track tape of the white album that you bought in 1974, Amazon will probably not find it so please don't submit bug reports because the app won't find your 8-track tapes :-)

Friday, February 6, 2009

Took a little break

I've had some busy things going on this last week and have had to step back from developing for a bit. It's only been a week and people already think I've dropped the app... ugh... Anyhow, I'm starting on the 1.4.0 branch and the first order of business is to make the book and CD sections contain more relevant data (author and artist for one).

I'm still trying to sort out the Amazon lookup. Someone sent me a message suggesting ISBN search for movie when I can't find it by the UPC. This might actually be the thing I've been trying to figure out so I'm going to give it a go.