From f5aa36ef9f092240f99cb64b83cc64b91544d638 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 17 Jun 2015 21:30:25 +0200 Subject: fix rest of resource leaks (#1351) --- .../keychain/ui/KeyListFragment.java | 28 +++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 36074f6ba..780558b27 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -71,6 +71,7 @@ import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.adapter.KeyAdapter; import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.util.ExportHelper; import org.sufficientlysecure.keychain.util.FabContainer; import org.sufficientlysecure.keychain.util.Log; @@ -553,9 +554,12 @@ public class KeyListFragment extends LoaderFragment } private void updateAllKeys() { - Context context = getActivity(); + Activity activity = getActivity(); + if (activity == null) { + return; + } - ProviderHelper providerHelper = new ProviderHelper(context); + ProviderHelper providerHelper = new ProviderHelper(activity); Cursor cursor = providerHelper.getContentResolver().query( KeyRings.buildUnifiedKeyRingsUri(), new String[]{ @@ -563,13 +567,21 @@ public class KeyListFragment extends LoaderFragment }, null, null, null ); - ArrayList keyList = new ArrayList<>(); + if (cursor == null) { + Notify.create(activity, R.string.error_loading_keys, Style.ERROR); + return; + } - while (cursor.moveToNext()) { - byte[] blob = cursor.getBlob(0);//fingerprint column is 0 - String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob); - ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null); - keyList.add(keyEntry); + ArrayList keyList = new ArrayList<>(); + try { + while (cursor.moveToNext()) { + byte[] blob = cursor.getBlob(0);//fingerprint column is 0 + String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob); + ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null); + keyList.add(keyEntry); + } + } finally { + cursor.close(); } ServiceProgressHandler serviceHandler = new ServiceProgressHandler(getActivity()) { -- cgit v1.2.3