From c57ab6ee65c6b5db55494384929798a89406772a Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Tue, 10 Sep 2024 17:58:36 +0800 Subject: [PATCH] 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 --- res/layout/main_clear_confirm.xml | 18 +------ .../android/settings/MainClearConfirm.java | 50 +++++-------------- .../settings/MainClearConfirmTest.java | 15 +++--- 3 files changed, 21 insertions(+), 62 deletions(-) diff --git a/res/layout/main_clear_confirm.xml b/res/layout/main_clear_confirm.xml index 6027d18dcc4..d4821329156 100644 --- a/res/layout/main_clear_confirm.xml +++ b/res/layout/main_clear_confirm.xml @@ -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"> - - - - - - + app:sucHeaderText="@string/main_clear_confirm_title" /> diff --git a/src/com/android/settings/MainClearConfirm.java b/src/com/android/settings/MainClearConfirm.java index a5fbebf6e8e..c9887e81f5b 100644 --- a/src/com/android/settings/MainClearConfirm.java +++ b/src/com/android/settings/MainClearConfirm.java @@ -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. - * + *

* 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 diff --git a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java index f7711c81311..a102fdae9be 100644 --- a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java +++ b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java @@ -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)); }