diff options
author | Thialfihar <thialfihar@gmail.com> | 2010-05-28 07:04:01 +0000 |
---|---|---|
committer | Thialfihar <thialfihar@gmail.com> | 2010-05-28 07:04:01 +0000 |
commit | eed42b2e34d6ba7e6eda43640eb3bb1555d9e24f (patch) | |
tree | 768ceeb8a27bf1c850b9ac986506461f8e3c271e /src/org/thialfihar/android | |
parent | b943f706b60538bc343e643879a607b389ebb1ca (diff) | |
download | open-keychain-eed42b2e34d6ba7e6eda43640eb3bb1555d9e24f.tar.gz open-keychain-eed42b2e34d6ba7e6eda43640eb3bb1555d9e24f.tar.bz2 open-keychain-eed42b2e34d6ba7e6eda43640eb3bb1555d9e24f.zip |
fully removed old DataProvider for now, manage queries, clean up old database stuff
Diffstat (limited to 'src/org/thialfihar/android')
18 files changed, 53 insertions, 709 deletions
diff --git a/src/org/thialfihar/android/apg/Apg.java b/src/org/thialfihar/android/apg/Apg.java index c20a6f42f..d2b03eee6 100644 --- a/src/org/thialfihar/android/apg/Apg.java +++ b/src/org/thialfihar/android/apg/Apg.java @@ -81,7 +81,6 @@ import org.bouncycastle2.openpgp.PGPSignatureSubpacketVector; import org.bouncycastle2.openpgp.PGPUtil;
import org.thialfihar.android.apg.provider.Database;
import org.thialfihar.android.apg.provider.KeyRings;
-import org.thialfihar.android.apg.provider.PublicKeys;
import org.thialfihar.android.apg.ui.widget.KeyEditor;
import org.thialfihar.android.apg.ui.widget.SectionView;
import org.thialfihar.android.apg.ui.widget.UserIdEditor;
@@ -132,19 +131,6 @@ public class Apg { Pattern.compile(".*?(-----BEGIN PGP SIGNED MESSAGE-----.*?-----BEGIN PGP SIGNATURE-----.*?-----END PGP SIGNATURE-----).*",
Pattern.DOTALL);
- public static final String PUBLIC_KEY_PROJECTION[] =
- new String[] {
- PublicKeys._ID,
- PublicKeys.KEY_ID,
- PublicKeys.KEY_DATA,
- PublicKeys.WHO_ID, };
- public static final String SECRET_KEY_PROJECTION[] =
- new String[] {
- PublicKeys._ID,
- PublicKeys.KEY_ID,
- PublicKeys.KEY_DATA,
- PublicKeys.WHO_ID, };
-
private static HashMap<Long, CachedPassPhrase> mPassPhraseCache =
new HashMap<Long, CachedPassPhrase>();
private static String mEditPassPhrase = null;
diff --git a/src/org/thialfihar/android/apg/KeyListActivity.java b/src/org/thialfihar/android/apg/KeyListActivity.java index 4d9e1ba12..36fad0086 100644 --- a/src/org/thialfihar/android/apg/KeyListActivity.java +++ b/src/org/thialfihar/android/apg/KeyListActivity.java @@ -424,15 +424,10 @@ public class KeyListActivity extends BaseActivity { Id.database.type_public : Id.database.type_secret) },
null, null, UserIds.TABLE_NAME + "." + UserIds.USER_ID + " ASC");
+ startManagingCursor(mCursor);
rebuild(false);
}
- @Override
- protected void finalize() throws Throwable {
- mCursor.deactivate();
- super.finalize();
- }
-
public void rebuild(boolean requery) {
if (requery) {
mCursor.requery();
diff --git a/src/org/thialfihar/android/apg/MainActivity.java b/src/org/thialfihar/android/apg/MainActivity.java index a4d584304..cdb79f1bf 100644 --- a/src/org/thialfihar/android/apg/MainActivity.java +++ b/src/org/thialfihar/android/apg/MainActivity.java @@ -47,6 +47,8 @@ import android.widget.AdapterView.OnItemClickListener; public class MainActivity extends BaseActivity { private ListView mAccounts = null; + private AccountListAdapter mListAdapter = null; + private Cursor mAccountCursor; @Override public void onCreate(Bundle savedInstanceState) { @@ -95,22 +97,22 @@ public class MainActivity extends BaseActivity { } }); - Cursor accountCursor = managedQuery(Accounts.CONTENT_URI, null, null, null, null); + mAccountCursor = + Apg.getDatabase().db().query(Accounts.TABLE_NAME, + new String[] { + Accounts._ID, + Accounts.NAME, + }, null, null, null, null, Accounts.NAME + " ASC"); + startManagingCursor(mAccountCursor); - mAccounts.setAdapter(new AccountListAdapter(this, accountCursor)); + mListAdapter = new AccountListAdapter(this, mAccountCursor); + mAccounts.setAdapter(mListAdapter); mAccounts.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int index, long id) { - Cursor cursor = - managedQuery(Uri.withAppendedPath(Accounts.CONTENT_URI, "" + id), null, - null, null, null); - if (cursor != null && cursor.getCount() > 0) { - cursor.moveToFirst(); - int nameIndex = cursor.getColumnIndex(Accounts.NAME); - String accountName = cursor.getString(nameIndex); - startActivity(new Intent(MainActivity.this, MailListActivity.class) + String accountName = (String) mAccounts.getSelectedItem(); + startActivity(new Intent(MainActivity.this, MailListActivity.class) .putExtra("account", accountName)); - } } }); registerForContextMenu(mAccounts); @@ -154,9 +156,10 @@ public class MainActivity extends BaseActivity { ContentValues values = new ContentValues(); values.put(Accounts.NAME, accountName); try { - MainActivity.this.getContentResolver() - .insert(Accounts.CONTENT_URI, - values); + Apg.getDatabase().db().insert(Accounts.TABLE_NAME, + Accounts.NAME, values); + mAccountCursor.requery(); + mListAdapter.notifyDataSetChanged(); } catch (SQLException e) { Toast.makeText(MainActivity.this, getString(R.string.errorMessage, @@ -277,8 +280,11 @@ public class MainActivity extends BaseActivity { switch (menuItem.getItemId()) { case Id.menu.delete: { - Uri uri = Uri.withAppendedPath(Accounts.CONTENT_URI, "" + info.id); - this.getContentResolver().delete(uri, null, null); + Apg.getDatabase().db().delete(Accounts.TABLE_NAME, + Accounts._ID + " = ?", + new String[] { "" + info.id }); + mAccountCursor.requery(); + mListAdapter.notifyDataSetChanged(); return true; } @@ -298,6 +304,13 @@ public class MainActivity extends BaseActivity { } @Override + public Object getItem(int position) { + Cursor c = getCursor(); + c.moveToPosition(position); + return c.getString(c.getColumnIndex(Accounts.NAME)); + } + + @Override public int getCount() { return super.getCount(); } diff --git a/src/org/thialfihar/android/apg/SelectPublicKeyListActivity.java b/src/org/thialfihar/android/apg/SelectPublicKeyListActivity.java index 655003095..c58243ef0 100644 --- a/src/org/thialfihar/android/apg/SelectPublicKeyListActivity.java +++ b/src/org/thialfihar/android/apg/SelectPublicKeyListActivity.java @@ -45,7 +45,7 @@ public class SelectPublicKeyListActivity extends BaseActivity { // needed in Android 1.5, where the XML attribute gets ignored mList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); - SelectPublicKeyListAdapter adapter = new SelectPublicKeyListAdapter(mList); + SelectPublicKeyListAdapter adapter = new SelectPublicKeyListAdapter(this, mList); mList.setAdapter(adapter); if (selectedKeyIds != null) { diff --git a/src/org/thialfihar/android/apg/SelectPublicKeyListAdapter.java b/src/org/thialfihar/android/apg/SelectPublicKeyListAdapter.java index 4caf08ef2..ffc344ead 100644 --- a/src/org/thialfihar/android/apg/SelectPublicKeyListAdapter.java +++ b/src/org/thialfihar/android/apg/SelectPublicKeyListAdapter.java @@ -22,6 +22,7 @@ import org.thialfihar.android.apg.provider.KeyRings; import org.thialfihar.android.apg.provider.Keys;
import org.thialfihar.android.apg.provider.UserIds;
+import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
@@ -39,7 +40,7 @@ public class SelectPublicKeyListAdapter extends BaseAdapter { protected SQLiteDatabase mDatabase;
protected Cursor mCursor;
- public SelectPublicKeyListAdapter(ListView parent) {
+ public SelectPublicKeyListAdapter(Activity activity, ListView parent) {
mParent = parent;
mDatabase = Apg.getDatabase().db();
mInflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -75,13 +76,8 @@ public class SelectPublicKeyListAdapter extends BaseAdapter { KeyRings.TABLE_NAME + "." + KeyRings.TYPE + " = ?",
new String[] { "" + Id.database.type_public },
null, null, UserIds.TABLE_NAME + "." + UserIds.USER_ID + " ASC");
- }
- @Override
- protected void finalize() throws Throwable {
- // TODO: this doesn't seem to work...
- mCursor.close();
- super.finalize();
+ activity.startManagingCursor(mCursor);
}
@Override
diff --git a/src/org/thialfihar/android/apg/SelectSecretKeyListActivity.java b/src/org/thialfihar/android/apg/SelectSecretKeyListActivity.java index 8c17c7724..88fc29972 100644 --- a/src/org/thialfihar/android/apg/SelectSecretKeyListActivity.java +++ b/src/org/thialfihar/android/apg/SelectSecretKeyListActivity.java @@ -36,7 +36,7 @@ public class SelectSecretKeyListActivity extends BaseActivity { setContentView(R.layout.select_secret_key); mList = (ListView) findViewById(R.id.list); - mListAdapter = new SelectSecretKeyListAdapter(mList); + mListAdapter = new SelectSecretKeyListAdapter(this, mList); mList.setAdapter(mListAdapter); mList.setOnItemClickListener(new OnItemClickListener() { diff --git a/src/org/thialfihar/android/apg/SelectSecretKeyListAdapter.java b/src/org/thialfihar/android/apg/SelectSecretKeyListAdapter.java index e7e18b3ff..33cd15b40 100644 --- a/src/org/thialfihar/android/apg/SelectSecretKeyListAdapter.java +++ b/src/org/thialfihar/android/apg/SelectSecretKeyListAdapter.java @@ -6,6 +6,7 @@ import org.thialfihar.android.apg.provider.KeyRings; import org.thialfihar.android.apg.provider.Keys;
import org.thialfihar.android.apg.provider.UserIds;
+import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
@@ -22,7 +23,7 @@ public class SelectSecretKeyListAdapter extends BaseAdapter { protected SQLiteDatabase mDatabase;
protected Cursor mCursor;
- public SelectSecretKeyListAdapter(ListView parent) {
+ public SelectSecretKeyListAdapter(Activity activity, ListView parent) {
mParent = parent;
mDatabase = Apg.getDatabase().db();
mInflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -58,13 +59,8 @@ public class SelectSecretKeyListAdapter extends BaseAdapter { KeyRings.TABLE_NAME + "." + KeyRings.TYPE + " = ?",
new String[] { "" + Id.database.type_secret },
null, null, UserIds.TABLE_NAME + "." + UserIds.USER_ID + " ASC");
- }
- @Override
- protected void finalize() throws Throwable {
- // TODO: this doesn't seem to work...
- mCursor.close();
- super.finalize();
+ activity.startManagingCursor(mCursor);
}
@Override
diff --git a/src/org/thialfihar/android/apg/provider/Accounts.java b/src/org/thialfihar/android/apg/provider/Accounts.java index 4fce2b607..8162472ec 100644 --- a/src/org/thialfihar/android/apg/provider/Accounts.java +++ b/src/org/thialfihar/android/apg/provider/Accounts.java @@ -16,7 +16,12 @@ package org.thialfihar.android.apg.provider;
-public class Accounts extends Accounts1 {
- private Accounts() {
- }
-}
\ No newline at end of file +import android.provider.BaseColumns;
+
+public class Accounts implements BaseColumns {
+ public static final String TABLE_NAME = "accounts";
+
+ public static final String _ID_type = "INTEGER PRIMARY KEY";
+ public static final String NAME = "c_name";
+ public static final String NAME_type = "TEXT";
+}
diff --git a/src/org/thialfihar/android/apg/provider/Accounts1.java b/src/org/thialfihar/android/apg/provider/Accounts1.java deleted file mode 100644 index 9009e4598..000000000 --- a/src/org/thialfihar/android/apg/provider/Accounts1.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2010 Thialfihar <thi@thialfihar.org> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.thialfihar.android.apg.provider; - -import android.net.Uri; -import android.provider.BaseColumns; - -class Accounts1 implements BaseColumns { - public static final String TABLE_NAME = "accounts"; - - public static final String _ID_type = "INTEGER PRIMARY KEY"; - public static final String NAME = "c_name"; - public static final String NAME_type = "TEXT"; - - public static final Uri CONTENT_URI = - Uri.parse("content://" + DataProvider.AUTHORITY + "/accounts"); - public static final String CONTENT_TYPE = - "vnd.android.cursor.dir/vnd.thialfihar.apg.account"; - public static final String CONTENT_ITEM_TYPE = - "vnd.android.cursor.item/vnd.thialfihar.apg.account"; - public static final String DEFAULT_SORT_ORDER = _ID + " DESC"; -}
\ No newline at end of file diff --git a/src/org/thialfihar/android/apg/provider/DataProvider.java b/src/org/thialfihar/android/apg/provider/DataProvider.java deleted file mode 100644 index 6b56e0bd9..000000000 --- a/src/org/thialfihar/android/apg/provider/DataProvider.java +++ /dev/null @@ -1,452 +0,0 @@ -/* - * Copyright (C) 2010 Thialfihar <thi@thialfihar.org> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.thialfihar.android.apg.provider; - -import java.util.HashMap; - -import org.thialfihar.android.apg.Apg; - -import android.content.ContentProvider; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.UriMatcher; -import android.database.Cursor; -import android.database.SQLException; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteQueryBuilder; -import android.net.Uri; -import android.text.TextUtils; - -public class DataProvider extends ContentProvider { - public static final String AUTHORITY = "org.thialfihar.android.apg.provider"; - - private static final int PUBLIC_KEYS = 101; - private static final int PUBLIC_KEY_ID = 102; - private static final int PUBLIC_KEY_BY_KEY_ID = 103; - - private static final int SECRET_KEYS = 201; - private static final int SECRET_KEY_ID = 202; - private static final int SECRET_KEY_BY_KEY_ID = 203; - - private static final int ACCOUNTS = 301; - private static final int ACCOUNT_ID = 302; - - private static final UriMatcher mUriMatcher; - private static final HashMap<String, String> mPublicKeysProjectionMap; - private static final HashMap<String, String> mSecretKeysProjectionMap; - private static final HashMap<String, String> mAccountsProjectionMap; - - private Database mdbHelper; - - static { - mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH); - mUriMatcher.addURI(DataProvider.AUTHORITY, "public_keys", PUBLIC_KEYS); - mUriMatcher.addURI(DataProvider.AUTHORITY, "public_keys/#", PUBLIC_KEY_ID); - mUriMatcher.addURI(DataProvider.AUTHORITY, "public_keys/key_id/*", PUBLIC_KEY_BY_KEY_ID); - - mUriMatcher.addURI(DataProvider.AUTHORITY, "secret_keys", SECRET_KEYS); - mUriMatcher.addURI(DataProvider.AUTHORITY, "secret_keys/#", SECRET_KEY_ID); - mUriMatcher.addURI(DataProvider.AUTHORITY, "secret_keys/key_id/*", SECRET_KEY_BY_KEY_ID); - - mUriMatcher.addURI(DataProvider.AUTHORITY, "accounts", ACCOUNTS); - mUriMatcher.addURI(DataProvider.AUTHORITY, "accounts/#", ACCOUNT_ID); - - mPublicKeysProjectionMap = new HashMap<String, String>(); - mPublicKeysProjectionMap.put(PublicKeys._ID, PublicKeys._ID); - mPublicKeysProjectionMap.put(PublicKeys.KEY_ID, PublicKeys.KEY_ID); - mPublicKeysProjectionMap.put(PublicKeys.KEY_DATA, PublicKeys.KEY_DATA); - mPublicKeysProjectionMap.put(PublicKeys.WHO_ID, PublicKeys.WHO_ID); - - mSecretKeysProjectionMap = new HashMap<String, String>(); - mSecretKeysProjectionMap.put(PublicKeys._ID, PublicKeys._ID); - mSecretKeysProjectionMap.put(PublicKeys.KEY_ID, PublicKeys.KEY_ID); - mSecretKeysProjectionMap.put(PublicKeys.KEY_DATA, PublicKeys.KEY_DATA); - mSecretKeysProjectionMap.put(PublicKeys.WHO_ID, PublicKeys.WHO_ID); - - mAccountsProjectionMap = new HashMap<String, String>(); - mAccountsProjectionMap.put(Accounts._ID, Accounts._ID); - mAccountsProjectionMap.put(Accounts.NAME, Accounts.NAME); - } - - @Override - public boolean onCreate() { - //mdbHelper = new Database(getContext()); - Apg.initialize(getContext()); - mdbHelper = Apg.getDatabase(); - return true; - } - - @Override - public Cursor query(Uri uri, String[] projection, String selection, - String[] selectionArgs, String sortOrder) { - SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); - - switch (mUriMatcher.match(uri)) { - case PUBLIC_KEYS: { - qb.setTables(PublicKeys.TABLE_NAME); - qb.setProjectionMap(mPublicKeysProjectionMap); - break; - } - - case PUBLIC_KEY_ID: { - qb.setTables(PublicKeys.TABLE_NAME); - qb.setProjectionMap(mPublicKeysProjectionMap); - qb.appendWhere(PublicKeys._ID + "=" + uri.getPathSegments().get(1)); - break; - } - - case PUBLIC_KEY_BY_KEY_ID: { - qb.setTables(PublicKeys.TABLE_NAME); - qb.setProjectionMap(mPublicKeysProjectionMap); - qb.appendWhere(PublicKeys.KEY_ID + "=" + uri.getPathSegments().get(2)); - break; - } - - case SECRET_KEYS: { - qb.setTables(SecretKeys.TABLE_NAME); - qb.setProjectionMap(mSecretKeysProjectionMap); - break; - } - - case SECRET_KEY_ID: { - qb.setTables(SecretKeys.TABLE_NAME); - qb.setProjectionMap(mSecretKeysProjectionMap); - qb.appendWhere(SecretKeys._ID + "=" + uri.getPathSegments().get(1)); - break; - } - - case SECRET_KEY_BY_KEY_ID: { - qb.setTables(SecretKeys.TABLE_NAME); - qb.setProjectionMap(mSecretKeysProjectionMap); - qb.appendWhere(SecretKeys.KEY_ID + "=" + uri.getPathSegments().get(2)); - break; - } - - case ACCOUNTS: { - qb.setTables(Accounts.TABLE_NAME); - qb.setProjectionMap(mAccountsProjectionMap); - break; - } - - case ACCOUNT_ID: { - qb.setTables(Accounts.TABLE_NAME); - qb.setProjectionMap(mAccountsProjectionMap); - qb.appendWhere(Accounts._ID + "=" + uri.getPathSegments().get(1)); - break; - } - - default: { - throw new IllegalArgumentException("Unknown URI " + uri); - } - } - - // If no sort order is specified use the default - String orderBy; - if (TextUtils.isEmpty(sortOrder)) { - orderBy = PublicKeys.DEFAULT_SORT_ORDER; - } else { - orderBy = sortOrder; - } - - // Get the database and run the query - SQLiteDatabase db = mdbHelper.getReadableDatabase(); - Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, orderBy); - - // Tell the cursor what uri to watch, so it knows when its source data - // changes - c.setNotificationUri(getContext().getContentResolver(), uri); - return c; - } - - @Override - public String getType(Uri uri) { - switch (mUriMatcher.match(uri)) { - case PUBLIC_KEYS: { - return PublicKeys.CONTENT_TYPE; - } - - case PUBLIC_KEY_ID: { - return PublicKeys.CONTENT_ITEM_TYPE; - } - - case PUBLIC_KEY_BY_KEY_ID: { - return PublicKeys.CONTENT_ITEM_TYPE; - } - - case SECRET_KEYS: { - return SecretKeys.CONTENT_TYPE; - } - - case SECRET_KEY_ID: { - return SecretKeys.CONTENT_ITEM_TYPE; - } - - case SECRET_KEY_BY_KEY_ID: { - return SecretKeys.CONTENT_ITEM_TYPE; - } - - case ACCOUNTS: { - return Accounts.CONTENT_TYPE; - } - - case ACCOUNT_ID: { - return Accounts.CONTENT_ITEM_TYPE; - } - - default: { - throw new IllegalArgumentException("Unknown URI " + uri); - } - } - } - - @Override - public Uri insert(Uri uri, ContentValues initialValues) { - switch (mUriMatcher.match(uri)) { - case PUBLIC_KEYS: { - ContentValues values; - if (initialValues != null) { - values = new ContentValues(initialValues); - } else { - values = new ContentValues(); - } - - if (!values.containsKey(PublicKeys.WHO_ID)) { - values.put(PublicKeys.WHO_ID, ""); - } - - SQLiteDatabase db = mdbHelper.getWritableDatabase(); - long rowId = db.insert(PublicKeys.TABLE_NAME, PublicKeys.WHO_ID, values); - if (rowId > 0) { - Uri transferUri = ContentUris.withAppendedId(PublicKeys.CONTENT_URI, rowId); - getContext().getContentResolver().notifyChange(transferUri, null); - return transferUri; - } - - throw new SQLException("Failed to insert row into " + uri); - } - - case SECRET_KEYS: { - ContentValues values; - if (initialValues != null) { - values = new ContentValues(initialValues); - } else { - values = new ContentValues(); - } - - if (!values.containsKey(SecretKeys.WHO_ID)) { - values.put(SecretKeys.WHO_ID, ""); - } - - SQLiteDatabase db = mdbHelper.getWritableDatabase(); - long rowId = db.insert(SecretKeys.TABLE_NAME, SecretKeys.WHO_ID, values); - if (rowId > 0) { - Uri transferUri = ContentUris.withAppendedId(SecretKeys.CONTENT_URI, rowId); - getContext().getContentResolver().notifyChange(transferUri, null); - return transferUri; - } - - throw new SQLException("Failed to insert row into " + uri); - } - - case ACCOUNTS: { - ContentValues values; - if (initialValues != null) { - values = new ContentValues(initialValues); - } else { - values = new ContentValues(); - } - - SQLiteDatabase db = mdbHelper.getWritableDatabase(); - long rowId = db.insert(Accounts.TABLE_NAME, null, values); - if (rowId > 0) { - Uri transferUri = ContentUris.withAppendedId(Accounts.CONTENT_URI, rowId); - getContext().getContentResolver().notifyChange(transferUri, null); - return transferUri; - } - - throw new SQLException("Failed to insert row into " + uri); - } - - default: { - throw new IllegalArgumentException("Unknown URI " + uri); - } - } - } - - @Override - public int delete(Uri uri, String where, String[] whereArgs) { - SQLiteDatabase db = mdbHelper.getWritableDatabase(); - int count; - switch (mUriMatcher.match(uri)) { - case PUBLIC_KEYS: { - count = db.delete(PublicKeys.TABLE_NAME, where, whereArgs); - break; - } - - case PUBLIC_KEY_ID: { - String publicKeyId = uri.getPathSegments().get(1); - count = db.delete(PublicKeys.TABLE_NAME, - PublicKeys._ID + "=" + publicKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case PUBLIC_KEY_BY_KEY_ID: { - String publicKeyKeyId = uri.getPathSegments().get(2); - count = db.delete(PublicKeys.TABLE_NAME, - PublicKeys.KEY_ID + "=" + publicKeyKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case SECRET_KEYS: { - count = db.delete(SecretKeys.TABLE_NAME, where, whereArgs); - break; - } - - case SECRET_KEY_ID: { - String secretKeyId = uri.getPathSegments().get(1); - count = db.delete(SecretKeys.TABLE_NAME, - SecretKeys._ID + "=" + secretKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case SECRET_KEY_BY_KEY_ID: { - String secretKeyKeyId = uri.getPathSegments().get(2); - count = db.delete(SecretKeys.TABLE_NAME, - SecretKeys.KEY_ID + "=" + secretKeyKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case ACCOUNTS: { - count = db.delete(Accounts.TABLE_NAME, where, whereArgs); - break; - } - - case ACCOUNT_ID: { - String accountId = uri.getPathSegments().get(1); - count = db.delete(Accounts.TABLE_NAME, - Accounts._ID + "=" + accountId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - default: { - throw new IllegalArgumentException("Unknown URI " + uri); - } - } - - getContext().getContentResolver().notifyChange(uri, null); - return count; - } - - @Override - public int update(Uri uri, ContentValues values, String where, String[] whereArgs) { - SQLiteDatabase db = mdbHelper.getWritableDatabase(); - int count; - switch (mUriMatcher.match(uri)) { - case PUBLIC_KEYS: { - count = db.update(PublicKeys.TABLE_NAME, values, where, whereArgs); - break; - } - - case PUBLIC_KEY_ID: { - String publicKeyId = uri.getPathSegments().get(1); - - count = db.update(PublicKeys.TABLE_NAME, values, - PublicKeys._ID + "=" + publicKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case PUBLIC_KEY_BY_KEY_ID: { - String publicKeyKeyId = uri.getPathSegments().get(2); - - count = db.update(PublicKeys.TABLE_NAME, values, - PublicKeys.KEY_ID + "=" + publicKeyKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case SECRET_KEYS: { - count = db.update(SecretKeys.TABLE_NAME, values, where, whereArgs); - break; - } - - case SECRET_KEY_ID: { - String secretKeyId = uri.getPathSegments().get(1); - - count = db.update(SecretKeys.TABLE_NAME, values, - SecretKeys._ID + "=" + secretKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case SECRET_KEY_BY_KEY_ID: { - String secretKeyKeyId = uri.getPathSegments().get(2); - - count = db.update(SecretKeys.TABLE_NAME, values, - SecretKeys.KEY_ID + "=" + secretKeyKeyId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - case ACCOUNTS: { - count = db.update(Accounts.TABLE_NAME, values, where, whereArgs); - break; - } - - case ACCOUNT_ID: { - String accountId = uri.getPathSegments().get(1); - - count = db.update(Accounts.TABLE_NAME, values, - Accounts._ID + "=" + accountId + - (!TextUtils.isEmpty(where) ? - " AND (" + where + ')' : ""), - whereArgs); - break; - } - - default: { - throw new IllegalArgumentException("Unknown URI " + uri); - } - } - - getContext().getContentResolver().notifyChange(uri, null); - return count; - } -} diff --git a/src/org/thialfihar/android/apg/provider/Database.java b/src/org/thialfihar/android/apg/provider/Database.java index 38c346086..505248d14 100644 --- a/src/org/thialfihar/android/apg/provider/Database.java +++ b/src/org/thialfihar/android/apg/provider/Database.java @@ -160,13 +160,13 @@ public class Database extends SQLiteOpenHelper { UserIds.USER_ID + " " + UserIds.USER_ID_type + "," +
UserIds.RANK + " " + UserIds.RANK_type + ");");
- Cursor cursor = db.query(PublicKeys.TABLE_NAME,
+ Cursor cursor = db.query("public_keys",
new String[]{
- PublicKeys.KEY_DATA,
+ "c_key_data",
}, null, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
do {
- byte[] data = cursor.getBlob(cursor.getColumnIndex(PublicKeys.KEY_DATA));
+ byte[] data = cursor.getBlob(0);
try {
PGPPublicKeyRing keyRing = new PGPPublicKeyRing(data);
saveKeyRing(keyRing);
@@ -183,13 +183,13 @@ public class Database extends SQLiteOpenHelper { cursor.close();
}
- cursor = db.query(SecretKeys.TABLE_NAME,
+ cursor = db.query("secret_keys",
new String[]{
- SecretKeys.KEY_DATA,
+ "c_key_data",
}, null, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
do {
- byte[] data = cursor.getBlob(cursor.getColumnIndex(SecretKeys.KEY_DATA));
+ byte[] data = cursor.getBlob(0);
try {
PGPSecretKeyRing keyRing = new PGPSecretKeyRing(data);
saveKeyRing(keyRing);
diff --git a/src/org/thialfihar/android/apg/provider/KeyRings.java b/src/org/thialfihar/android/apg/provider/KeyRings.java index 567adaa3c..a4eae6695 100644 --- a/src/org/thialfihar/android/apg/provider/KeyRings.java +++ b/src/org/thialfihar/android/apg/provider/KeyRings.java @@ -16,7 +16,6 @@ package org.thialfihar.android.apg.provider;
-import android.net.Uri;
import android.provider.BaseColumns;
public class KeyRings implements BaseColumns {
@@ -31,14 +30,4 @@ public class KeyRings implements BaseColumns { public static final String WHO_ID_type = "INTEGER";
public static final String KEY_RING_DATA = "c_key_ring_data";
public static final String KEY_RING_DATA_type = "BLOB";
-
- public static final Uri CONTENT_URI =
- Uri.parse("content://" + DataProvider.AUTHORITY + "/key_ring");
- public static final Uri CONTENT_URI_BY_KEY_ID =
- Uri.parse("content://" + DataProvider.AUTHORITY + "/key_ring/key_id");
- public static final String CONTENT_TYPE =
- "vnd.android.cursor.dir/vnd.thialfihar.apg.key_ring";
- public static final String CONTENT_ITEM_TYPE =
- "vnd.android.cursor.item/vnd.thialfihar.apg.key_ring";
- public static final String DEFAULT_SORT_ORDER = _ID + " DESC";
}
diff --git a/src/org/thialfihar/android/apg/provider/Keys.java b/src/org/thialfihar/android/apg/provider/Keys.java index 8d5c81206..618c5e920 100644 --- a/src/org/thialfihar/android/apg/provider/Keys.java +++ b/src/org/thialfihar/android/apg/provider/Keys.java @@ -16,7 +16,6 @@ package org.thialfihar.android.apg.provider; -import android.net.Uri; import android.provider.BaseColumns; public class Keys implements BaseColumns { @@ -49,12 +48,4 @@ public class Keys implements BaseColumns { public static final String KEY_DATA_type = "BLOB"; public static final String RANK = "c_key_data"; public static final String RANK_type = "INTEGER"; - - public static final Uri CONTENT_URI = - Uri.parse("content://" + DataProvider.AUTHORITY + "/keys"); - public static final String CONTENT_TYPE = - "vnd.android.cursor.dir/vnd.thialfihar.apg.key"; - public static final String CONTENT_ITEM_TYPE = - "vnd.android.cursor.item/vnd.thialfihar.apg.key"; - public static final String DEFAULT_SORT_ORDER = _ID + " DESC"; } diff --git a/src/org/thialfihar/android/apg/provider/PublicKeys.java b/src/org/thialfihar/android/apg/provider/PublicKeys.java deleted file mode 100644 index f15841fa5..000000000 --- a/src/org/thialfihar/android/apg/provider/PublicKeys.java +++ /dev/null @@ -1,22 +0,0 @@ -/*
- * Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.thialfihar.android.apg.provider;
-
-public class PublicKeys extends PublicKeys1 {
- private PublicKeys() {
- }
-}
\ No newline at end of file diff --git a/src/org/thialfihar/android/apg/provider/PublicKeys1.java b/src/org/thialfihar/android/apg/provider/PublicKeys1.java deleted file mode 100644 index d12a67a17..000000000 --- a/src/org/thialfihar/android/apg/provider/PublicKeys1.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2010 Thialfihar <thi@thialfihar.org> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.thialfihar.android.apg.provider; - -import android.net.Uri; -import android.provider.BaseColumns; - -class PublicKeys1 implements BaseColumns { - public static final String TABLE_NAME = "public_keys"; - - public static final String _ID_type = "INTEGER PRIMARY KEY"; - public static final String KEY_ID = "c_key_id"; - public static final String KEY_ID_type = "INT64"; - public static final String KEY_DATA = "c_key_data"; - public static final String KEY_DATA_type = "BLOB"; - public static final String WHO_ID = "c_who_id"; - public static final String WHO_ID_type = "INTEGER"; - - public static final Uri CONTENT_URI = - Uri.parse("content://" + DataProvider.AUTHORITY + "/public_keys"); - public static final Uri CONTENT_URI_BY_KEY_ID = - Uri.parse("content://" + DataProvider.AUTHORITY + "/public_keys/key_id"); - public static final String CONTENT_TYPE = - "vnd.android.cursor.dir/vnd.thialfihar.apg.public_key"; - public static final String CONTENT_ITEM_TYPE = - "vnd.android.cursor.item/vnd.thialfihar.apg.public_key"; - public static final String DEFAULT_SORT_ORDER = _ID + " DESC"; -}
\ No newline at end of file diff --git a/src/org/thialfihar/android/apg/provider/SecretKeys.java b/src/org/thialfihar/android/apg/provider/SecretKeys.java deleted file mode 100644 index d31f306ae..000000000 --- a/src/org/thialfihar/android/apg/provider/SecretKeys.java +++ /dev/null @@ -1,22 +0,0 @@ -/*
- * Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.thialfihar.android.apg.provider;
-
-public class SecretKeys extends SecretKeys1 {
- private SecretKeys() {
- }
-}
\ No newline at end of file diff --git a/src/org/thialfihar/android/apg/provider/SecretKeys1.java b/src/org/thialfihar/android/apg/provider/SecretKeys1.java deleted file mode 100644 index 3ca405f70..000000000 --- a/src/org/thialfihar/android/apg/provider/SecretKeys1.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2010 Thialfihar <thi@thialfihar.org> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.thialfihar.android.apg.provider; - -import android.net.Uri; -import android.provider.BaseColumns; - -class SecretKeys1 implements BaseColumns { - public static final String TABLE_NAME = "secret_keys"; - - public static final String _ID_type = "INTEGER PRIMARY KEY"; - public static final String KEY_ID = "c_key_id"; - public static final String KEY_ID_type = "INT64"; - public static final String KEY_DATA = "c_key_data"; - public static final String KEY_DATA_type = "BLOB"; - public static final String WHO_ID = "c_who_id"; - public static final String WHO_ID_type = "INTEGER"; - - public static final Uri CONTENT_URI = - Uri.parse("content://" + DataProvider.AUTHORITY + "/secret_keys"); - public static final Uri CONTENT_URI_BY_KEY_ID = - Uri.parse("content://" + DataProvider.AUTHORITY + "/secret_keys/key_id"); - public static final String CONTENT_TYPE = - "vnd.android.cursor.dir/vnd.thialfihar.apg.secret_key"; - public static final String CONTENT_ITEM_TYPE = - "vnd.android.cursor.item/vnd.thialfihar.apg.secret_key"; - public static final String DEFAULT_SORT_ORDER = _ID + " DESC"; -}
\ No newline at end of file diff --git a/src/org/thialfihar/android/apg/provider/UserIds.java b/src/org/thialfihar/android/apg/provider/UserIds.java index 3bd1f1668..2b1162beb 100644 --- a/src/org/thialfihar/android/apg/provider/UserIds.java +++ b/src/org/thialfihar/android/apg/provider/UserIds.java @@ -16,7 +16,6 @@ package org.thialfihar.android.apg.provider;
-import android.net.Uri;
import android.provider.BaseColumns;
public class UserIds implements BaseColumns {
@@ -29,14 +28,4 @@ public class UserIds implements BaseColumns { public static final String USER_ID_type = "TEXT";
public static final String RANK = "c_rank";
public static final String RANK_type = "INTEGER";
-
- public static final Uri CONTENT_URI =
- Uri.parse("content://" + DataProvider.AUTHORITY + "/user_ids");
- public static final Uri CONTENT_URI_BY_KEY_ID =
- Uri.parse("content://" + DataProvider.AUTHORITY + "/user_ids/key_id");
- public static final String CONTENT_TYPE =
- "vnd.android.cursor.dir/vnd.thialfihar.apg.user_id";
- public static final String CONTENT_ITEM_TYPE =
- "vnd.android.cursor.item/vnd.thialfihar.apg.user_id";
- public static final String DEFAULT_SORT_ORDER = _ID + " DESC";
}
|