Settings: Correctly align cursor in Settings
Steps to Reproduce: - Click on Density Settings (DPI Settings) / Renaming BT Device / Renaming SIM Settings - EditText Dialog pops up - The cursor is at the leftmost side of the text - Logically Cursor should be at rightmost side which can be aligned grabbing text length Screenshots: Before: http://imgur.com/a/o4vkr http://imgur.com/a/6Qext After: http://imgur.com/a/fuxqT http://imgur.com/a/vm2WX Bug: 65185652 Test: RunSettingsRoboTests: OK (47 tests) Change-Id: Id00308e7e019434edad4afab56cf4719be0d0d54 Signed-off-by: PMS22 <prathams99@rediff.com>
This commit is contained in:
@@ -103,6 +103,7 @@ import android.view.ViewGroup;
|
|||||||
import android.view.animation.Animation;
|
import android.view.animation.Animation;
|
||||||
import android.view.animation.Animation.AnimationListener;
|
import android.view.animation.Animation.AnimationListener;
|
||||||
import android.view.animation.AnimationUtils;
|
import android.view.animation.AnimationUtils;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.TabWidget;
|
import android.widget.TabWidget;
|
||||||
|
|
||||||
@@ -1362,4 +1363,7 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
&& volume.isMountedReadable();
|
&& volume.isMountedReadable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setEditTextCursorPosition(EditText editText) {
|
||||||
|
editText.setSelection(editText.getText().length());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -116,6 +116,7 @@ abstract class BluetoothNameDialogFragment extends InstrumentedDialogFragment
|
|||||||
mDeviceNameView.setSelection(deviceName.length());
|
mDeviceNameView.setSelection(deviceName.length());
|
||||||
}
|
}
|
||||||
mDeviceNameView.addTextChangedListener(this);
|
mDeviceNameView.addTextChangedListener(this);
|
||||||
|
com.android.settings.Utils.setEditTextCursorPosition(mDeviceNameView);
|
||||||
mDeviceNameView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
mDeviceNameView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
||||||
|
@@ -323,6 +323,7 @@ public final class DeviceProfilesSettings extends InstrumentedDialogFragment imp
|
|||||||
final EditText deviceNameField = (EditText) mRootView.findViewById(R.id.name);
|
final EditText deviceNameField = (EditText) mRootView.findViewById(R.id.name);
|
||||||
if (deviceNameField != null) {
|
if (deviceNameField != null) {
|
||||||
deviceNameField.setText(mCachedDevice.getName());
|
deviceNameField.setText(mCachedDevice.getName());
|
||||||
|
com.android.settings.Utils.setEditTextCursorPosition(deviceNameField);
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshProfiles();
|
refreshProfiles();
|
||||||
|
@@ -27,6 +27,7 @@ import android.widget.EditText;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settingslib.CustomEditTextPreference;
|
import com.android.settingslib.CustomEditTextPreference;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settingslib.display.DisplayDensityUtils;
|
import com.android.settingslib.display.DisplayDensityUtils;
|
||||||
|
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
@@ -63,6 +64,7 @@ public class DensityPreference extends CustomEditTextPreference {
|
|||||||
if (editText != null) {
|
if (editText != null) {
|
||||||
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
|
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||||
editText.setText(getCurrentSwDp() + "");
|
editText.setText(getCurrentSwDp() + "");
|
||||||
|
Utils.setEditTextCursorPosition(editText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -40,6 +40,7 @@ import android.widget.Spinner;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
|
|
||||||
public class SimPreferenceDialog extends Activity {
|
public class SimPreferenceDialog extends Activity {
|
||||||
|
|
||||||
@@ -98,13 +99,14 @@ public class SimPreferenceDialog extends Activity {
|
|||||||
|
|
||||||
EditText nameText = (EditText)mDialogLayout.findViewById(R.id.sim_name);
|
EditText nameText = (EditText)mDialogLayout.findViewById(R.id.sim_name);
|
||||||
nameText.setText(savedInstanceState.getString(SIM_NAME));
|
nameText.setText(savedInstanceState.getString(SIM_NAME));
|
||||||
|
Utils.setEditTextCursorPosition(nameText);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createEditDialog(Bundle bundle) {
|
private void createEditDialog(Bundle bundle) {
|
||||||
final Resources res = mContext.getResources();
|
final Resources res = mContext.getResources();
|
||||||
EditText nameText = (EditText)mDialogLayout.findViewById(R.id.sim_name);
|
EditText nameText = (EditText)mDialogLayout.findViewById(R.id.sim_name);
|
||||||
nameText.setText(mSubInfoRecord.getDisplayName());
|
nameText.setText(mSubInfoRecord.getDisplayName());
|
||||||
|
Utils.setEditTextCursorPosition(nameText);
|
||||||
final Spinner tintSpinner = (Spinner) mDialogLayout.findViewById(R.id.spinner);
|
final Spinner tintSpinner = (Spinner) mDialogLayout.findViewById(R.id.spinner);
|
||||||
SelectColorAdapter adapter = new SelectColorAdapter(mContext,
|
SelectColorAdapter adapter = new SelectColorAdapter(mContext,
|
||||||
R.layout.settings_color_picker_item, mColorStrings);
|
R.layout.settings_color_picker_item, mColorStrings);
|
||||||
@@ -154,7 +156,7 @@ public class SimPreferenceDialog extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int whichButton) {
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
final EditText nameText = (EditText)mDialogLayout.findViewById(R.id.sim_name);
|
final EditText nameText = (EditText)mDialogLayout.findViewById(R.id.sim_name);
|
||||||
|
Utils.setEditTextCursorPosition(nameText);
|
||||||
String displayName = nameText.getText().toString();
|
String displayName = nameText.getText().toString();
|
||||||
int subId = mSubInfoRecord.getSubscriptionId();
|
int subId = mSubInfoRecord.getSubscriptionId();
|
||||||
mSubInfoRecord.setDisplayName(displayName);
|
mSubInfoRecord.setDisplayName(displayName);
|
||||||
|
@@ -25,6 +25,8 @@ import android.os.storage.VolumeInfo;
|
|||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.text.style.TtsSpan;
|
import android.text.style.TtsSpan;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
|
||||||
@@ -325,4 +327,15 @@ public class UtilsTest {
|
|||||||
assertThat(Utils.isProfileOrDeviceOwner(mUserManager, mDevicePolicyManager,
|
assertThat(Utils.isProfileOrDeviceOwner(mUserManager, mDevicePolicyManager,
|
||||||
PACKAGE_NAME)).isTrue();
|
PACKAGE_NAME)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetEditTextCursorPosition_shouldGetExpectedEditTextLenght() {
|
||||||
|
final EditText editText = new EditText(mContext);
|
||||||
|
final CharSequence text = "test";
|
||||||
|
editText.setText(text, TextView.BufferType.EDITABLE);
|
||||||
|
final int length = editText.getText().length();
|
||||||
|
Utils.setEditTextCursorPosition(editText);
|
||||||
|
|
||||||
|
assertThat(editText.getSelectionEnd()).isEqualTo(length);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user