diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java index 2c79fee18..e024c6672 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyFingerprintFragment.java @@ -22,6 +22,8 @@ import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; import android.support.v4.app.LoaderManager; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; @@ -34,13 +36,11 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.provider.KeyRepository; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; -import org.sufficientlysecure.keychain.ui.base.LoaderFragment; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import timber.log.Timber; -public class CertifyFingerprintFragment extends LoaderFragment implements - LoaderManager.LoaderCallbacks { +public class CertifyFingerprintFragment extends Fragment implements LoaderManager.LoaderCallbacks { static final int REQUEST_CERTIFY = 1; @@ -69,9 +69,8 @@ public class CertifyFingerprintFragment extends LoaderFragment implements } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) { - View root = super.onCreateView(inflater, superContainer, savedInstanceState); - View view = inflater.inflate(R.layout.certify_fingerprint_fragment, getContainer()); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.certify_fingerprint_fragment, viewGroup, false); TextView actionNo = view.findViewById(R.id.certify_fingerprint_button_no); mActionYes = view.findViewById(R.id.certify_fingerprint_button_yes); @@ -93,7 +92,7 @@ public class CertifyFingerprintFragment extends LoaderFragment implements } }); - return root; + return view; } @Override @@ -127,7 +126,6 @@ public class CertifyFingerprintFragment extends LoaderFragment implements static final int INDEX_UNIFIED_FINGERPRINT = 1; public Loader onCreateLoader(int id, Bundle args) { - setContentShown(false); switch (id) { case LOADER_ID_UNIFIED: { Uri baseUri = KeyRings.buildUnifiedKeyRingUri(mDataUri); @@ -161,7 +159,6 @@ public class CertifyFingerprintFragment extends LoaderFragment implements } } - setContentShown(true); } private void displayHexConfirm(byte[] fingerprintBlob) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java index bf2370ecb..3815af45d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java @@ -41,6 +41,7 @@ import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; +import android.support.v4.app.Fragment; import android.support.v7.widget.CardView; import android.view.LayoutInflater; import android.view.View; @@ -62,7 +63,6 @@ import org.sufficientlysecure.keychain.provider.KeyRepository; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.TemporaryFileProvider; import org.sufficientlysecure.keychain.ui.ViewKeyAdvActivity.ViewKeyAdvViewModel; -import org.sufficientlysecure.keychain.ui.base.LoaderFragment; import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.Notify; @@ -70,7 +70,7 @@ import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.ui.util.QrCodeUtils; import timber.log.Timber; -public class ViewKeyAdvShareFragment extends LoaderFragment { +public class ViewKeyAdvShareFragment extends Fragment { private ImageView mQrCode; private CardView mQrCodeLayout; private TextView mFingerprintView; @@ -79,9 +79,8 @@ public class ViewKeyAdvShareFragment extends LoaderFragment { private UnifiedKeyInfo unifiedKeyInfo; @Override - public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) { - View root = super.onCreateView(inflater, superContainer, savedInstanceState); - View view = inflater.inflate(R.layout.view_key_adv_share_fragment, getContainer()); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.view_key_adv_share_fragment, viewGroup, false); mFingerprintView = view.findViewById(R.id.view_key_fingerprint); mQrCode = view.findViewById(R.id.view_key_qr_code); @@ -132,7 +131,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment { vKeySshClipboardButton.setOnClickListener(v -> shareKey(true, true)); vKeyUploadButton.setOnClickListener(v -> uploadToKeyserver()); - return root; + return view; } private void startSafeSlinger() { @@ -316,8 +315,6 @@ public class ViewKeyAdvShareFragment extends LoaderFragment { final String fingerprint = KeyFormattingUtils.convertFingerprintToHex(unifiedKeyInfo.fingerprint()); mFingerprintView.setText(KeyFormattingUtils.formatFingerprint(fingerprint)); - - setContentShown(true); } private void onLoadQrCode(Bitmap qrCode) { 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 3ffb268c1..c1984e888 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java @@ -26,6 +26,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Messenger; +import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.view.ActionMode; import android.view.LayoutInflater; @@ -48,13 +50,12 @@ import org.sufficientlysecure.keychain.ui.ViewKeyAdvActivity.ViewKeyAdvViewModel import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter; import org.sufficientlysecure.keychain.ui.adapter.SubkeysAddedAdapter; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; -import org.sufficientlysecure.keychain.ui.base.LoaderFragment; import org.sufficientlysecure.keychain.ui.dialog.AddSubkeyDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyExpiryDialogFragment; -public class ViewKeyAdvSubkeysFragment extends LoaderFragment { +public class ViewKeyAdvSubkeysFragment extends Fragment { private ListView mSubkeysList; private ListView mSubkeysAddedList; private View mSubkeysAddedLayout; @@ -69,9 +70,8 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment { private UnifiedKeyInfo unifiedKeyInfo; @Override - public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) { - View root = super.onCreateView(inflater, superContainer, savedInstanceState); - View view = inflater.inflate(R.layout.view_key_adv_subkeys_fragment, getContainer()); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.view_key_adv_subkeys_fragment, viewGroup, false); mSubkeysList = view.findViewById(R.id.view_key_subkeys); mSubkeysAddedList = view.findViewById(R.id.view_key_subkeys_added); @@ -95,7 +95,7 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment { setHasOptionsMenu(true); - return root; + return view; } @Override @@ -109,8 +109,6 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment { ViewKeyAdvViewModel viewModel = ViewModelProviders.of(requireActivity()).get(ViewKeyAdvViewModel.class); viewModel.getUnifiedKeyInfoLiveData(requireContext()).observe(this, this::onLoadFinished); viewModel.getSubkeyLiveData(requireContext()).observe(this, this::onLoadSubKeys); - - setContentShown(false); } public void onLoadFinished(UnifiedKeyInfo unifiedKeyInfo) { @@ -124,10 +122,8 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment { private void onLoadSubKeys(List subKeys) { mSubkeysAdapter.setData(subKeys); - setContentShown(true); } - @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (mEditKeyHelper != null) { 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 98b6fe07a..e71cc5917 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java @@ -26,6 +26,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Messenger; +import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.view.ActionMode; import android.view.LayoutInflater; @@ -47,14 +49,13 @@ import org.sufficientlysecure.keychain.ui.ViewKeyAdvActivity.ViewKeyAdvViewModel import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter; import org.sufficientlysecure.keychain.ui.adapter.UserIdsAddedAdapter; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; -import org.sufficientlysecure.keychain.ui.base.LoaderFragment; import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.EditUserIdDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment; -public class ViewKeyAdvUserIdsFragment extends LoaderFragment { +public class ViewKeyAdvUserIdsFragment extends Fragment { private ListView mUserIds; private ListView mUserIdsAddedList; private View mUserIdsAddedLayout; @@ -69,9 +70,8 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment { private UnifiedKeyInfo unifiedKeyInfo; @Override - public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) { - View root = super.onCreateView(inflater, superContainer, savedInstanceState); - View view = inflater.inflate(R.layout.view_key_adv_user_ids_fragment, getContainer()); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.view_key_adv_user_ids_fragment, viewGroup, false); mUserIds = view.findViewById(R.id.view_key_user_ids); mUserIdsAddedList = view.findViewById(R.id.view_key_user_ids_added); @@ -95,7 +95,7 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment { setHasOptionsMenu(true); - return root; + return view; } private void showOrEditUserIdInfo(final int position) { @@ -198,8 +198,6 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment { ViewKeyAdvViewModel viewModel = ViewModelProviders.of(requireActivity()).get(ViewKeyAdvViewModel.class); viewModel.getUnifiedKeyInfoLiveData(requireContext()).observe(this, this::onLoadUnifiedKeyInfo); viewModel.getUserIdLiveData(requireContext()).observe(this, this::onLoadUserIds); - - setContentShown(false); } public void onLoadUnifiedKeyInfo(UnifiedKeyInfo unifiedKeyInfo) { @@ -211,7 +209,6 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment { private void onLoadUserIds(List userIds) { mUserIdsAdapter.setData(userIds); - setContentShown(true); } @Override diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyKeybaseFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyKeybaseFragment.java index 3040a710e..3341ee37e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyKeybaseFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyKeybaseFragment.java @@ -28,6 +28,8 @@ import android.graphics.Typeface; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; import android.support.v4.app.LoaderManager; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; @@ -55,12 +57,11 @@ import org.sufficientlysecure.keychain.operations.results.KeybaseVerificationRes import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.service.KeybaseVerificationParcel; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; -import org.sufficientlysecure.keychain.ui.base.LoaderFragment; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.util.ParcelableProxy; import org.sufficientlysecure.keychain.util.Preferences; -public class ViewKeyKeybaseFragment extends LoaderFragment implements +public class ViewKeyKeybaseFragment extends Fragment implements LoaderManager.LoaderCallbacks, CryptoOperationHelper.Callback { @@ -99,9 +100,8 @@ public class ViewKeyKeybaseFragment extends LoaderFragment implements } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) { - View root = super.onCreateView(inflater, superContainer, savedInstanceState); - View view = inflater.inflate(R.layout.view_key_adv_keybase_fragment, getContainer()); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.view_key_adv_keybase_fragment, viewGroup, false); mInflater = inflater; mReportHeader = view.findViewById(R.id.view_key_trust_cloud_narrative); @@ -113,7 +113,7 @@ public class ViewKeyKeybaseFragment extends LoaderFragment implements mProofVerifyHeader.setVisibility(View.GONE); mProofVerifyDetail.setVisibility(View.GONE); - return root; + return view; } @Override @@ -140,8 +140,6 @@ public class ViewKeyKeybaseFragment extends LoaderFragment implements static final int INDEX_VERIFIED = 5; public Loader onCreateLoader(int id, Bundle args) { - setContentShown(false); - switch (id) { case LOADER_ID_DATABASE: { Uri baseUri = KeyRings.buildUnifiedKeyRingUri(masterKeyId); @@ -173,8 +171,6 @@ public class ViewKeyKeybaseFragment extends LoaderFragment implements startSearch(fingerprint); } - - setContentShown(true); } private void startSearch(final String fingerprint) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/LoaderFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/LoaderFragment.java deleted file mode 100644 index 27bf1ec1c..000000000 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/LoaderFragment.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2017 Schürmann & Breitmoser GbR - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.sufficientlysecure.keychain.ui.base; - -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.animation.AnimationUtils; - -import org.sufficientlysecure.keychain.R; - -/** - * This is a fragment helper class, which implements a generic - * progressbar/container view. - *

- * To use it in a fragment, simply subclass, use onCreateView to create the - * layout's root view, and ues getContainer() as root view of your subclass. - * The layout shows a progress bar by default, and can be switched to the - * actual contents by calling setContentShown(). - */ -public abstract class LoaderFragment extends Fragment { - private boolean mContentShown; - private View mProgressContainer; - private ViewGroup mContainer; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View root = inflater.inflate(R.layout.loader_layout, container, false); - - mContentShown = true; - mContainer = root.findViewById(R.id.loader_container); - mProgressContainer = root.findViewById(R.id.loader_progress); - - // content is not shown (by visibility statuses in the layout files) - mContentShown = false; - - return root; - } - - protected ViewGroup getContainer() { - return mContainer; - } - - public void setContentShown(boolean shown, boolean animate) { - if (mContentShown == shown) { - return; - } - mContentShown = shown; - if (shown) { - if (animate) { - mProgressContainer.startAnimation(AnimationUtils.loadAnimation( - getActivity(), android.R.anim.fade_out)); - mContainer.startAnimation(AnimationUtils.loadAnimation( - getActivity(), android.R.anim.fade_in)); - } - mProgressContainer.setVisibility(View.GONE); - mContainer.setVisibility(View.VISIBLE); - } else { - if (animate) { - mProgressContainer.startAnimation(AnimationUtils.loadAnimation( - getActivity(), android.R.anim.fade_in)); - mContainer.startAnimation(AnimationUtils.loadAnimation( - getActivity(), android.R.anim.fade_out)); - } - mProgressContainer.setVisibility(View.VISIBLE); - mContainer.setVisibility(View.INVISIBLE); - } - } - - public void setContentShown(boolean shown) { - setContentShown(shown, true); - } - - public void setContentShownNoAnimation(boolean shown) { - setContentShown(shown, false); - } -}