diff --git a/apps/slidingtext/slidingtext.js b/apps/slidingtext/slidingtext.js index b87eee8d1..151fee15c 100644 --- a/apps/slidingtext/slidingtext.js +++ b/apps/slidingtext/slidingtext.js @@ -322,7 +322,7 @@ function initDisplay(settings) { const row_type_overide = date_formatter.defaultRowTypes(); mergeMaps(row_types,row_type_overide); mergeMaps(row_types,settings.row_types); - const row_defs = (settings.row_defs != null && settings.row_defs.length > 0)? + var row_defs = (settings.row_defs != null && settings.row_defs.length > 0)? settings.row_defs : date_formatter.defaultRowDefs(); var heights = { @@ -334,7 +334,8 @@ function initDisplay(settings) { medium: [40,25], mlarge: [45,35], large: [50,40], - vlarge: [60,50] + vlarge: [60,50], + slarge: [100,90] }; var rotations = { @@ -451,6 +452,7 @@ function initDisplay(settings) { } }); // dereference the setup variables to release the memory + row_defs = null; row_types = null; heights = null; rotations = null; diff --git a/apps/slidingtext/slidingtext.locale.hyb.js b/apps/slidingtext/slidingtext.locale.hyb.js new file mode 100644 index 000000000..1c2357738 --- /dev/null +++ b/apps/slidingtext/slidingtext.locale.hyb.js @@ -0,0 +1,73 @@ +const DateFormatter = require("slidingtext.dtfmt.js"); +const numberToText = require("slidingtext.utils.en.js").numberToText; +const dayOfWeek = require("slidingtext.utils.en.js").dayOfWeek; + +class EnglishDateFormatter extends DateFormatter { + constructor() { + super(); + } + + format00(num){ + const value = (num | 0); + if(value > 99 || value < 0) + throw "must be between in range 0-99"; + if(value < 10) + return "0" + value.toString(); + else + return value.toString(); + } + + formatDate(date){ + + const hours_txt = this.format00(date.getHours()); + const mins_txt = numberToText(date.getMinutes()); + const day_of_week = dayOfWeek(date); + const date_txt = day_of_week + " " + this.format00(date.getDate()); + return [hours_txt,mins_txt[0],mins_txt[1],date_txt]; + } + defaultRowTypes() { + return { + large: { + size: 'slarge', + scroll_off: ['left','down'], + scroll_in: ['up','left'], + }, + medium: { + scroll_off: ['down'], + scroll_in: ['up'], + angle_to_horizontal: 90 + }, + small: { + size: 'ssmall', + scroll_off: ['left','right'], + scroll_in: ['left','right'], + } + }; + } + + defaultRowDefs(){ + return [ + { + type: 'large', + init_coords: [0.05,0.35], + row_direction: [0.0,1.0], + rows: 1 + }, + { + type: 'medium', + init_coords: [0.7,0.95], + row_direction: [1.0,0.0], + angle_to_horizontal: 90, + rows: 2 + }, + { + type: 'small', + init_coords: [0.05, 0.1], + row_direction: [0.0, 1.0], + rows: 1 + } + ]; + } +} + +module.exports = EnglishDateFormatter; \ No newline at end of file diff --git a/apps/slidingtext/slidingtext.settings.js b/apps/slidingtext/slidingtext.settings.js index 7a0df074e..b09dc6235 100644 --- a/apps/slidingtext/slidingtext.settings.js +++ b/apps/slidingtext/slidingtext.settings.js @@ -10,7 +10,7 @@ console.log("loaded:" + JSON.stringify(settings)); const locale_mappings = (bangleVersion > 1)? { 'en' : { date_formatter: 'en' }, - 'en p': { + 'en alt': { date_formatter: 'en', row_types: { large:{ @@ -53,7 +53,7 @@ ] }, 'en2': { date_formatter: 'en2' }, - 'en2 p': { date_formatter: 'en2', + 'en2 alt': { date_formatter: 'en2', row_types: { vsmall: { color: 'minor', @@ -109,14 +109,16 @@ 'de': { date_formatter: 'de'}, 'es': { date_formatter: 'es'}, 'jp': { date_formatter: 'jp'}, - 'dgt': { date_formatter: 'dgt'}, + 'hybrid': { date_formatter: 'hyb'}, + 'digits': { date_formatter: 'dgt'}, } : { 'en' : { date_formatter: 'en' }, 'fr': { date_formatter:'fr'}, 'de': { date_formatter: 'de'}, 'es': { date_formatter: 'es'}, 'jp': { date_formatter: 'jp'}, - 'dgt': { date_formatter: 'dgt'}, + 'hybrid': { date_formatter: 'hyb'}, + 'digits': { date_formatter: 'dgt'}, } const locales = Object.keys(locale_mappings);