/* * Copyright (C) 2015 Actor LLC. <https://actor.im> */ package im.actor.runtime.js; import com.google.gwt.i18n.client.LocaleInfo; import im.actor.runtime.LocaleRuntime; import im.actor.runtime.Log; public class JsLocaleProvider implements LocaleRuntime { @Override public String getCurrentLocale() { String locale = LocaleInfo.getCurrentLocale().getLocaleName(); if (locale == null) { Log.d("JsLocaleProvider", "Found Null. Returning En"); return "En"; } if ("default".equals(locale)) { Log.d("JsLocaleProvider", "Found default. Returning En"); return "En"; } if (locale.length() >= 2) { String res = locale.substring(0, 1).toUpperCase() + locale.substring(1, 2).toLowerCase(); Log.d("JsLocaleProvider", "Found " + res); return res; } Log.d("JsLocaleProvider", "Found unknown: " + locale + ". Returning En."); return "En"; } @Override public String formatDate(long date) { return formatDateNative((int) (date / 1000)); } @Override public String formatTime(long date) { return formatTimeNative((int) (date / 1000)); } private native String formatDateNative(int dateVal)/*-{ var date = new Date(dateVal * 1000); return date.toLocaleDateString(); }-*/; // TODO: 24/12 hour format handling private native String formatTimeNative(int dateVal)/*-{ var d = new Date(dateVal * 1000); var hr = d.getHours(); var min = d.getMinutes(); if (min < 10) { min = "0" + min; } return hr + ":" + min; }-*/; }