Code This

std::cout <<me.ramble() <<std::endl;

Checkout Tracker 1.3.0 Released

leave a comment »

The third minor feature release of Checkout Tracker has been published to Google Play. As always, you can find it using the following URL:

https://play.google.com/store/apps/details?id=com.kwproductions.checkouttrackerv2

This release includes the ability to filter on multiple order states and items, and has been modified to use the ActionBarSherlock library. It also includes some other minor visual updates.

Written by Kris Wong

June 19, 2012 at 5:47 pm

A Spinner Control For Android With Multi-Select Support

with 21 comments

I recently had a feature request for Checkout Tracker to allow the user to select multiple order states and multiple items when filtering the order list. I thought to myself, no problem, I can probably bang that out in a half hour or less, right? All I need is to do is add support for multiple states & items in the filter restrictions, and turn on a setting that allows the user to select multiple items in the Spinner controls used in the interface. Wrong. The Android Spinner control does not support multiple selection. This seems like a fairly obvious, and fairly common, use case. Unfortunately many such use cases are not covered currently by the Android libraries. Such is the curse of working with a young framework. No matter, I set out to create my own version of this control.

This took me about a day, after which I was able to bang out the feature request in under a half hour. Here are some screens:

 

I have made this control available for all the world to use, on github. Hopefully I have saved you a day’s worth of work.

Feel free to leave feedback about the API or functionality, or request changes.

Written by Kris Wong

June 17, 2012 at 11:49 am

Checkout Tracker Version 1.2.0 Released

leave a comment »

You can now find Checkout Tracker through a new Google Play link:

https://play.google.com/store/apps/details?id=com.kwproductions.checkouttrackerv2

For some reason unbeknownst to me, Google decided the initial listing of Checkout Tracker had violated someone’s intellectual property and suspended the application. This is the type of professionalism (or lack thereof) that you will find typical from Google when acting toward Android developers.

Anyway, this new version brings lots of new features since my last release announcement, including:

  • A home screen widget
  • User configurable period
  • Delete orders by date
  • A number of bug fixes, including verified support for international (non-US) users

Let me know what you think!

Written by Kris Wong

April 2, 2012 at 5:27 pm

Checkout Tracker 1.0.2 Released

leave a comment »

An important bug-fix release has been published to the Android Market for Checkout Tracker. Version 1.0.2 resolves an issue where new updates would occasionally be missed when logged in with the merchant ID + key option. All users are recommended  to update.

Written by Kris Wong

March 3, 2012 at 12:05 pm

Checkout Tracker For Google Checkout Released

leave a comment »

Checkout Tracker is an application for your Android device that integrates with Google Checkout to bring you up-to-date order information wherever you go. It is specifically designed for Android Market merchants. You can read all about it, and purchase the app in the Android Market:

https://market.android.com/details?id=com.kwproductions.checkouttracker

It’s a must have for every Android developer!

Written by Kris Wong

March 1, 2012 at 8:48 pm

Logging In To Checkout Tracker Explained

with 3 comments

Checkout Tracker offers you two different ways to authenticate with Google Checkout. There are a few reasons for this. Logging in with your merchant ID and key are recommended. Doing so allows Checkout Tracker to communicate with Google using the Checkout API, which allows it to be more efficient in terms of data usage and battery consumption. Using the Checkout API enables Checkout Tracker to download only what has changed since its last poll for data. This does have the caveat that the first time you log in, it will typically download much more data. Every check for new data thereafter, however, will download much less.

Not everyone has a merchant key, though. For some reason, only merchants in the US and the UK have merchant keys. Also, some people are uncomfortable entering their merchant ID and key in the software. That is understandable. You also have the ability to authenticate with Google using one of the accounts you have associated with your phone. Doing so will cause a screen to be displayed by your phone that asks you whether you would like to give access to your account to Checkout Tracker. If you choose this option, Checkout Tracker is not able to use the Checkout API. Instead, it mimics a web browser and downloads a CSV report for the current period. It has to download the entire report every time it polls for new data. It is also subject to breakage if Google decides to change the column names or the formatting of the data in the CSV report.

If you would like to use the phone account option, and your account that has access to Google Checkout is not associated with your phone, you may associate it in Settings > Accounts & sync.

Written by Kris Wong

February 29, 2012 at 4:58 pm

iPhone (iOS 5) Inspired GO Launcher EX Theme Published

leave a comment »

It’s a bit ironic that the most popular themes for Android are iPhone themes. Such is the influence of Apple. I have put together what I believe to be the “most iPhone like” theme for Android. It includes the same stock icons and wallpaper as iOS 5. You can find that the theme in the Android Market:

My iPhone theme for GO Launcher EX

There are plenty of screenshots available on the market page, but here is a comparison of the iPhone and my theme:

The iPhone

My theme

Written by Kris Wong

February 7, 2012 at 11:58 am

MIUI Inspired GO Launcher EX Theme Published

leave a comment »

Not too long ago I ran across the MIUI ROM for Android. I rather like the clean and modern style of the ROM. The problem is, it’s not available for many devices, my HTC Thunderbolt included. So I set out to find a theme based on MIUI that I could run instead. The problem was, I couldn’t find a good one. Fortunately, my favorite launcher (GO Launcher EX) has a theme factory available for making custom themes. This allowed me to dig into the MIUI ROM and piece together a GO Launcher EX theme. That theme is now available on the Android market, for less then the price of a decent cup of coffee:

My MIUI theme for GO Launcher EX

There are plenty of screenshots available on the market page, but here is a comparison of MIUI and my theme:

MIUI

My theme

Written by Kris Wong

January 14, 2012 at 6:29 pm

Status Update: EAS Support in K-9 Mail

with 23 comments

After a more in-depth look at ActiveSync support in K-9, I found there to be more issues than I had first thought. This post serves to point out the most major of the issues that I have to tackle before this will be ready to be released into the wild.

1. K-9 does not remember sync state after being restarted. The sync keys used by the Exchange server to know which folders and emails have been synced by the phone are not persisted. This may not be immediately obvious, but it causes K-9 to do a bunch of work it doesn’t need to, which will do a real number on your battery (as well as network usage). This problem has been solved.

2. K-9 does not use the Exchange server to send email. K-9 uses its own “special” outbox for sending email, and it does the sending. K-9 should be moving composed emails into the outbox on the Exchange server, to be sent by the server. UPDATE: My original thoughts here were incorrect. Sending is working correctly.

3. K-9 does not download headers first and then mail contents. It downloads everything in one go. This causes a major delay before mails begin to appear in your message list. I am not sure the ActiveSync protocol is designed for this type of usage. This issue will require further investigation and thought.

4. ActiveSync is designed to filter the number of emails fetched by date, according to pre-defined filters (such as “one month”). K-9 is currently designed to fetch mail differently. The user interface for ActiveSync accounts will need to be modified to match the design used by Exchange.

5. There are discrepancies in the truncation size options for emails between K-9 and Exchange. I am also not certain if it is possible to know if an email is not fully downloaded. This will require further investigation.

I will be tackling these issues 1 by 1 as time allows. At this point, I don’t really have any idea how long it will take me to complete them all.

UPDATES: I have found and addressed a number of additional areas where the design of ActiveSync does not really mesh well with the design of K-9. I won’t go into all the technical details. Syncing of email is now working pretty well. I am now able to use K-9 as my daily email application on my phone.

Written by Kris Wong

December 20, 2011 at 7:33 pm

Building K-9 Mail With Exchange ActiveSync Support

with 34 comments

I have blogged in the past about the less than fortunate state of Exchange support in K-9. This is due to the fact that K-9 communicates with Exchange through and outdated and problematic protocol: WebDAV. WebDAV support is turned off by default in Exchange 2007, and completely removed in Exchange 2010. This of course implies that K-9 does not support Exchange 2010. Since I started working on K-9, I have had the desire to replace the use of WebDAV with the Exchange ActiveSync protocol, which is designed specifically for mobile devices. Unfortunately, this task was much too large for me to take on in my (non-existent) free time. Lucky for us Google sponsors the annual Summer of Code.

This year K-9 was granted 4 Summer of Code projects, including EAS support. The project was successful, and at this point we have “mostly working” EAS support in a branch of the K-9 repository on github. There are still a few small issues to work out, and a few small features to complete, but I currently use K-9 with EAS support for email on my phone. If you would like to build K-9 with EAS support for your own personal use, I am including step-by-step instructions for doing so (though as usual, I do assume some basic knowledge of source control and building java applications).

In order get the K-9 sources and complete a build, you will need a git client, a JDK, ant (you can also use eclipse, but I don’t include instructions for that), and the Android SDK (make sure it’s up to date). The first step is fetching the source:

git clone git@github.com:k9mail/k-9.git k9mail

This will clone the repository at git@github.com:k9mail/k-9.git into the directory k9mail. This fetches all branches in the K-9 repo, including the ms-eas branch where EAS support lives. The next step is to “checkout” the ms-eas branch:

git checkout -b ms-eas origin/ms-eas

This tells git to create a local branch named “ms-eas” that tracks the remote branch at origin/ms-eas, and switch to this new branch. Now you must build the K-9 source. First, create a file called ‘local.properties’ at the root of the source tree with the following entry:

sdk.dir=/path/to/android-sdk

Obviously, replace “/path/to/android-sdk” with the path to the Android SDK on your machine. The command to build is:

ant debug

This will build a signed and zipaligned installer ready for installation on your device. Finally, plug your phone into your PC via USB and ensure it is recognized by adb. To install the freshly built K-9:

adb install -r bin/K9-debug.apk

If you have K-9 installed from the market, you must uninstall it first. Your new K-9 will be signed with a different key than the market version and Android will not let you install this new version if the keys don’t match. Alternatively, you can give the app a new name in AndroidManifest.xml, but that’s outside the scope of this blog post.

If you want to report issues, feel free to mail k-9-dev [at] googlegroups.com.

Written by Kris Wong

September 29, 2011 at 3:29 pm

Design a site like this with WordPress.com
Get started