TravelKhana Android Mobile App – Food in Train – Khana Online

TravelKhana: a place where you can order your food during your train journey. TravelKhana is the largest food delivery provider in train, through out more than 2O0 Indian railway junctions. You can visit from your desktop, mobile to book your khana online, TravelKhana delivery boy will be right your train seat to deliver your order.
TravelKhana LogoTravelKhana understands the need of Indian railway passengers, and that’s why it has introduced some utilities too to make your rail journey better!

TravelKhana has just introduced their android mobile app ( where you can access all TravelKhana services. Get the TravelKhana train food order booking application.

With this app you can book food anywhere in India while traveling in a train. Offers choice of food from Veg, Non Veg, Thalis, Wraps, Pizza. TravelKhana spot your running train status and gets the order delivered fresh near your seat while you are in a train. Use TravelKhana to order food at more than 200 locations across India while traveling in a train.

Multi Courier Tracker: Enhanced

The Multi Courier Tracker Android app from Sasyabook – The Lord of the Shipments: One App to Track Them All!
Multi Courier Tracker


  • Support for no less than one hundred and eleven delivery companies!
  • Complete tracking history with color scheme and tagging for easy identification
  • Smart paste: paste text directly from an SMS or email – even an entire message, or a link – and the tracking number will be searched and pasted
  • Barcode scanning
  • The Magic Star ‘★’ to bring more frequently used couriers to the top of the list
  • Offline saving of track results
  • Sharing & printing of the tracking documents
  • Constantly updated and improved based on user feedback
  • And of course, all from the convenience of your Android device, in the palm of your hand, anytime, anywhere

You really should get it now – if you haven’t already!

Get it on Google Play

Sorting RadioButtons: The Magic Star ‘★’

The Multi Courier Tracker app uses two vertical RadioGroups, with lots of RadioButtons in each, for selecting which courier to track.
Magic Star
Once the number of couriers gradually increased to 50, the question arose how to give an option to bring the more frequently required / used ones to the top.

The simplest solution was to dispense with the RadioButtons and go for a ListView. But there was something nice about the RadioButtons!

How it was done, retaining the RadioButtons:

  1. First, removed all the RadioButtons from the XML layout
  2. Instead, made an array of RadioButtons in code, and also an array of ids, with one integer id for each courier. The names and colors for each courier button was mapped against its id, in two SparseIntArrays.
  3. In the onCreate() Method, looped through the id array to create each RadioButton, and add it to the RB array. Each RadioButton was also mapped to its id, in a global SparseArray.
    int index = 0;
    for (int crid:idarray) {
    RadioButton rbinst = new RadioButton(this);
    //name - Points to a String resource
    int name = nameMap.get(crid);
    int color = colorMaps.get(crid);
    //The Key Step: The id of each RB is set here
    //Global SparseArray mapping each RB to an id
    cridMap.put(crid, rbinst);
  4. The RadioButtons are then added one-by-one to the layout in the onStart() method using a loop and a flag variable to put them into one of the two Radiogroups in tandem:
    boolean odd=true;
    for (int id : idarray) {
    (odd ? rgCR1 : rgCR2).addView(cridMap.get(id));
    odd = !odd;
  5. When the user tracks a courier, the counter for that courier is incremented and stored in a SharedPreference integer value, with the key as the courier id + “_COUNT”
    String COUNT_KEY = CRID+"_COUNT";
    int crcount = sharedpref.getInt(COUNT_KEY, 0);
  6. Each time the activity starts,   the courier tracking counts are retrieved, again in a loop, and mapped to each courier id in a SparseIntArray. The counts are also separately added to an Array, which is then sorted using Arrays.sort(array). The id against each track count is then retrieved in descending order and stored in another array the sorted id array.
    Here is the full method:
    void sortRbs() {
    SparseIntArray crcounts = new SparseIntArray(idarray.length);
    int[] track_counts = new int[idarray.length];
    int index = 0;
    for (int crid:idarray) {
    int crcount = sharedpref.getInt(crid+"_COUNT", 0);
    counts[index++] = crcount;
    crcounts.put(crid, crcount);
    //The Powerhouse: One-line sorting step
    ArrayList cridtemp = new ArrayList(crids.length);
    for (int crid : idarray) {
    index = 0;
    //Descending loop
    for (int i=track_counts.length-1;i>-1;i--) {
    int removedindex = 0;
    for (int j=0;j<cridtemp.size(); j++) {
    int crid = cridtemp.get(j);
    if (crcounts.get(crid)==track_counts[i]){
    //sorted_crids is the global array variable that will hold the sorted ids
    removedindex = j;
  7. A button which toggles its title between the unicode characters ☆ & ★ was added to the view. When clicked, a boolean sort variable is set/unset. The RadioButtons are removed from the RadioGroups and added back.  Depending on the state of the boolean sort variable, the sorted or unsorted id arrays are used to order the added RadioButtons – and thereby achieving the desired result.


Get it on Google Play

ITS for Android: QuickMarks

Indian Train Status v5.71 for Android has a new feature, QuickMarks – for quick, one-click access to any one of:

  • Live status of a train, at station
  • Live status of trains running from one station to another
  • List of trains between two stations.

Here is a short video explaining what this feature is all about:

Get it on Google Play

Enhanced Widgets in ITS 5.62 for Android

itsncr ITS 5.62 for Android supports a new set of enhanced widgets for quick, one-click access to the live status of a train at a particular station & trains running from one station to another.

These widgets are based on a suggestion by Mr Ravish Koushlesh.

ITS for Android Crosses 1 Million Downloads

IIndian Train Statusndian Train Status for Android has today crossed 1 million downloads.  So thanks everybody – thanks a million – not only for downloading, but also for sticking with the app as it evolved over time, going through several difficult periods of adaptation to the changing national train enquiry portal and, especially, for giving your valuable feedback and suggestions, many of which are now integral parts of the app, making it what it is today.

Use Hangouts+SMS

HPSIt has been a while since SMS was enabled in the Hangouts app for Android.  In some devices like the Nexus 5, it now is the only SMS app that comes installed.  However, this remarkably versatile combination seems to be rather underused, with many users disabling the feature after seeing annoying double notifications, going back to the “Stock” messaging app.

In fact, they would be missing out on a lot of messaging power:

  1. Hangouts automatically detects which contacts are online and automagically switches to Chat from SMS and vice versa = potential savings on your SMS bills.
  2. You can log in to an multiple devices with the same Google ID – and your Hangout chats will be replicated across all of them, including Android, iPhone and even iPad.  This is something very few messenger apps provide (Whatsapp and WeChat – I’m looking at you!) , and is super convenient, especially since:
  3. A Hangouts desktop app is also available, with the Google Chrome browser

Consider this:

You start a chat on mobile and suppose you need to send a photo which is currently on your PC. You can just open chrome -> hangouts, and send it to the same chat thread, which will be instantaneously synced with the desktop app, and then come back to mobile to continue the rest of the chat!

And you can do this with any combination of devices, to which you have logged in with your Google ID.

But to achieve all this chat mojo, there are a couple of additional steps you need to do, in addition to enabling SMS in Hangouts:

  1. Disable the notifications in any previously installed SMS app. The option should be available in its settings menu.  This will prevent double notifications.
  2. Open the Google+ app in your Android device at least once, and allow when it asks permission to sync contacts to your device. Hangouts works with Google+, and once sync is enabled, it will get automatically updated with contact details from your Google+ account, which is perfect.

In addition,

  • To continue chats on desktop, open the Chrome web browser and install Hangouts from the Chrome web store.