Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment;
import com.hyperwallet.android.ui.view.widget.AbstractWidget;
import com.hyperwallet.android.ui.view.widget.DateChangedListener;
import com.hyperwallet.android.ui.view.widget.DateUtil;
import com.hyperwallet.android.ui.view.widget.DateUtils;
import com.hyperwallet.android.ui.view.widget.DateWidget;
import com.hyperwallet.android.ui.view.widget.WidgetEventListener;
import com.hyperwallet.android.ui.view.widget.WidgetFactory;
Expand Down Expand Up @@ -99,7 +99,7 @@ public class AddTransferMethodFragment extends Fragment implements WidgetEventLi
private HyperwalletTransferMethod mTransferMethod;
private String mTransferMethodProfileType;
private HashMap<String, WidgetInputState> mWidgetInputStateHashMap;
private final DateUtil mDateUtil = new DateUtil();
private final DateUtils mDateUtils = new DateUtils();

/**
* Please do not use this to have instance of AddTransferMethodFragment this is reserved for android framework
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import androidx.fragment.app.FragmentManager;

import com.hyperwallet.android.ui.R;
import com.hyperwallet.android.ui.view.widget.DateUtil;
import com.hyperwallet.android.ui.view.widget.DateUtils;

import java.util.Calendar;

Expand All @@ -23,7 +23,7 @@ public class WidgetDateDialogFragment extends DialogFragment {
private static final String ARGUMENT_DATE = "ARGUMENT_DATE";
private static final String ARGUMENT_FIELD_NAME = "ARGUMENT_FIELD_NAME";
private OnSelectedDateCallback mOnSelectedDateCallback;
private final DateUtil mDateUtil = new DateUtil();
private final DateUtils mDateUtils = new DateUtils();

/**
* Please do not use this to have instance of DateDialogFragment this is reserved for android framework
Expand Down Expand Up @@ -75,7 +75,7 @@ public Dialog onCreateDialog(@Nullable Bundle state) {
final String fieldName = getArguments().getString(ARGUMENT_FIELD_NAME);
Calendar calendar;
try {
calendar = mDateUtil.convertDateFromServerFormatToCalendar(storedDate);
calendar = mDateUtils.convertDateFromServerFormatToCalendar(storedDate);
} catch (Exception e) {
calendar = Calendar.getInstance();
}
Expand All @@ -85,7 +85,7 @@ public Dialog onCreateDialog(@Nullable Bundle state) {
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int resultYear, int resultMonth, int resultDayOfMonth) {
final String selectedDate = mDateUtil
final String selectedDate = mDateUtils
.buildDateFromDateDialogToServerFormat(resultYear, resultMonth, resultDayOfMonth);
mOnSelectedDateCallback.setSelectedDateField(fieldName, selectedDate);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@
/**
* Class is used for manage and convert date {@link DateWidget}
*/
public final class DateUtil {
public final class DateUtils {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I forgot we have this, DateUtil class in ui module, @azakrevska-epam @fmattos-hw there's also a DateUtils class in com.hyperwallet.android.ui.common.util.DateUtils does it make sense to merge them into one?

Copy link
Collaborator

@fmattos-hw fmattos-hw Jun 18, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the class com.hyperwallet.android.ui.view.widget.DateUtils should not exist and all methods should be moved to the DateWidget class. I don't like the idea of having util class with state (date format instance created in the constructor) and public constructor, but based on our conversation, we can leave it as is and use android date formatting


private static final String SERVER_DATE_PATTERN = "yyyy-MM-dd";
private static final String WIDGET_DATE_PATTERN = "dd MMMM yyyy";

private final SimpleDateFormat mServerDateFormat = new SimpleDateFormat(SERVER_DATE_PATTERN, Locale.getDefault());
private final SimpleDateFormat mWidgetDateFormat;

public DateUtil() {
public DateUtils() {
mWidgetDateFormat = new SimpleDateFormat(
DateFormat.getBestDateTimePattern(Locale.getDefault(), WIDGET_DATE_PATTERN), Locale.getDefault());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

public class DateWidget extends AbstractWidget implements DateChangedListener {

private final DateUtil mDateUtil;
private final DateUtils mDateUtils;
private ViewGroup mContainer;
private String mValue;
private TextInputLayout mTextInputLayout;
Expand All @@ -46,7 +46,7 @@ public class DateWidget extends AbstractWidget implements DateChangedListener {
public DateWidget(@NonNull HyperwalletField field, @NonNull WidgetEventListener listener,
@Nullable String defaultValue, @NonNull View defaultFocusView) {
super(field, listener, defaultValue, defaultFocusView);
mDateUtil = new DateUtil();
mDateUtils = new DateUtils();
mValue = defaultValue;
}

Expand All @@ -67,7 +67,7 @@ public View getView(@NonNull final ViewGroup viewGroup) {
mEditText = new EditText(
new ContextThemeWrapper(viewGroup.getContext(), R.style.Widget_Hyperwallet_TextInputEditText));
try {
mEditText.setText(mDateUtil.convertDateFromServerToWidgetFormat(
mEditText.setText(mDateUtils.convertDateFromServerToWidgetFormat(
TextUtils.isEmpty(mDefaultValue) ? mValue = mField.getValue() : mDefaultValue));
} catch (ParseException e) {
mEditText.setText("");
Expand Down Expand Up @@ -114,7 +114,7 @@ public void onUpdate(@Nullable final String selectedDate) {
if (!TextUtils.isEmpty(selectedDate)) {
mValue = selectedDate;
try {
mEditText.setText(mDateUtil.convertDateFromServerToWidgetFormat(selectedDate));
mEditText.setText(mDateUtils.convertDateFromServerToWidgetFormat(selectedDate));
mListener.saveTextChanged(getName(), getValue());
mListener.valueChanged();
} catch (ParseException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
/**
* Class is used for manage and convert card expire date {@link ExpiryDateWidget}
*/
class ExpireDateUtil {
class ExpireDateUtils {

static final char ONE_CHAR = '1';
static final int MAX_INPUT_LENGTH = 5;
Expand All @@ -40,7 +40,7 @@ class ExpireDateUtil {

private final Calendar mUpperValidDate = Calendar.getInstance();

ExpireDateUtil() {
ExpireDateUtils() {
mUpperValidDate.add(Calendar.YEAR, VALID_PERIOD_IN_YEARS);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
*/
package com.hyperwallet.android.ui.view.widget;

import static com.hyperwallet.android.ui.view.widget.ExpireDateUtil.MAX_INPUT_LENGTH;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtil.ONE_CHAR;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtil.SEPARATOR;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtil.ZERO_CHAR;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtils.MAX_INPUT_LENGTH;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtils.ONE_CHAR;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtils.SEPARATOR;
import static com.hyperwallet.android.ui.view.widget.ExpireDateUtils.ZERO_CHAR;

import android.content.Context;
import android.text.Editable;
Expand All @@ -42,7 +42,7 @@
import com.hyperwallet.android.ui.R;

public class ExpiryDateWidget extends AbstractWidget {
private final ExpireDateUtil mExpireDateUtil;
private final ExpireDateUtils mExpireDateUtils;
private ViewGroup mContainer;
private TextInputLayout mTextInputLayout;
private String mValue;
Expand All @@ -53,7 +53,7 @@ public ExpiryDateWidget(@NonNull HyperwalletField field, @NonNull WidgetEventLis
@Nullable String defaultValue, @NonNull View defaultFocusView) {
super(field, listener, defaultValue, defaultFocusView);
mValue = defaultValue;
mExpireDateUtil = new ExpireDateUtil();
mExpireDateUtils = new ExpireDateUtils();
}

@Override
Expand Down Expand Up @@ -82,7 +82,7 @@ public View getView(@NonNull final ViewGroup viewGroup) {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
mValue = mExpireDateUtil.convertDateToServerFormat(((EditText) v).getText().toString());
mValue = mExpireDateUtils.convertDateToServerFormat(((EditText) v).getText().toString());
mListener.valueChanged();
} else {
mListener.widgetFocused(ExpiryDateWidget.this.getName());
Expand Down Expand Up @@ -141,9 +141,9 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}

dateParts = mExpireDateUtil.getDateParts(input);
dateParts = mExpireDateUtils.getDateParts(input);

if (!mExpireDateUtil.isValidMonth(dateParts[0])) {
if (!mExpireDateUtils.isValidMonth(dateParts[0])) {
inErrorState = true;
}

Expand All @@ -161,15 +161,15 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
dateBuilder.append(dateParts[1]);

String formattedDate = dateBuilder.toString();
int cursorPosition = mExpireDateUtil.getCursorPosition(formattedDate.length(), changeStart,
int cursorPosition = mExpireDateUtils.getCursorPosition(formattedDate.length(), changeStart,
insertionSize);

ignoreConcurrentChanges = true;
editText.setText(formattedDate);
editText.setSelection(cursorPosition);

if (before != count) {
mValue = mExpireDateUtil.convertDateToServerFormat(formattedDate);
mValue = mExpireDateUtils.convertDateToServerFormat(formattedDate);
mListener.saveTextChanged(getName(), mValue);
}
ignoreConcurrentChanges = false;
Expand All @@ -182,7 +182,7 @@ public void afterTextChanged(Editable s) {

editText.setInputType(InputType.TYPE_CLASS_DATETIME);
editText.setHint(mField.getLabel());
editText.setText(mExpireDateUtil.convertDateFromServerFormat(
editText.setText(mExpireDateUtils.convertDateFromServerFormat(
TextUtils.isEmpty(mDefaultValue) ? mField.getValue() : mDefaultValue));

editText.setOnKeyListener(new DefaultKeyListener(mDefaultFocusView, editText));
Expand Down Expand Up @@ -219,7 +219,7 @@ public String getErrorMessage() {
return mMessageInvalidDateLength;
}

if (mExpireDateUtil.isInvalidDate(mValue)) {
if (mExpireDateUtils.isInvalidDate(mValue)) {
return mMessageInvalidDate;
}

Expand All @@ -228,7 +228,7 @@ public String getErrorMessage() {

@Override
protected boolean isInvalidRegex() {
return mExpireDateUtil.isInvalidDate(mValue);
return mExpireDateUtils.isInvalidDate(mValue);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import java.util.Collection;

@RunWith(RobolectricTestRunner.class)
public class DateUtilTest {
private final DateUtil mDateUtil = new DateUtil();
public class DateUtilsTest {
private final DateUtils mDateUtils = new DateUtils();

@Rule
public final ExpectedException mThrown = ExpectedException.none();
Expand All @@ -25,32 +25,32 @@ public class DateUtilTest {
public void testConvertDateFromServerToWidgetFormat() throws Exception {
String serverDate = "2005-05-23";
String widgetDate = "23 May 2005";
assertThat(mDateUtil.convertDateFromServerToWidgetFormat(serverDate), is(widgetDate));
assertThat(mDateUtils.convertDateFromServerToWidgetFormat(serverDate), is(widgetDate));
}

@Test
public void testBuildParamsDateFromServerToWidget_whenIncorrectDate() throws Exception {
mThrown.expect(ParseException.class);
mDateUtil.convertDateFromServerToWidgetFormat("1990-01");
mDateUtils.convertDateFromServerToWidgetFormat("1990-01");
}

@Test
public void testConvertDateFromServerToWidgetFormat_whenDateIsNullOrEmpty() throws Exception {
assertThat(mDateUtil.convertDateFromServerToWidgetFormat(""), is(""));
assertThat(mDateUtil.convertDateFromServerToWidgetFormat(null), is(""));
assertThat(mDateUtils.convertDateFromServerToWidgetFormat(""), is(""));
assertThat(mDateUtils.convertDateFromServerToWidgetFormat(null), is(""));
}

@Test
public void testBuildParamsDateFromServerToCalendar_whenIncorrectDate() throws Exception {
mThrown.expect(ParseException.class);
mDateUtil.convertDateFromServerFormatToCalendar("123-32").getTime();
mDateUtils.convertDateFromServerFormatToCalendar("123-32").getTime();
}

@Test
public void testConvertDateFromServerFormatToCalendar_whenDateIsNullOrEmpty() throws ParseException {
assertThat(mDateUtil.convertDateFromServerFormatToCalendar(null).getTime().toString(),
assertThat(mDateUtils.convertDateFromServerFormatToCalendar(null).getTime().toString(),
is(Calendar.getInstance().getTime().toString()));
assertThat(mDateUtil.convertDateFromServerFormatToCalendar("").getTime().toString(),
assertThat(mDateUtils.convertDateFromServerFormatToCalendar("").getTime().toString(),
is(Calendar.getInstance().getTime().toString()));
}

Expand All @@ -59,7 +59,7 @@ public void testConvertDateFromServerFormatToCalendar() throws ParseException {
String serverDate = "2005-05-23";
final Calendar mayCalendar = Calendar.getInstance();
mayCalendar.set(2005, 4, 23, 0, 0, 0);
assertThat(mDateUtil.convertDateFromServerFormatToCalendar(serverDate).getTime().toString(),
assertThat(mDateUtils.convertDateFromServerFormatToCalendar(serverDate).getTime().toString(),
is(mayCalendar.getTime().toString()));
}

Expand All @@ -75,7 +75,7 @@ public void testBuildDateFromDateDialogToServerFormat() {
month = (int) item[1];
dayOfMonth = (int) item[2];
widgetDate = (String) item[3];
assertThat(mDateUtil.buildDateFromDateDialogToServerFormat(year, month, dayOfMonth), is(widgetDate));
assertThat(mDateUtils.buildDateFromDateDialogToServerFormat(year, month, dayOfMonth), is(widgetDate));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import junitparams.Parameters;

@RunWith(JUnitParamsRunner.class)
public class ExpireDateUtilTest {
private final ExpireDateUtil helper = new ExpireDateUtil();
public class ExpireDateUtilsTest {
private final ExpireDateUtils helper = new ExpireDateUtils();

@Test
@Parameters(method = "parametersToTestValidDate")
Expand Down