Pass Context instead of Activity where possible

This commit is contained in:
Alexander Bakker 2022-12-03 21:45:39 +01:00
parent caad516a6e
commit d7e2114811
6 changed files with 31 additions and 35 deletions

View file

@ -1,6 +1,5 @@
package com.beemdevelopment.aegis.ui.dialogs;
import android.app.Activity;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
@ -36,7 +35,6 @@ import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.helpers.EditTextHelper;
import com.beemdevelopment.aegis.helpers.PasswordStrengthHelper;
import com.beemdevelopment.aegis.importers.DatabaseImporter;
import com.beemdevelopment.aegis.ui.fragments.preferences.BackupsPreferencesFragment;
import com.beemdevelopment.aegis.ui.tasks.KeyDerivationTask;
import com.beemdevelopment.aegis.vault.VaultEntry;
import com.beemdevelopment.aegis.vault.slots.PasswordSlot;
@ -70,26 +68,26 @@ public class Dialogs {
dialog.show();
}
public static void showDeleteEntriesDialog(Activity activity, List<VaultEntry> services, DialogInterface.OnClickListener onDelete) {
View view = activity.getLayoutInflater().inflate(R.layout.dialog_delete_entry, null);
public static void showDeleteEntriesDialog(Context context, List<VaultEntry> services, DialogInterface.OnClickListener onDelete) {
View view = LayoutInflater.from(context).inflate(R.layout.dialog_delete_entry, null);
TextView textMessage = view.findViewById(R.id.text_message);
TextView textExplanation = view.findViewById(R.id.text_explanation);
String entries = services.stream()
.map(entry -> String.format("• %s", getVaultEntryName(activity, entry)))
.map(entry -> String.format("• %s", getVaultEntryName(context, entry)))
.collect(Collectors.joining("\n"));
textExplanation.setText(activity.getString(R.string.delete_entry_explanation, entries));
textExplanation.setText(context.getString(R.string.delete_entry_explanation, entries));
String title, message;
if (services.size() > 1) {
title = activity.getString(R.string.delete_entries);
message = activity.getResources().getQuantityString(R.plurals.delete_entries_description, services.size(), services.size());
title = context.getString(R.string.delete_entries);
message = context.getResources().getQuantityString(R.plurals.delete_entries_description, services.size(), services.size());
} else {
title = activity.getString(R.string.delete_entry);
message = activity.getString(R.string.delete_entry_description);
title = context.getString(R.string.delete_entry);
message = context.getString(R.string.delete_entry_description);
}
textMessage.setText(message);
showSecureDialog(new AlertDialog.Builder(activity)
showSecureDialog(new AlertDialog.Builder(context)
.setTitle(title)
.setView(view)
.setPositiveButton(android.R.string.yes, onDelete)
@ -109,10 +107,10 @@ public class Dialogs {
}
}
public static void showDiscardDialog(Activity activity, DialogInterface.OnClickListener onSave, DialogInterface.OnClickListener onDiscard) {
showSecureDialog(new AlertDialog.Builder(activity)
.setTitle(activity.getString(R.string.discard_changes))
.setMessage(activity.getString(R.string.discard_changes_description))
public static void showDiscardDialog(Context context, DialogInterface.OnClickListener onSave, DialogInterface.OnClickListener onDiscard) {
showSecureDialog(new AlertDialog.Builder(context)
.setTitle(context.getString(R.string.discard_changes))
.setMessage(context.getString(R.string.discard_changes_description))
.setPositiveButton(R.string.save, onSave)
.setNegativeButton(R.string.discard, onDiscard)
.create());
@ -297,15 +295,15 @@ public class Dialogs {
showSecureDialog(dialog);
}
public static void showTapToRevealTimeoutPickerDialog(Activity activity, int currentValue, NumberInputListener listener) {
View view = activity.getLayoutInflater().inflate(R.layout.dialog_number_picker, null);
public static void showTapToRevealTimeoutPickerDialog(Context context, int currentValue, NumberInputListener listener) {
View view = LayoutInflater.from(context).inflate(R.layout.dialog_number_picker, null);
NumberPicker numberPicker = view.findViewById(R.id.numberPicker);
numberPicker.setMinValue(1);
numberPicker.setMaxValue(60);
numberPicker.setValue(currentValue);
numberPicker.setWrapSelectorWheel(true);
AlertDialog dialog = new AlertDialog.Builder(activity)
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle(R.string.set_number)
.setView(view)
.setPositiveButton(android.R.string.ok, (dialog1, which) ->
@ -315,14 +313,14 @@ public class Dialogs {
showSecureDialog(dialog);
}
public static void showBackupVersionsPickerDialog(Activity activity, int currentVersionCount, NumberInputListener listener) {
public static void showBackupVersionsPickerDialog(Context context, int currentVersionCount, NumberInputListener listener) {
final int max = 30;
String[] numbers = new String[max / 5];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = Integer.toString(i * 5 + 5);
}
View view = activity.getLayoutInflater().inflate(R.layout.dialog_number_picker, null);
View view = LayoutInflater.from(context).inflate(R.layout.dialog_number_picker, null);
NumberPicker numberPicker = view.findViewById(R.id.numberPicker);
numberPicker.setDisplayedValues(numbers);
numberPicker.setMaxValue(numbers.length - 1);
@ -330,7 +328,7 @@ public class Dialogs {
numberPicker.setValue(currentVersionCount / 5 - 1);
numberPicker.setWrapSelectorWheel(false);
AlertDialog dialog = new AlertDialog.Builder(activity)
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle(R.string.set_number)
.setView(view)
.setPositiveButton(android.R.string.ok, (dialog1, which) ->

View file

@ -41,17 +41,17 @@ public abstract class SimpleWebViewDialog extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
final View view;
try {
view = LayoutInflater.from(requireActivity()).inflate(R.layout.dialog_web_view, null);
view = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_web_view, null);
} catch (InflateException e) {
e.printStackTrace();
return new AlertDialog.Builder(requireActivity())
return new AlertDialog.Builder(requireContext())
.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(requireActivity())
AlertDialog dialog = new AlertDialog.Builder(requireContext())
.setTitle(_title)
.setView(view)
.setPositiveButton(android.R.string.ok, null)

View file

@ -13,8 +13,6 @@ import com.beemdevelopment.aegis.ViewMode;
import com.beemdevelopment.aegis.ui.GroupManagerActivity;
import com.beemdevelopment.aegis.ui.dialogs.Dialogs;
import java.util.ArrayList;
public class AppearancePreferencesFragment extends PreferencesFragment {
private Preference _groupsPreference;
private Preference _resetUsageCountPreference;
@ -26,14 +24,14 @@ public class AppearancePreferencesFragment extends PreferencesFragment {
_groupsPreference = requirePreference("pref_groups");
_groupsPreference.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(requireActivity(), GroupManagerActivity.class);
Intent intent = new Intent(requireContext(), GroupManagerActivity.class);
startActivity(intent);
return true;
});
_resetUsageCountPreference = requirePreference("pref_reset_usage_count");
_resetUsageCountPreference.setOnPreferenceClickListener(preference -> {
Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity())
Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext())
.setTitle(R.string.preference_reset_usage_count)
.setMessage(R.string.preference_reset_usage_count_dialog)
.setPositiveButton(android.R.string.yes, (dialog, which) -> _prefs.clearUsageCount())
@ -48,7 +46,7 @@ public class AppearancePreferencesFragment extends PreferencesFragment {
darkModePreference.setOnPreferenceClickListener(preference -> {
int currentTheme1 = _prefs.getCurrentTheme().ordinal();
Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity())
Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext())
.setTitle(R.string.choose_theme)
.setSingleChoiceItems(R.array.theme_titles, currentTheme1, (dialog, which) -> {
int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
@ -83,7 +81,7 @@ public class AppearancePreferencesFragment extends PreferencesFragment {
viewModePreference.setOnPreferenceClickListener(preference -> {
int currentViewMode1 = _prefs.getCurrentViewMode().ordinal();
Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity())
Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext())
.setTitle(R.string.choose_view_mode)
.setSingleChoiceItems(R.array.view_mode_titles, currentViewMode1, (dialog, which) -> {
int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition();

View file

@ -104,7 +104,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment {
_backupsVersionsPreference = requirePreference("pref_backups_versions");
_backupsVersionsPreference.setSummary(getResources().getQuantityString(R.plurals.pref_backups_versions_summary, _prefs.getBackupsVersionCount(), _prefs.getBackupsVersionCount()));
_backupsVersionsPreference.setOnPreferenceClickListener(preference -> {
Dialogs.showBackupVersionsPickerDialog(requireActivity(), _prefs.getBackupsVersionCount(), number -> {
Dialogs.showBackupVersionsPickerDialog(requireContext(), _prefs.getBackupsVersionCount(), number -> {
number = number * 5 + 5;
_prefs.setBackupsVersionCount(number);
_backupsVersionsPreference.setSummary(getResources().getQuantityString(R.plurals.pref_backups_versions_summary, _prefs.getBackupsVersionCount(), _prefs.getBackupsVersionCount()));
@ -206,7 +206,7 @@ public class BackupsPreferencesFragment extends PreferencesFragment {
private void scheduleBackup() {
try {
_vaultManager.scheduleBackup();
Toast.makeText(requireActivity(), R.string.backup_successful, Toast.LENGTH_LONG).show();
Toast.makeText(requireContext(), R.string.backup_successful, Toast.LENGTH_LONG).show();
} catch (VaultRepositoryException e) {
e.printStackTrace();
Dialogs.showErrorDialog(requireContext(), R.string.backup_error, e);

View file

@ -147,7 +147,7 @@ public class ImportExportPreferencesFragment extends PreferencesFragment {
}
private void startImportEntriesActivity(DatabaseImporter.Definition importerDef, File file) {
Intent intent = new Intent(requireActivity(), ImportEntriesActivity.class);
Intent intent = new Intent(requireContext(), ImportEntriesActivity.class);
intent.putExtra("importerDef", importerDef);
intent.putExtra("file", file);
startActivityForResult(intent, CODE_IMPORT);

View file

@ -78,7 +78,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment {
Preference tapToRevealTimePreference = requirePreference("pref_tap_to_reveal_time");
tapToRevealTimePreference.setSummary(_prefs.getTapToRevealTime() + " seconds");
tapToRevealTimePreference.setOnPreferenceClickListener(preference -> {
Dialogs.showTapToRevealTimeoutPickerDialog(requireActivity(), _prefs.getTapToRevealTime(), number -> {
Dialogs.showTapToRevealTimeoutPickerDialog(requireContext(), _prefs.getTapToRevealTime(), number -> {
_prefs.setTapToRevealTime(number);
tapToRevealTimePreference.setSummary(number + " seconds");
getResult().putExtra("needsRefresh", true);
@ -459,7 +459,7 @@ public class SecurityPreferencesFragment extends PreferencesFragment {
if (result != null) {
_pinKeyboardPreference.setChecked(true);
} else {
Dialogs.showSecureDialog(new AlertDialog.Builder(requireActivity())
Dialogs.showSecureDialog(new AlertDialog.Builder(requireContext())
.setTitle(R.string.pin_keyboard_error)
.setMessage(R.string.invalid_password)
.setCancelable(false)