From 69220cb4c0466112426e7d10f865da834b464d90 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sun, 15 Nov 2015 20:19:24 +0100 Subject: inline subkey editing, fixed --- .../keychain/ui/ViewKeyAdvActivity.java | 1 + .../keychain/ui/ViewKeyAdvSubkeysFragment.java | 25 ++++++++++++++++------ .../keychain/ui/ViewKeyAdvUserIdsFragment.java | 4 ++-- .../res/layout/view_key_adv_subkeys_fragment.xml | 2 +- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 01dc10d28..86cabaf96 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -125,6 +125,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements Bundle keysBundle = new Bundle(); keysBundle.putParcelable(ViewKeyAdvSubkeysFragment.ARG_DATA_URI, dataUri); + keysBundle.putBoolean(ViewKeyAdvSubkeysFragment.ARG_HAS_SECRET, hasSecret); adapter.addTab(ViewKeyAdvSubkeysFragment.class, keysBundle, getString(R.string.key_view_tab_keys)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java index ce68bfab1..048dd4f77 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java @@ -47,7 +47,6 @@ import org.sufficientlysecure.keychain.service.SaveKeyringParcel; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.SubkeyChange; import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter; import org.sufficientlysecure.keychain.ui.adapter.SubkeysAddedAdapter; -import org.sufficientlysecure.keychain.ui.adapter.UserIdsAddedAdapter; import org.sufficientlysecure.keychain.ui.dialog.AddSubkeyDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyExpiryDialogFragment; @@ -58,6 +57,8 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements LoaderManager.LoaderCallbacks { public static final String ARG_DATA_URI = "data_uri"; + public static final String ARG_HAS_SECRET = "has_secret"; + public static final int LOADER_ID_SUBKEYS = 0; private ListView mSubkeysList; @@ -76,11 +77,12 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements /** * Creates new instance of this fragment */ - public static ViewKeyAdvSubkeysFragment newInstance(Uri dataUri) { + public static ViewKeyAdvSubkeysFragment newInstance(Uri dataUri, boolean hasSecret) { ViewKeyAdvSubkeysFragment frag = new ViewKeyAdvSubkeysFragment(); Bundle args = new Bundle(); args.putParcelable(ARG_DATA_URI, dataUri); + args.putBoolean(ARG_HAS_SECRET, hasSecret); frag.setArguments(args); return frag; @@ -91,11 +93,9 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements View root = super.onCreateView(inflater, superContainer, savedInstanceState); View view = inflater.inflate(R.layout.view_key_adv_subkeys_fragment, getContainer()); - mSubkeysList = (ListView) view.findViewById(R.id.keys); - - mSubkeysList = (ListView) view.findViewById(R.id.view_key_user_ids); - mSubkeysAddedList = (ListView) view.findViewById(R.id.view_key_user_ids_added); - mSubkeysAddedLayout = view.findViewById(R.id.view_key_user_ids_add_layout); + mSubkeysList = (ListView) view.findViewById(R.id.view_key_subkeys); + mSubkeysAddedList = (ListView) view.findViewById(R.id.view_key_subkeys_added); + mSubkeysAddedLayout = view.findViewById(R.id.view_key_subkeys_add_layout); mSubkeysList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override @@ -136,6 +136,9 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements getActivity().finish(); return; } + mHasSecret = getArguments().getBoolean(ARG_HAS_SECRET); + + setHasOptionsMenu(true); loadData(dataUri); } @@ -226,6 +229,14 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements }); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + inflater.inflate(R.menu.edit_subkeys, menu); + final MenuItem vEditSubkeys = menu.findItem(R.id.menu_edit_subkeys); + vEditSubkeys.setVisible(mHasSecret); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java index c8e892276..49c0184c7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java @@ -218,6 +218,8 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements } boolean hasSecret = getArguments().getBoolean(ARG_HAS_SECRET); + setHasOptionsMenu(true); + loadData(dataUri, hasSecret); } @@ -230,8 +232,6 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements mUserIdsAdapter = new UserIdsAdapter(getActivity(), null, 0); mUserIds.setAdapter(mUserIdsAdapter); - setHasOptionsMenu(hasSecret); - // Prepare the loaders. Either re-connect with an existing ones, // or start new ones. getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, this); diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml index c86b32349..001078b76 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml @@ -28,7 +28,7 @@ xmlns:tools="http://schemas.android.com/tools"> android:layout_weight="1" />