refactor: migrate Dialogs to MD3

This commit is contained in:
proletarius101 2024-03-15 22:20:04 +08:00
parent e465021fee
commit af2d2e62ae
11 changed files with 33 additions and 23 deletions

View File

@ -40,7 +40,6 @@ import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.core.content.ContextCompat;
@ -48,6 +47,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.materialswitch.MaterialSwitch;
import com.google.android.material.progressindicator.CircularProgressIndicator;
import com.google.zxing.integration.android.IntentIntegrator;
@ -455,7 +455,7 @@ public class SwapWorkflowActivity extends AppCompatActivity {
}
private void promptToSelectWifiNetwork() {
new AlertDialog.Builder(this)
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.swap_join_same_wifi)
.setMessage(R.string.swap_join_same_wifi_desc)
.setNeutralButton(R.string.cancel, (dialog, which) -> {

View File

@ -7,9 +7,10 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.NotificationManagerCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fdroid.fdroid.BuildConfig;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.views.main.MainActivity;
@ -41,7 +42,7 @@ public class HidingManager {
public static void showHideDialog(final Context context) {
String appName = context.getString(R.string.app_name);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
builder.setTitle(context.getString(R.string.hiding_dialog_title, appName));
builder.setMessage(context.getString(R.string.hiding_dialog_message, appName,
HidingManager.getUnhidePin(context), context.getString(R.string.hiding_calculator)));

View File

@ -17,7 +17,6 @@ import android.util.TypedValue;
import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.preference.ListPreference;
@ -26,6 +25,8 @@ import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreferenceCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fdroid.fdroid.Preferences;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.installer.PrivilegedInstaller;
@ -234,7 +235,7 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
requireActivity().finish();
};
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity());
builder.setTitle(getString(R.string.panic_app_dialog_title));
CharSequence app = getString(R.string.panic_app_unknown_app);
@ -266,7 +267,7 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
private void showHideConfirmationDialog() {
String appName = getString(R.string.app_name);
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity());
builder.setTitle(R.string.panic_hide_warning_title);
builder.setMessage(getString(R.string.panic_hide_warning_message, appName,
HidingManager.getUnhidePin(requireActivity()), getString(R.string.hiding_calculator)));

View File

@ -26,10 +26,11 @@ import android.util.TypedValue;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fdroid.fdroid.R;
public class ErrorDialogActivity extends FragmentActivity {
@ -46,7 +47,7 @@ public class ErrorDialogActivity extends FragmentActivity {
final String message = intent.getStringExtra(EXTRA_MESSAGE);
// pass the theme, it is not automatically applied due to activity's Theme.NoDisplay
final AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppThemeDialog);
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.AppThemeDialog);
builder.setTitle(title);
builder.setNeutralButton(R.string.ok, (dialog, which) -> {
setResult(AppCompatActivity.RESULT_OK);

View File

@ -8,11 +8,12 @@ import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.apache.commons.io.FileUtils;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.Utils;
@ -102,7 +103,7 @@ public class FileInstallerActivity extends FragmentActivity {
private void showDialog() {
// pass the theme, it is not automatically applied due to activity's Theme.NoDisplay
final AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.Theme_App);
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.Theme_App);
builder.setMessage(R.string.app_permission_storage)
.setPositiveButton(R.string.ok, (dialog, id) -> ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},

View File

@ -44,6 +44,8 @@ import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fdroid.fdroid.Preferences;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.Utils;
@ -206,7 +208,7 @@ public class AppSecurityPermissions {
dialog.dismiss();
}
PackageManager pm = getContext().getPackageManager();
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext());
builder.setTitle(group.label);
if (perm.descriptionRes != 0) {
builder.setMessage(perm.loadDescription(pm));

View File

@ -26,10 +26,11 @@ import android.os.Bundle;
import android.util.Log;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.data.Apk;
import org.fdroid.fdroid.data.App;
@ -82,7 +83,7 @@ public class UninstallDialogActivity extends FragmentActivity {
}
// pass the theme, it is not automatically applied due to activity's Theme.NoDisplay
final AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.Theme_App);
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.Theme_App);
builder.setTitle(appInfo.loadLabel(pm));
builder.setIcon(appInfo.loadIcon(pm));
builder.setPositiveButton(android.R.string.ok, (dialog, which) -> {

View File

@ -51,6 +51,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fdroid.database.AppPrefs;
import org.fdroid.database.AppVersion;
@ -363,7 +364,7 @@ public class AppDetailsActivity extends AppCompatActivity
}
if (!apk.compatible) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(R.string.installIncompatible);
builder.setPositiveButton(R.string.yes, (dialog, whichButton) -> initiateInstall(apk));
builder.setNegativeButton(R.string.no, (dialog, whichButton) -> {
@ -374,7 +375,7 @@ public class AppDetailsActivity extends AppCompatActivity
}
if (app.installedSigner != null && apk.signer != null
&& !apk.signer.equals(app.installedSigner)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(R.string.SignatureMismatch).setPositiveButton(
R.string.ok, (dialog, id) -> dialog.cancel());
AlertDialog alert = builder.create();
@ -615,7 +616,9 @@ public class AppDetailsActivity extends AppCompatActivity
if (!TextUtils.isEmpty(errorMessage) && !isFinishing()) {
Log.e(TAG, "uninstall aborted with errorMessage: " + errorMessage);
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(AppDetailsActivity.this);
MaterialAlertDialogBuilder alertBuilder = new MaterialAlertDialogBuilder(
AppDetailsActivity.this
);
Uri uri = intent.getData();
if (uri == null) {
alertBuilder.setTitle(getString(R.string.uninstall_error_notify_title, ""));

View File

@ -33,7 +33,6 @@ import androidx.annotation.DrawableRes;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.compose.ui.platform.ComposeView;
import androidx.compose.ui.platform.ViewCompositionStrategy;
import androidx.core.content.ContextCompat;
@ -51,6 +50,7 @@ import androidx.recyclerview.widget.LinearSmoothScroller;
import androidx.recyclerview.widget.RecyclerView;
import androidx.transition.TransitionManager;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import org.apache.commons.io.FilenameUtils;
@ -963,7 +963,7 @@ public class AppDetailsRecyclerViewAdapter
message = showIncompatible;
}
new AlertDialog.Builder(context)
new MaterialAlertDialogBuilder(context)
.setTitle(title)
.setMessage(message)
.setPositiveButton(R.string.menu_settings, (dialog, which) -> {

View File

@ -32,7 +32,6 @@ import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NavUtils;
import androidx.core.app.TaskStackBuilder;
@ -193,7 +192,7 @@ public class ManageReposActivity extends AppCompatActivity implements RepoAdapte
@Override
public void onToggleEnabled(Repository repo) {
if (repo.getEnabled()) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this);
builder.setMessage(R.string.repo_disable_warning);
builder.setPositiveButton(R.string.repo_disable_warning_button, (dialog, id) -> {
disableRepo(repo);

View File

@ -38,6 +38,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import org.fdroid.database.AppDao;
@ -453,7 +454,7 @@ public class RepoDetailsActivity extends AppCompatActivity {
}
private void promptForDelete() {
new AlertDialog.Builder(this)
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.repo_confirm_delete_title)
.setMessage(R.string.repo_confirm_delete_body)
.setPositiveButton(R.string.delete, (dialog, which) -> {
@ -470,7 +471,7 @@ public class RepoDetailsActivity extends AppCompatActivity {
private void showChangePasswordDialog(final View parentView) {
final View view = getLayoutInflater().inflate(R.layout.login, (ViewGroup) parentView, false);
final AlertDialog credentialsDialog = new AlertDialog.Builder(this).setView(view).create();
final AlertDialog credentialsDialog = new MaterialAlertDialogBuilder(this).setView(view).create();
final TextInputLayout nameInputLayout = view.findViewById(R.id.edit_name);
final TextInputLayout passwordInputLayout = view.findViewById(R.id.edit_password);
final EditText nameInput = nameInputLayout.getEditText();