From a6745514643f66741229a0cca3927931bdfa47b3 Mon Sep 17 00:00:00 2001 From: "yi.jang" Date: Thu, 16 May 2013 09:20:12 +0900 Subject: Use DatabaseUtils method instead of query() Use DatabaseUtils.longForQuery() method instead of SQLiteDatabase.query(). This reduces processing cost of database cursor. Change-Id: Ibe53645b32a4de1ab6518f879e564ddf8f75d822 Conflicts: src/com/android/email/provider/EmailProvider.java --- src/com/android/email/provider/EmailProvider.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index fa340b733..155b6b1b8 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -37,6 +37,7 @@ import android.database.MatrixCursor; import android.database.MergeCursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; +import android.database.DatabaseUtils; import android.net.Uri; import android.os.AsyncTask; import android.os.Binder; @@ -415,17 +416,13 @@ public class EmailProvider extends ContentProvider { } // If we have accounts, we're done - Cursor c = mainDatabase.query(Account.TABLE_NAME, EmailContent.ID_PROJECTION, null, null, - null, null, null); - try { - if (c.moveToFirst()) { - if (MailActivityEmail.DEBUG) { - LogUtils.w(TAG, "restoreIfNeeded: Account exists."); - } - return; // At least one account exists. - } - } finally { - c.close(); + if (DatabaseUtils.longForQuery(mainDatabase, + "SELECT EXISTS (SELECT ? FROM " + Account.TABLE_NAME + " )", + EmailContent.ID_PROJECTION) > 0) { + if (MailActivityEmail.DEBUG) { + LogUtils.w(TAG, "restoreIfNeeded: Account exists."); + } + return; } restoreAccounts(context, mainDatabase); -- cgit v1.2.3