Support RTL mode in Sim switch dialog
Screenshot: https://photos.app.goo.gl/QuDrFzBSzog1F7Gf7 Bug: 189955098 Test: Manual Test Change-Id: I89bf58dfd0c0019799b9062eba5f6318dfc9fe1a Merged-In: I89bf58dfd0c0019799b9062eba5f6318dfc9fe1a
This commit is contained in:
committed by
SongFerng Wang
parent
7ba3e20afb
commit
562cc5ed45
@@ -26,6 +26,7 @@ import android.telephony.TelephonyManager;
|
|||||||
import android.telephony.UiccSlotInfo;
|
import android.telephony.UiccSlotInfo;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -56,6 +57,11 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
|
|||||||
private static final int DIALOG_TAG_ENABLE_DSDS_REBOOT_CONFIRMATION = 4;
|
private static final int DIALOG_TAG_ENABLE_DSDS_REBOOT_CONFIRMATION = 4;
|
||||||
// Number of SIMs for DSDS
|
// Number of SIMs for DSDS
|
||||||
private static final int NUM_OF_SIMS_FOR_DSDS = 2;
|
private static final int NUM_OF_SIMS_FOR_DSDS = 2;
|
||||||
|
// Support RTL mode
|
||||||
|
private static final String LINE_BREAK = "\n";
|
||||||
|
private static final int LINE_BREAK_OFFSET_ONE = 1;
|
||||||
|
private static final int LINE_BREAK_OFFSET_TWO = 2;
|
||||||
|
private static final String RTL_MARK = "\u200F";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an intent of ToggleSubscriptionDialogActivity.
|
* Returns an intent of ToggleSubscriptionDialogActivity.
|
||||||
@@ -78,6 +84,7 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
|
|||||||
private boolean mEnable;
|
private boolean mEnable;
|
||||||
private boolean mIsEsimOperation;
|
private boolean mIsEsimOperation;
|
||||||
private TelephonyManager mTelMgr;
|
private TelephonyManager mTelMgr;
|
||||||
|
private boolean isRtlMode;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -107,6 +114,8 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
|
|||||||
mSwitchToRemovableSlotSidecar = SwitchToRemovableSlotSidecar.get(getFragmentManager());
|
mSwitchToRemovableSlotSidecar = SwitchToRemovableSlotSidecar.get(getFragmentManager());
|
||||||
mEnableMultiSimSidecar = EnableMultiSimSidecar.get(getFragmentManager());
|
mEnableMultiSimSidecar = EnableMultiSimSidecar.get(getFragmentManager());
|
||||||
mEnable = intent.getBooleanExtra(ARG_enable, true);
|
mEnable = intent.getBooleanExtra(ARG_enable, true);
|
||||||
|
isRtlMode = getResources().getConfiguration().getLayoutDirection()
|
||||||
|
== View.LAYOUT_DIRECTION_RTL;
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
if (mEnable) {
|
if (mEnable) {
|
||||||
@@ -377,6 +386,7 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
|
|||||||
showNonSwitchSimConfirmDialog();
|
showNonSwitchSimConfirmDialog();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfirmDialogFragment.show(
|
ConfirmDialogFragment.show(
|
||||||
this,
|
this,
|
||||||
ConfirmDialogFragment.OnConfirmListener.class,
|
ConfirmDialogFragment.OnConfirmListener.class,
|
||||||
@@ -429,21 +439,33 @@ public class ToggleSubscriptionDialogActivity extends SubscriptionActionDialogAc
|
|||||||
mSubInfo, this);
|
mSubInfo, this);
|
||||||
final CharSequence activeSubName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
|
final CharSequence activeSubName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
|
||||||
activeSub, this);
|
activeSub, this);
|
||||||
|
final StringBuilder switchDialogMsg = new StringBuilder();
|
||||||
if (betweenEsim && mIsEsimOperation) {
|
if (betweenEsim && mIsEsimOperation) {
|
||||||
return getString(
|
switchDialogMsg.append(getString(
|
||||||
R.string.sim_action_switch_sub_dialog_text_downloaded,
|
R.string.sim_action_switch_sub_dialog_text_downloaded,
|
||||||
subInfoName,
|
subInfoName,
|
||||||
activeSubName);
|
activeSubName));
|
||||||
} else if (mIsEsimOperation) {
|
} else if (mIsEsimOperation) {
|
||||||
return getString(
|
switchDialogMsg.append(getString(
|
||||||
R.string.sim_action_switch_sub_dialog_text,
|
R.string.sim_action_switch_sub_dialog_text,
|
||||||
subInfoName,
|
subInfoName,
|
||||||
activeSubName);
|
activeSubName));
|
||||||
} else {
|
} else {
|
||||||
return getString(
|
switchDialogMsg.append(getString(
|
||||||
R.string.sim_action_switch_sub_dialog_text_single_sim,
|
R.string.sim_action_switch_sub_dialog_text_single_sim,
|
||||||
activeSubName);
|
activeSubName));
|
||||||
}
|
}
|
||||||
|
if (isRtlMode) {
|
||||||
|
/* There are two lines of message in the dialog, and the RTL symbols must be added
|
||||||
|
* before and after each sentence, so use the line break symbol to find the position.
|
||||||
|
* (Each message are all with two line break symbols)
|
||||||
|
*/
|
||||||
|
switchDialogMsg.insert(0, RTL_MARK)
|
||||||
|
.insert(switchDialogMsg.indexOf(LINE_BREAK) - LINE_BREAK_OFFSET_ONE, RTL_MARK)
|
||||||
|
.insert(switchDialogMsg.indexOf(LINE_BREAK) + LINE_BREAK_OFFSET_TWO, RTL_MARK)
|
||||||
|
.insert(switchDialogMsg.length(), RTL_MARK);
|
||||||
|
}
|
||||||
|
return switchDialogMsg.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isDsdsConditionSatisfied() {
|
private boolean isDsdsConditionSatisfied() {
|
||||||
|
Reference in New Issue
Block a user