Applied size span to am/pm in time text

This commit is contained in:
Phillip Hsu 2016-06-02 20:56:07 -07:00
parent c2707b12b2
commit 87cae57514
2 changed files with 22 additions and 1 deletions

View File

@ -7,6 +7,10 @@ import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar;
import android.support.v7.widget.SwitchCompat; import android.support.v7.widget.SwitchCompat;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.format.DateFormat;
import android.text.style.RelativeSizeSpan;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.MotionEvent; import android.view.MotionEvent;
@ -14,6 +18,7 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton; import android.widget.ToggleButton;
import com.philliphsu.clock2.Alarm; import com.philliphsu.clock2.Alarm;
@ -36,6 +41,7 @@ import static com.philliphsu.clock2.DaysOfWeek.SUNDAY;
public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyListener { public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyListener {
private static final String TAG = "EditAlarmActivity"; private static final String TAG = "EditAlarmActivity";
public static final String EXTRA_ALARM_ID = "com.philliphsu.clock2.editalarm.extra.ALARM_ID"; public static final String EXTRA_ALARM_ID = "com.philliphsu.clock2.editalarm.extra.ALARM_ID";
private static final RelativeSizeSpan AMPM_SIZE_SPAN = new RelativeSizeSpan(0.5f);
private static final int REQUEST_PICK_RINGTONE = 0; private static final int REQUEST_PICK_RINGTONE = 0;
private static final int ID_MENU_ITEM = 0; private static final int ID_MENU_ITEM = 0;
@ -59,6 +65,14 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setWeekDaysText(); setWeekDaysText();
mNumpad.setKeyListener(this); mNumpad.setKeyListener(this);
if (DateFormat.is24HourFormat(this)) {
mTimeText.setHint(R.string.default_alarm_time_24h);
} else {
SpannableString s = new SpannableString(getString(R.string.default_alarm_time_12h));
// Since we know the string's contents, we can pass in a hardcoded range
s.setSpan(AMPM_SIZE_SPAN, 5, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTimeText.setHint(s);
}
long alarmId = getIntent().getLongExtra(EXTRA_ALARM_ID, -1); long alarmId = getIntent().getLongExtra(EXTRA_ALARM_ID, -1);
if (alarmId > -1) { if (alarmId > -1) {
mAlarm = AlarmsRepository.getInstance(this).getItem(alarmId); mAlarm = AlarmsRepository.getInstance(this).getItem(alarmId);
@ -158,7 +172,13 @@ public class EditAlarmActivity extends BaseActivity implements AlarmNumpad.KeyLi
@Override @Override
public void onNumberInput(String formattedInput) { public void onNumberInput(String formattedInput) {
mTimeText.setText(formattedInput); if (formattedInput.contains("AM") || formattedInput.contains("PM")) {
SpannableString s = new SpannableString(formattedInput);
s.setSpan(AMPM_SIZE_SPAN, formattedInput.indexOf(" "), formattedInput.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTimeText.setText(s, TextView.BufferType.SPANNABLE);
} else {
mTimeText.setText(formattedInput);
}
mTimeText.setSelection(mTimeText.length()); mTimeText.setSelection(mTimeText.length());
} }

View File

@ -11,6 +11,7 @@
<string name="save">Save</string> <string name="save">Save</string>
<string name="delete">Delete</string> <string name="delete">Delete</string>
<string name="default_alarm_time_12h">12:00 AM</string> <string name="default_alarm_time_12h">12:00 AM</string>
<string name="default_alarm_time_24h">00:00</string>
<string name="title_snoozing_until">Snoozing until %1$s</string> <string name="title_snoozing_until">Snoozing until %1$s</string>
<string name="dismiss_now">Dismiss now</string> <string name="dismiss_now">Dismiss now</string>
<string name="done_snoozing">Done snoozing</string> <string name="done_snoozing">Done snoozing</string>