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

Commit c57ab6ee authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Fix description when erase esim

R.id.sud_layout_description no longer works any more, migrate to
setDescriptionText().

Fix: 365582830
Flag: EXEMPT bug fix
Test: manual - on erase all data
Test: atest MainClearConfirmTest
Change-Id: Icfb492ada862fb0584ffdb8da440d94ce719e518
parent d90a5dcf
Loading
Loading
Loading
Loading
+1 −17
Original line number Diff line number Diff line
@@ -19,21 +19,5 @@
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/setup_wizard_layout"
    android:icon="@drawable/ic_delete_accent"
    app:sucHeaderText="@string/main_clear_confirm_title">

    <LinearLayout
        style="@style/SudContentFrame"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/sud_layout_subtitle"
            style="@style/TextAppearance.PreferenceTitle.SettingsLib"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/main_clear_final_desc"/>
    </LinearLayout>
</com.google.android.setupdesign.GlifLayout>
    app:sucHeaderText="@string/main_clear_confirm_title" />
+12 −38
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@ package com.android.settings;

import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;

import android.app.ActionBar;
import android.app.Activity;
import android.app.ProgressDialog;
import android.app.admin.DevicePolicyManager;
import android.app.admin.FactoryResetProtectionPolicy;
@@ -28,7 +26,6 @@ import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemProperties;
@@ -36,12 +33,10 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.service.oemlock.OemLockManager;
import android.service.persistentdata.PersistentDataBlockManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import androidx.annotation.VisibleForTesting;

@@ -62,7 +57,7 @@ import com.google.android.setupdesign.GlifLayout;
 * has defined one, followed by a final strongly-worded "THIS WILL ERASE EVERYTHING
 * ON THE PHONE" prompt.  If at any time the phone is allowed to go to sleep, is
 * locked, et cetera, then the confirmation sequence is abandoned.
 *
 * <p>
 * This is the confirmation screen.
 */
public class MainClearConfirm extends InstrumentedFragment {
@@ -70,9 +65,11 @@ public class MainClearConfirm extends InstrumentedFragment {

    private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";

    @VisibleForTesting View mContentView;
    @VisibleForTesting
    GlifLayout mContentView;
    private boolean mEraseSdCard;
    @VisibleForTesting boolean mEraseEsims;
    @VisibleForTesting
    boolean mEraseEsims;

    /**
     * The user has gone through the multiple confirmation, so now we go ahead
@@ -215,9 +212,7 @@ public class MainClearConfirm extends InstrumentedFragment {
     * Configure the UI for the final confirmation interaction
     */
    private void establishFinalConfirmationState() {
        final GlifLayout layout = mContentView.findViewById(R.id.setup_wizard_layout);

        final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
        final FooterBarMixin mixin = mContentView.getMixin(FooterBarMixin.class);
        mixin.setPrimaryButton(
                new FooterButton.Builder(getActivity())
                        .setText(R.string.main_clear_button_text)
@@ -228,21 +223,6 @@ public class MainClearConfirm extends InstrumentedFragment {
        );
    }

    private void setUpActionBarAndTitle() {
        final Activity activity = getActivity();
        if (activity == null) {
            Log.e(TAG, "No activity attached, skipping setUpActionBarAndTitle");
            return;
        }
        final ActionBar actionBar = activity.getActionBar();
        if (actionBar == null) {
            Log.e(TAG, "No actionbar, skipping setUpActionBarAndTitle");
            return;
        }
        actionBar.hide();
        activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
@@ -258,32 +238,26 @@ public class MainClearConfirm extends InstrumentedFragment {
                    .show();
            return new View(getActivity());
        }
        mContentView = inflater.inflate(R.layout.main_clear_confirm, null);
        setUpActionBarAndTitle();
        mContentView = (GlifLayout) inflater.inflate(R.layout.main_clear_confirm, null);
        establishFinalConfirmationState();
        setAccessibilityTitle();
        setSubtitle();
        setAccessibilityTitle();
        return mContentView;
    }

    private void setAccessibilityTitle() {
        CharSequence currentTitle = getActivity().getTitle();
        TextView confirmationMessage = mContentView.findViewById(R.id.sud_layout_description);
        CharSequence confirmationMessage = mContentView.getDescriptionText();
        if (confirmationMessage != null) {
            String accessibleText = new StringBuilder(currentTitle).append(",").append(
                    confirmationMessage.getText()).toString();
            String accessibleText = currentTitle + "," + confirmationMessage;
            getActivity().setTitle(Utils.createAccessibleSequence(currentTitle, accessibleText));
        }
    }

    @VisibleForTesting
    void setSubtitle() {
        if (mEraseEsims) {
            TextView confirmationMessage = mContentView.findViewById(R.id.sud_layout_description);
            if (confirmationMessage != null) {
                confirmationMessage.setText(R.string.main_clear_final_desc_esim);
                }
        }
        mContentView.setDescriptionText(
                mEraseEsims ? R.string.main_clear_final_desc_esim : R.string.main_clear_final_desc);
    }

    @Override
+8 −7
Original line number Diff line number Diff line
@@ -31,10 +31,11 @@ import android.platform.test.flag.junit.SetFlagsRule;
import android.security.Flags;
import android.service.persistentdata.PersistentDataBlockManager;
import android.view.LayoutInflater;
import android.widget.TextView;

import androidx.fragment.app.FragmentActivity;

import com.google.android.setupdesign.GlifLayout;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -85,12 +86,12 @@ public class MainClearConfirmTest {
        MainClearConfirm mainClearConfirm = new MainClearConfirm();
        mainClearConfirm.mEraseEsims = true;
        mainClearConfirm.mContentView =
                LayoutInflater.from(mActivity).inflate(R.layout.main_clear_confirm, null);
                (GlifLayout) LayoutInflater.from(mActivity)
                        .inflate(R.layout.main_clear_confirm, null);

        mainClearConfirm.setSubtitle();

        assertThat(((TextView) mainClearConfirm.mContentView
                .findViewById(R.id.sud_layout_description)).getText())
        assertThat(mainClearConfirm.mContentView.getDescriptionText())
                .isEqualTo(mActivity.getString(R.string.main_clear_final_desc_esim));
    }

@@ -99,12 +100,12 @@ public class MainClearConfirmTest {
        MainClearConfirm mainClearConfirm = new MainClearConfirm();
        mainClearConfirm.mEraseEsims = false;
        mainClearConfirm.mContentView =
                LayoutInflater.from(mActivity).inflate(R.layout.main_clear_confirm, null);
                (GlifLayout) LayoutInflater.from(mActivity)
                        .inflate(R.layout.main_clear_confirm, null);

        mainClearConfirm.setSubtitle();

        assertThat(((TextView) mainClearConfirm.mContentView
                .findViewById(R.id.sud_layout_description)).getText())
        assertThat(mainClearConfirm.mContentView.getDescriptionText())
                .isEqualTo(mActivity.getString(R.string.main_clear_final_desc));
    }