summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik <roboerik@android.com>2010-03-23 15:15:33 -0700
committerErik <roboerik@android.com>2010-03-23 15:32:15 -0700
commit7df3ac1bc07b54e5c49bd2fbf32c46d3d3febb4c (patch)
treebf8b785c09c9d491dee2fe16102035aaaf67d596
parente3845ba8de4ccbda0d6f796352ab8b9985acdcb7 (diff)
downloadCalendar-7df3ac1bc07b54e5c49bd2fbf32c46d3d3febb4c.tar.gz
Do smart sorting in Calendars list
This sorts your primary calendar to the top of the list for each account and then sorts the rest of your calendars alphabetically ignoring case in the Calendars view. Change-Id: I93a830763dc43b27fd5b2d3600bd5c6bf6fc9191
-rw-r--r--src/com/android/calendar/SelectCalendarsAdapter.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/com/android/calendar/SelectCalendarsAdapter.java b/src/com/android/calendar/SelectCalendarsAdapter.java
index 37623628..47048f54 100644
--- a/src/com/android/calendar/SelectCalendarsAdapter.java
+++ b/src/com/android/calendar/SelectCalendarsAdapter.java
@@ -44,6 +44,11 @@ public class SelectCalendarsAdapter extends CursorTreeAdapter implements View.On
private static final String TAG = "Calendar";
+ private static final String COLLATE_NOCASE = " COLLATE NOCASE";
+ private static final String IS_PRIMARY = "\"primary\"";
+ private static final String CALENDARS_ORDERBY = IS_PRIMARY + " DESC," + Calendars.DISPLAY_NAME +
+ COLLATE_NOCASE;
+
// The drawables used for the button to change the visible and sync states on a calendar
private static final int[] SYNC_VIS_BUTTON_RES = new int[] {
R.drawable.widget_show,
@@ -91,7 +96,8 @@ public class SelectCalendarsAdapter extends CursorTreeAdapter implements View.On
Calendars.DISPLAY_NAME,
Calendars.COLOR,
Calendars.SELECTED,
- Calendars.SYNC_EVENTS
+ Calendars.SYNC_EVENTS,
+ "(" + Calendars._SYNC_ACCOUNT + "=" + Calendars.OWNER_ACCOUNT + ") AS " + IS_PRIMARY,
};
//Keep these in sync with the projection
private static final int ID_COLUMN = 0;
@@ -101,6 +107,7 @@ public class SelectCalendarsAdapter extends CursorTreeAdapter implements View.On
private static final int COLOR_COLUMN = 4;
private static final int SELECTED_COLUMN = 5;
private static final int SYNCED_COLUMN = 6;
+ private static final int PRIMARY_COLUMN = 7;
private class AsyncCalendarsUpdater extends AsyncQueryHandler {
@@ -177,11 +184,10 @@ public class SelectCalendarsAdapter extends CursorTreeAdapter implements View.On
private MatrixCursor matrixCursorFromCursor(Cursor cursor) {
MatrixCursor newCursor = new MatrixCursor(cursor.getColumnNames());
int numColumns = cursor.getColumnCount();
- int count = cursor.getCount();
String data[] = new String[numColumns];
cursor.moveToPosition(-1);
- while(cursor.moveToNext()) {
- for(int i = 0; i < numColumns; i++) {
+ while (cursor.moveToNext()) {
+ for (int i = 0; i < numColumns; i++) {
data[i] = cursor.getString(i);
}
newCursor.addRow(data);
@@ -390,7 +396,7 @@ public class SelectCalendarsAdapter extends CursorTreeAdapter implements View.On
Calendars.CONTENT_URI, PROJECTION,
Calendars._SYNC_ACCOUNT + "=\"" + account + "\"" /*Selection*/,
null /* selectionArgs */,
- Calendars.DISPLAY_NAME);
+ CALENDARS_ORDERBY);
return childCursor;
}