Problema para comparar fechas (horas) en Android

Tengo un problema cuando intento comparar dos fechas en Android. No estoy seguro de si es un problema con el emulador o si tengo un problema en el código mismo. La cuestión es que el código funciona en un entorno de programa Java normal, lo que me confunde aún más.

Tengo el siguiente código para comparar fechas en Android 2.1:

public boolean compareDates(String givenDateString) {
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    boolean True;
    try {
        True = false;
        Date givenDate = sdf.parse(givenDateString);
        Date currentDate = new Date();

        if(givenDate.after(currentDate)){
            True = true;
        } if(givenDate.before(currentDate)){
            True = false;
        } if(givenDate.equals(currentDate)){
            True = false;
        }   
    } catch (Exception e) {
        Log.e("ERROR! - comparing DATES", e.toString());
    }
    return True;
}

now el código funciona bien en Java, pero en Android sigue devolviéndome falso. El único cambio ocurre cuando inserto la variable currentDate con una cadena como esta:

Date currentDate = sdf.parse("16:50");

Con la variable currentDate establecida en una cadena, devuelve verdadero cuando la comparo con un valor que es posterior al tiempo dado. También he intentado configurar la variable currentDate con:

  Calendar calendar = Calendar.getInstance();
  Date currentDate = calendar.getTime();

Estoy completamente perdido aquí. Esperando que alguien tenga alguna idea sobre lo que podría ser un problema aquí.

--- EDITAR ---

Encontré la solución para mi problema. Usé el calendario y leí la hora y los minutos desde allí, luego los puse en una cadena para analizar y funcionó. El código ahora se ve así:

public boolean compareDates(String givenDateString) {
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    boolean True = false;
    try {
        Date givenDate = sdf.parse(givenDateString);
        Calendar now = Calendar.getInstance();
            int hour = now.get(Calendar.HOUR_OF_DAY);
            int minute = now.get(Calendar.MINUTE);
        Date currentDate = sdf.parse(hour + ":" + minute);

        if(givenDate.after(currentDate)){
            True = true;
        } if(givenDate.before(currentDate)){
            True = false;
        } if(givenDate.equals(currentDate)){
            True = false;
        }   
    } catch (Exception e) {
        Log.e("ERROR! - comparing DATES", e.toString());
    }
    return True;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta