Thursday, December 17, 2009
Out Sick
I'm sorry it has taken so long to put together a post. I am recovering from a case of pneumonia brought on by H1N1 that came within minutes of killing me.
My doctors are telling me I can expect to be completely recovered by April of 2010 (about 4-5 months) and I went back to work this week.
Right now, the work day drains me completely and I am too existed to work on anything when I get home. The midnight power-coding sessions I did to get MyCollection functional are going to disappear until my health recovers more.
I will update the application when I am able. I am working on removing Amazon as a search provider and instead am using Google base. Plus, the Android 2.* API is a challenge so DROID support is busted until then.
Thanks...
Tuesday, August 25, 2009
Playing around with GBase...
One benefit this gives me is the ability for users to backup their data to their Google Docs account. The Amazon searches is something that has been a great boon to my application but the more regions I support, the harder it is to use Amazon as my only search provider.
It looks like I may get to start doing some serious coding again :-)
Saturday, August 22, 2009
MyCollection Pro - Release 1.5.16
Friday, August 21, 2009
My Collection Free - Release 1.4.10
MyCollection Pro - Release 1.5.15
- Fixed Amazon lookups due to changes in AWS API
- Verify database connection sanely before trying to access DB
Barcode search update
It looks like the Amazon AWS searches I use no longer returning reliably. I found that half the movies in my own catelogue no longer return a value (and they did or how else would they get there).
I'm working on a conversion to use Google data for searches but my development time is limited as I get my kids ready to start school again. I'm building quite the laundry list of fixes I need and here's the list:
- Conversion away from AWS to Google Data
- German port (I had someone do the translation for me)
- Chinese port (I had someone do the translation for me)
There are other feature requests of course but these need to be my top priority.
Thursday, May 28, 2009
My Collection Pro - Release 1.5.14
For example:
My code used to be like this:
case ACTIVITY_SCAN:
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
launchMovieFromScan(contents);
}
break;
Apparently, the scan activity is not returning RESULT_OK anymore for some people and I switched the code to be like the following:
case ACTIVITY_SCAN:
String contents = intent.getStringExtra("SCAN_RESULT");
if(contents.length() > 0) {
launchMovieFromScan(contents);
} else {
NotificationHelper.showOkAlert(getApplicationContext(), "NO UPC FOUND", "There was an error from the barcode scanner, please contact support", null);
}
break;
I'll clean up the error handling and get to the bottom of the issue later, but I wanted to push the change to help me get to the bottom of the issue and give my users some type of intelligible error message.
MyCollection Pro - Release 1.5.13
I'm working on using the new slider control to add more sort features and I'm working on changing the search work (I've been making behind the scenes changes for this for some time now) but that will probably be rolled into a 1.6 release.
TODO for 1.5:
- Stabilize Cupcake tweaks
- Complete thread migration to AsyncTask API
- Enable multiple sorts/filters for items though use of sliding drawer
- Enable searching by other means (title, actor/author, etc)
- Integrate goodle app engine API for searching (offload to web service perhaps?)
- Use other source than Amazon
Monday, May 25, 2009
MyCollectionFree - Release 1.4.9
Saturday, May 16, 2009
AsyncTask and MyCollection Pro 1.5.13
It is far more convenient and easier to work with than the runable API I had been using. I get a pre and post execute event that operate in the UI thread and a doInBackground event that runs in the background thread. It is the perfect thing for database operations and I like how easy it is to wire into my app.
Once I complete the AsyncTask work, I'll realease what I have. The additional sorts will have to wait for 1.5.14 or possibly 1.6.0. That particular control is a little difficult to follow and the examples I use from the API doc don't work.
Friday, April 24, 2009
Cupcake edition status update
All-in-all, I'm impressed with cupcake and I'm enjoying running it on my phone. The UI polish adds a great deal to the device and only time will tell what we have in store for us.
I'm really excited about what 2.0 will bring. Hopefully Android will become a serious iPhone competitor soon but it will probably have to settle for beating out Windows Mobile and Nokia for the moment...
Wednesday, April 22, 2009
MyCollection 1.5.13 Comming
I tweaked some of the SoftKeyboard options to make things work a little better with my app (the defaults didn't quite work). All-in-all, cupcake should be a good update!
Saturday, April 18, 2009
My Collection Pro - Status Update
Monday, April 13, 2009
Android 1.5 API comming
System
- New Linux kernel (version 2.6.27)
- SD card filesystem auto-checking and repair
- SIM Application Toolkit 1.0
The biggest problem my app has involves dealing with the database on the SD card. Not all SD cards are created equal (in fact, performance across not only manufacture but product line varies greatly) and 90% of the bug reports I get have to do with SD card issues.
Hopefully this will help a bit. I haven't done a lot of development on the app. There are a few feature requests out there people want and I want the app to sit for a while and stabilize. I was releasing updates multiple times a day in some cases and the user community was strained by that.
I still have the framework for non-UPC search results and how to deal with multiple search results. I even have a beta UI for that. I think I'll release that under the 1.5 API and let that gel before making any other changes (wish-lists, SMS message integration, etc).
Monday, March 16, 2009
The kids are fine. All three are doing well and I enjoy interacting with my older two quite a bit. They are unique individuals and it still floors me sometimes just how unique they are. I remember when they were 4 and 3 and my opinion was their opinion and their mom's opinion was their opinion. That little bit of growing up is long past and they each have their own plentiful set of opinions...
My youngest is a great joy as well. I'm a bit older then I was the last time I had one so young and I feel that I'm taking the time to appreciate it more now. It feels a little smoother this time around and I attribute that to my wife and the lessons learned the first time around. Another thing I can say is that having children at 18 is a LOT different then having children at 27 (how old I was when my third was born).
It still floors me how amazing my wife is and how close we are. I see marriage portrayed in so many negative connotations in television and other popular media. Marriage gets portrayed as the end of a man's freedom and the beginning of domestic slavery for the wife. Husbands and wives argue all the time and when they do make up, they set some of the most ridiculous terms for their "surrender." Physical intimacy gets used as a weapon and a means to control the husband in television. Every time a couple has an argument, the woman takes no responsibility for her part in the argument and the man has to crawl back on his hands and knees. It's so sad... I have never felt trapped in my current marriage and my wife and I do a reasonable job taking responsibility for our part in our disputes (the rare times they happen).
I have a friend at work getting married soon and I pray he will be as happily married as I am. Although it's funny to watch him make some of the same mistakes I did early on in my marriage, it's not my place to give advice and every relationship is different so I usually laugh to myself - well mostly to myself - and say a prayer for him and his bride.
Work is going well. My work load picked up and I am anjoying my new role. I switched managers as well and I'm still learning how to work with the new one. Not a bad manager by any means, there is just all those "Here is how I communicate" and "How much do you want me to keep you in the loop". For the most part, my company really tries to work with managers to set good objectives for their employees and I don't have any unrealistic or undefined expectations to work from. Feedback is consistent (although it's all good and that always makes me nervous) and I really can't ask for me.
My house is still a work in progress. There are so many things I want to do with it (one of them being to move out) but I'm trying to balance cost versus benefits. I really want to pave my driveway but I also have some fencing to replace and my carpet probably doesn't qualify as carpet. We had a new roof put on last year as well as new siding. I replaced the water-heater with a really nice unit after the POS Whirlpool unit broke 3 times in one month (came with the house). I had air-conditioning put in three years ago and new front and back doors (steel doors) along with nice fancy storm doors. I've wired the house with CAT5e and new RG6 COAX with a 2Ghz bi-directional powered ampliphier so Time-Warner or ATT Uverse work well here (I've had both). I also have a wi-fi bridge setup to the garage and I have my little geek cave out there.
I got a new geek toy for the car. I have a pioneer in-dash GPS unit with iPod integration and BlueTooth support. It's entirely hands free now and I do feel safer driving. My wife wants one now and the stereo in her van went bonk this year (it's only a 2004...) so that is a good as any.
All-in-all I feel very blessed. I have a great family, a good career, and a roof over my head.
I am also really enjoying learning COCOA and developing for the iPhone. It's fun to get back into C programming. I have always seen C programming as the epicenter of great programmers (leaving assembly programming and machine code programming for the true massicists). Being able to pick it back up so easily is a nice boost to my already inflated ego.
Sunday, March 15, 2009
Trouble in Germany
Friday, March 13, 2009
More iPhone Progress
I'm still working on the Android based My Collection application, but I've run into some roadblocks from a UI perspective and I have allowed myself to be pleasently distracted by the iPhone SDK.
I'll get back to "My Collection" as soon as I have an epiphany but for now, I've been able to make some progress with the iPhone SDK:
- I now have full Create, Read, Update, and Delte (CRUD) functionality against the "My Collection" database.
- I am able to use the UITableView control to display a list of all "items" in a collection (although without pictures for now) and navigate to a details page where a user can edit the items.
- The UITableView is updated without a need to re-query everything in the database (preserving your possition in the scroll list BTW).
There are a great many things I need to sort out yet and I'm waiting on an iPhone book I bought to walk me through some sample projects. The development environment is so different, just figuring out how to connect a button to an action is challanging. At least I have worked with the Model View Controller (MVC) paradigm enough now that I'm not confused by that.
Sofar, everything I have done has been an uphill struggle. I'll write individual apps to discover and demonstrate a particular bit of functionality. Once I understand how to do that functionality, I piece it together into a project I'm calling "iCollection" which will become my final Proof of Concept (POC) app to decide if I want to release "iCollection" in the Apple AppStore.
It's very nice to get back into C programming and Objective-C is a nice distraction as well. Since I use the SQLite C API's, I have to work with native C as well; however, there is a wrapper called FMDB which I might use to make things like BLOB retrieval easier from the database.
Also, there are some other design considerations as well. The iPhone doesn't have an SD card slot and has enough internal memory for me to not have to write special code to find the best place to store the database. All memory is internal which is a delight to me personally because 90% of all reported issues with the Android app "My Collection" are releated to the SDCARD and not my actual code.
Also, I might not store the images in the SQLite database as well. I self-contained them in the SQLite database in Android because of issues I had with the SDCARD (no good way to know if it's there). In the iPhone, I can give them an ID and save them to the filesystem and it's SOOOOO much easier to read them in that way:
UIImageView imageView = [[UIImageView alloc] imageFromFile:@"pathToFile.png"];
I have to say the more I work with and get used to the iPhone SDK, the more I like it; however, I do find things that should be simple much harder and things that are usually hard about the same. Android is definately easier to program for but I'll reserve final judgement until I get "iCollection" finished.
Either way, I'm almost done with my lunch break and I have roadmaps to finish. THANK GOD we have a Subway in the building where I work!!!
Monday, March 9, 2009
iPhone Learnings
I've written a simple version of the My Collection app which reads data from the existing database I use for the Android version. I'd like to finish up the read functionality and implement adding and editing of items.
My hope is to get a working version and get the learnings I need to build the app on the platform.
The iPhone lets me do things Android doesn't from a user-interface perspective so I'm planning on using the databse from the Android version but the rest of the UI will be unique and totally "Apple".
I actually had an idea where I would allow the user to define their own types and they would create "Search" pages that would show items for their types (I would seed the app with some default search pages).
I can't yet figure out how I'll work in the needed code to perform the Amazon lookups, but that is only a minor hindrance in the grand scheme of things. If I can get the application to have stable CRUD support with a tweaked out UI, the other things should be simple.
Google also ported the zXing API (the barcode scanning engine I use) to the iPhone so that will be the same too.
I'm actually excited about that. I get to use SQLite on Android and iPhone and now zXing is supported on Android and iPhone.
It's a shame that all 7,000 lines of Java code I've put into the Android version are completely useless on the iPhone...
Sunday, March 8, 2009
Experimenting with iPhone development
Honestly, Objective C isn't as big of a problem for me as I thought. Once I got the concept of sending messages to objects and the syncax, it's all good now.
Here is an example of an Alert dialog for agreeing to a license in Android and Cocoa:
Android:
new AlertDialog.Builder(AndroidExamples.this)
.setTitle("License Agreement")
.setMessage("EULA TEXT HERE")
.setNeutralButton("Accept", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//Handle click here
}
})
.setCancelButton("Decline", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//Handle click here
}
})
.show();
Cocoa:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"License Agreement"
message:@"EULA TEXT HERE"
delegate:self
cancelButtonTitle:@"Decline"
otherButtonTitles: @"Accept"
, nil];
[alert show];
[alert release];
There is a little more such as creating a handler to accept the button clicks. In COCOA, you create a delegate, and in Android you pass in a method (I usually do them dynamically).
I suppose you can argue either way, but I like that COCOA has a single event for the dialog and not for each button. You can do the same in Android by registering the same method for both or by putting the logic in a method and calling the method from the handler.
Either way, it's fun to learn a new language and platform so I'll continue to play around. My goal is to learn enough to port the My Collection application to the platform. I don't know if I'll sell it on the App Store but at least I'll learn something new.
Wednesday, March 4, 2009
Progress on new search methods
Anyhow, that's where I'm at. It has taken a long time to get here because I have had to go back and re-factor a LOT of code. I didn't do anything to wrong in the first place, but I've pulled out all my Amazon and XML parsing code into a library. The last couple of Pro updates I've pushed had the code in it but not the new screen.
So I've been testing the new search codebase for a week now with no complaints. Now that this appears stable, I'll finish up the new search screen and off we go!
Saturday, February 28, 2009
My Collection Free - Release 1.4.6
- I found and fixed a rare import bug where names of movies with just numbers would throw an error
- 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
- 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
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
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
Changes:
1. Fix issue where cover art would not download.
Saturday, February 21, 2009
Android Market Trouble
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
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
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.2
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
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
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
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
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
1.4.1:
- Disable loan-out and delete buttons for un-saved new items.
- Removed all compiler warnings
- Fixed incorrect type list for game. Movie type accidentally snuck in there.
My Collection - Release 1.4.0
Changes in this release:
- CD now has field for artist and is populated from Amazon lookup
- Book now has field for author and is populated from Amazon lookup
- Author and Artist are shown in item lists
- CD and Book no longer show "Rating" field
- Long-press menu on list shows title. This should help with fat-fingers
- Fixed some VERY VERY rare force-close bugs
- CD and Book export need to use the "Rating" field for the Artist and Author respectively
- 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...
- 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!!!
- 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'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.
Friday, January 30, 2009
My Collection - Release 1.3.13
Wednesday, January 28, 2009
My Collection - Release 1.3.12
NOTE: This upgrade takes a while to run the first time. Every item in your collection gets updated with a hidden field called "title_sortable" which I actually sort by. For collections with thousands of items, it can take a while.
I'll start work on the 1.4 branch soon and I'll consider the numerous feature requests I've been getting and see what I can work up for that branch.
I've already decided that 1.4 will NOT upgrade from any version newer than 1.2. You will just be out of luck if you have an earlier version but my current usage statistics lead me to believe this won't be a problem.
Tuesday, January 27, 2009
G1 and My Trouble With SDCARDS
This situation is starting to remind me of the old Nintendo games where you had to blow in the Nintendo slot to get the cartidge to work again and everyone had their own special way of fixing it:
- Remove game
- Blow in game cartridge to the toon of any M.C. Hammer song
- Blow in nintendo counsole to the toon of "Baby Got Back"
- Spin around 5 times
- Put cartridge back in
- Take back out blow in the game cartridge 5 times to the toon of "Yankee Doodle"
- Sing "All along the watch tower" backwords in a Spanish accent
- Watch a full episode of different strokes
- Put it back in and slam it down really fast and push power
I've had to:
- Unmount my SDCARD in the settings
- Remove the card
- Blow in the slot
- Power the phone off
- Put the card back in
- Power the phone on again
I am starting to understand why Google didn't release apps running on the SDCARD as an initial feature and they recomend against storing databases on SDCARDs.
SDCARD support is so crappy!
Anyhow, I'm done with my rant and for now, I'll continue to walk users through fixing SDCARD issues. I just wish I didn't get so many negative comments on the Android Market for issues that are clearly resolvable.
Obviously turning the appliation on should NOT delete every movies in the database (and it doesn't). I don't even have any code that deletes ALL movies. Every DELETE query has a where clause on it such that it can ONLY DELETE ONE MOVIE AT A TIME!!!!!! Why on Earth would I even write a function like that and the fact that they come back when the phone is restarted or SDCARD is re-inserted resolves the problem should be a clue it's not in my control...
Anyhow, just keep the support questions comming. Sometimes it's honestly a bug and I can fix something. Those I like. Just remember to go update your Market comment that everyting is now puppy-dogs and rainbows.
My Collection - Release 1.3.11
- Added counts so people have bragging rights on how big their collection is
- Fixed a bug on the loans screen where if you deleted a contact or didn't have any contacts in your phone but clicked save, you could never enter the loans screen again.
My Collection - General Update
Once that's done, I'm going to re-examine My Collection and take a look at the requested features to see if there is anything I can do. Here are a couple of things I would like to consider:
- Build barcode scanner into application so users don't have to install it themselves
- Find permenant solution for title sort issues. <- I'm planning on creating a hidden field called title_sortable and setting that to be the title minus 'A ' and 'The '. It's simple, but other solutions took up WAY to much processor
- Re-work the loans section to add some of the more requested features (Grouping loans by contact, showing contact and item picture, showing if an item is on loan on the item list, etc)
None of these changes fundamentally change the application which is why I'm staying in the 1.*.* version range. I might release a version 2.0 at some point down the road but, right now, it's too far into the future for me to consider.
Sunday, January 25, 2009
My Collection - Release 1.3.10
Changes:
- Import/Export now supports wrapping text in double-quotes so users can import items with titles set to "Sixth Sense, The" to help with sorting.
- There is now an "Amazon Site" setting in the preferences tab so users can tell the system to use the UK Amazon. I did this because I can't change the locale at runtime for the UK users where they had US regional phones but were looking up UK movies.
- I now trim extra whitespace around the item title which will help with items sorting weird.
Saturday, January 24, 2009
Usage Slowdown == Development Slowdown
For now, I'm going to work through the locale part and push probably the last 1.3.* release. Then I'll start building a list of features for 1.4.*.
I need to address the sorting and I think I'm just going to create a hidden column called title_sortable and strip out 'The ' and 'A ' and see if that does the trick. I might do this for 1.3.* or I might wait for 1.4.*.
I want to leave the database alone since that has been the biggest cause of upgrade trouble ever. My application can handle starting on version 1.1 and upgrading to 1.3 but between those releases, there were 6 changes to the database and it makes for an interesting upgrade process.
Until we get some more android devices on the market, my downloads are probably going to slow down. I reached the next milestone 10k - 50k and I'll ride that out adding a couple small features as I go. I really need more Android phones to build a more stable ecosystem for my app.
Friday, January 23, 2009
My Collection - Release 1.3.8
Changes:
- Added long-click menu to edit, delete, and loan-out a item
- Added long-click menu to edit and delete a loaned-out item
Todo:
- Add locality selection in application preferences since Cupcake isn't comming out soon. It will be local to My Collection only but I'll let the user controll which Amazon I search (UK, CA, FR, US, etc)
Thursday, January 22, 2009
My Collection - Release 1.3.7
Changes:
- UK issue is on hold. The localization code works great, I'm guessing this issue will work itself out as Android gets a bigger UK presence.
- Removed duplicate Amazon image lookup. Lookups should be a little faster now.
- Sharper App icon (Thanks yet again Alexis)
Todo:
- Do on long click menus for items to do quick loan and delete
- Wishlist?
My Collection - Release 1.3.6
Changes:
- Added preferences menu for show/hide tabs and setting default tab.
Remaining 1.3.* TODO:
- Do on long click menus for items to do quick loan and delete
- Figure out the UK lookup issue. I've finally got some people in the UK to send me barcodes
- Wishlist?
Wednesday, January 21, 2009
My Collection - Release 1.3.4 - 1.3.5
- Fix bug on loan details
- Fix bug on item filter
My Collection - Release 1.3.2
- Improved scroll speed (Thanks AJ)
- Show type in list (DVD, Blu-Ray, etc)
- Show large star icons for new items.
Categories/Genres in 1.3.*
Moving forward, this should never be a problem again as the new system will last through upgrades and I don't plan on changing it.
My Collection - Release 1.3.1
- Missing Blu-ray movies will re-appear. There is a big difference from Blu-Ray and Blu-ray... Oops!
Tuesday, January 20, 2009
My Collection - Release 1.3.0
1. Users can now manage their categories (Create, Read, Update, Delete).
2. Types are now more granular (Movies has: DVD, Blu-ray, HD-DVD, VHS, Laser Disc)
3. Application can now do CD's
I've done some code cleanup behind the scenes which should simplify work moving forward. I'm still combing through the feature requests and trying to decide what I want to do for the 1.3.* branch. Here is what I've got so far:
1. Do on long click menus for items to do quick loan and delete
2. Figure out the UK lookup issue. I've finally got some people in the UK to send me barcodes
3. Wishlist?
4. Preferences
My Collection - 1.3.* Progress Update
Completed:
- Re-work import
- Re-work export
- Finish CD functionality
- Finalize new tabs and implementation
- Test upgrade functionality
Monday, January 19, 2009
My Collection - 1.3.* Progress Update
Types are also specific to the item as well:
Movies has:
- DVD
- Blu-ray
- HD-HDVD
- Laser Disc
- VHS
- Gameboy
- Game Cube
- Mac
- Nintendo DS
- PC
- PS1
- PS2
- PS3
- Wii
- XBOX
- XBOx 360
- Harback
- Softcover
- Album
- Single
- Box-Set
- Re-work import
- Re-work export
- Finish CD functionality
- Test upgrade functionality
- Finalize new tabs and implimentation
Sunday, January 18, 2009
Progress With Life
Tonight will be the first night my youngest is sleeping in his own bed in a room he will share with his brother. My wife and I will finally have our room back!!! As with my first two, I expect the transition to take some time, but if I can just get him going to sleep in his own room, my wife and I can enjoy an hour or two of solitude and alone-time.
Here's to sleep-filled-nights* that I hope to have in the coming years. There is an seven year gap between my youngest and middle child so I had been sleeping though the nights** for several years and it's been an adjustment.
And my grey hair count is up now. I used to be able to name one after each of my children. Then I had to add the pets, then the birds in the bird-houses, then well... I don't really want to talk about it. Here's to hoping it all falls out soon enough...
* Sleep-filled-nights are one of the most rarest and precious of possessions. Parents have been known to beg, borrow, and steal everything up to and including lollipops from babies to gain such a precious possession...
** Reletively through the nights. I occasionally got woken up for vomiting, bad dreams, noises in the house, and because one of my children couldn't find their spoon-shaped-thing.
My Collection - 1.3.* Progress
I have to create a table for categories and associate the movie to the category. That part is done. I event seed the table with movie categories from IMDB, Game categories from IGN, and Book categories from Amazon.
The next step is to build the set of screens to maintain the categories. Once this is done, I need to tweak the import process and export process since category is no longer kept in the movie table as text.
Then I need to build an update script for the database to handle converting old categories to new categories (the tables changes are done, I just need to update old data).
Hopefully I'll have this out sometime next weekend. After categories, I'll build in CD's and ship the first 1.3.0 release. I might have to combine movies back into a single tab rather than DVD/Blu-Ray. I'm running out of screen space...
Someone needs to build bigger Android devices...
My Collection - Release 1.2.17
- Changed application icon (thanks again Alexis)
- Added confirmation dialogs when deleting items.
Saturday, January 17, 2009
My Collection - Release 1.2.16
- Separated DVD and Blu-Ray tab (this is in prep for adding CD's in 1.3.*)
- Automatically lookup item info when you scan barcode
- Use larger image on item info screen
- Code cleanup and general housekeeping in preparation for 1.3.* activities
The SQLite API doesn't appear to allow joins in their methods that return a cursor so I have to do 3 separate queries for each row. I would have to do two separate queries no matter what because I cannot join to the contact data from the application database. Once I figure out a way to do it without a big performance hit, I'll add the functionality back.
Source Code Management
I've used CVS, AccuRev, SourceSafe, Team Foundation Server, PVCS, and Dimensions before with mixed successes; however, being as I'm still earning $0.00 on My Collection so my budget was nill. CVS is free but I decided to try Subversion. Subversion was built to handle some of the shortcommings of CVS and most companies I know that use or used CVS have or are migrating to subversion if they don't want a commercial solution.
I decided on the packaged Subversion solution for Windows called VisualSVN.
VisualSVN packages subversion with Apache and a Windows GUI. I also downloaded the eclipse plugin and everything is well managed now. I've already used the diff tools to help me troublshoot some new functionality I'm working on.
Now all I need is an expert QA staff and 12 more hours in the day.
Friday, January 16, 2009
My Collection - Release 1.2.15
Changes in this release:
- You can now loan items out from the list or from the edit screen.
- Database upgrades or sdcard copy operation not happen in background and a progress dialog is shown to the user.
This wraps up all the features I wanted to add to the 1.2.* branch. Here is what I'm thinking of for 1.3.*:
- User can add own categories
- Categories are by type. So DVD gets a different list than BOOKS and GAMES.
- CDs
- I'll probably break Blu-Ray into it's own tab. That will make some of the UI things I need to do easier. I just need to make sure I have enough room in the tabs
- Anything my users may suggest that I think adds value
Upgrade Disasters...
If this happens, just delete the file on the sdcard '/sdcard/my_collection/my_movies' and restart the application. If you getting a message telling you the application isn't responding, tell it to 'WAIT' not 'CLOSE'!!!
Sorry team!
Thursday, January 15, 2009
My Collection - Release 1.2.14
Fixes:
- Use the default device-database if sdcard one cannot be created.
My Collection - Release 1.2.12
TODO items:
- Add 'Loan' action from movies page <- new requested feature
- Add indicator in movie/game list to tell if item is loaned out.
Database on SD Card Idea
The idea is pretty simple. I've know how to build the custom provider to read data from an SDCARD (well, the theory behind it), but I've stuggled with a way to do it such that the data from the old database is kept in the new database.
So what I intent to do is this... In the onUpgrade method, perform my necessary upgrade to the database on the device, then copy it to the new SDCARD location. Then, in the future, just read it from there. I'll probably run my export routine first just in case, but still... I don't know why I didn't think of that rather than the complicated query solutions I had tossed around before...
Thoank God for showers! If not for them, I would probably never have any ideas that could be considered remotely good!
My Personal Software Development Approach
By negetive feedback, I don't mean, 'Hey can you make it do this' or 'I think it stinks'. I'm referring to feedback like 'YOU CAN'T CODE FOR CRAP!!!!' or comments that make not-so-oblique references to intelligence, sexuality, political beliefs, religions beliefs, etc....
Here is goes:
No Excuses - Let nothing stop you!
I flunked out of a programming class in high-school and I never let that stop me. Over a decade ago, I had a manger tell me I wasn't going to be a good programmer and I didn't let that stop me. Different people develop differently in their careers. Pick your goal, and don't give yourself any slack in getting there. Set your goal and get to it. If you fail to hit your target, it's YOUR fault not your managers, companies, bosses, or ex-spouses fault. Get it done!
Keep your self-evaluations at the front
I have never liked hearing from my manager how good I am at my job. I know my shortcomings and usually take steps to correct them. What I like to hear from managers is constructive feedback like, "How would you feel about this approach next time..." or "The company has a need for this skill, you might want to check it out"
Don't marry any specific technology
I've been on a few interviews where they have asked me a question like, "Are you a [.NetPHPJavaCC++] programmer?" My answer is always, I use whatever best fits the needs. That doesn't mean I always pick C if I need speed. I have to consider the established infrastructure and company talent pool; however, personally, I try to study frameworks and paradigms and not a specific language. That doesn't mean that while working in a platform or language, you should not take an effort to learn it's idiosyncrasy's. But I've meet a LOT of out-of-work Cobol programmers and they were trying to get up to speed in C# of Java, or some other language.
Don't be afraid to ask for help
I've worked with developers that would spend two days trying to figure out a problem that they could have solved by either a 5 minute Google search or talking to a colleague.
Don't be afraid to admit you were wrong or made a mistake
I'll admit some bosses/companies make this hard but even the BEST golfer rarely hits a hole-in-one.
Don't be afraid to admit you don't know
There is nothing worse than someone who will simply not admit they don't know and worse, make it up. They print tech-manuals because everyone cannot remember everything...
Don't be EVER LIE!!!
This is in reference to the first three really. In software, honestly is always the best policy. If you boss asks you to lie to a customer, quit. It will only get worse from there and they are more than likely lying to you! Instead, try to say things like, "We don't publicize our bugs", or "We had a bug in our code"
Micro changes over time not Macro changes rarely
I've gotten some feedback that I change 'My Collection' to much. I think they are correct, but I also do that intentionally. I am not trying to release every item on my TODO at once and I prefer to roll them out over time. That way, I can isolate the issue if there is a problem and also I just don't have the resources for monolithic releases.
Document now, pay NEVER
Documentation is the key to software maintainability. It should be a law really but since it's not, it should become a compulsive habit at least!
Take constructive an un-constructive criticism with a smile
As much as I hate oblique references to my sexuality, intelligence, etc... It never every pays to shoot back. Most people want to help. I've gotten very little negative feedback and most of the issue people bring to my attention are noteworthy and implemented. Also, make sure you tell someone no rather than ignoring them.
My Collection - Release 1.2.11
Changes:
- Export feature
- Prettied up about box
- New non-silk icons (THANKS YET AGAIN Alexis Gonzalez)
- Rather than disable the Scan Barcode icon, I show a dialog if you don't have Barcode scanner telling you to go get it. Dumb UI thing on my side, and hopefully I'll stop getting 10 emails a day and negetive feeback on the market about it.
- Store database (or at least images) on SDCARD
- Add 'Loan' action from movies page <- new requested feature
- Add indicator in movie/game list to tell if item is loaned out.
I keep getting request for the application to track things like VHS, Laser Disc (those 12 inch beasts), CD's, VCDs, etc so I'll see what I can so.
Some people even want my app to play movies but I'm pretty sure that is a resounding no. It's not that I don't want to do an application with media playback, but not in this app. I don't like 'Kitchen Sink' applications and I think they leed to bloatware and unmaintainability.
Thanks again for all the feedback and community support!!!!
Wednesday, January 14, 2009
My Collection - Release 1.2.9
- Fixed issue with Contact URI query where blank contact names would display
- Changed to new icon (THANKS AGAIN Alexis Gonzalez)
My Collection - Release 1.2.8
Changes:
- Fixed Force-Close on search
- Added UK region so UK searches should work as long as the device is localized to that region
- Removed more silk-icon images. Only have one left.
- Pretty up about box
- Store database (or at least images) on SDCARD
- Add indicator in movie/game list to tell if item is loaned out.
Tuesday, January 13, 2009
My Collection Release 1.2.7
I removed the default theme and went to the more standard android black/gray theme. That made the tabs easier to see as well as the contrast was better on some of the images I got.
I added the ability to manage books and I changed the main UI to be tabbed. There are 4 tabs (Movies, Games, Books, and Loaned). Hopefully they are self-explanitory.
I'll work on the major house-keeping items this weekend.
Status Update for Todo
DONE:
- Added scan and storage of BOOKS!
- Rename 'Rentals' to 'Items on Loan'
- Tabify the interface to show 'Movies', 'Games', 'Items on Loan'
- Pretty up about box
- Store database (or at least images) on SDCARD
- Investigate the missing images and trouble I'm having with Amazon
- Add indicator in movie/game list to tell if item is loaned out.
- Make Amazon searched work in UK
Monday, January 12, 2009
Revised TODO List
The intention was to keep track of who the user loaned their movies out to. I think most of my users think it is for keeping track of movies they have rented (which sounds useless to me and based on the feedback, the users that thought it was for that purpose found it useless as well).
I'm going to rename the sections to "Items on Loan" and I'm going to change the interface to use tabs. There will be 3 tabs initiall and a 4th one added when I finish books. Here is the revised TODO:
- Rename 'Rentals' to 'Items on Loan'
- Tabify the interface to show 'Movies', 'Games', 'Items on Loan'
- Pretty up about box
- Store database (or at least images) on SDCARD
- Make Amazon searched work in UK
- Investigate the missing images and trouble I'm having with Amazon
- Add indicator in movie/game list to tell if item is loaned out.
That's enough for now. I'll probably take care of 1, 2, 3, and 7 work in the next release.
Number 5 should be simple but I'm trying to do it such that I can support all regions Amazon supports and not just US and UK. I at least want Australia because of the Kogan comming out soon.
Sunday, January 11, 2009
MyMovies Release 1.2.6
I'll start looking for alternate search providers. I wonder if Newegg has a web service...
MyMovies Release 1.2.5
- You can now only perform a lookup if you have something in the UPC field. It doesn't have to be a valid UPC, just something. I did this because I don't know what the app will scan in the future...
- I added a ScrollView around the movie details page. it now scrolls in landscape mode. Thanks to the users for that bit of feedback!!!
Saturday, January 10, 2009
Feature Requests - New App New Name?
There are still some things to sort out other than what I have already listed. I need to get the UPC search working in the UK. And for that matter, Australia as well. Kogan is releasing their Android phone on January 29th (I pre-ordered one) and I'm sure Australia will be different from the UK as well.
I've had a couple of people as me for the application to handle books. I already handle games so the name of "My Movies" is probably not a good fit anymore. I've had someone suggest, "My Media" which works for me. But what about "My Library"? I think it sounds to bookish... I could call it My Movies Stuff since Stuff-it is already taken...
Anyhow, I have some housekeeping to do in the code and then I'll finish up the 1.2.* branch. I'll probably add books and user maintainable Genre's in the 2.0 branch.
FUN STUFF!!!!
Databases on SD Cards
Anyhow, we'll see where I get from here but this is going to take some serious debugging...
Also I've gotten a report from a user about a force-close on lookup. I wrapped that thing around so many exception handlers I'd probably get yelled at my a real Java developer. My suspicion is that they filled up their flash, and I'm working on trying to replicate it. I really can't get the thing to crash myself. I need an expert QA staff...
My Movies Release 1.2.3
- Now grab image from Amazon and display in movie details and movie list.
- Search not matched not just titles that start with, but contain the letters you type
- Added lookup button next to UPC. Menu option was confusing people
- Renamed "New From Scan" menu to "Scan Barcode"
- Store the database on sdcard. It's getting big now and there isn't a LOT of local storage.
- Pretty up about box
- Rent a movie out to a friend from the movie list (currently you can only create a rental from the Rental list).
Friday, January 9, 2009
My Movies Release 1.2.2
That's all for this version. I would like to say I'll let this jell a while but I never can. I'll try to keep working my way down the 1.2.* branch.
Now that I've got the lookup on a thread, I'll probably start grabbing the box-cover images and I'll start that code. I expect that to take me a while so that could be my jell time there...
MyMovies Release 1.2.1
- I had an epiphany in the shower and I fixed the game bug. I've been able to scan every XBox 360, Wii, Nintendo DS, and PC game in my house and it works.
- I wasn't writting UPC to the database... OOPS
- Thread the import process and Amazon ws call so the UI doesn't throw an "Application not responding" message. The Amazon call happens rarely and I'm on AT&T Edge so 3g should never see it, but I still want to do it right. The CSV import was always there and it's time I actually get it done...
- Store the database on sdcard. It's getting big now and there isn't a LOT of local storage.
- Retrieve box image from Amazon and show it. I already pull the URL and I have storage columns in the internal SQL Lite database, but I just need to finish it.
- Pretty up the about box...
- Rent a movie out to a friend from the movie list (currently you can only create a rental from the Rental list).
- Change the name to something like "Collector" or something other than My Movies. It does games and hopefully more in the future...
- BOOKS!
- Tabbed list Movies, Games, Books
- Make categories editable
- CHARGE MONEY FOR IT!!! I'm still in mind of the <$4 but we'll see. I'm spending a LOT of time on this (around 20 hours now) plus the cost of the developer phone(s) plus the cost of missing sleep because I work on this while the family is in bed. It's starting to become an expensive hobby...
- No idea, hopefully I'll be rich and I can hire a minion to figure it out...
MyMovies Release 1.2.0
I fixed a UI bug where the values you entered when you flip the keyboard out were not saved when you close it (fixed in movies and rentals section).
I added an about page but it's not formatted all pretty yet. I'll clean these things up and release a new version once I get some user feedback.
Status Update on Barcode
I'm able to do the following:
- I'm able to invoke the Barcode Scanning application and get the UPC scanned from that app.
- Then, I invoke the Amazon web services and I get the XML document back.
I was originally looking to find a quick way to use XPath to pull what I needed but the javax.xml.xpath api doesn't appear available on the Android JRE, so I'm going to have to use SAX and do it the hard way.
Now that I have the dev phone, I spent some time getting the slid-out keyboard functionality working. Now, when you slide the keyboard out and then back, you don't lose your changes or what you typed.
GOSH THAT WAS ANOYING and I'm glad I've got a user community as patient as they are!!!
Additionally, I think I'm going to leave the version in the 1.* schema. I'm thinking of 1.2.0 for barcode scanning. I'm thinking of adding other features to make the app a little nicer based on user requests that can take the app to 2.0 status (Books, Favorites, Updatable categories, etc...)
Wednesday, January 7, 2009
My Dev Phone is Here
The Zebra Crossing (zxing) app, called Barcode on the market, is free and I can call it from my application and have it return the scanned barcode to me when it's done. This way, I can focus on building the code to call the Amazon services.
Hopefully, I'll have the version out that looks up the title from the barcode scan no problem. I'm going to add a 'UPC' column to the movie database to lookups can be re-performed in the future in case of outages.
Tuesday, January 6, 2009
Barcode Scanning Progress
Here are some of my challenges:
- The Amazon lookup for UPC only returns the title. I need to find a different one, or get the Amazon ID and perform a second, more detailed, lookup for rating and movie thumbnail.
- All Amazon lookup requests need told if it's a DVD or Game which means the UI will need to have that Option.
- I need to work out a good and fast XML parsing method. I'm using JAX right now and it works, I want to make sure that's the right thing to do.
As for issue 2, I'm thinking of implementing the scanning in a way that you store the UPC and can perform the lookup on demand in the Movie Edit screen. That way, you can specify DVD/Blu-Ray and select "Lookup" from the menu.
I want this to be simple because I have people emailing me telling me they have 400 to 1000 movies and at 10 seconds a movie, they could be using my application for 3 years straight before they can put it down. I'm hoping for no more than 3 steps, preferably 2.
Issue 3 shouldn't be a problem, I just don't want to finalize the code until I'm sure I took the best "mobile phone" appropriate approach.
Monday, January 5, 2009
upcomming development
I'm really impressed with how much feedback I've gotten and all of it was constructive. Right now, most users want barcode scanning. The biggest challange with that is NOT the barcode scaning. Good zxing was a BIG help there. The hardest part is finding a service provider who can perform the lookups.
I've contacted Amazon Web Service to see what free services they offer. I'm hoping to get the following data fields:
- Title
- Rating
- Description
- Category (hopefully this will sync with the IMDB categories I use now)
- A thumbnail
As for the next version:
- An about page <- Not requested but I need to take care of this to recognize some user feedback and to put some acknowledgements in
- More detailed filtering <- I've gotten requests from some users to filter movies by category, rating, and type. I'm planning to leave the title filter at the top and add a colapsable pane to add additional filters
Hopefully the Android market will have its payment services setup and I can earn the money back I spend on the development phone and the android account. Also, I'm hoping I can do something like free upgrades or discounted upgrades.
For a price, I was thinking of something simple like $2.99. I'd like to do it for a buck, but Google is planning on taking 30% for the cariers and I need to have some left over after I pay taxes on it.
If they won't offer a discounted or free upgrade option, I will probably charge less so the user community doesn't get sucked dry. Escpecially since a lot of the "upgrades" come from feature requests and feedback from the users.
Sunday, January 4, 2009
MyMovies Version 1.1.5
- I added an NR rating category per a user request.
- Fixed display problem with rating on home screen with new movies
It displayed with the rating of the movie directly below it and it had to do with how Android draws items in a list. The list is fed from a CursorAdapter that only fetches how ever many items from the cursor that it has to draw on the current screen. If you insert an item in between, the widgets on the screen were not reset properly and if you had a 5 star movie before, all 5 stars would be enabled even if the movie was only one start. I needed to reset the stars to disabled in the display(Cursor c) method and not rely on them to be reset in the constructor (or the method I call to from the constructor).
That one was tuff...
Saturday, January 3, 2009
MyMovies Version 1.1.4
Friday, January 2, 2009
Version 1.1.3
This was the only fix in the app and it took me all of 5 minutes to sort out. I REALLY REALLY REALLY need to buy a G1 so I can test on the actual device...
Still, My user count is over 1400 now so hopefully, I'll continue to get good feedback...
What's Comming Next
Also, since I don't have an Android phone at all, the camera development is a little tricky. I found a site that has a work around so I'm hoping to use that for the majority of the development...
MyMovies Version 1.1.2
The first feature is the inclusion of a Category or Genre. I grabbed the list of movie Genre's from IMDB so hopefully, that should make everyone happy. Also, I added a new feature where you can rate you movie collection. I use a simple 1 to 5 stars system and I display the category and ranking on the movie listing page:
While I was at it, I got rid of the old ugly icon for a new but only slightly less ugly icon. This one contains no borrowed image contact so no worries on licensing...
Unfortunately, the CSV File format had to change because of the new columns. There are now seven columns:
Title,Rating,Category,Status,Type,Rank,UPC
The nasty bug had to do with how android bubled up events. I attached an onKeyUp event to the ListActivity so I could handle people pressing the delete key; however, that event also got triggered when the focus was in the filter box. Hence, if you apply a filter and then delete the contents, you just deleted your filtered items (THANKS Miguel).
The simple bug was I spelled Blu-Ray wrong. The upgrade will change the spelling of all BlueRay and make it Blu-Ray.
Thursday, January 1, 2009
Android App Version 2
I also cleaned up the code a bit and moved away from the Silk icon set for the menu items and instead, I use android global menu images. Hopefully, the application can change as Android gets upgraded. I also selected a lighter theme... I'm sure that means more battery life, but I liked the white background better.
Here we have the new home screen. You can see the game-controller icon for items marked with a type of GAME:
Look at the new Android seeded menu icons:
I'm also disabling menu items if there is no selected item in the ListView. This only happens when an activity launched from the ListView returns and adds/deletes a row:
Here is the new Edit screen. It was easy to add ratings and types because I used the array.xml resource files. I just went to ESRB.org and got what I needed for the games and I've added the TV ratings as well. Why they are not all the same is beyong me:
Same thing with the menu displayed. I really like the seeded menu icons better:
Here is the screen showing the rental list. I tried to consolidate the contact and title into one row; however, the longer movie/game titles went off the screen and it looked terrible. I like this approach better and hopefully, a 500 item catelog won't have all 500 out at a time. I'm thinking of a possible grouping of contacts for a later version:
Same thing with the menu visible:
The edit screen seems really simple and it is. I used a CursorAdapter to bing the Spinners and added methods in my DbAdapter to retrieve cursors to the Android Contacts repository and I created a smaller method for the movies that just returns _id and title:
Once again, same thing with menu:
The import screen didn't change other than code cleanup. I removed some redundant event handlers and added more comments:
Overall, I'm liking version 2 better and I'm learning more and more about Android. I'll try to work out checking-out a movie from your contacts application but I'm not sure where to start there. I'll post some messages to the developers message board and see where I land...