Obtener la duración de la última llamada en Android

Estoy buscando la forma más fácil de obtener la duración de la llamada del último número marcado. Así que, por ejemplo, si hice una llamada a mi madre una vez que corté la llamada, debería aparecer una notificación con la duración.

Estoy probando lo siguiente, pero el problema es que viene con una lista completa de duración. entrante, saliente, perdido.

¿Cómo lo diferencio?

Intenté lo siguiente:

 private void getCallDetails() {

    StringBuffer sb = new StringBuffer();
    Cursor cur = getContentResolver().query( CallLog.Calls.CONTENT_URI,null, null,null, android.provider.CallLog.Calls.DATE + " DESC");

    int number = cur.getColumnIndex( CallLog.Calls.NUMBER ); 
    int duration = cur.getColumnIndex( CallLog.Calls.DURATION);
    sb.append( "Call Details : \n");
    while ( cur.moveToNext() ) {
        String phNumber = cur.getString( number );
        String callDuration = cur.getString( duration );
        String dir = null;

        sb.append( "\nPhone Number:--- "+phNumber +" \nCall duration in sec :--- "+callDuration );
        sb.append("\n----------------------------------");
    }
    cur.close();
    call.setText(sb);
}

Respuestas a la pregunta(9)

Su respuesta a la pregunta