Skip to content

Commit 51b6fa9

Browse files
committed
allow for custom alarmtip time
1 parent 16cd953 commit 51b6fa9

6 files changed

Lines changed: 32 additions & 1 deletion

File tree

locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@
242242
"alarmtip-duration-20min": "20 min",
243243
"alarmtip-duration-30min": "30 min",
244244
"alarmtip-duration-60min": "60 min",
245+
"alarmtip-duration-custom": "Custom",
245246
"personalization-notification": "Custom notifications",
246247
"personalization-notification-tip": "Define the words shown at notifications to motivate yourself. Clear textboxes to remove personalized text. Use \"//\" as to separate different sentences and each time you will be given a random choice.",
247248
"personalization-notification-label-begin": "\"",

locales/zh-CN.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@
281281
"alarmtip-duration-20min": "20 分钟",
282282
"alarmtip-duration-30min": "30 分钟",
283283
"alarmtip-duration-60min": "60 分钟",
284+
"alarmtip-duration-custom": "自定义",
284285
"personalization-notification": "通知文本个性化",
285286
"personalization-notification-tip": "自定义这些通知文本,让它们更加能激励你前行!清空以复位。输入\"//\"来分割数条语句,每次随机出现。",
286287
"personalization-notification-label-begin": "",

locales/zh-TW.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@
274274
"alarmtip-duration-20min": "20 分鐘",
275275
"alarmtip-duration-30min": "30 分鐘",
276276
"alarmtip-duration-60min": "60 分鐘",
277+
"alarmtip-duration-custom": "自訂",
277278
"personalization-notification": "通知文本個性化",
278279
"personalization-notification-tip": "自定義這些通知文本,讓它們更加能激勵你前行!清空以復位。輸入\"//\"來分割數條語句,每次隨機出現。",
279280
"personalization-notification-label-begin": "",

main.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,10 @@ function createWindow() {
165165
function getAlarmtipDurationMs() {
166166
const idx = store.get('alarmtip-duration');
167167
const minutes = [3, 5, 10, 15, 20, 30, 60];
168+
if (idx === 7) {
169+
const custom = store.get('alarmtip-duration-custom');
170+
return (custom && custom > 0 ? custom : 45) * 60 * 1000;
171+
}
168172
const n = (idx >= 0 && idx < minutes.length) ? minutes[idx] : 10;
169173
return n * 60 * 1000;
170174
}

preferences-items.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ if (store.get("islocked") !== true) {
168168
}, {
169169
type: "dropdown",
170170
id: "alarmtip-duration",
171-
choices: ['3min', '5min', '10min', '15min', '20min', '30min', '60min'],
171+
choices: ['3min', '5min', '10min', '15min', '20min', '30min', '60min', 'custom'],
172172
def: 2,
173173
after: alarmtipDurationAfter
174174
}
@@ -322,6 +322,11 @@ function napAfter(val) {
322322
}
323323

324324
function alarmtipDurationAfter(val) {
325+
if (val == 7) {
326+
$('#alarmtip-custom-row').show();
327+
} else {
328+
$('#alarmtip-custom-row').hide();
329+
}
325330
}
326331

327332

preferences-renderer.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,25 @@ function dropdownSolution(obj, parent) {
127127
$('#dropdown-button-' + id).html(choiceLabel(choices[store.get(id)]));
128128
console.log(choiceLabel(choices[store.get(id)]), "CHOICE", id, store.get(id));
129129
}
130+
if (id === 'alarmtip-duration') {
131+
const customVal = store.get('alarmtip-duration-custom') || 45;
132+
parent.append(`
133+
<div id="alarmtip-custom-row" class="row w-100 align-items-center" style="display:none">
134+
<div class="col-8 text-left">
135+
<label>${i18n.__('alarmtip-duration-custom')}</label>
136+
</div>
137+
<div class="col-4 text-right">
138+
<input type="number" id="alarmtip-custom-input" class="hotkeyset"
139+
value="${customVal}" min="1" max="1440"
140+
onchange="store.set('alarmtip-duration-custom', Number(this.value))"
141+
oninput="if(Number(value)<1)value=1;if(Number(value)>1440)value=1440"/>
142+
<span class="small text-muted">${i18n.__('min')}</span>
143+
</div>
144+
</div>
145+
<br/>
146+
`);
147+
after(store.has(id) ? store.get(id) : def);
148+
}
130149
}
131150

132151
function dropdownTrigger(id, choiceId, choiceMsg, relaunch, after) {

0 commit comments

Comments
 (0)