From 0eceed88ff789e4f7172c5b05d0e98b53305c2b8 Mon Sep 17 00:00:00 2001 From: Andrea Torlaschi Date: Wed, 1 Jun 2016 18:32:09 +0200 Subject: [PATCH] ImportKeys: cleanup --- .../keychain/ui/ImportKeysListFragment.java | 54 ++++++++----------- .../ui/adapter/ImportKeysAdapter.java | 4 +- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java index f10fb6ef2..d9cf96ed1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java @@ -28,6 +28,7 @@ import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; import android.support.v4.app.LoaderManager; import android.support.v4.content.ContextCompat; import android.support.v4.content.Loader; @@ -71,7 +72,7 @@ public class ImportKeysListFragment extends Fragment implements private static final int REQUEST_PERMISSION_READ_EXTERNAL_STORAGE = 12; - private Activity mActivity; + private FragmentActivity mActivity; private ParcelableProxy mParcelableProxy; private ProgressBar mProgressBar; @@ -224,8 +225,8 @@ public class ImportKeysListFragment extends Fragment implements mProgressBar = (ProgressBar) view.findViewById(R.id.progress_view); mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); - RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(mActivity); - mRecyclerView.setLayoutManager(mLayoutManager); + RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(mActivity); + mRecyclerView.setLayoutManager(layoutManager); // Create an empty adapter we will use to display the loaded data. mAdapter = new ImportKeysAdapter(mActivity, nonInteractive); @@ -237,18 +238,16 @@ public class ImportKeysListFragment extends Fragment implements Preferences.CloudSearchPrefs cloudSearchPrefs = args.getParcelable(ARG_CLOUD_SEARCH_PREFS); if (cloudSearchPrefs == null) { - cloudSearchPrefs = Preferences.getPreferences(getActivity()).getCloudSearchPrefs(); + cloudSearchPrefs = Preferences.getPreferences(mActivity).getCloudSearchPrefs(); } mLoaderState = new CloudLoaderState(query, cloudSearchPrefs); } - if (dataUri != null && !checkAndRequestReadPermission(dataUri)) { - return view; + if (dataUri == null || checkAndRequestReadPermission(dataUri)) { + restartLoaders(); } - restartLoaders(); - return view; } @@ -270,7 +269,7 @@ public class ImportKeysListFragment extends Fragment implements return true; } - if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) + if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { return true; } @@ -299,9 +298,9 @@ public class ImportKeysListFragment extends Fragment implements // permission granted -> load key restartLoaders(); } else { - Toast.makeText(getActivity(), R.string.error_denied_storage_permission, Toast.LENGTH_LONG).show(); - getActivity().setResult(Activity.RESULT_CANCELED); - getActivity().finish(); + Toast.makeText(mActivity, R.string.error_denied_storage_permission, Toast.LENGTH_LONG).show(); + mActivity.setResult(Activity.RESULT_CANCELED); + mActivity.finish(); } } @@ -340,13 +339,17 @@ public class ImportKeysListFragment extends Fragment implements } } + private void setLoadingStatus(boolean ready) { + mRecyclerView.setVisibility(ready ? View.VISIBLE : View.GONE); + mProgressBar.setVisibility(ready ? View.GONE : View.VISIBLE); + } + @Override public Loader>> onCreateLoader( int id, Bundle args ) { - - Loader>> loader; + Loader>> loader = null; switch (id) { case LOADER_ID_BYTES: { loader = new ImportKeysListLoader(mActivity, (BytesLoaderState) mLoaderState); @@ -354,17 +357,14 @@ public class ImportKeysListFragment extends Fragment implements } case LOADER_ID_CLOUD: { CloudLoaderState ls = (CloudLoaderState) mLoaderState; - loader = new ImportKeysListCloudLoader(getActivity(), ls.mServerQuery, + loader = new ImportKeysListCloudLoader(mActivity, ls.mServerQuery, ls.mCloudPrefs, mParcelableProxy); break; } - default: - loader = null; } if (loader != null) { - mRecyclerView.setVisibility(View.GONE); - mProgressBar.setVisibility(View.VISIBLE); + setLoadingStatus(false); } return loader; @@ -375,12 +375,9 @@ public class ImportKeysListFragment extends Fragment implements Loader>> loader, AsyncTaskResultWrapper> data ) { + setLoadingStatus(true); mAdapter.setData(data.getResult()); - mAdapter.notifyDataSetChanged(); - - mRecyclerView.setVisibility(View.VISIBLE); - mProgressBar.setVisibility(View.GONE); // free old cached key data mCachedKeyData = null; @@ -392,7 +389,7 @@ public class ImportKeysListFragment extends Fragment implements // No error mCachedKeyData = ((ImportKeysListLoader) loader).getParcelableRings(); } else { - getKeyResult.createNotify(getActivity()).show(); + getKeyResult.createNotify(mActivity).show(); } break; @@ -433,8 +430,7 @@ public class ImportKeysListFragment extends Fragment implements } }; - if (OrbotHelper.putOrbotInRequiredState(dialogActions, - getActivity())) { + if (OrbotHelper.putOrbotInRequiredState(dialogActions, mActivity)) { // looks like we didn't have to show the // dialog after all mShowingOrbotDialog = false; @@ -446,7 +442,7 @@ public class ImportKeysListFragment extends Fragment implements mShowingOrbotDialog = true; } } else { - getKeyResult.createNotify(getActivity()).show(); + getKeyResult.createNotify(mActivity).show(); } break; @@ -459,11 +455,7 @@ public class ImportKeysListFragment extends Fragment implements public void onLoaderReset(Loader>> loader) { switch (loader.getId()) { case LOADER_ID_BYTES: - // Clear the data in the adapter. - mAdapter.clearData(); - break; case LOADER_ID_CLOUD: - // Clear the data in the adapter. mAdapter.clearData(); break; default: diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java index 360f3782f..95061363c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java @@ -40,6 +40,7 @@ import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -79,6 +80,7 @@ public class ImportKeysAdapter extends RecyclerView.Adapter data) { this.mData = data; + notifyDataSetChanged(); } public List getData() { @@ -209,7 +211,7 @@ public class ImportKeysAdapter extends RecyclerView.Adapter> mergedUserIds = entry.getMergedUserIds(); ArrayList>> sortedIds = new ArrayList>>(mergedUserIds.entrySet()); - java.util.Collections.sort(sortedIds, new java.util.Comparator>>() { + Collections.sort(sortedIds, new java.util.Comparator>>() { @Override public int compare(Map.Entry> entry1, Map.Entry> entry2) {