From beadf4db8b46b044c4bfedf825abfefcac8b14b8 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Sun, 10 Apr 2022 18:44:25 +0200 Subject: [PATCH] Use requireContext, requireActivity and requirePreference where possible --- .../aegis/importers/DatabaseImporter.java | 4 +- .../aegis/importers/FreeOtpPlusImporter.java | 2 +- .../aegis/importers/GoogleAuthImporter.java | 4 +- .../importers/MicrosoftAuthImporter.java | 4 +- .../aegis/importers/WinAuthImporter.java | 2 +- .../aegis/ui/dialogs/SimpleWebViewDialog.java | 12 ++--- .../AppearancePreferencesFragment.java | 26 ++++----- .../BackupsPreferencesFragment.java | 18 +++---- .../BehaviorPreferencesFragment.java | 6 +-- .../preferences/IconPacksManagerFragment.java | 14 ++--- .../ImportExportPreferencesFragment.java | 40 +++++++------- .../preferences/PreferencesFragment.java | 19 +++++-- .../SecurityPreferencesFragment.java | 54 +++++++++---------- .../aegis/ui/slides/SecurityPickerSlide.java | 4 +- .../aegis/ui/slides/SecuritySetupSlide.java | 10 ++-- .../aegis/ui/views/EntryListView.java | 15 +++--- .../aegis/vault/VaultManager.java | 2 +- 17 files changed, 123 insertions(+), 113 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/DatabaseImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/DatabaseImporter.java index 7adcb534..d64d211f 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/DatabaseImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/DatabaseImporter.java @@ -47,14 +47,14 @@ public abstract class DatabaseImporter { _context = context; } - protected Context getContext() { + protected Context requireContext() { return _context; } protected abstract SuFile getAppPath() throws DatabaseImporterException, PackageManager.NameNotFoundException; protected SuFile getAppPath(String pkgName, String subPath) throws PackageManager.NameNotFoundException { - PackageManager man = getContext().getPackageManager(); + PackageManager man = requireContext().getPackageManager(); return new SuFile(man.getApplicationInfo(pkgName, 0).dataDir, subPath); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/FreeOtpPlusImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/FreeOtpPlusImporter.java index 3761658d..cd15d7ca 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/FreeOtpPlusImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/FreeOtpPlusImporter.java @@ -34,7 +34,7 @@ public class FreeOtpPlusImporter extends DatabaseImporter { State state; if (isInternal) { - state = new FreeOtpImporter(getContext()).read(stream); + state = new FreeOtpImporter(requireContext()).read(stream); } else { try { String json = new String(IOUtils.readAll(stream), StandardCharsets.UTF_8); diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/GoogleAuthImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/GoogleAuthImporter.java index 74987d39..b613a6da 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/GoogleAuthImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/GoogleAuthImporter.java @@ -34,7 +34,7 @@ public class GoogleAuthImporter extends DatabaseImporter { @Override public State read(InputStream stream, boolean isInternal) throws DatabaseImporterException { - SqlImporterHelper helper = new SqlImporterHelper(getContext()); + SqlImporterHelper helper = new SqlImporterHelper(requireContext()); List entries = helper.read(Entry.class, stream, "accounts"); return new State(entries); } @@ -42,7 +42,7 @@ public class GoogleAuthImporter extends DatabaseImporter { @Override public DatabaseImporter.State readFromApp() throws PackageManager.NameNotFoundException, DatabaseImporterException { SuFile path = getAppPath(); - SqlImporterHelper helper = new SqlImporterHelper(getContext()); + SqlImporterHelper helper = new SqlImporterHelper(requireContext()); List entries = helper.read(Entry.class, path, "accounts"); return new State(entries); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/MicrosoftAuthImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/MicrosoftAuthImporter.java index f2920e99..319c0e69 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/MicrosoftAuthImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/MicrosoftAuthImporter.java @@ -34,7 +34,7 @@ public class MicrosoftAuthImporter extends DatabaseImporter { @Override public State read(InputStream stream, boolean isInternal) throws DatabaseImporterException { - SqlImporterHelper helper = new SqlImporterHelper(getContext()); + SqlImporterHelper helper = new SqlImporterHelper(requireContext()); List entries = helper.read(Entry.class, stream, "accounts"); return new State(entries); } @@ -42,7 +42,7 @@ public class MicrosoftAuthImporter extends DatabaseImporter { @Override public DatabaseImporter.State readFromApp() throws PackageManager.NameNotFoundException, DatabaseImporterException { SuFile path = getAppPath(); - SqlImporterHelper helper = new SqlImporterHelper(getContext()); + SqlImporterHelper helper = new SqlImporterHelper(requireContext()); List entries = helper.read(Entry.class, path, "accounts"); return new State(entries); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/WinAuthImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/WinAuthImporter.java index 6af3ee60..ecedf38f 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/WinAuthImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/WinAuthImporter.java @@ -19,7 +19,7 @@ public class WinAuthImporter extends DatabaseImporter { @Override public WinAuthImporter.State read(InputStream stream, boolean isInternal) throws DatabaseImporterException { - GoogleAuthUriImporter importer = new GoogleAuthUriImporter(getContext()); + GoogleAuthUriImporter importer = new GoogleAuthUriImporter(requireContext()); DatabaseImporter.State state = importer.read(stream); return new State(state); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java index a2029616..9e3f975c 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java @@ -41,23 +41,23 @@ public abstract class SimpleWebViewDialog extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { final View view; try { - view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_web_view, null); + view = LayoutInflater.from(requireActivity()).inflate(R.layout.dialog_web_view, null); } catch (InflateException e) { e.printStackTrace(); - return new AlertDialog.Builder(getActivity()) + return new AlertDialog.Builder(requireActivity()) .setTitle(android.R.string.dialog_alert_title) .setMessage(getString(R.string.webview_error)) .setPositiveButton(android.R.string.ok, null) .show(); } - AlertDialog dialog = new AlertDialog.Builder(getActivity()) + AlertDialog dialog = new AlertDialog.Builder(requireActivity()) .setTitle(_title) .setView(view) .setPositiveButton(android.R.string.ok, null) .show(); - String content = getContent(getContext()); + String content = getContent(requireContext()); final WebView webView = view.findViewById(R.id.web_view); webView.loadData(content, "text/html", "UTF-8"); return dialog; @@ -70,11 +70,11 @@ public abstract class SimpleWebViewDialog extends DialogFragment { protected String getBackgroundColor() { int backgroundColorResource = _theme == Theme.AMOLED ? R.attr.cardBackgroundFocused : R.attr.cardBackground; - return colorToCSS(ThemeHelper.getThemeColor(backgroundColorResource, getContext().getTheme())); + return colorToCSS(ThemeHelper.getThemeColor(backgroundColorResource, requireContext().getTheme())); } protected String getTextColor() { - return colorToCSS(0xFFFFFF & ThemeHelper.getThemeColor(R.attr.primaryText, getContext().getTheme())); + return colorToCSS(0xFFFFFF & ThemeHelper.getThemeColor(R.attr.primaryText, requireContext().getTheme())); } @SuppressLint("DefaultLocale") diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java index 095845c0..c175864a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java @@ -27,17 +27,17 @@ public class AppearancePreferencesFragment extends PreferencesFragment { super.onCreatePreferences(savedInstanceState, rootKey); addPreferencesFromResource(R.xml.preferences_appearance); - _groupsPreference = findPreference("pref_groups"); + _groupsPreference = requirePreference("pref_groups"); _groupsPreference.setOnPreferenceClickListener(preference -> { - Intent intent = new Intent(getActivity(), GroupManagerActivity.class); + Intent intent = new Intent(requireActivity(), GroupManagerActivity.class); intent.putExtra("groups", new ArrayList<>(_vaultManager.getVault().getGroups())); startActivityForResult(intent, CODE_GROUPS); return true; }); - _resetUsageCountPreference = findPreference("pref_reset_usage_count"); + _resetUsageCountPreference = requirePreference("pref_reset_usage_count"); _resetUsageCountPreference.setOnPreferenceClickListener(preference -> { - Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity()) .setTitle(R.string.preference_reset_usage_count) .setMessage(R.string.preference_reset_usage_count_dialog) .setPositiveButton(android.R.string.yes, (dialog, which) -> _prefs.clearUsageCount()) @@ -47,12 +47,12 @@ public class AppearancePreferencesFragment extends PreferencesFragment { }); int currentTheme = _prefs.getCurrentTheme().ordinal(); - Preference darkModePreference = findPreference("pref_dark_mode"); + Preference darkModePreference = requirePreference("pref_dark_mode"); darkModePreference.setSummary(String.format("%s: %s", getString(R.string.selected), getResources().getStringArray(R.array.theme_titles)[currentTheme])); darkModePreference.setOnPreferenceClickListener(preference -> { int currentTheme1 = _prefs.getCurrentTheme().ordinal(); - Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity()) .setTitle(R.string.choose_theme) .setSingleChoiceItems(R.array.theme_titles, currentTheme1, (dialog, which) -> { int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); @@ -61,7 +61,7 @@ public class AppearancePreferencesFragment extends PreferencesFragment { dialog.dismiss(); getResult().putExtra("needsRecreate", true); - getActivity().recreate(); + requireActivity().recreate(); }) .setNegativeButton(android.R.string.cancel, null) .create()); @@ -69,11 +69,11 @@ public class AppearancePreferencesFragment extends PreferencesFragment { return true; }); - Preference langPreference = findPreference("pref_lang"); + Preference langPreference = requirePreference("pref_lang"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { langPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRecreate", true); - getActivity().recreate(); + requireActivity().recreate(); return true; }); } else { @@ -82,12 +82,12 @@ public class AppearancePreferencesFragment extends PreferencesFragment { } int currentViewMode = _prefs.getCurrentViewMode().ordinal(); - Preference viewModePreference = findPreference("pref_view_mode"); + Preference viewModePreference = requirePreference("pref_view_mode"); viewModePreference.setSummary(String.format("%s: %s", getString(R.string.selected), getResources().getStringArray(R.array.view_mode_titles)[currentViewMode])); viewModePreference.setOnPreferenceClickListener(preference -> { int currentViewMode1 = _prefs.getCurrentViewMode().ordinal(); - Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity()) .setTitle(R.string.choose_view_mode) .setSingleChoiceItems(R.array.view_mode_titles, currentViewMode1, (dialog, which) -> { int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); @@ -102,13 +102,13 @@ public class AppearancePreferencesFragment extends PreferencesFragment { return true; }); - Preference codeDigitGroupingPreference = findPreference("pref_code_group_size"); + Preference codeDigitGroupingPreference = requirePreference("pref_code_group_size"); codeDigitGroupingPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRefresh", true); return true; }); - Preference issuerPreference = findPreference("pref_account_name"); + Preference issuerPreference = requirePreference("pref_account_name"); issuerPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRefresh", true); return true; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java index 2f8eec31..dc410e37 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java @@ -32,7 +32,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment { super.onCreatePreferences(savedInstanceState, rootKey); addPreferencesFromResource(R.xml.preferences_backups); - _backupsPreference = findPreference("pref_backups"); + _backupsPreference = requirePreference("pref_backups"); _backupsPreference.setOnPreferenceChangeListener((preference, newValue) -> { if ((boolean) newValue) { selectBackupsLocation(); @@ -44,7 +44,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment { return false; }); - _androidBackupsPreference = findPreference("pref_android_backups"); + _androidBackupsPreference = requirePreference("pref_android_backups"); _androidBackupsPreference.setOnPreferenceChangeListener((preference, newValue) -> { _prefs.setIsAndroidBackupsEnabled((boolean) newValue); updateBackupPreference(); @@ -53,7 +53,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment { }); Uri backupLocation = _prefs.getBackupsLocation(); - _backupsLocationPreference = findPreference("pref_backups_location"); + _backupsLocationPreference = requirePreference("pref_backups_location"); if (backupLocation != null) { _backupsLocationPreference.setSummary(String.format("%s: %s", getString(R.string.pref_backups_location_summary), Uri.decode(backupLocation.toString()))); } @@ -62,7 +62,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment { return false; }); - _backupsTriggerPreference = findPreference("pref_backups_trigger"); + _backupsTriggerPreference = requirePreference("pref_backups_trigger"); _backupsTriggerPreference.setOnPreferenceClickListener(preference -> { if (_prefs.isBackupsEnabled()) { scheduleBackup(); @@ -70,10 +70,10 @@ public class BackupsPreferencesFragment extends PreferencesFragment { return true; }); - _backupsVersionsPreference = findPreference("pref_backups_versions"); + _backupsVersionsPreference = requirePreference("pref_backups_versions"); _backupsVersionsPreference.setSummary(getResources().getQuantityString(R.plurals.pref_backups_versions_summary, _prefs.getBackupsVersionCount(), _prefs.getBackupsVersionCount())); _backupsVersionsPreference.setOnPreferenceClickListener(preference -> { - Dialogs.showBackupVersionsPickerDialog(getActivity(), _prefs.getBackupsVersionCount(), number -> { + Dialogs.showBackupVersionsPickerDialog(requireActivity(), _prefs.getBackupsVersionCount(), number -> { number = number * 5 + 5; _prefs.setBackupsVersionCount(number); _backupsVersionsPreference.setSummary(getResources().getQuantityString(R.plurals.pref_backups_versions_summary, _prefs.getBackupsVersionCount(), _prefs.getBackupsVersionCount())); @@ -96,7 +96,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment { } int flags = Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION; - getContext().getContentResolver().takePersistableUriPermission(data.getData(), flags); + requireContext().getContentResolver().takePersistableUriPermission(data.getData(), flags); _prefs.setBackupsLocation(uri); _prefs.setIsBackupsEnabled(true); @@ -132,10 +132,10 @@ public class BackupsPreferencesFragment extends PreferencesFragment { private void scheduleBackup() { try { _vaultManager.scheduleBackup(); - Toast.makeText(getActivity(), R.string.backup_successful, Toast.LENGTH_LONG).show(); + Toast.makeText(requireActivity(), R.string.backup_successful, Toast.LENGTH_LONG).show(); } catch (VaultRepositoryException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.backup_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.backup_error, e); } } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BehaviorPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BehaviorPreferencesFragment.java index 9f68b033..83a7991c 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BehaviorPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BehaviorPreferencesFragment.java @@ -14,20 +14,20 @@ public class BehaviorPreferencesFragment extends PreferencesFragment { super.onCreatePreferences(savedInstanceState, rootKey); addPreferencesFromResource(R.xml.preferences_behavior); - Preference copyOnTapPreference = findPreference("pref_copy_on_tap"); + Preference copyOnTapPreference = requirePreference("pref_copy_on_tap"); copyOnTapPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRefresh", true); return true; }); - Preference entryHighlightPreference = findPreference("pref_highlight_entry"); + Preference entryHighlightPreference = requirePreference("pref_highlight_entry"); entryHighlightPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRefresh", true); _entryPausePreference.setEnabled(_prefs.isTapToRevealEnabled() || (boolean) newValue); return true; }); - _entryPausePreference = findPreference("pref_pause_entry"); + _entryPausePreference = requirePreference("pref_pause_entry"); _entryPausePreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRefresh", true); return true; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/IconPacksManagerFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/IconPacksManagerFragment.java index c73b9fe5..651506c8 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/IconPacksManagerFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/IconPacksManagerFragment.java @@ -62,7 +62,7 @@ public class IconPacksManagerFragment extends Fragment implements IconPackAdapte _iconPacksView = view.findViewById(R.id.view_icon_packs); _adapter = new IconPackAdapter(this); _iconPacksRecyclerView = view.findViewById(R.id.list_icon_packs); - LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); + LinearLayoutManager layoutManager = new LinearLayoutManager(requireContext()); _iconPacksRecyclerView.setLayoutManager(layoutManager); _iconPacksRecyclerView.setAdapter(_adapter); _iconPacksRecyclerView.setNestedScrollingEnabled(false); @@ -83,7 +83,7 @@ public class IconPacksManagerFragment extends Fragment implements IconPackAdapte @Override public void onRemoveIconPack(IconPack pack) { - Dialogs.showSecureDialog(new AlertDialog.Builder(getContext()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext()) .setTitle(R.string.remove_icon_pack) .setMessage(R.string.remove_icon_pack_description) .setPositiveButton(android.R.string.yes, (dialog, whichButton) -> { @@ -91,7 +91,7 @@ public class IconPacksManagerFragment extends Fragment implements IconPackAdapte _iconPackManager.removeIconPack(pack); } catch (IconPackException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.icon_pack_delete_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.icon_pack_delete_error, e); return; } _adapter.removeIconPack(pack); @@ -111,10 +111,10 @@ public class IconPacksManagerFragment extends Fragment implements IconPackAdapte } private void importIconPack(Uri uri) { - ImportIconPackTask task = new ImportIconPackTask(getContext(), result -> { + ImportIconPackTask task = new ImportIconPackTask(requireContext(), result -> { Exception e = result.getException(); if (e instanceof IconPackExistsException) { - Dialogs.showSecureDialog(new AlertDialog.Builder(getContext()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext()) .setTitle(R.string.error_occurred) .setMessage(R.string.icon_pack_import_exists_error) .setPositiveButton(R.string.yes, (dialog, which) -> { @@ -125,7 +125,7 @@ public class IconPacksManagerFragment extends Fragment implements IconPackAdapte .setNegativeButton(R.string.no, null) .create()); } else if (e != null) { - Dialogs.showErrorDialog(getContext(), R.string.icon_pack_import_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.icon_pack_import_error, e); } else { _adapter.addIconPack(result.getIconPack()); updateEmptyState(); @@ -139,7 +139,7 @@ public class IconPacksManagerFragment extends Fragment implements IconPackAdapte _iconPackManager.removeIconPack(pack); } catch (IconPackException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.icon_pack_delete_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.icon_pack_delete_error, e); return false; } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/ImportExportPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/ImportExportPreferencesFragment.java index 2a7601e4..3f592bf2 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/ImportExportPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/ImportExportPreferencesFragment.java @@ -53,9 +53,9 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { _importerType = (Class) savedInstanceState.getSerializable("importerType"); } - Preference importPreference = findPreference("pref_import"); + Preference importPreference = requirePreference("pref_import"); importPreference.setOnPreferenceClickListener(preference -> { - Dialogs.showImportersDialog(getContext(), false, definition -> { + Dialogs.showImportersDialog(requireContext(), false, definition -> { _importerType = definition.getType(); Intent intent = new Intent(Intent.ACTION_GET_CONTENT); @@ -65,15 +65,15 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { return true; }); - Preference importAppPreference = findPreference("pref_import_app"); + Preference importAppPreference = requirePreference("pref_import_app"); importAppPreference.setOnPreferenceClickListener(preference -> { - Dialogs.showImportersDialog(getContext(), true, definition -> { + Dialogs.showImportersDialog(requireContext(), true, definition -> { startImportEntriesActivity(definition.getType(), null); }); return true; }); - Preference exportPreference = findPreference("pref_export"); + Preference exportPreference = requirePreference("pref_export"); exportPreference.setOnPreferenceClickListener(preference -> { startExport(); return true; @@ -113,30 +113,30 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { } ImportFileTask.Params params = new ImportFileTask.Params(uri, "import", null); - ImportFileTask task = new ImportFileTask(getContext(), result -> { + ImportFileTask task = new ImportFileTask(requireContext(), result -> { if (result.getException() == null) { startImportEntriesActivity(_importerType, result.getFile()); } else { - Dialogs.showErrorDialog(getContext(), R.string.reading_file_error, result.getException()); + Dialogs.showErrorDialog(requireContext(), R.string.reading_file_error, result.getException()); } }); task.execute(getLifecycle(), params); } private void startImportEntriesActivity(Class importerType, File file) { - Intent intent = new Intent(getActivity(), ImportEntriesActivity.class); + Intent intent = new Intent(requireActivity(), ImportEntriesActivity.class); intent.putExtra("importerType", importerType); intent.putExtra("file", file); startActivityForResult(intent, CODE_IMPORT); } private void startExport() { - View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_export, null); + View view = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_export, null); TextView warningText = view.findViewById(R.id.text_export_warning); CheckBox checkBoxEncrypt = view.findViewById(R.id.checkbox_export_encrypt); CheckBox checkBoxAccept = view.findViewById(R.id.checkbox_accept); AutoCompleteTextView dropdown = view.findViewById(R.id.dropdown_export_format); - DropdownHelper.fillDropdown(getContext(), dropdown, R.array.export_formats); + DropdownHelper.fillDropdown(requireContext(), dropdown, R.array.export_formats); dropdown.setText(getString(R.string.export_format_aegis), false); dropdown.setOnItemClickListener((parent, view1, position, id) -> { checkBoxEncrypt.setChecked(position == 0); @@ -144,7 +144,7 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { warningText.setVisibility(checkBoxEncrypt.isChecked() ? View.GONE : View.VISIBLE); }); - AlertDialog dialog = new AlertDialog.Builder(getContext()) + AlertDialog dialog = new AlertDialog.Builder(requireContext()) .setTitle(R.string.pref_export_summary) .setView(view) .setNeutralButton(R.string.share, null) @@ -200,7 +200,7 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { file = File.createTempFile(fileInfo.getFilename() + "-", "." + fileInfo.getExtension(), getExportCacheDir()); } catch (IOException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.exporting_vault_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.exporting_vault_error, e); return; } @@ -210,14 +210,14 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { cb.exportVault(stream); } catch (IOException | VaultRepositoryException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.exporting_vault_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.exporting_vault_error, e); return; } // if the user creates an export, hide the backup reminder _prefs.setIsBackupReminderNeeded(false); - Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.FILE_PROVIDER_AUTHORITY, file); + Uri uri = FileProvider.getUriForFile(requireContext(), BuildConfig.FILE_PROVIDER_AUTHORITY, file); Intent intent = new Intent(Intent.ACTION_SEND) .setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) .setType(getExportMimeType(requestCode)) @@ -253,7 +253,7 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { } private File getExportCacheDir() throws IOException { - File dir = new File(getContext().getCacheDir(), "export"); + File dir = new File(requireContext().getCacheDir(), "export"); if (!dir.exists() && !dir.mkdir()) { throw new IOException(String.format("Unable to create directory %s", dir)); } @@ -267,7 +267,7 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { if (_vaultManager.getVault().isEncryptionEnabled()) { cb.exportVault(stream -> _vaultManager.getVault().export(stream)); } else { - Dialogs.showSetPasswordDialog(getActivity(), new Dialogs.SlotListener() { + Dialogs.showSetPasswordDialog(requireActivity(), new Dialogs.SlotListener() { @Override public void onSlotResult(Slot slot, Cipher cipher) { VaultFileCredentials creds = new VaultFileCredentials(); @@ -313,10 +313,10 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { outStream = new FileOutputStream(file); cb.exportVault(outStream); - new ExportTask(getContext(), new ExportResultListener()).execute(getLifecycle(), new ExportTask.Params(file, uri)); + new ExportTask(requireContext(), new ExportResultListener()).execute(getLifecycle(), new ExportTask.Params(file, uri)); } catch (VaultRepositoryException | IOException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.exporting_vault_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.exporting_vault_error, e); } finally { try { if (outStream != null) { @@ -344,12 +344,12 @@ public class ImportExportPreferencesFragment extends PreferencesFragment { public void onTaskFinished(Exception e) { if (e != null) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.exporting_vault_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.exporting_vault_error, e); } else { // if the user creates an export, hide the backup reminder _prefs.setIsBackupReminderNeeded(false); - Toast.makeText(getContext(), getString(R.string.exported_vault), Toast.LENGTH_SHORT).show(); + Toast.makeText(requireContext(), getString(R.string.exported_vault), Toast.LENGTH_SHORT).show(); } } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/PreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/PreferencesFragment.java index 0bf036f9..8958cbcf 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/PreferencesFragment.java @@ -5,6 +5,8 @@ import android.content.Intent; import android.os.Bundle; import androidx.annotation.CallSuper; +import androidx.annotation.NonNull; +import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import com.beemdevelopment.aegis.Preferences; @@ -21,7 +23,6 @@ import dagger.hilt.android.AndroidEntryPoint; public abstract class PreferencesFragment extends PreferenceFragmentCompat { // activity request codes public static final int CODE_IMPORT_SELECT = 0; - public static final int CODE_SLOTS = 2; public static final int CODE_GROUPS = 3; public static final int CODE_IMPORT = 4; public static final int CODE_EXPORT = 5; @@ -48,7 +49,7 @@ public abstract class PreferencesFragment extends PreferenceFragmentCompat { public void onResume() { super.onResume(); - Intent intent = getActivity().getIntent(); + Intent intent = requireActivity().getIntent(); String preference = intent.getStringExtra("pref"); if (preference != null) { scrollToPreference(preference); @@ -62,7 +63,7 @@ public abstract class PreferencesFragment extends PreferenceFragmentCompat { public void setResult(Intent result) { _result = result; - getActivity().setResult(Activity.RESULT_OK, _result); + requireActivity().setResult(Activity.RESULT_OK, _result); } protected boolean saveAndBackupVault() { @@ -70,10 +71,20 @@ public abstract class PreferencesFragment extends PreferenceFragmentCompat { _vaultManager.saveAndBackup(); } catch (VaultRepositoryException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.saving_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.saving_error, e); return false; } return true; } + + @NonNull + protected T requirePreference(@NonNull CharSequence key) { + T pref = findPreference(key); + if (pref == null) { + throw new IllegalStateException(String.format("Preference %s not found", key)); + } + + return pref; + } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/SecurityPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/SecurityPreferencesFragment.java index b55d1ca9..70d60b5a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/SecurityPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/SecurityPreferencesFragment.java @@ -55,16 +55,16 @@ public class SecurityPreferencesFragment extends PreferencesFragment { super.onCreatePreferences(savedInstanceState, rootKey); addPreferencesFromResource(R.xml.preferences_security); - Preference tapToRevealPreference = findPreference("pref_tap_to_reveal"); + Preference tapToRevealPreference = requirePreference("pref_tap_to_reveal"); tapToRevealPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRefresh", true); return true; }); - Preference screenPreference = findPreference("pref_secure_screen"); + Preference screenPreference = requirePreference("pref_secure_screen"); screenPreference.setOnPreferenceChangeListener((preference, newValue) -> { getResult().putExtra("needsRecreate", true); - Window window = getActivity().getWindow(); + Window window = requireActivity().getWindow(); if ((boolean) newValue) { window.addFlags(WindowManager.LayoutParams.FLAG_SECURE); } else { @@ -73,10 +73,10 @@ public class SecurityPreferencesFragment extends PreferencesFragment { return true; }); - Preference tapToRevealTimePreference = findPreference("pref_tap_to_reveal_time"); + Preference tapToRevealTimePreference = requirePreference("pref_tap_to_reveal_time"); tapToRevealTimePreference.setSummary(_prefs.getTapToRevealTime() + " seconds"); tapToRevealTimePreference.setOnPreferenceClickListener(preference -> { - Dialogs.showTapToRevealTimeoutPickerDialog(getActivity(), _prefs.getTapToRevealTime(), number -> { + Dialogs.showTapToRevealTimeoutPickerDialog(requireActivity(), _prefs.getTapToRevealTime(), number -> { _prefs.setTapToRevealTime(number); tapToRevealTimePreference.setSummary(number + " seconds"); getResult().putExtra("needsRefresh", true); @@ -84,12 +84,12 @@ public class SecurityPreferencesFragment extends PreferencesFragment { return false; }); - _encryptionPreference = findPreference("pref_encryption"); + _encryptionPreference = requirePreference("pref_encryption"); _encryptionPreference.setOnPreferenceChangeListener((preference, newValue) -> { if (!_vaultManager.getVault().isEncryptionEnabled()) { - Dialogs.showSetPasswordDialog(getActivity(), new EnableEncryptionListener()); + Dialogs.showSetPasswordDialog(requireActivity(), new EnableEncryptionListener()); } else { - Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext()) .setTitle(R.string.disable_encryption) .setMessage(getText(R.string.disable_encryption_description)) .setPositiveButton(android.R.string.yes, (dialog, which) -> { @@ -97,7 +97,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { _vaultManager.disableEncryption(); } catch (VaultRepositoryException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.disable_encryption_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.disable_encryption_error, e); return; } @@ -112,13 +112,13 @@ public class SecurityPreferencesFragment extends PreferencesFragment { return false; }); - _biometricsPreference = findPreference("pref_biometrics"); + _biometricsPreference = requirePreference("pref_biometrics"); _biometricsPreference.setOnPreferenceChangeListener((preference, newValue) -> { VaultFileCredentials creds = _vaultManager.getVault().getCredentials(); SlotList slots = creds.getSlots(); if (!slots.has(BiometricSlot.class)) { - if (BiometricsHelper.isAvailable(getContext())) { + if (BiometricsHelper.isAvailable(requireContext())) { BiometricSlotInitializer initializer = new BiometricSlotInitializer(SecurityPreferencesFragment.this, new RegisterBiometricsListener()); BiometricPrompt.PromptInfo info = new BiometricPrompt.PromptInfo.Builder() .setTitle(getString(R.string.set_up_biometric)) @@ -147,27 +147,27 @@ public class SecurityPreferencesFragment extends PreferencesFragment { return false; }); - _setPasswordPreference = findPreference("pref_password"); + _setPasswordPreference = requirePreference("pref_password"); _setPasswordPreference.setOnPreferenceClickListener(preference -> { - Dialogs.showSetPasswordDialog(getActivity(), new SetPasswordListener()); + Dialogs.showSetPasswordDialog(requireActivity(), new SetPasswordListener()); return false; }); - _pinKeyboardPreference = findPreference("pref_pin_keyboard"); + _pinKeyboardPreference = requirePreference("pref_pin_keyboard"); _pinKeyboardPreference.setOnPreferenceChangeListener((preference, newValue) -> { if (!(boolean) newValue) { return true; } - Dialogs.showPasswordInputDialog(getActivity(), R.string.set_password_confirm, R.string.pin_keyboard_description, password -> { + Dialogs.showPasswordInputDialog(requireContext(), R.string.set_password_confirm, R.string.pin_keyboard_description, password -> { if (isDigitsOnly(new String(password))) { List slots = _vaultManager.getVault().getCredentials().getSlots().findAll(PasswordSlot.class); PasswordSlotDecryptTask.Params params = new PasswordSlotDecryptTask.Params(slots, password); - PasswordSlotDecryptTask task = new PasswordSlotDecryptTask(getActivity(), new PasswordConfirmationListener()); + PasswordSlotDecryptTask task = new PasswordSlotDecryptTask(requireContext(), new PasswordConfirmationListener()); task.execute(getLifecycle(), params); } else { _pinKeyboardPreference.setChecked(false); - Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext()) .setTitle(R.string.pin_keyboard_error) .setMessage(R.string.pin_keyboard_error_description) .setCancelable(false) @@ -180,7 +180,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { return false; }); - _autoLockPreference = findPreference("pref_auto_lock"); + _autoLockPreference = requirePreference("pref_auto_lock"); _autoLockPreference.setSummary(getAutoLockSummary()); _autoLockPreference.setOnPreferenceClickListener((preference) -> { final int[] items = Preferences.AUTO_LOCK_SETTINGS; @@ -190,7 +190,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { checkedItems[i] = _prefs.isAutoLockTypeEnabled(items[i]); } - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) + AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()) .setTitle(R.string.pref_auto_lock_prompt) .setMultiChoiceItems(textItems, checkedItems, (dialog, index, isChecked) -> checkedItems[index] = isChecked) .setPositiveButton(android.R.string.ok, (dialog, which) -> { @@ -210,7 +210,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { return false; }); - _passwordReminderPreference = findPreference("pref_password_reminder_freq"); + _passwordReminderPreference = requirePreference("pref_password_reminder_freq"); _passwordReminderPreference.setSummary(getPasswordReminderSummary()); _passwordReminderPreference.setOnPreferenceClickListener((preference) -> { final PassReminderFreq currFreq = _prefs.getPasswordReminderFrequency(); @@ -219,7 +219,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { .map(f -> getString(f.getStringRes())) .toArray(String[]::new); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) + AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()) .setTitle(R.string.pref_password_reminder_title) .setSingleChoiceItems(textItems, currFreq.ordinal(), (dialog, which) -> { int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); @@ -246,7 +246,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { SlotList slots = _vaultManager.getVault().getCredentials().getSlots(); boolean multiPassword = slots.findAll(PasswordSlot.class).size() > 1; boolean multiBio = slots.findAll(BiometricSlot.class).size() > 1; - boolean canUseBio = BiometricsHelper.isAvailable(getContext()); + boolean canUseBio = BiometricsHelper.isAvailable(requireContext()); _setPasswordPreference.setEnabled(!multiPassword); _biometricsPreference.setEnabled(canUseBio && !multiBio); _biometricsPreference.setChecked(slots.has(BiometricSlot.class), true); @@ -319,7 +319,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { if (_prefs.isPinKeyboardEnabled()) { _pinKeyboardPreference.setChecked(false); - Toast.makeText(getContext(), R.string.pin_keyboard_disabled, Toast.LENGTH_SHORT).show(); + Toast.makeText(requireContext(), R.string.pin_keyboard_disabled, Toast.LENGTH_SHORT).show(); } } @@ -327,7 +327,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { public void onException(Exception e) { e.printStackTrace(); updateEncryptionPreferences(); - Dialogs.showErrorDialog(getContext(), R.string.encryption_set_password_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.encryption_set_password_error, e); } } @@ -352,7 +352,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { @Override public void onSlotInitializationFailed(int errorCode, @NonNull CharSequence errString) { if (!BiometricsHelper.isCanceled(errorCode)) { - Dialogs.showErrorDialog(getContext(), R.string.encryption_enable_biometrics_error, errString); + Dialogs.showErrorDialog(requireContext(), R.string.encryption_enable_biometrics_error, errString); } } } @@ -378,7 +378,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { @Override public void onException(Exception e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.encryption_set_password_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.encryption_set_password_error, e); } } @@ -388,7 +388,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment { if (result != null) { _pinKeyboardPreference.setChecked(true); } else { - Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity()) .setTitle(R.string.pin_keyboard_error) .setMessage(R.string.invalid_password) .setCancelable(false) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecurityPickerSlide.java b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecurityPickerSlide.java index b89dcb56..9af0a5dd 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecurityPickerSlide.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecurityPickerSlide.java @@ -46,7 +46,7 @@ public class SecurityPickerSlide extends SlideFragment { * if the API version is new enough, permission is granted and a scanner is found. */ private void updateBiometricsOption(boolean autoSelect) { - boolean canUseBio = BiometricsHelper.isAvailable(getContext()); + boolean canUseBio = BiometricsHelper.isAvailable(requireContext()); _bioButton.setEnabled(canUseBio); _bioText.setEnabled(canUseBio); @@ -66,7 +66,7 @@ public class SecurityPickerSlide extends SlideFragment { @Override public void onNotFinishedError() { - Toast.makeText(getContext(), R.string.snackbar_authentication_method, Toast.LENGTH_SHORT).show(); + Toast.makeText(requireContext(), R.string.snackbar_authentication_method, Toast.LENGTH_SHORT).show(); } @Override diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java index f5bf09ab..8611299c 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java @@ -84,7 +84,7 @@ public class SecuritySetupSlide extends SlideFragment { Strength strength = _zxcvbn.measure(_textPassword.getText()); _barPasswordStrength.setProgress(strength.getScore()); _barPasswordStrength.setProgressTintList(ColorStateList.valueOf(Color.parseColor(PasswordStrengthHelper.getColor(strength.getScore())))); - _textPasswordStrength.setText((_textPassword.getText().length() != 0) ? PasswordStrengthHelper.getString(strength.getScore(), getContext()) : ""); + _textPasswordStrength.setText((_textPassword.getText().length() != 0) ? PasswordStrengthHelper.getString(strength.getScore(), requireContext()) : ""); _textPasswordWrapper.setError(strength.getFeedback().getWarning()); strength.wipe(); } @@ -125,7 +125,7 @@ public class SecuritySetupSlide extends SlideFragment { private void deriveKey() { PasswordSlot slot = new PasswordSlot(); KeyDerivationTask.Params params = new KeyDerivationTask.Params(slot, EditTextHelper.getEditTextChars(_textPassword)); - KeyDerivationTask task = new KeyDerivationTask(getContext(), new PasswordDerivationListener()); + KeyDerivationTask task = new KeyDerivationTask(requireContext(), new PasswordDerivationListener()); task.execute(getLifecycle(), params); } @@ -153,7 +153,7 @@ public class SecuritySetupSlide extends SlideFragment { @Override public void onNotFinishedError() { if (!EditTextHelper.areEditTextsEqual(_textPassword, _textPasswordConfirm)) { - Toast.makeText(getContext(), R.string.password_equality_error, Toast.LENGTH_SHORT).show(); + Toast.makeText(requireContext(), R.string.password_equality_error, Toast.LENGTH_SHORT).show(); } else if (_cryptType != SecurityPickerSlide.CRYPT_TYPE_BIOMETRIC) { deriveKey(); } else if (!_creds.getSlots().has(BiometricSlot.class)) { @@ -175,7 +175,7 @@ public class SecuritySetupSlide extends SlideFragment { _creds.getSlots().add(slot); } catch (SlotException e) { e.printStackTrace(); - Dialogs.showErrorDialog(getContext(), R.string.enable_encryption_error, e); + Dialogs.showErrorDialog(requireContext(), R.string.enable_encryption_error, e); return; } @@ -201,7 +201,7 @@ public class SecuritySetupSlide extends SlideFragment { @Override public void onSlotInitializationFailed(int errorCode, @NonNull CharSequence errString) { if (!BiometricsHelper.isCanceled(errorCode)) { - Dialogs.showErrorDialog(getContext(), R.string.encryption_enable_biometrics_error, errString); + Dialogs.showErrorDialog(requireContext(), R.string.encryption_enable_biometrics_error, errString); } } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java index c1a631f6..075775a7 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java @@ -107,7 +107,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { RecyclerViewPreloader preloader = new RecyclerViewPreloader<>(Glide.with(this), modelProvider, _preloadSizeProvider, 10); _recyclerView.addOnScrollListener(preloader); - LinearLayoutManager layoutManager = new LinearLayoutManager(view.getContext()); + LinearLayoutManager layoutManager = new LinearLayoutManager(requireContext()); _recyclerView.setLayoutManager(layoutManager); _touchCallback = new SimpleItemTouchHelperCallback(_adapter); _touchHelper = new ItemTouchHelper(_touchCallback); @@ -115,7 +115,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { _recyclerView.setAdapter(_adapter); int resId = R.anim.layout_animation_fall_down; - LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(getContext(), resId); + LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(requireContext(), resId); _recyclerView.setLayoutAnimation(animation); _refresher = new UiRefresher(new UiRefresher.Listener() { @@ -376,9 +376,8 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { } public void runEntriesAnimation() { - final Context context = _recyclerView.getContext(); final LayoutAnimationController controller = - AnimationUtils.loadLayoutAnimation(context, R.anim.layout_animation_fall_down); + AnimationUtils.loadLayoutAnimation(requireContext(), R.anim.layout_animation_fall_down); _recyclerView.setLayoutAnimation(controller); _recyclerView.scheduleLayoutAnimation(); @@ -386,7 +385,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { private void initializeGroupChip() { View view = getLayoutInflater().inflate(R.layout.dialog_select_groups, null); - BottomSheetDialog dialog = new BottomSheetDialog(getContext()); + BottomSheetDialog dialog = new BottomSheetDialog(requireContext()); dialog.setContentView(view); ChipGroup chipGroup = view.findViewById(R.id.groupChipGroup); @@ -479,8 +478,8 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { float height = _viewMode.getDividerHeight(); if (_showProgress && height == 0) { - DividerItemDecoration divider = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL); - divider.setDrawable(ContextCompat.getDrawable(getContext(), R.drawable.entry_divider)); + DividerItemDecoration divider = new DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL); + divider.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.entry_divider)); _dividerDecoration = divider; } else { _dividerDecoration = new VerticalSpaceItemDecoration(height); @@ -518,7 +517,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { private VerticalSpaceItemDecoration(float dp) { // convert dp to pixels - _height = MetricsHelper.convertDpToPixels(getContext(), dp); + _height = MetricsHelper.convertDpToPixels(requireContext(), dp); } @Override diff --git a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java index ee0a2933..8a4fddaf 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java +++ b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java @@ -316,7 +316,7 @@ public class VaultManager { e.printStackTrace(); if (isDocsAction(intent.getAction())) { - Dialogs.showErrorDialog(fragment.getContext(), R.string.documentsui_error, e); + Dialogs.showErrorDialog(fragment.requireContext(), R.string.documentsui_error, e); } else { throw e; }