diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/BytesLoaderState.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/BytesLoaderState.java index 8330042f2..03e4dbc14 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/BytesLoaderState.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/BytesLoaderState.java @@ -12,4 +12,9 @@ public class BytesLoaderState implements LoaderState { mDataUri = dataUri; } + @Override + public boolean isBasicModeSupported() { + return true; + } + } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/CloudLoaderState.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/CloudLoaderState.java index c718a3d44..5d7e1f626 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/CloudLoaderState.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/CloudLoaderState.java @@ -12,4 +12,9 @@ public class CloudLoaderState implements LoaderState { mCloudPrefs = cloudPrefs; } + @Override + public boolean isBasicModeSupported() { + return false; + } + } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/LoaderState.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/LoaderState.java index dbf3e1cce..4f03826c6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/LoaderState.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/LoaderState.java @@ -1,4 +1,7 @@ package org.sufficientlysecure.keychain.keyimport.processing; public interface LoaderState { + + boolean isBasicModeSupported(); + } 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 8e22a3868..3ddb035a8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java @@ -212,15 +212,14 @@ public class ImportKeysListFragment extends Fragment implements mRecyclerView.setAdapter(mAdapter); if (dataUri != null || bytes != null) { - mLoaderState = new BytesLoaderState(bytes, dataUri); + loadState(new BytesLoaderState(bytes, dataUri)); } else if (query != null) { CloudSearchPrefs cloudSearchPrefs = args.getParcelable(ARG_CLOUD_SEARCH_PREFS); if (cloudSearchPrefs == null) { cloudSearchPrefs = Preferences.getPreferences(mActivity).getCloudSearchPrefs(); } - - mLoaderState = new CloudLoaderState(query, cloudSearchPrefs); + loadState(new CloudLoaderState(query, cloudSearchPrefs)); } if (dataUri == null || PermissionsUtil.checkAndRequestReadPermission(mActivity, dataUri)) { @@ -254,10 +253,14 @@ public class ImportKeysListFragment extends Fragment implements @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.import_keys_list_fragment, menu); + if (mLoaderState != null) { + inflater.inflate(R.menu.import_keys_list_fragment, menu); - menu.findItem(R.id.basic).setVisible(mAdvanced); - menu.findItem(R.id.advanced).setVisible(!mAdvanced); + MenuItem basicMenuItem = menu.findItem(R.id.basic); + basicMenuItem.setVisible(mAdvanced && mLoaderState.isBasicModeSupported()); + MenuItem advancedMenuItem = menu.findItem(R.id.advanced); + advancedMenuItem.setVisible(!mAdvanced); + } super.onCreateOptionsMenu(menu, inflater); } @@ -315,6 +318,11 @@ public class ImportKeysListFragment extends Fragment implements } + if (!mLoaderState.isBasicModeSupported()) { + mAdvanced = true; + } + setAdvanced(mAdvanced); + restartLoaders(); }