From 1a19bc9dc6bbc6e9fad834b453d54a2de908cd2f Mon Sep 17 00:00:00 2001 From: Muntashir Al-Islam Date: Tue, 9 Jul 2024 22:37:48 +0600 Subject: [PATCH] [Refactor] Replace custom toasts with UIUtils.display*Toast methods Signed-off-by: Muntashir Al-Islam --- .../details/AppDetailsComponentsFragment.java | 3 +-- .../manifest/ManifestViewerActivity.java | 4 ++-- .../filters/EditFilterOptionFragment.java | 8 ++++---- .../intercept/ActivityInterceptor.java | 8 ++------ .../intercept/AddIntentExtraFragment.java | 16 +++++----------- .../AppManager/logcat/LogViewerActivity.java | 6 ++---- .../logcat/LogcatRecordingService.java | 12 ++---------- .../logcat/RecordLogDialogFragment.java | 4 ++-- .../oneclickops/OneClickOpsActivity.java | 6 ------ .../profiles/AppsProfileActivity.java | 3 +-- .../AppManager/profiles/ProfilesActivity.java | 15 +++++++-------- .../AppManager/scanner/ScannerActivity.java | 4 ++-- .../settings/ImportExportRulesPreferences.java | 7 +++---- .../AppManager/settings/MainPreferences.java | 4 ++-- .../sharedpref/EditPrefItemFragment.java | 12 ++++-------- .../muntashirakon/AppManager/utils/UIUtils.java | 17 +++++++++++++++++ 16 files changed, 56 insertions(+), 73 deletions(-) diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsComponentsFragment.java b/app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsComponentsFragment.java index 0c58f995957..94ebcd8dbdf 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsComponentsFragment.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsComponentsFragment.java @@ -22,7 +22,6 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import androidx.annotation.IntDef; import androidx.annotation.MainThread; @@ -658,7 +657,7 @@ private void getServicesView(@NonNull Context context, @NonNull ViewHolder holde ActivityManagerCompat.startService(intent, mUserId, true); } catch (Throwable th) { th.printStackTrace(); - Toast.makeText(context, th.toString(), Toast.LENGTH_LONG).show(); + UIUtils.displayShortToast(th.toString()); } }); holder.launchBtn.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/details/manifest/ManifestViewerActivity.java b/app/src/main/java/io/github/muntashirakon/AppManager/details/manifest/ManifestViewerActivity.java index ccfa8744098..2683c267693 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/details/manifest/ManifestViewerActivity.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/details/manifest/ManifestViewerActivity.java @@ -8,7 +8,6 @@ import android.os.Bundle; import android.view.MenuItem; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.UiThread; @@ -21,6 +20,7 @@ import io.github.muntashirakon.AppManager.apk.ApkSource; import io.github.muntashirakon.AppManager.editor.CodeEditorFragment; import io.github.muntashirakon.AppManager.intercept.IntentCompat; +import io.github.muntashirakon.AppManager.utils.UIUtils; public class ManifestViewerActivity extends BaseActivity { public static final String EXTRA_PACKAGE_NAME = "pkg"; @@ -66,7 +66,7 @@ protected void onAuthenticated(Bundle savedInstanceState) { @UiThread private void showErrorAndFinish() { - Toast.makeText(this, getString(R.string.error), Toast.LENGTH_LONG).show(); + UIUtils.displayShortToast(R.string.error); finish(); } diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/filters/EditFilterOptionFragment.java b/app/src/main/java/io/github/muntashirakon/AppManager/filters/EditFilterOptionFragment.java index bf4cb93b86d..300bd3fb747 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/filters/EditFilterOptionFragment.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/filters/EditFilterOptionFragment.java @@ -28,7 +28,6 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckedTextView; -import android.widget.Toast; import androidx.annotation.LayoutRes; import androidx.annotation.NonNull; @@ -57,10 +56,11 @@ import io.github.muntashirakon.AppManager.R; import io.github.muntashirakon.AppManager.filters.options.FilterOption; import io.github.muntashirakon.AppManager.filters.options.FilterOptions; -import io.github.muntashirakon.util.AdapterUtils; import io.github.muntashirakon.AppManager.utils.ContextUtils; import io.github.muntashirakon.AppManager.utils.DateUtils; +import io.github.muntashirakon.AppManager.utils.UIUtils; import io.github.muntashirakon.adapters.SelectedArrayAdapter; +import io.github.muntashirakon.util.AdapterUtils; import io.github.muntashirakon.view.TextInputLayoutCompat; import io.github.muntashirakon.widget.MaterialSpinner; import io.github.muntashirakon.widget.RecyclerView; @@ -252,7 +252,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { builder.setView(view) .setPositiveButton(editMode ? R.string.update : R.string.add, (dialog, which) -> { if (mCurrentFilterOption == null) { - Toast.makeText(getActivity(), R.string.key_name_cannot_be_null, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.key_name_cannot_be_null); return; } WrappedFilterOption newWrappedFilterOption; @@ -268,7 +268,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { mCurrentFilterOption.setKeyValue(mCurrentKey, TextUtils.isEmpty(editable) ? null : editable.toString()); } catch (Exception e) { e.printStackTrace(); - Toast.makeText(getActivity(), R.string.error_evaluating_input, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.error_evaluating_input); return; } if (editMode) { diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/intercept/ActivityInterceptor.java b/app/src/main/java/io/github/muntashirakon/AppManager/intercept/ActivityInterceptor.java index 5727256fd22..2b2c844a063 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/intercept/ActivityInterceptor.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/intercept/ActivityInterceptor.java @@ -27,7 +27,6 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; @@ -239,8 +238,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) { showResetIntentButton(true); refreshUI(); } catch (Exception e) { - Toast.makeText(ActivityInterceptor.this, e.getMessage(), - Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(e.getMessage()); e.printStackTrace(); } } @@ -313,9 +311,7 @@ public void afterTextChanged(Editable s) { refreshUI(); Uri uri = data == null ? null : data.getData(); - Toast.makeText(ActivityInterceptor.this, - String.format("%s: (%s)", getString(R.string.activity_result), uri), - Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast("%s: (%s)", getString(R.string.activity_result), uri); }); @Override diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/intercept/AddIntentExtraFragment.java b/app/src/main/java/io/github/muntashirakon/AppManager/intercept/AddIntentExtraFragment.java index b400987597e..cd8dfa11eb0 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/intercept/AddIntentExtraFragment.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/intercept/AddIntentExtraFragment.java @@ -4,16 +4,13 @@ import static io.github.muntashirakon.AppManager.intercept.IntentCompat.parseExtraValue; -import android.annotation.SuppressLint; import android.app.Dialog; import android.os.Bundle; import android.text.TextUtils; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; -import android.widget.Toast; import androidx.annotation.IntDef; import androidx.annotation.NonNull; @@ -29,6 +26,7 @@ import java.io.Serializable; import io.github.muntashirakon.AppManager.R; +import io.github.muntashirakon.AppManager.utils.UIUtils; import io.github.muntashirakon.adapters.SelectedArrayAdapter; import io.github.muntashirakon.widget.MaterialSpinner; @@ -139,11 +137,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { Bundle args = requireArguments(); ExtraItem extraItem = (ExtraItem) args.getSerializable(ARG_PREF_ITEM); @Mode int mode = args.getInt(ARG_MODE, MODE_CREATE); - - LayoutInflater inflater = LayoutInflater.from(activity); - if (inflater == null) return super.onCreateDialog(savedInstanceState); - @SuppressLint("InflateParams") - View view = inflater.inflate(R.layout.dialog_edit_pref_item, null); + View view = View.inflate(activity, R.layout.dialog_edit_pref_item, null); MaterialSpinner spinner = view.findViewById(R.id.type_selector_spinner); ArrayAdapter spinnerAdapter = SelectedArrayAdapter.createFromResource(activity, R.array.extras_types, io.github.muntashirakon.ui.R.layout.auto_complete_dropdown_item); @@ -229,7 +223,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { .setPositiveButton(mode == MODE_CREATE ? R.string.add : R.string.done, (dialog, which) -> { if (mOnSaveListener == null) return; if (editKeyName.getText() == null) { - Toast.makeText(getActivity(), R.string.key_name_cannot_be_null, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.key_name_cannot_be_null); return; } String keyName = editKeyName.getText().toString().trim(); @@ -241,7 +235,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { } newExtraItem.type = mCurrentType; if (TextUtils.isEmpty(newExtraItem.keyName)) { - Toast.makeText(getActivity(), R.string.key_name_cannot_be_null, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.key_name_cannot_be_null); return; } try { @@ -252,7 +246,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { } } catch (Exception e) { e.printStackTrace(); - Toast.makeText(getActivity(), R.string.error_evaluating_input, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.error_evaluating_input); return; } mOnSaveListener.onSave(mode, newExtraItem); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogViewerActivity.java b/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogViewerActivity.java index 5c7e96387da..545d2cceca3 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogViewerActivity.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogViewerActivity.java @@ -14,7 +14,6 @@ import android.view.MenuItem; import android.view.View; import android.widget.TextView; -import android.widget.Toast; import androidx.activity.result.ActivityResult; import androidx.activity.result.contract.ActivityResultContracts; @@ -126,7 +125,7 @@ public static void startChooser(@NonNull Context context, @Nullable String subje context.startActivity(Intent.createChooser(actionSendIntent, context.getResources().getText(R.string.send_log_title)) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); } catch (Exception e) { - Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(e.getMessage()); } } @@ -287,8 +286,7 @@ private void applyFiltersFromIntent(@Nullable Intent intent) { if (!TextUtils.isEmpty(level)) { int logLevelLimit = LogLine.convertCharToLogLevel(level.charAt(0)); if (logLevelLimit == -1) { - String invalidLevel = getString(R.string.toast_invalid_level, level); - Toast.makeText(this, invalidLevel, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.toast_invalid_level, level); } else { mViewModel.setLogLevel(logLevelLimit); search(mSearchQuery); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogcatRecordingService.java b/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogcatRecordingService.java index a5fa6b33ec5..089b7761444 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogcatRecordingService.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogcatRecordingService.java @@ -8,10 +8,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; -import android.os.Handler; -import android.os.Looper; import android.os.PowerManager; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -42,6 +39,7 @@ import io.github.muntashirakon.AppManager.utils.CpuUtils; import io.github.muntashirakon.AppManager.utils.NotificationUtils; import io.github.muntashirakon.AppManager.utils.ThreadUtils; +import io.github.muntashirakon.AppManager.utils.UIUtils; /** * Reads logs. @@ -63,7 +61,6 @@ public class LogcatRecordingService extends ForegroundService { private final Object mLock = new Object(); private LogcatReader mReader; private boolean mKilled; - private Handler mHandler; private QueuedProgressHandler mProgressHandler; private PowerManager.WakeLock mWakeLock; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @@ -85,7 +82,6 @@ public void onCreate() { IntentFilter intentFilter = new IntentFilter(ACTION_STOP_RECORDING); intentFilter.addDataScheme(URI_SCHEME); ContextCompat.registerReceiver(this, mReceiver, intentFilter, ContextCompat.RECEIVER_NOT_EXPORTED); - mHandler = new Handler(Looper.getMainLooper()); mWakeLock = CpuUtils.getPartialWakeLock("logcat_recorder"); mWakeLock.acquire(); } @@ -100,7 +96,7 @@ private void initializeReader(@NonNull LogcatReaderLoader loader) { // it's ready to record } if (!mKilled) { - makeToast(R.string.log_recording_started, Toast.LENGTH_SHORT); + ThreadUtils.postOnMainThread(() -> UIUtils.displayShortToast(R.string.log_recording_started)); } } catch (IOException e) { Log.e(TAG, e); @@ -220,10 +216,6 @@ private PendingIntent getLogcatActivityToViewSavedFile(String filename) { } - private void makeToast(final int stringResId, final int toastLength) { - mHandler.post(() -> Toast.makeText(LogcatRecordingService.this, stringResId, toastLength).show()); - } - private void killProcess() { if (!mKilled) { synchronized (mLock) { diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/logcat/RecordLogDialogFragment.java b/app/src/main/java/io/github/muntashirakon/AppManager/logcat/RecordLogDialogFragment.java index 826906ab451..fa3122d7885 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/logcat/RecordLogDialogFragment.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/logcat/RecordLogDialogFragment.java @@ -8,7 +8,6 @@ import android.content.Intent; import android.os.Bundle; import android.widget.Button; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -28,6 +27,7 @@ import io.github.muntashirakon.AppManager.settings.LogViewerPreferences; import io.github.muntashirakon.AppManager.settings.Prefs; import io.github.muntashirakon.AppManager.utils.ThreadUtils; +import io.github.muntashirakon.AppManager.utils.UIUtils; import io.github.muntashirakon.dialog.TextInputDialogBuilder; import io.github.muntashirakon.dialog.TextInputDropdownDialogBuilder; @@ -78,7 +78,7 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { .setInputText(logFilename) .setPositiveButton(R.string.ok, (dialog, which, inputText, isChecked) -> { if (SaveLogHelper.isInvalidFilename(inputText)) { - Toast.makeText(mActivity, R.string.enter_good_filename, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.enter_good_filename); } else { //noinspection ConstantConditions String filename = inputText.toString(); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/oneclickops/OneClickOpsActivity.java b/app/src/main/java/io/github/muntashirakon/AppManager/oneclickops/OneClickOpsActivity.java index 8b4246558ff..6da13188401 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/oneclickops/OneClickOpsActivity.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/oneclickops/OneClickOpsActivity.java @@ -17,7 +17,6 @@ import android.text.SpannableStringBuilder; import android.view.MenuItem; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -418,11 +417,6 @@ private void clearData(@NonNull List candidatePackages) { .show(); } - private void clearAppCache() { - // TODO - Toast.makeText(this, "Not implemented yet.", Toast.LENGTH_SHORT).show(); - } - @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item.getItemId() == android.R.id.home) { diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/profiles/AppsProfileActivity.java b/app/src/main/java/io/github/muntashirakon/AppManager/profiles/AppsProfileActivity.java index 82e4e9bab13..5da03d61136 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/profiles/AppsProfileActivity.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/profiles/AppsProfileActivity.java @@ -16,7 +16,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -244,7 +243,7 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) { .setNegativeButton(R.string.cancel, null) .setPositiveButton(R.string.go, (dialog, which, profName, isChecked) -> { if (TextUtils.isEmpty(profName)) { - Toast.makeText(this, R.string.failed_to_duplicate_profile, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.failed_to_duplicate_profile); return; } progressIndicator.show(); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/profiles/ProfilesActivity.java b/app/src/main/java/io/github/muntashirakon/AppManager/profiles/ProfilesActivity.java index cce234a92db..90f7bcbeee3 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/profiles/ProfilesActivity.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/profiles/ProfilesActivity.java @@ -17,7 +17,6 @@ import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; -import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; @@ -80,10 +79,10 @@ public class ProfilesActivity extends BaseActivity { Path profilePath = ProfileManager.findProfilePathById(mProfileId); AppsProfile profile = AppsProfile.fromPath(profilePath); profile.write(os); - Toast.makeText(this, R.string.the_export_was_successful, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.the_export_was_successful); } catch (IOException | JSONException e) { Log.e(TAG, "Error: ", e); - Toast.makeText(this, R.string.export_failed, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.export_failed); } } }); @@ -104,12 +103,12 @@ public class ProfilesActivity extends BaseActivity { try (OutputStream os = innerProfilePath.openOutputStream()) { newProfile.write(os); } - Toast.makeText(this, R.string.the_import_was_successful, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.the_import_was_successful); // Load imported profile startActivity(AppsProfileActivity.getProfileIntent(this, newProfile.profileId)); } catch (IOException | JSONException e) { Log.e(TAG, "Error: ", e); - Toast.makeText(this, R.string.import_failed, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.import_failed); } }); @@ -247,15 +246,15 @@ public void onBindViewHolder(@NonNull ViewHolder holder, int position) { .setPositiveButton(R.string.cancel, null) .setNegativeButton(R.string.ok, (dialog, which) -> { if (ProfileManager.deleteProfile(profile.profileId)) { - Toast.makeText(mActivity, R.string.deleted_successfully, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.deleted_successfully); } else { - Toast.makeText(mActivity, R.string.deletion_failed, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.deletion_failed); } }) .show(); } else if (id == R.id.action_routine_ops) { // TODO(7/11/20): Setup routine operations for this profile - Toast.makeText(mActivity, "Not yet implemented", Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast("Not yet implemented"); } else if (id == R.id.action_duplicate) { new TextInputDialogBuilder(mActivity, R.string.input_profile_name) .setTitle(R.string.new_profile) diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/scanner/ScannerActivity.java b/app/src/main/java/io/github/muntashirakon/AppManager/scanner/ScannerActivity.java index 0b556b94bac..85d672cc11a 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/scanner/ScannerActivity.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/scanner/ScannerActivity.java @@ -9,7 +9,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -30,6 +29,7 @@ import io.github.muntashirakon.AppManager.intercept.IntentCompat; import io.github.muntashirakon.AppManager.settings.FeatureController; import io.github.muntashirakon.AppManager.utils.FileUtils; +import io.github.muntashirakon.AppManager.utils.UIUtils; import io.github.muntashirakon.io.IoUtils; // Copyright 2015 Google, Inc. @@ -68,7 +68,7 @@ protected void onAuthenticated(Bundle savedInstanceState) { mApkUri = IntentCompat.getDataUri(intent); if (mApkUri == null) { - Toast.makeText(this, getString(R.string.error), Toast.LENGTH_LONG).show(); + UIUtils.displayShortToast(R.string.error); finish(); return; } diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/settings/ImportExportRulesPreferences.java b/app/src/main/java/io/github/muntashirakon/AppManager/settings/ImportExportRulesPreferences.java index 14011243708..b70a394ea8f 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/settings/ImportExportRulesPreferences.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/settings/ImportExportRulesPreferences.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.os.UserHandleHidden; import android.text.SpannableStringBuilder; -import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; @@ -163,7 +162,7 @@ public int getTitle() { private void importExistingRules(final boolean systemApps) { if (!SelfPermissions.canModifyAppComponentStates(UserHandleHidden.myUserId(), null, true)) { - Toast.makeText(requireContext(), R.string.only_works_in_root_or_adb_mode, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.only_works_in_root_or_adb_mode); return; } ProgressIndicatorCompat.setVisibility(mActivity.progressIndicator, true); @@ -187,7 +186,7 @@ private void importExistingRules(final boolean systemApps) { private void displayImportExistingRulesPackageSelectionDialog(@NonNull List itemCounts) { if (itemCounts.isEmpty()) { ProgressIndicatorCompat.setVisibility(mActivity.progressIndicator, false); - Toast.makeText(requireContext(), R.string.no_matching_package_found, Toast.LENGTH_SHORT).show(); + UIUtils.displayShortToast(R.string.no_matching_package_found); return; } final List packages = new ArrayList<>(); @@ -197,7 +196,7 @@ private void displayImportExistingRulesPackageSelectionDialog(@NonNull List spinnerAdapter = SelectedArrayAdapter.createFromResource(activity, R.array.shared_pref_types, io.github.muntashirakon.ui.R.layout.auto_complete_dropdown_item); @@ -202,7 +198,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { newPrefItem.keyName = editKeyName.getText().toString(); } if (newPrefItem.keyName == null) { - Toast.makeText(getActivity(), R.string.key_name_cannot_be_null, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.key_name_cannot_be_null); return; } @@ -229,7 +225,7 @@ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { } } catch (Exception e) { e.printStackTrace(); - Toast.makeText(getActivity(), R.string.error_evaluating_input, Toast.LENGTH_LONG).show(); + UIUtils.displayLongToast(R.string.error_evaluating_input); return; } mInterfaceCommunicator.sendInfo(mode, newPrefItem); diff --git a/app/src/main/java/io/github/muntashirakon/AppManager/utils/UIUtils.java b/app/src/main/java/io/github/muntashirakon/AppManager/utils/UIUtils.java index e9d4783ec6b..6ad8f6b8710 100644 --- a/app/src/main/java/io/github/muntashirakon/AppManager/utils/UIUtils.java +++ b/app/src/main/java/io/github/muntashirakon/AppManager/utils/UIUtils.java @@ -288,6 +288,16 @@ public static AdvancedSearchView setupAdvancedSearchView(@NonNull ActionBar acti return searchView; } + @UiThread + public static void displayShortToast(CharSequence message) { + Toast.makeText(ContextUtils.getContext(), message, Toast.LENGTH_SHORT).show(); + } + + @UiThread + public static void displayShortToast(String format, Object... args) { + Toast.makeText(ContextUtils.getContext(), String.format(Locale.getDefault(), format, args), Toast.LENGTH_SHORT).show(); + } + @UiThread public static void displayShortToast(@StringRes int res) { Toast.makeText(ContextUtils.getContext(), res, Toast.LENGTH_SHORT).show(); @@ -304,6 +314,13 @@ public static void displayLongToast(CharSequence message) { Toast.makeText(ContextUtils.getContext(), message, Toast.LENGTH_LONG).show(); } + + @UiThread + public static void displayLongToast(String format, Object... args) { + Toast.makeText(ContextUtils.getContext(), String.format(Locale.getDefault(), format, args), + Toast.LENGTH_LONG).show(); + } + @UiThread public static void displayLongToast(@StringRes int res) { Toast.makeText(ContextUtils.getContext(), res, Toast.LENGTH_LONG).show();