mirror of
https://github.com/ThisIsBenny/iOS-Widgets.git
synced 2025-06-07 05:57:41 +00:00
Update VodafoneDE.js
v2.4.0: - added Support for flat tariff like "GigaMobil M mit unbegrenzten GB", "GigaMobil XL mit unbegrenzten GB" or other flat tariffs
This commit is contained in:
parent
8f52a70ce6
commit
172ec57727
1 changed files with 636 additions and 609 deletions
|
@ -3,9 +3,11 @@
|
||||||
// icon-color: red; icon-glyph: broadcast-tower;
|
// icon-color: red; icon-glyph: broadcast-tower;
|
||||||
|
|
||||||
/**************
|
/**************
|
||||||
Version 2.3.0
|
Version 2.4.0
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
v2.4.0:
|
||||||
|
- added Support for flat tariff like "GigaMobil M mit unbegrenzten GB", "GigaMobil XL mit unbegrenzten GB" or other flat tariffs
|
||||||
v2.3.0:
|
v2.3.0:
|
||||||
- Support for lockscreen widgets added
|
- Support for lockscreen widgets added
|
||||||
v2.2.2:
|
v2.2.2:
|
||||||
|
@ -252,7 +254,7 @@ async function setupAssistant () {
|
||||||
let res, data
|
let res, data
|
||||||
try {
|
try {
|
||||||
res = await req.loadJSON()
|
res = await req.loadJSON()
|
||||||
if(!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0] || !res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']) {
|
if (!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0] || !res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']) {
|
||||||
throw new Error('invalid response: ' + JSON.stringify(res))
|
throw new Error('invalid response: ' + JSON.stringify(res))
|
||||||
}
|
}
|
||||||
data = res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']
|
data = res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']
|
||||||
|
@ -374,7 +376,7 @@ function creatProgress(total, havegone) {
|
||||||
return context.getImage()
|
return context.getImage()
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDiagram(percentage) {
|
function getDiagram(percentage, isFlat, widgetType) {
|
||||||
function drawArc(ctr, rad, w, deg) {
|
function drawArc(ctr, rad, w, deg) {
|
||||||
bgx = ctr.x - rad
|
bgx = ctr.x - rad
|
||||||
bgy = ctr.y - rad
|
bgy = ctr.y - rad
|
||||||
|
@ -426,9 +428,22 @@ function getDiagram(percentage) {
|
||||||
)
|
)
|
||||||
canvas.setTextAlignedCenter()
|
canvas.setTextAlignedCenter()
|
||||||
canvas.setTextColor(textColor)
|
canvas.setTextColor(textColor)
|
||||||
canvas.setFont(Font.boldSystemFont(canvTextSize))
|
canvas.setFont(Font.boldSystemFont(108))
|
||||||
canvas.drawTextInRect(`${percentage}%`, canvTextRect)
|
if (isFlat === true) {
|
||||||
|
if (widgetType === "small" || "medium" || "large" || "extraLarge") {
|
||||||
|
const infinitySize = canvSize / 2;
|
||||||
|
canvas.setFont(Font.boldSystemFont(infinitySize));
|
||||||
|
const textRect = new Rect(0, infinitySize / 3, canvSize, canvSize);
|
||||||
|
canvas.drawTextInRect(`∞`, textRect);
|
||||||
|
} else {
|
||||||
|
const infinitySize = canvSize / 2;
|
||||||
|
canvas.setFont(Font.boldSystemFont(infinitySize));
|
||||||
|
const textRect = new Rect(0, infinitySize / 1, canvSize, canvSize);
|
||||||
|
canvas.drawTextInRect(`∞`, textRect);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
canvas.drawTextInRect(`${percentage}%`, canvTextRect);
|
||||||
|
}
|
||||||
return canvas.getImage()
|
return canvas.getImage()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -449,11 +464,21 @@ function getTimeRemaining(endtime) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTotalValues(v) {
|
function getTotalValues(v) {
|
||||||
let totalValues;
|
|
||||||
if (v.unitOfMeasure !== 'MB') {
|
if (v.unitOfMeasure !== 'MB') {
|
||||||
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure} von ${v.total} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure}`
|
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure} von ${v.total} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure}`
|
||||||
} else if (parseInt(v.total) < 1000) {
|
} else if (parseInt(v.total) < 1000) {
|
||||||
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} MB von ${v.total} MB`
|
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} MB von ${v.total} MB`
|
||||||
|
} else if (parseInt(v.total) >= 100000000) {
|
||||||
|
if (showRemainingContingent === true) {
|
||||||
|
totalValues = `Flat`
|
||||||
|
} else {
|
||||||
|
if (v.used <= 1024) {
|
||||||
|
totalValues = `${v.used} MB verbraucht.`
|
||||||
|
} else {
|
||||||
|
let usedGB = (v.used / 1024).toFixed(2)
|
||||||
|
totalValues = `${usedGB} GB verbraucht.`
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
let GB = ((showRemainingContingent ? v.remaining : v.used) / 1024).toFixed(2)
|
let GB = ((showRemainingContingent ? v.remaining : v.used) / 1024).toFixed(2)
|
||||||
let totalGB = (v.total / 1024).toFixed(2)
|
let totalGB = (v.total / 1024).toFixed(2)
|
||||||
|
@ -536,7 +561,7 @@ async function getUsage(user, pass, number) {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
let res = await req.loadJSON()
|
let res = await req.loadJSON()
|
||||||
if(!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0]) {
|
if (!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0]) {
|
||||||
if (debug) {
|
if (debug) {
|
||||||
console.log(JSON.stringify(res, null, 2))
|
console.log(JSON.stringify(res, null, 2))
|
||||||
}
|
}
|
||||||
|
@ -673,8 +698,9 @@ if (data !== undefined) {
|
||||||
stack.layoutHorizontally()
|
stack.layoutHorizontally()
|
||||||
let v = data.usage[0]
|
let v = data.usage[0]
|
||||||
if (config.widgetFamily !== "accessoryInline") {
|
if (config.widgetFamily !== "accessoryInline") {
|
||||||
const percentage = (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
|
const percentage = v.total >= 100000000 ? '∞' : (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
|
||||||
stack.addImage(getDiagram(percentage));
|
const isFlat = v.total >= 100000000
|
||||||
|
stack.addImage(getDiagram(percentage, isFlat, config.widgetFamily));
|
||||||
}
|
}
|
||||||
if (config.widgetFamily === "accessoryRectangular") {
|
if (config.widgetFamily === "accessoryRectangular") {
|
||||||
stack.addSpacer(5)
|
stack.addSpacer(5)
|
||||||
|
@ -733,11 +759,12 @@ stack.addImage(getDiagram(percentage));
|
||||||
column.layoutVertically()
|
column.layoutVertically()
|
||||||
column.centerAlignContent()
|
column.centerAlignContent()
|
||||||
|
|
||||||
const percentage = (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
|
const percentage = v.total > 100000000 ? 100 : (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
|
||||||
|
const isFlat = v.total >= 100000000
|
||||||
const imageStack = column.addStack()
|
const imageStack = column.addStack()
|
||||||
imageStack.layoutHorizontally()
|
imageStack.layoutHorizontally()
|
||||||
imageStack.addSpacer()
|
imageStack.addSpacer()
|
||||||
imageStack.addImage(getDiagram(percentage));
|
imageStack.addImage(getDiagram(percentage, isFlat, config.widgetFamily));
|
||||||
imageStack.addSpacer()
|
imageStack.addSpacer()
|
||||||
column.addSpacer(2)
|
column.addSpacer(2)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue