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
This commit is contained in:
Chaohui Wang
2024-09-10 17:58:36 +08:00
parent d90a5dcf0f
commit c57ab6ee65
3 changed files with 21 additions and 62 deletions

View File

@@ -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" />

View File

@@ -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

View File

@@ -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));
}