diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java b/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java index d2d941d..ab06060 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java @@ -45,6 +45,8 @@ import java.util.Locale; import butterknife.Bind; import butterknife.OnClick; +import static com.philliphsu.clock2.util.ConversionUtils.dpToPx; + //import com.android.datetimepicker.HapticFeedbackController; //import com.android.datetimepicker.R; //import com.android.datetimepicker.Utils; @@ -129,8 +131,10 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog /*DialogFra private static final int[] HOURS_24_HALF_DAY_1 = {0,1,2,3,4,5,6,7,8,9,10,11}; private static final int[] HOURS_24_HALF_DAY_2 = {12,13,14,15,16,17,18,19,20,21,22,23}; private static final int[] MINUTES = {0,5,10,15,20,25,30,35,40,45,50,55}; - // The delay before a OnLongClick on a TwentyFourHourGridItem defers to OnClick + // The delay in ms before a OnLongClick on a TwentyFourHourGridItem defers to OnClick private static final int LONG_CLICK_RESULT_LEEWAY = 150; + // The padding in dp for the half day icon compound drawable + public static final int HALF_DAY_ICON_PADDING = 8; // TODO: Private? // Describes both AM/PM in the 12-hour clock and the half-days of the 24-hour clock. @@ -267,14 +271,15 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog /*DialogFra ((TwentyFourHourGridItem) v).swapTexts(); } } - // TODO: Verify the corresponding TwentyFourHourGridItem retains its indicator - if (amOrPm == HALF_DAY_1) { - mSelectedHourOfDay -= 12; - } else if (amOrPm == HALF_DAY_2) { - mSelectedHourOfDay += 12; - } - onValueSelected(HOUR_INDEX, mSelectedHourOfDay, false); } + + // TODO: Verify the corresponding TwentyFourHourGridItem retains its indicator + if (amOrPm == HALF_DAY_1) { + mSelectedHourOfDay %= 12; + } else if (amOrPm == HALF_DAY_2) { + mSelectedHourOfDay = (mSelectedHourOfDay % 12) + 12; + } + onValueSelected(HOUR_INDEX, mSelectedHourOfDay, false); } // TODO: Break this into two OnClickListeners instead--one for normal TextViews and @@ -454,13 +459,15 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog /*DialogFra TextView tv1 = (TextView) mLeftHalfDayToggle.getChildAt(0); TextView tv2 = (TextView) mRightHalfDayToggle.getChildAt(0); if (mIs24HourMode) { - tv1.setText("00-11"); + tv1.setText("00 - 11"); // Intrinsic bounds meaning the drawable's own bounds? So 24dp box. tv1.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_half_day_1_black_24dp, 0, 0, 0); - tv2.setText("12-23"); + tv1.setCompoundDrawablePadding((int) dpToPx(getActivity(), HALF_DAY_ICON_PADDING)); + tv2.setText("12 - 23"); tv2.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_half_day_2_black_24dp, 0, 0, 0); + tv2.setCompoundDrawablePadding((int) dpToPx(getActivity(), HALF_DAY_ICON_PADDING)); } else { tv1.setText(mAmText); tv2.setText(mPmText); diff --git a/app/src/main/java/com/philliphsu/clock2/util/ConversionUtils.java b/app/src/main/java/com/philliphsu/clock2/util/ConversionUtils.java new file mode 100644 index 0000000..de72a5e --- /dev/null +++ b/app/src/main/java/com/philliphsu/clock2/util/ConversionUtils.java @@ -0,0 +1,27 @@ +package com.philliphsu.clock2.util; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.util.TypedValue; + +/** + * Created by Phillip Hsu on 4/21/2016. + */ +public final class ConversionUtils { + + public static float dpToPx(@NonNull final Context context, final float dp) { + return toPx(context, TypedValue.COMPLEX_UNIT_DIP, dp); + } + + public static float spToPx(@NonNull final Context context, final float sp) { + return toPx(context, TypedValue.COMPLEX_UNIT_SP, sp); + } + + private static float toPx(@NonNull final Context context, final int unit, final float val) { + // This always returns a floating point value, i.e. pixels. + return TypedValue.applyDimension(unit, val, context.getResources().getDisplayMetrics()); + } + + private ConversionUtils() {} + +} diff --git a/app/src/main/res/layout/content_number_grid_minute_tuners.xml b/app/src/main/res/layout/content_number_grid_minute_tuners.xml index 5cb4608..52080d0 100644 --- a/app/src/main/res/layout/content_number_grid_minute_tuners.xml +++ b/app/src/main/res/layout/content_number_grid_minute_tuners.xml @@ -3,17 +3,11 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_time_picker_number_grid.xml b/app/src/main/res/layout/dialog_time_picker_number_grid.xml index aa68699..3bd978a 100644 --- a/app/src/main/res/layout/dialog_time_picker_number_grid.xml +++ b/app/src/main/res/layout/dialog_time_picker_number_grid.xml @@ -52,7 +52,6 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/item_number_grid.xml b/app/src/main/res/layout/item_number_grid.xml index 9a4cac2..91d8a56 100644 --- a/app/src/main/res/layout/item_number_grid.xml +++ b/app/src/main/res/layout/item_number_grid.xml @@ -2,12 +2,9 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index c0ecaf8..5e1560b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -34,6 +34,7 @@ 1 1 ?android:attr/selectableItemBackground + center