Date time formatting according to localization

This commit is contained in:
Caesar2011
2018-07-13 20:01:24 +02:00
parent 22f0fb5930
commit dea643da75
7 changed files with 41 additions and 18 deletions

View File

@@ -303,7 +303,7 @@ public class MainActivity extends AppCompatActivity
@Override @Override
public void onScheduleFragmentInteraction(Calendar firstVisibleDate, Calendar lastVisibleDay) { public void onScheduleFragmentInteraction(Calendar firstVisibleDate, Calendar lastVisibleDay) {
setTitle(getResources().getString(R.string.date_scale, Conversion.getModifiedDate(firstVisibleDate.getTimeInMillis()), Conversion.getModifiedDate(lastVisibleDay.getTimeInMillis()))); setTitle(getResources().getString(R.string.date_scale, Conversion.getModifiedDate(getApplicationContext(), firstVisibleDate.getTimeInMillis()), Conversion.getModifiedDate(getApplicationContext(), lastVisibleDay.getTimeInMillis())));
//setTitle(Conversion.getModifiedDate(firstVisibleDate.getTimeInMillis())); //setTitle(Conversion.getModifiedDate(firstVisibleDate.getTimeInMillis()));
} }
} }

View File

@@ -4,7 +4,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter; import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import de.sebse.fuplanner.R; import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.types.Announcement; import de.sebse.fuplanner.services.KVV.types.Announcement;
@@ -82,7 +81,7 @@ public class ModDetailAnnounceAdapter extends BaseExpandableListAdapter {
ItemViewHolder itemHolder = new ItemViewHolder(convertView); ItemViewHolder itemHolder = new ItemViewHolder(convertView);
itemHolder.mTitle.setText(announce.getTitle()); itemHolder.mTitle.setText(announce.getTitle());
itemHolder.mSubLeft.setText(announce.getCreatedBy()); itemHolder.mSubLeft.setText(announce.getCreatedBy());
itemHolder.mSubRight.setText(Conversion.getModifiedDateTime(announce.getCreatedOn())); itemHolder.mSubRight.setText(Conversion.getModifiedDateTime(parent.getContext(), announce.getCreatedOn()));
return convertView; return convertView;
} }

View File

@@ -6,7 +6,6 @@ import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter; import android.widget.BaseExpandableListAdapter;
import de.sebse.fuplanner.R; import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.types.Announcement;
import de.sebse.fuplanner.services.KVV.types.Assignment; import de.sebse.fuplanner.services.KVV.types.Assignment;
import de.sebse.fuplanner.services.KVV.types.Modules; import de.sebse.fuplanner.services.KVV.types.Modules;
import de.sebse.fuplanner.tools.Conversion; import de.sebse.fuplanner.tools.Conversion;
@@ -93,7 +92,7 @@ public class ModDetailAssignmentAdapter extends BaseExpandableListAdapter {
itemHolder.mSubLeft.setText(itemHolder.mView.getResources().getText(R.string.open)); itemHolder.mSubLeft.setText(itemHolder.mView.getResources().getText(R.string.open));
else else
itemHolder.mSubLeft.setText(itemHolder.mView.getResources().getText(R.string.close)); itemHolder.mSubLeft.setText(itemHolder.mView.getResources().getText(R.string.close));
itemHolder.mSubRight.setText(Conversion.getModifiedDateTime(assignment.getDueDate())); itemHolder.mSubRight.setText(Conversion.getModifiedDateTime(parent.getContext(), assignment.getDueDate()));
return convertView; return convertView;
} }

View File

@@ -143,7 +143,7 @@ public class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.
Announcement announce = mValue.announcements.get(index); Announcement announce = mValue.announcements.get(index);
i.mTitle.setText(announce.getTitle()); i.mTitle.setText(announce.getTitle());
i.mSubLeft.setText(announce.getCreatedBy()); i.mSubLeft.setText(announce.getCreatedBy());
i.mSubRight.setText(Conversion.getModifiedDateTime(announce.getCreatedOn())); i.mSubRight.setText(Conversion.getModifiedDateTime(i.mView.getContext(), announce.getCreatedOn()));
i.mView.setOnClickListener(view -> log.d("Reference to:", SECTION_ANNOUNCEMENT, index)); i.mView.setOnClickListener(view -> log.d("Reference to:", SECTION_ANNOUNCEMENT, index));
break; break;
case SECTION_ASSIGNMENT: case SECTION_ASSIGNMENT:
@@ -153,7 +153,7 @@ public class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.
i.mSubLeft.setText(i.mView.getResources().getText(R.string.open)); i.mSubLeft.setText(i.mView.getResources().getText(R.string.open));
else else
i.mSubLeft.setText(i.mView.getResources().getText(R.string.close)); i.mSubLeft.setText(i.mView.getResources().getText(R.string.close));
i.mSubRight.setText(Conversion.getModifiedDateTime(assignment.getDueDate())); i.mSubRight.setText(Conversion.getModifiedDateTime(i.mView.getContext(), assignment.getDueDate()));
i.mView.setOnClickListener(view -> log.d("Reference to:", SECTION_ASSIGNMENT, index)); i.mView.setOnClickListener(view -> log.d("Reference to:", SECTION_ASSIGNMENT, index));
break; break;
case SECTION_EVENTS: case SECTION_EVENTS:
@@ -162,13 +162,13 @@ public class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.
i.mSubLeft.setText(event.getType()); i.mSubLeft.setText(event.getType());
String start, end; String start, end;
if (Conversion.dateEquals(event.getStartDate(), System.currentTimeMillis())) if (Conversion.dateEquals(event.getStartDate(), System.currentTimeMillis()))
start = Conversion.getModifiedTime(event.getStartDate()); start = Conversion.getModifiedTime(i.mView.getContext(), event.getStartDate());
else else
start = Conversion.getModifiedDateTime(event.getStartDate()); start = Conversion.getModifiedDateTime(i.mView.getContext(), event.getStartDate());
if (Conversion.dateEquals(event.getStartDate(), event.getEndDate())) if (Conversion.dateEquals(event.getStartDate(), event.getEndDate()))
end = Conversion.getModifiedTime(event.getEndDate()); end = Conversion.getModifiedTime(i.mView.getContext(), event.getEndDate());
else else
end = Conversion.getModifiedDateTime(event.getEndDate()); end = Conversion.getModifiedDateTime(i.mView.getContext(), event.getEndDate());
i.mSubRight.setText(i.mView.getResources().getString(R.string.date_scale, i.mSubRight.setText(i.mView.getResources().getString(R.string.date_scale,
start, end start, end
)); ));

View File

@@ -7,8 +7,6 @@ public class AssignmentList extends DateSortedList<Assignment> {
@Override @Override
long getDateByItem(Assignment item) { long getDateByItem(Assignment item) {
Logger log = new Logger(this);
log.d(item.getTitle(), Conversion.getModifiedDateTime(item.getDueDate()));
return item.getDueDate(); return item.getDueDate();
} }

View File

@@ -2,30 +2,54 @@ package de.sebse.fuplanner.tools;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build; import android.os.Build;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import com.google.android.gms.common.logging.Logger;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
public class Conversion { public class Conversion {
private static Logger log = new Logger("Conversion");
@Deprecated
public static String getModifiedDateTime(long modified) { public static String getModifiedDateTime(long modified) {
return getModifiedDate(Locale.getDefault(), modified, "MM/dd/yy hh:mm"); return getModifiedDateTime(null, modified);
} }
public static String getModifiedDateTime(Context context, long modified) {
return getModifiedDate(context, Locale.getDefault(), modified, "MM/dd/yy hh:mm");
}
@Deprecated
public static String getModifiedTime(long modified) { public static String getModifiedTime(long modified) {
return getModifiedDate(Locale.getDefault(), modified, "hh:mm"); return getModifiedTime(null, modified);
} }
public static String getModifiedTime(Context context, long modified) {
return getModifiedDate(context, Locale.getDefault(), modified, "hh:mm");
}
@Deprecated
public static String getModifiedDate(long modified) { public static String getModifiedDate(long modified) {
return getModifiedDate(Locale.getDefault(), modified, "MM/dd/yy"); return getModifiedDate(null, modified);
}
public static String getModifiedDate(Context context, long modified) {
return getModifiedDate(context, Locale.getDefault(), modified, "dd.MM.yy");
} }
@SuppressLint("SimpleDateFormat") @SuppressLint("SimpleDateFormat")
public static String getModifiedDate(Locale locale, long modified, String skeleton) { public static String getModifiedDate(Context context, Locale locale, long modified, String skeleton) {
SimpleDateFormat dateFormat; SimpleDateFormat dateFormat;
if (context != null && DateFormat.is24HourFormat(context))
skeleton = skeleton.replaceAll("h", "H");
else if (context == null)
log.w("No context spplied for conversion!");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
dateFormat = new SimpleDateFormat(getDateFormat(locale, skeleton)); dateFormat = new SimpleDateFormat(getDateFormat(locale, skeleton));
} else { } else {

View File

@@ -6,6 +6,9 @@ public class Logger {
private final String tag; private final String tag;
public Logger(Object object) { public Logger(Object object) {
if (object instanceof String)
this.tag = (String) object;
else
this.tag = object.getClass().getSimpleName(); this.tag = object.getClass().getSimpleName();
} }