TaskMaster programming notice

As you might have noticed, TaskMaster hasn’t been updated for a while. For once, this is not because of my laziness. Sometime ago, my laptop died, and I lost all my data, including the Android certificate used to sign applications. Google Play does not allow the the certificate used for an app to be different from the certificate used for updates. This essentially forbids me from releasing updates to TaskMaster.

English translation: the present version is the final release of the app. I’m sorry! I’ve received several mails from users providing suggestions and improvements, but I can’t work on that. However, TaskMaster will continue to remain on Google Play.

I’m currently working on an “update” to this app (It can’t replace the existing version, as explained earlier, because of the certificate issue. It will be released as a separate app, probably as TaskMaster 2). It’ll include the functionality of Control Freak, as well as events (finally!) and other features! Stay tuned!

P.S: I’ve learnt my lesson. I keep backups of the certificate used to sign applications developed after the (literal) laptop crash.

Advertisements

No future updates!

As you might have noticed, Control Freak hasn’t been updated for a while. For once, this is not because of my laziness. Sometime ago, my laptop died, and I lost all my data, including the Android certificate used to sign applications. Google Play does not allow the the certificate used for an app to be different from the certificate used for updates. This essentially forbids me from releasing updates to Control Freak.

English translation: the present version is the final release of the app. I’m sorry! I’ve received several mails from users providing suggestions and improvements, but I can’t work on that. However, Control Freak will continue to remain on Google Play.

But there’s a tiny bit of hope: I’m currently working on an update to the TaskMaster app that would include the functionality of Control Freak in it. Stay tuned!

P.S: I’ve learnt my lesson. I keep backups of the certificate used to sign applications developed after the (literal) laptop crash.

No future updates!

As you might have noticed, QuickHTML hasn’t been updated for a while. For once, this is not because of my laziness. Sometime ago, my laptop died, and I lost all my data, including the Android certificate used to sign applications. Google Play does not allow the the certificate used for an app to be different from the certificate used for updates. This essentially forbids me from releasing updates to QuickHTML.

English translation: the present version is the final release of the app. I’m sorry! I’ve received several mails from users providing suggestions and improvements, but I can’t work on that. However, QuickHTML will continue to remain on Google Play.

P.S: I’ve learnt my lesson. I keep backups of the certificate used to sign applications developed after the (literal) laptop crash.

Weird bug in TouchListView

If you’re trying to create a drag-and-drop ListView using the TouchListView (aka cwac-touchlist) library (which essentially refactors the code used by Google in the playlist tab of the Music app), you may encounter an undocumented bug: If two or more items have the same content, say, the same String value, and you attempt to drag and drop them together, the list items will randomly reshuffle and not let that happen. I drove myself crazy trying to find the cause of this bug, but I couldn’t find anything (It’s not often that listViews have the same content repeated in multiple rows, I suppose).

Anyway, to work around the bug, I came up with this silly hack:

StringBuilder builder = new StringBuilder();
builder.append(word);
if(arrayList.contains(word))
{
for(int i=0;i<arrayList.size();i++)
builder.append(” “);
}
adapter.add(builder.toString());
adapter.notifyDataSetChanged();

word is a String being added to the ListView. To avoid multiple rows having the same value, I’ve had to resort to padding the word with spaces!

Navigation tabs with Fragments using ActionBarSherlock

This post covers how to use navigation tabs in the ActionBar using ActionBarSherlock. Although the demo in the ActionBarSherlock download shows how to create navigation tabs, they are not associated with Fragments. I looked around online and could not find any tutorials for it. Now that I’ve figured it out,  I thought I’d share it.

This tutorial has two Fragments, FragmentA and FragmentB, each of which has a TextView and a Button in their layouts.
Continue reading →

Using ActionBarSherlock in Android

Hello,

If you’re like me, you’re probably quite comfortable using Android APIs and making apps. But starting with Honeycomb (Android 3.0), there’s a new UI component called Fragment, and this changes everything. It’s quite annoying that Fragments are only available on 3.0 and upwards, and the market share of these platforms is only 8.2% as of May 1, 2012. Clearly, targetting only Honeycomb and ICS would be silly. Google has tried to work around that issue by releasing a compatibility library meant for applications using Android 1.6 and above, but a lot of the magic in ActionBar and Fragments is lost.

Enter ActionBarSherlock (ABS), an extension of the default compatibility library that works like a charm on Android 2.x versions. Setting up ActionBarSherlock, though, involved a bit of head-scratching for me. I use MOTODEV Studio, but these steps should work on Eclipse as well.

  1. Download the latest version (4.1.0 at the time of writing) of ActionBarSherlock and extract it
  2. Create a new Android Project and choose Create project from existing source, and browse to /library in the extracted folder. This will be used as a library project
  3. To make it a library project, open the Properties of the newly created project and under the Android section, check the “Is Library” option and click Apply.
  4. At this point, if you have a lot of errors (Fragment cannot be resolved to a type etc), open up Properties again, go into the Java Build Path section, and under the Libraries tab, click on Add External JARs, and browse to library/libs in the extracted folder and select android-support-v4.jar. This should get rid of the errors.
  5. Now that the library project is ready and error-free, it’s time to try a sample. Create a new Android Project, choose Create project from existing source once again, and select samples/demos in the extracted folder. This is a sample project that demonstrates how to use ABS.
  6. The library project needs to be associated with this project. To do so, open up the Properties of the Demos project, go to the Android section, and click Add and select the library project (usually com_actionbarsherlock). Click Apply.
  7. If this project also has a lot of errors, you may need to add android-support-v4.jar as an external JAR for this project. (Follow Step 4)
  8. Once you’re ready to make your own application, create a new Android project, making sure to set android:targetSDKVersion to the latest SDK (Android 15, 4.0.3 at the time of writing). Of course, com_actionbarsherlock will need to be associated with the new project as a library.

New update: Control Freak 2.0

It’s finally here!

Control Freak 2.0 is a completely redesigned version. Except for the name, you could say it has nothing in common with its previous versions.

Unlike the previous version that remained in the memory ALL THE TIME [Hey, I’m an amateur developer, I make mistakes!], Control Freak 2.0 enters the memory only when an alarm is to be triggered. That’s to say, if you’ve set an alarm at 7 am to say “Good morning!”, Control Freak enters the phone memory at 7:00 AM, says “Good morning” and, if enabled, displays a pop-up window. It closes itself once the window is closed or at 7:01 AM, at most.

Oh, that’s right. Control Freak can now display pop-up windows! Under Settings, you’ll find the option “Pop-up”. If it’s enabled, when the alarm goes off, a pop-up is created to display the text and the additional text saved under the alarm.

Complete list of features:

  • Move to SD card support
  • Better UI – green/red indicators for enabled/disabled status of alarms
  • Vastly better at memory management
  • Vibrate / Notification bar
  • Repeat option – Now you can have text spoken aloud repeatedly when the alarm goes off.

Feature requests and criticism are welcome.

Link: Android Market page for Control Freak.

Screenshots:

New update: QuickHTML 2.02

Whew! I finally manged to rework this app!

When I first wrote QuickHTML, I was very new to Android development. The code used in it was unoptimized, memory-inefficient and buggy! Any updates made to the app, based on user requests, mainly, were akin to putting lipstick on a pig. 🙂

But recently, I got myself to begin from scratch and rewrite the whole app, making a conscious effort to be efficient with resources. It also has an integrated file manager!

Here are some notable features:

  • Rapid file access – The new version uses an upgraded method of file access, making it faster, even for large HTML files.
  • Move to SD card support for Android 2.2+ devices
  • Updated UI – Fully customizable! Go ahead and relocate the tag buttons below the text box, if that’s where you’d like them. Don’t like too many buttons cluttering your HTML editor screen? Use the new ‘Minimal’ mode!
  • Clipboard slots – Now store frequently used lines of code in ten clipboard slots. The path of the file is also available as a clipboard slot for quick insertion.
  • Project structure – The new version relies on an IDE [Integrated Development Environment]-like project structure to store files. Newly created projects come with two folders, ‘src’ and ‘assets’, to hold your HTML and other media files, respectively.

As before, QuickHTML continues to ship with its own HTML reference guide, for quick access to the usage details of various HTML tags. QuickHTML also has intrinsic support for HTML5 development.

Feature suggestions and criticism are always welcome. Use the ‘Feedback’ button in the app to contact me. Thank you!

Screenshots!

New app: TaskMaster

Hello,

I’ve just uploaded a new app on the Android Market called TaskMaster. I worked intermittently on this app for nearly 12 days. 🙂

TaskMaster is a task organiser/planner. Unlike other to-do list apps, TaskMaster lets you associate each task to a particular day, with the option of carrying it over to the next day if it’s not completed.

Check it out here.