Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b876d5f2 authored by Ivan Chiang's avatar Ivan Chiang
Browse files

[PM] Support material AlertDialog (5/N)

- Update the MaterialAlertdialog to Uninstallation confimration
- Update the keep data layout

Flag: android.content.pm.use_pia_v2
Test: manual
Bug: 274120822
Change-Id: I5ba45a4360727bd1ba8ea42cb4edcce711b56dd2
parent fefd718a
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -23,11 +23,17 @@
    android:orientation="horizontal"
    android:visibility="gone" >

    <FrameLayout
        android:layout_width="40dp"
        android:layout_height="40dp">

        <CheckBox
            android:id="@+id/keep_data_checkbox"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
        android:layout_margin="@dimen/checkbox_margin" />
            android:layout_gravity="center" />

    </FrameLayout>

    <LinearLayout
        android:layout_height="wrap_content"
+0 −1
Original line number Diff line number Diff line
@@ -50,6 +50,5 @@
    <dimen name="dialog_inter_element_margin">16dp</dimen>
    <dimen name="alert_dialog_inner_padding">24dp</dimen>
    <dimen name="button_min_height">40dp</dimen>
    <dimen name="checkbox_margin">4dp</dimen>
    <dimen name="dialog_inter_element_vertical_margin">12dp</dimen>
</resources>
+32 −4
Original line number Diff line number Diff line
@@ -97,6 +97,20 @@ public class UiUtil {
                /* themeResId= */ 0);
    }

    /**
     * If material design is enabled, return the MaterialAlertDialog. Otherwise, return the
     * system AlertDialog.
     */
    public static Dialog getAlertDialog(@NonNull Context context, @NonNull String title,
            @NonNull View contentView, @NonNull String positiveBtnText,
            @NonNull String negativeBtnText,
            @Nullable DialogInterface.OnClickListener positiveBtnListener,
            @Nullable DialogInterface.OnClickListener negativeBtnListener) {
        return getAlertDialog(context, title, contentView, positiveBtnText,
                negativeBtnText, positiveBtnListener, negativeBtnListener,
                /* themeResId= */ 0);
    }

    /**
     * If material design is enabled, return the MaterialAlertDialog. Otherwise, return the
     * system AlertDialog.
@@ -105,19 +119,33 @@ public class UiUtil {
            @NonNull String title, @NonNull View contentView, int positiveBtnTextResId,
            int negativeBtnTextResId, @Nullable DialogInterface.OnClickListener positiveBtnListener,
            @Nullable DialogInterface.OnClickListener negativeBtnListener, int themeResId) {
        return getAlertDialog(context, title, contentView, context.getString(positiveBtnTextResId),
                context.getString(negativeBtnTextResId), positiveBtnListener, negativeBtnListener,
                themeResId);
    }

    /**
     * If material design is enabled, return the MaterialAlertDialog. Otherwise, return the
     * system AlertDialog.
     */
    public static Dialog getAlertDialog(@NonNull Context context,
            @NonNull String title, @NonNull View contentView, @NonNull String positiveBtnText,
            @NonNull String negativeBtnText,
            @Nullable DialogInterface.OnClickListener positiveBtnListener,
            @Nullable DialogInterface.OnClickListener negativeBtnListener, int themeResId) {
        if (PackageUtil.isMaterialDesignEnabled(context)) {
            return new MaterialAlertDialogBuilder(context, themeResId)
                    .setTitle(title)
                    .setView(contentView)
                    .setPositiveButton(positiveBtnTextResId, positiveBtnListener)
                    .setNegativeButton(negativeBtnTextResId, negativeBtnListener)
                    .setPositiveButton(positiveBtnText, positiveBtnListener)
                    .setNegativeButton(negativeBtnText, negativeBtnListener)
                    .create();
        } else {
            return new AlertDialog.Builder(context, themeResId)
                    .setTitle(title)
                    .setView(contentView)
                    .setPositiveButton(positiveBtnTextResId, positiveBtnListener)
                    .setNegativeButton(negativeBtnTextResId, negativeBtnListener)
                    .setPositiveButton(positiveBtnText, positiveBtnListener)
                    .setNegativeButton(negativeBtnText, negativeBtnListener)
                    .create();
        }
    }
+7 −11
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import static com.android.packageinstaller.v2.model.PackageUtil.ARGS_BUTTON_TEXT
import static com.android.packageinstaller.v2.model.PackageUtil.ARGS_MESSAGE;
import static com.android.packageinstaller.v2.model.PackageUtil.ARGS_TITLE;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
@@ -42,6 +41,7 @@ import androidx.fragment.app.DialogFragment;
import com.android.packageinstaller.R;
import com.android.packageinstaller.v2.model.PackageUtil.AppSnippet;
import com.android.packageinstaller.v2.model.UninstallUserActionRequired;
import com.android.packageinstaller.v2.ui.UiUtil;
import com.android.packageinstaller.v2.ui.UninstallActionListener;

/**
@@ -115,16 +115,12 @@ public class UninstallConfirmationFragment extends DialogFragment {
            mKeepData = keepDataLayout.requireViewById(R.id.keep_data_checkbox);
        }

        AlertDialog.Builder builder = new AlertDialog.Builder(requireContext())
                .setTitle(mDialogData.getTitle())
                .setView(dialogView)
                .setPositiveButton(mDialogData.getButtonText(),
        return UiUtil.getAlertDialog(requireContext(), mDialogData.getTitle(), dialogView,
                mDialogData.getButtonText(), getString(R.string.button_cancel),
                (dialogInt, which) -> mUninstallActionListener.onPositiveResponse(
                        mKeepData != null && mKeepData.isChecked()))
                .setNegativeButton(R.string.button_cancel,
                    (dialogInt, which) -> mUninstallActionListener.onNegativeResponse());

        return builder.create();
                        mKeepData != null && mKeepData.isChecked()),
                (dialogInt, which) ->
                        mUninstallActionListener.onNegativeResponse());
    }

    @Override