Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • chrome-manifest-v3
  • develop
  • feat/force-migration-check
  • feat/improve-network-scan
  • feature/android_api_19
  • feature/encrypted_comment
  • feature/migrate-cordova-13
  • gitlab_migration_1
  • master
  • rml8
  • 0.0.1.ES.alpha1
  • 0.0.2
  • 0.1.13
  • 0.1.14
  • 0.1.15
  • 0.1.16
  • 0.1.17
  • 0.1.18
  • 0.1.19
  • 0.1.20
  • 0.1.21
  • 0.1.22
  • 0.1.23
  • 0.1.24
  • 0.1.25
  • 0.1.26
  • 0.1.27
  • 0.1.28
  • 0.1.4
  • 0.1.7
  • 0.1.8
  • 0.2.0
  • 0.2.1
  • v0.10.0
  • v0.10.1
  • v0.10.2
  • v0.11.0
  • v0.11.1
  • v0.11.2
  • v0.11.3
  • v0.11.4
  • v0.11.5
  • v0.11.6
  • v0.11.7
  • v0.11.8
  • v0.12.0
  • v0.12.1
  • v0.12.2
  • v0.12.3
  • v0.12.4
  • v0.12.5
  • v0.12.6
  • v0.12.7
  • v0.12.8
  • v0.12.9
  • v0.13.0
  • v0.14.0
  • v0.14.1
  • v0.15.0
  • v0.15.1
  • v0.15.2
  • v0.15.3
  • v0.15.4
  • v0.15.5
  • v0.15.6
  • v0.15.7
  • v0.16.0
  • v0.16.1
  • v0.17.0
  • v0.17.1
  • v0.17.2
  • v0.17.3
  • v0.17.4
  • v0.17.5
  • v0.17.6
  • v0.18.0
  • v0.18.1
  • v0.18.2
  • v0.18.3
  • v0.19.0
  • v0.19.1
  • v0.19.2
  • v0.19.3
  • v0.19.4
  • v0.19.5
  • v0.19.6
  • v0.2.10
  • v0.2.12
  • v0.2.13
  • v0.2.14
  • v0.2.3
  • v0.2.4
  • v0.2.5
  • v0.2.6
  • v0.2.7
  • v0.2.8
  • v0.2.9
  • v0.3.0
  • v0.3.1
  • v0.3.10
  • v0.3.11
  • v0.3.12
  • v0.3.13
  • v0.3.14
  • v0.3.15
  • v0.3.16
  • v0.3.17
  • v0.3.2
  • v0.3.3
  • v0.3.4
110 results

Target

Select target project
  • cordeliaze/cesium
  • pfouque06/cesium
  • wellno1/cesium
  • 1000i100/cesium
  • vincentux/cesium
  • calbasi/cesium
  • thomasbromehead/cesium
  • matograine/cesium
  • clients/cesium-grp/cesium
  • cedricmenec/cesium
  • Pamplemousse/cesium
  • etienneleba/cesium
  • tnntwister/cesium
  • scanlegentil/cesium
  • morvanc/cesium
  • yyy/cesium
  • Axce/cesium
  • Bertrandbenj/cesium
  • Lupus/cesium
  • elmau/cesium
  • MartinDelille/cesium
  • tykayn/cesium
  • numeropi/cesium
  • Vivakvo/cesium
  • pokapow/cesium
  • pini-gh/cesium
  • anam/cesium
  • RavanH/cesium
  • bpresles/cesium
  • am97/cesium
  • tuxmain/cesium
  • jytou/cesium
  • oliviermaurice/cesium
  • 666titi999/cesium
  • Yvv/cesium
35 results
Select Git revision
  • Vivakvo/cesium-patch-8
  • dev
  • develop
  • feature/android_api_19
  • feature/cesium_plus_pod_2
  • feature/encrypted_comment
  • feature/startup_node_selection
  • gitlab_migration_1
  • hugo/startup_node_selection
  • master
  • rml8
  • 0.0.1.ES.alpha1
  • 0.0.2
  • 0.1.13
  • 0.1.14
  • 0.1.15
  • 0.1.16
  • 0.1.17
  • 0.1.18
  • 0.1.19
  • 0.1.20
  • 0.1.21
  • 0.1.22
  • 0.1.23
  • 0.1.24
  • 0.1.25
  • 0.1.26
  • 0.1.27
  • 0.1.28
  • 0.1.4
  • 0.1.7
  • 0.1.8
  • 0.2.0
  • 0.2.1
  • v0.10.0
  • v0.10.1
  • v0.10.2
  • v0.11.0
  • v0.11.1
  • v0.11.2
  • v0.11.3
  • v0.11.4
  • v0.11.5
  • v0.11.6
  • v0.11.7
  • v0.11.8
  • v0.12.0
  • v0.12.1
  • v0.12.2
  • v0.12.3
  • v0.12.4
  • v0.12.5
  • v0.12.6
  • v0.12.7
  • v0.12.8
  • v0.12.9
  • v0.13.0
  • v0.14.0
  • v0.14.1
  • v0.15.0
  • v0.15.1
  • v0.15.2
  • v0.15.3
  • v0.15.4
  • v0.15.5
  • v0.15.6
  • v0.15.7
  • v0.16.0
  • v0.16.1
  • v0.17.0
  • v0.17.1
  • v0.17.2
  • v0.17.3
  • v0.17.4
  • v0.17.5
  • v0.17.6
  • v0.18.0
  • v0.18.1
  • v0.18.2
  • v0.18.3
  • v0.19.0
  • v0.19.1
  • v0.19.2
  • v0.19.3
  • v0.19.4
  • v0.19.5
  • v0.19.6
  • v0.2.10
  • v0.2.12
  • v0.2.13
  • v0.2.14
  • v0.2.3
  • v0.2.4
  • v0.2.5
  • v0.2.6
  • v0.2.7
  • v0.2.8
  • v0.2.9
  • v0.3.0
  • v0.3.1
  • v0.3.10
  • v0.3.11
  • v0.3.12
  • v0.3.13
  • v0.3.14
  • v0.3.15
  • v0.3.16
  • v0.3.17
  • v0.3.2
  • v0.3.3
  • v0.3.4
111 results
Show changes
Showing
with 408 additions and 119 deletions
/**
* Add browser actions, for WebExtension
* (e.g. to open Cesium in a tab, when integrated as a Firefox extension).
*
* See https://forum.duniter.org/t/premiere-version-du-module-cesium-pour-firefox/6944
*
**/
var browser, chrome;
browser = browser || chrome;
var action = browser.browserAction || (chrome && chrome.action);
var browserExtensionRequirements = browser.tabs && action && action.onClicked;
// If integrated as a browser extension
if (browserExtensionRequirements) {
console.debug("[extension] Initializing...");
/**
* Open Cesium in a new browser's tab
*/
function openInTab() {
console.debug("[extension] Opening Cesium...")
browser.tabs.create({
url: "index.html"
});
}
// Adding browser action
action.onClicked.addListener(openInTab);
// FIXME: finish this code
function checkNotifications() {
console.debug("[extension] Checking for notifications...");
action.setBadgeText({
text: '0'
});
action.setBadgeBackgroundColor({
color: '#387EF5' // = $positive color - see the SCSS theme
});
// Loop, after a delay
setTimeout(function() {
checkNotifications();
}, 60 * 1000 /*1min*/);
}
//checkNotifications();
}
else {
console.error("[extension] Cannot init extension: missing some API requirements (action or tabs");
}
{
"manifest_version": 2,
"name": "Cesium",
"version": "1.7.12",
"description": "Cesium Wallet for Ğ1 libre currency",
"icons": {
"32": "img/logo_32px.png",
"60": "img/logo_60px.png",
"96": "img/logo_96px.png",
"144": "img/logo_144px.png",
"192": "img/logo.svg"
},
"permissions": [
"storage"
],
"host_permissions": [
"file:///*",
"*://*/*"
],
"background": {
"service_worker": "background.js",
"scripts": ["background.js"]
},
"browser_action" : {
"default_icon": {
"32": "img/logo_32px.png",
"60": "img/logo_60px.png",
"96": "img/logo_96px.png",
"128": "img/logo_128px.png"
}
},
"action": {
"default_icon": {
"32": "img/logo_32px.png",
"60": "img/logo_60px.png",
"96": "img/logo_96px.png",
"144": "img/logo_144px.png",
"192": "img/logo.svg"
}
}
}
File added
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es-ct" viewBox="0 0 640 480">
<path fill="#fcdd09" d="M0 0h640v480H0z"/>
<path stroke="#da121a" stroke-width="60" d="M0 90h810m0 120H0m0 120h810m0 120H0" transform="scale(.79012 .88889)"/>
</svg>
\ No newline at end of file
File added
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-de" viewBox="0 0 640 480">
<path fill="#ffce00" d="M0 320h640v160H0z"/>
<path d="M0 0h640v160H0z"/>
<path fill="#d00" d="M0 160h640v160H0z"/>
</svg>
\ No newline at end of file
File added
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-pt" viewBox="0 0 640 480">
<path fill="red" d="M256 0h384v480H256z"/>
<path fill="#060" d="M0 0h256v480H0z"/>
<g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".6">
<path d="M339.5 306.2c-32.3-1-180-93.2-181-108l8.1-13.5c14.7 21.3 165.7 111 180.6 107.8l-7.7 13.7"/>
<path d="M164.9 182.8c-2.9 7.8 38.6 33.4 88.4 63.8 49.9 30.3 92.9 49 96 46.4l1.5-2.8c-.6 1-2 1.3-4.3.6-13.5-3.9-48.6-20-92.1-46.4-43.6-26.4-81.4-50.7-87.3-61a6.3 6.3 0 0 1-.6-3.1h-.2l-1.2 2.2-.2.3zm175.3 123.8c-.5 1-1.6 1-3.5.8-12-1.3-48.6-19.1-91.9-45-50.4-30.2-92-57.6-87.4-64.8l1.2-2.2.2.1c-4 12.2 82.1 61.4 87.2 64.6 49.8 30.8 91.8 48.9 95.5 44.2l-1.3 2.3z"/>
<path d="M256.2 207.2c32.2-.3 72-4.4 95-13.6l-5-8c-13.5 7.5-53.5 12.5-90.3 13.2-43.4-.4-74.1-4.5-89.5-14.8l-4.6 8.6c28.2 12 57.2 14.5 94.4 14.6"/>
<path d="M352.5 193.8c-.8 1.3-15.8 6.4-37.8 10.2a381.2 381.2 0 0 1-58.6 4.3 416.1 416.1 0 0 1-56.2-3.6c-23.1-3.6-35-8.6-39.5-10.4l1.1-2.2c12.7 5 24.7 8 38.7 10.2A411.5 411.5 0 0 0 256 206a391.8 391.8 0 0 0 58.3-4.3c22.5-3.7 34.8-8.4 36.6-10.5l1.6 2.7zm-4.4-8.1c-2.4 2-14.6 6.3-36 9.7a388.2 388.2 0 0 1-55.8 4c-22 0-40.1-1.6-53.8-3.6-21.8-2.8-33.4-8-37.6-9.4l1.3-2.2c3.3 1.7 14.4 6.2 36.5 9.3a385 385 0 0 0 53.6 3.4 384 384 0 0 0 55.4-4c21.5-3 33.1-8.4 34.9-9.8l1.5 2.6zM150.3 246c19.8 10.7 63.9 16 105.6 16.4 38 .1 87.4-5.8 105.9-15.6l-.5-10.7c-5.8 9-58.8 17.7-105.8 17.4-47-.4-90.7-7.6-105.3-17v9.5"/>
<path d="M362.8 244.5v2.5c-2.8 3.4-20.2 8.4-42 12a434 434 0 0 1-65.4 4.4 400 400 0 0 1-62-4.3 155 155 0 0 1-44.4-12v-2.9c9.7 6.4 35.9 11.2 44.7 12.6 15.8 2.4 36.1 4.2 61.7 4.2 26.9 0 48.4-1.9 65-4.4 15.7-2.3 38-8.2 42.4-12.1zm0-9v2.5c-2.8 3.3-20.2 8.3-42 11.9a434 434 0 0 1-65.4 4.5 414 414 0 0 1-62-4.3 155 155 0 0 1-44.4-12v-3c9.7 6.5 36 11.2 44.7 12.6a408 408 0 0 0 61.7 4.3c26.9 0 48.5-2 65-4.5 15.7-2.2 38-8.1 42.4-12zm-107 68.8c-45.6-.2-84.7-12.4-93-14.4l6 9.4a249.8 249.8 0 0 0 87.4 14.3c34.7-1 65-3.7 86.3-14.1l6.2-9.8c-14.5 6.9-64 14.6-93 14.6"/>
<path d="M344.9 297.3a143 143 0 0 1-2.8 4c-10 3.6-26 7.4-32.6 8.4a295.5 295.5 0 0 1-53.7 5c-40.4-.6-73.5-8.5-89-15.3l-1.3-2.1.2-.4 2.1.9a286.5 286.5 0 0 0 88.2 14.5c18.8 0 37.5-2.1 52.6-4.8 23.2-4.7 32.6-8.2 35.5-9.8l.7-.4zm5.3-8.8a287.2 287.2 0 0 1-2 3.5c-5.4 2-20 6.2-41.3 9.2-14 1.9-22.7 3.8-50.6 4.3a347.4 347.4 0 0 1-94.2-14L161 289a390 390 0 0 0 95.4 14c25.5-.5 36.4-2.4 50.3-4.3 24.8-3.8 37.3-8 41-9.1a2.9 2.9 0 0 0 0-.2l2.6-1z"/>
<path d="M350.8 237.6c.1 30-15.3 57-27.6 68.8a99.3 99.3 0 0 1-67.8 28.2c-30.3.5-58.8-19.2-66.5-27.9a101 101 0 0 1-27.5-67.4c1.8-32.8 14.7-55.6 33.3-71.3a99.6 99.6 0 0 1 64.2-22.7 98.2 98.2 0 0 1 71 35.6c12.5 15.2 18 31.7 20.9 56.7zM255.6 135a106 106 0 0 1 106 105.2 105.6 105.6 0 1 1-211.4 0c-.1-58 47.3-105.2 105.4-105.2"/>
<path d="M255.9 134.5c58.2 0 105.6 47.4 105.6 105.6S314.1 345.7 256 345.7s-105.6-47.4-105.6-105.6c0-58.2 47.4-105.6 105.6-105.6zM152.6 240c0 56.8 46.7 103.3 103.3 103.3 56.6 0 103.3-46.5 103.3-103.3s-46.7-103.3-103.3-103.3S152.6 183.2 152.6 240z"/>
<path d="M256 143.3a97 97 0 0 1 96.7 96.7 97.1 97.1 0 0 1-96.7 96.8c-53 0-96.7-43.6-96.7-96.8a97.1 97.1 0 0 1 96.7-96.7zM161.6 240c0 52 42.6 94.4 94.4 94.4s94.4-42.5 94.4-94.4c0-52-42.6-94.4-94.4-94.4a94.8 94.8 0 0 0-94.4 94.4z"/>
<path d="M260.3 134h-9.1v212.3h9z"/>
<path d="M259.3 132.8h2.3v214.7h-2.2V132.8zm-9 0h2.4v214.7h-2.3V132.8z"/>
<path d="M361.6 244.2v-7.8l-6.4-6-36.3-9.6-52.2-5.3-63 3.2-44.8 10.6-9 6.7v7.9l22.9-10.3 54.4-8.5h52.3l38.4 4.2 26.6 6.4z"/>
<path d="M256 223.8c24.9 0 49 2.3 68.3 6 19.8 4 33.7 9 38.5 14.5v2.8c-5.8-7-24.5-12-39-15-19-3.6-43-6-67.9-6-26.1 0-50.5 2.6-69.3 6.2-15 3-35.1 9-37.6 14.8v-2.9c1.3-4 16.3-10 37.3-14.3 18.9-3.7 43.3-6.1 69.6-6.1zm0-9.1a383 383 0 0 1 68.3 6c19.8 4 33.7 9 38.5 14.6v2.7c-5.8-6.9-24.5-12-39-14.9-19-3.7-43-6-67.9-6a376 376 0 0 0-69.2 6.2c-14.5 2.7-35.4 8.9-37.7 14.7v-2.8c1.4-4 16.6-10.3 37.3-14.3 19-3.7 43.3-6.2 69.7-6.2zm-.6-46.2c39.3-.2 73.6 5.5 89.3 13.5l5.7 10c-13.6-7.4-50.6-15-94.9-14-36.1.3-74.7 4-94 14.4l6.8-11.4c15.9-8.3 53.3-12.5 87.1-12.5"/>
<path d="M256 176.7a354 354 0 0 1 61.3 4.3c16 3 31.3 7.4 33.5 9.8l1.7 3c-5.3-3.4-18.6-7.3-35.6-10.5s-38.7-4.3-61-4.2c-25.3-.1-45 1.2-61.8 4.2a108.9 108.9 0 0 0-33.3 10.3l1.7-3.1c6-3 15.3-6.7 31.1-9.6 17.5-3.2 37.4-4.1 62.4-4.2zm0-9c21.4-.2 42.6 1 59.1 4a96 96 0 0 1 30.6 10l2.5 4c-4.2-4.7-20-9.2-34.1-11.6-16.4-2.9-36.7-4-58.1-4.2a361 361 0 0 0-59.5 4.4 97.3 97.3 0 0 0-29.6 9.1l2.2-3.3c5.8-3 15.2-5.8 27-8.1a357 357 0 0 1 59.9-4.4zM308.4 284a276.4 276.4 0 0 0-52.5-4c-65.5.8-86.6 13.5-89.2 17.3l-5-8c16.8-12 52.4-18.8 94.6-18.2 21.9.4 40.8 1.9 56.6 5l-4.5 8"/>
<path d="M255.6 278.9c18.2.3 36 1 53.3 4.2l-1.2 2.2c-16-3-33.2-4-52-4-24.3-.2-48.7 2.1-70 8.2-6.7 1.9-17.8 6.2-19 9.8l-1.2-2c.4-2.2 7-6.6 19.6-10 24.4-7 47.2-8.3 70.5-8.4zm.8-9.2a327 327 0 0 1 57.3 5l-1.3 2.3a299 299 0 0 0-56-4.9c-24.2 0-49.9 1.8-73.3 8.6-7.5 2.2-20.6 7-21 10.7l-1.2-2.2c.2-3.4 11.5-7.9 21.7-10.8 23.5-6.9 49.3-8.6 73.8-8.7z"/>
<path d="m349.4 290.5-7.8 12.3-22.7-20.1-58.6-39.5-66.2-36.3-34.3-11.7 7.3-13.6 2.5-1.3 21.3 5.3 70.4 36.3 40.6 25.6L336 272l13.9 16z"/>
<path d="M158.6 195.5c6-4 50.2 15.6 96.6 43.6 46.1 28 90.3 59.6 86.3 65.5l-1.3 2.1-.6.5c.1-.1.8-1 0-3.1-2-6.5-33.4-31.5-85.3-62.9-50.7-30.1-92.9-48.3-97-43.1l1.3-2.6zM351 290.4c3.8-7.6-37.2-38.5-88.1-68.6-52-29.5-89.6-46.9-96.5-41.7L165 183c0 .1 0-.2.4-.5 1.2-1 3.3-1 4.2-1 11.8.2 45.5 15.7 92.8 42.8 20.8 12 87.6 55 87.3 67 0 1 .1 1.2-.3 1.8l1.7-2.6z"/>
</g>
<g transform="translate(0 26.7) scale(1.06667)">
<path fill="#fff" stroke="#000" stroke-width=".7" d="M180.6 211a58.7 58.7 0 0 0 17.5 41.7 59 59 0 0 0 41.8 17.6 59.4 59.4 0 0 0 42-17.4 59 59 0 0 0 17.4-41.8v-79.2l-118.7-.2V211z"/>
<path fill="red" stroke="#000" stroke-width=".5" d="M182.8 211.1a56.4 56.4 0 0 0 16.8 40 57 57 0 0 0 40.2 16.8 56.9 56.9 0 0 0 40.2-16.6 56.4 56.4 0 0 0 16.7-40v-77H183v76.8m91-53.7v48.9l-.1 5.1a33.2 33.2 0 0 1-10 24 34 34 0 0 1-24 10c-9.4 0-17.7-4-23.9-10.2a34 34 0 0 1-10-24v-54l68 .2z"/>
<g id="e">
<g id="d" fill="#ff0" stroke="#000" stroke-width=".5">
<path stroke="none" d="M190.2 154.4c.1-5.5 4-6.8 4-6.8.1 0 4.3 1.4 4.3 6.9h-8.3"/>
<path d="m186.8 147.7-.7 6.3h4.2c0-5.2 4-6 4-6 .1 0 4 1.1 4.1 6h4.2l-.8-6.4h-15zm-1 6.4h17c.3 0 .6.3.6.7 0 .5-.3.8-.6.8h-17c-.3 0-.6-.3-.6-.8 0-.4.3-.7.7-.7z"/>
<path d="M192 154c0-3.3 2.3-4.2 2.3-4.2s2.3 1 2.3 4.2H192m-5.8-9h16.3c.3 0 .6.4.6.8 0 .3-.3.6-.6.6h-16.3c-.3 0-.6-.3-.6-.7 0-.3.3-.6.6-.6zm.4 1.5H202c.3 0 .6.3.6.7 0 .4-.3.7-.6.7h-15.5c-.4 0-.6-.3-.6-.7 0-.4.2-.7.6-.7zm5-10.6h1.2v.8h.9v-.8h1.3v.9h.9v-1h1.2v2c0 .4-.2.6-.5.6h-4.4c-.3 0-.6-.2-.6-.5v-2zm4.6 2.7.3 6.4h-4.3l.3-6.5h3.7"/>
<path id="a" d="M191 141.6v3.4h-4v-3.4h4z"/>
<use xlink:href="#a" width="100%" height="100%" x="10.6"/>
<path id="b" d="M186.3 139h1.2v1h.9v-1h1.2v1h.9v-1h1.2v2c0 .4-.2.6-.5.6h-4.3a.6.6 0 0 1-.6-.6v-2z"/>
<use xlink:href="#b" width="100%" height="100%" x="10.6"/>
<path fill="#000" stroke="none" d="M193.9 140.6c0-.6.9-.6.9 0v1.6h-.9v-1.6"/>
<path id="c" fill="#000" stroke="none" d="M188.6 142.8c0-.6.8-.6.8 0v1.2h-.8v-1.2"/>
<use xlink:href="#c" width="100%" height="100%" x="10.6"/>
</g>
<use xlink:href="#d" width="100%" height="100%" y="46.3"/>
<use xlink:href="#d" width="100%" height="100%" transform="rotate(-45.2 312.8 180)"/>
</g>
<use xlink:href="#d" width="100%" height="100%" x="45.7"/>
<use xlink:href="#e" width="100%" height="100%" transform="matrix(-1 0 0 1 479.8 0)"/>
<g id="f" fill="#fff">
<path fill="#039" d="M232.6 202.4a8.3 8.3 0 0 0 2.2 5.7 7.2 7.2 0 0 0 5.3 2.4c2.1 0 4-1 5.3-2.4a8.3 8.3 0 0 0 2.2-5.7v-10.8h-15v10.8"/>
<circle cx="236.1" cy="195.7" r="1.5"/>
<circle cx="244.4" cy="195.7" r="1.5"/>
<circle cx="240.2" cy="199.7" r="1.5"/>
<circle cx="236.1" cy="203.9" r="1.5"/>
<circle cx="244.4" cy="203.9" r="1.5"/>
</g>
<use xlink:href="#f" width="100%" height="100%" y="-26"/>
<use xlink:href="#f" width="100%" height="100%" x="-20.8"/>
<use xlink:href="#f" width="100%" height="100%" x="20.8"/>
<use xlink:href="#f" width="100%" height="100%" y="25.8"/>
</g>
</svg>
\ No newline at end of file
File added
resources/logo/web-ext/cesium-app-site.png

165 KiB

...@@ -9,10 +9,13 @@ var browser, chrome; ...@@ -9,10 +9,13 @@ var browser, chrome;
browser = browser || chrome; browser = browser || chrome;
var browserExtensionRequirements = browser.browserAction && browser.browserAction.onClicked && browser.tabs; var action = browser.browserAction || (chrome && chrome.action);
var browserExtensionRequirements = browser.tabs && action && action.onClicked;
// If integrated as a browser extension // If integrated as a browser extension
if (browserExtensionRequirements) { if (browserExtensionRequirements) {
console.debug("[extension] Initializing...");
/** /**
* Open Cesium in a new browser's tab * Open Cesium in a new browser's tab
...@@ -22,18 +25,19 @@ if (browserExtensionRequirements) { ...@@ -22,18 +25,19 @@ if (browserExtensionRequirements) {
browser.tabs.create({ browser.tabs.create({
url: "index.html" url: "index.html"
}); });
} }
// Adding browser action
action.onClicked.addListener(openInTab);
// FIXME: finish this code // FIXME: finish this code
function checkNotifications() { function checkNotifications() {
console.debug("[extension] Checking for notifications..."); console.debug("[extension] Checking for notifications...");
browser.browserAction.setBadgeText({ action.setBadgeText({
text: '0' text: '0'
}); });
browser.browserAction.setBadgeBackgroundColor({ action.setBadgeBackgroundColor({
color: '#387EF5' // = $positive color - see the SCSS theme color: '#387EF5' // = $positive color - see the SCSS theme
}); });
...@@ -42,8 +46,8 @@ if (browserExtensionRequirements) { ...@@ -42,8 +46,8 @@ if (browserExtensionRequirements) {
checkNotifications(); checkNotifications();
}, 60 * 1000 /*1min*/); }, 60 * 1000 /*1min*/);
} }
//checkNotifications();
// Adding browser action }
browser.browserAction.onClicked.addListener(openInTab); else {
console.error("[extension] Cannot init extension: missing some API requirements (action or tabs");
} }
{ {
"name": "Cesium", "name": "Cesium",
"short_name": "Cesium", "short_name": "Cesium",
"version": "1.7.0-rc1", "version": "1.7.14",
"description": "Manage your Duniter Wallet on a libre currency, like Ğ1", "description": "Manage your Duniter Wallet on a libre currency, like Ğ1",
"background": { "background": {
"scripts": ["background.js"] "scripts": ["background.js"]
...@@ -13,14 +13,23 @@ ...@@ -13,14 +13,23 @@
"32": "img/logo_32px.png", "32": "img/logo_32px.png",
"60": "img/logo_60px.png", "60": "img/logo_60px.png",
"96": "img/logo_96px.png", "96": "img/logo_96px.png",
"128": "img/logo_128px.png" "128": "img/logo_128px.png",
"192": "img/logo.svg"
} }
}, },
"icons": { "icons": {
"32": "img/logo_32px.png", "32": "img/logo_32px.png",
"60": "img/logo_60px.png", "60": "img/logo_60px.png",
"96": "img/logo_96px.png", "96": "img/logo_96px.png",
"128": "img/logo_128px.png" "128": "img/logo_128px.png",
"192": "img/logo.svg"
}, },
"protocol_handlers": [
{
"protocol": "web+june",
"name": "web Ğ1",
"uriTemplate": "index.html#/app/home?uri=%s"
}
],
"manifest_version": 2 "manifest_version": 2
} }
...@@ -15,11 +15,16 @@ fi ...@@ -15,11 +15,16 @@ fi
cd ${PROJECT_DIR} cd ${PROJECT_DIR}
if [[ ! -d "${ANDROID_SDK_CLI_ROOT}/bin" ]]; then
echo "Failed to find the Android SDK CLI. Please run first: \`scripts/install-android-sdk-tools.sh\`"
exit 1
fi
# Run the build # Run the build
echo "Cleaning previous android APK files..." echo "Cleaning previous android APK files..."
rm -rf ${ANDROID_OUTPUT_APK_DEBUG}/*.apk rm -f ${ANDROID_OUTPUT_APK_DEBUG}/*.apk
rm -rf ${ANDROID_OUTPUT_APK_RELEASE}/*.apk rm -f ${ANDROID_OUTPUT_APK_RELEASE}/*.apk*
echo "Running cordova build android..." echo "Running cordova build android..."
ionic cordova build android --warning-mode=none --color $* ionic cordova build android --warning-mode=none --color $* -- -- --packageType=apk
#ionic cordova build android --warning-mode=none --color --verbose #ionic cordova build android --warning-mode=none --color --verbose -- -- --packageType=apk
...@@ -15,10 +15,12 @@ if test -z "${CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL}"; then ...@@ -15,10 +15,12 @@ if test -z "${CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL}"; then
echo "ERROR: Missing Gradle distribution URL - please export env variable 'CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'" echo "ERROR: Missing Gradle distribution URL - please export env variable 'CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'"
fi fi
echo "Preparing Android environment:" echo "--- Preparing Android environment:"
echo " Root: ${PROJECT_DIR}" echo " Root: ${PROJECT_DIR}"
echo " NodeJS: version ${NODE_VERSION} with options: ${NODE_OPTIONS}" echo " NodeJS: ${NODE_VERSION} with options: ${NODE_OPTIONS}"
echo " Android SDK: ${ANDROID_SDK_ROOT} with CLI: ${ANDROID_SDK_CLI_ROOT}" echo " Android SDK: ${ANDROID_SDK_ROOT}"
echo " Android CLI: ${ANDROID_SDK_CLI_ROOT}"
echo " Build Tools: ${ANDROID_BUILD_TOOLS_ROOT}"
echo " Gradle: ${GRADLE_HOME} with options: ${GRADLE_OPTS}" echo " Gradle: ${GRADLE_HOME} with options: ${GRADLE_OPTS}"
echo " Java: ${JAVA_HOME}" echo " Java: ${JAVA_HOME}"
...@@ -30,17 +32,20 @@ if test -z "${JAVAC_PATH}"; then ...@@ -30,17 +32,20 @@ if test -z "${JAVAC_PATH}"; then
fi fi
# Prepare Android SDK tools # Prepare Android SDK tools
if ! test -d "${BUILD_TOOLS_DIR}" || ! test -d "${ANDROID_SDK_CLI_ROOT}/tools/bin"; then if ! test -d "${ANDROID_SDK_CLI_ROOT}"; then
. ${PROJECT_DIR}/scripts/install-android-sdk.sh . ${PROJECT_DIR}/scripts/install-android-sdk-tools.sh
if test $? -ne 0; then if test $? -ne 0; then
echo "ERROR: Unable to install Android SDK Tools & CLI" echo "ERROR: Unable to install Android SDK Tools & CLI"
fi fi
else
# Add SDK CLI to path
export PATH=${ANDROID_SDK_CLI_ROOT}/bin:$PATH
fi fi
# Install Gradle # Install Gradle
if test -z "$(which gradle)" && ! test -d "${GRADLE_HOME}"; then if test -z "$(which gradle)" && ! test -d "${GRADLE_HOME}"; then
cd "${PROJECT_DIR}/scripts" cd "${PROJECT_DIR}/scripts"
echo "Installing gradle... ${GRADLE_HOME}" echo "--- Installing gradle... ${GRADLE_HOME}"
test -e "gradle-${GRADLE_VERSION}-all.zip" || wget -kL ${CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL} test -e "gradle-${GRADLE_VERSION}-all.zip" || wget -kL ${CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL}
GRADLE_PARENT=$(dirname $GRADLE_HOME) GRADLE_PARENT=$(dirname $GRADLE_HOME)
test -e "${GRADLE_PARENT}" || mkdir -p ${GRADLE_PARENT} test -e "${GRADLE_PARENT}" || mkdir -p ${GRADLE_PARENT}
...@@ -58,7 +63,7 @@ fi ...@@ -58,7 +63,7 @@ fi
# Prepare Android platform # Prepare Android platform
if ! test -d "${PROJECT_DIR}/platforms/android"; then if ! test -d "${PROJECT_DIR}/platforms/android"; then
echo "Adding Cordova Android platform..." echo "--- Adding Cordova Android platform..."
cd "${PROJECT_DIR}" cd "${PROJECT_DIR}"
ionic cordova prepare android --color --verbose ionic cordova prepare android --color --verbose
if test $? -ne 0; then if test $? -ne 0; then
...@@ -79,7 +84,7 @@ else ...@@ -79,7 +84,7 @@ else
fi fi
echo echo
echo "Check Requirements" echo "--- Checking Android requirements..."
cordova requirements android --verbose cordova requirements android --verbose
if test $? -ne 0; then if test $? -ne 0; then
echo "ERROR: Check Cordova requirements failed" echo "ERROR: Check Cordova requirements failed"
...@@ -92,4 +97,4 @@ PATH=${GRADLE_HOME}/bin:${PATH} ...@@ -92,4 +97,4 @@ PATH=${GRADLE_HOME}/bin:${PATH}
export PATH \ export PATH \
BUILD_TOOLS_DIR BUILD_TOOLS_DIR
echo "Android environment is ready!" echo "--- Android environment is ready!"
...@@ -20,29 +20,35 @@ REPO="duniter/cesium" ...@@ -20,29 +20,35 @@ REPO="duniter/cesium"
REPO_API_URL="https://api.github.com/repos/${REPO}" REPO_API_URL="https://api.github.com/repos/${REPO}"
REPO_PUBLIC_URL="https://github.com/${REPO}" REPO_PUBLIC_URL="https://github.com/${REPO}"
NODEJS_VERSION=12 NODE_VERSION=16
#NODE_OPTIONS=--max-old-space-size=4096 #NODE_OPTIONS=--max-old-space-size=4096
IONIC_CLI_VERSION=6.20.9
ANDROID_NDK_VERSION=19.2.5345600 ANDROID_NDK_VERSION=21.0.6113669 # Should be compatible with 'cordova-sqlite-storage' plugin
ANDROID_SDK_VERSION=29.0.3 ANDROID_SDK_VERSION=33.0.2
ANDROID_SDK_CLI_VERSION=6858069 ANDROID_SDK_CLI_VERSION=8512546 # See https://developer.android.com/studio#command-tools
ANDROID_SDK_ROOT="${HOME}/Android/Sdk" ANDROID_SDK_ROOT="${HOME}/Android/Sdk"
ANDROID_ALTERNATIVE_SDK_ROOT=/usr/lib/android-sdk ANDROID_ALTERNATIVE_SDK_ROOT=/usr/lib/android-sdk
ANDROID_SDK_CLI_ROOT=${ANDROID_SDK_ROOT}/cli ANDROID_SDK_CLI_ROOT=${ANDROID_SDK_ROOT}/cmdline-tools/${ANDROID_SDK_CLI_VERSION}
ANDROID_OUTPUT_APK=${PROJECT_DIR}/platforms/android/app/build/outputs/apk ANDROID_BUILD_TOOLS_ROOT="${ANDROID_SDK_ROOT}/build-tools/${ANDROID_SDK_VERSION}"
ANDROID_OUTPUT_APK_PREFIX=app
ANDROID_OUTPUT_APK=${PROJECT_DIR}/platforms/android/${ANDROID_OUTPUT_APK_PREFIX}/build/outputs/apk
ANDROID_OUTPUT_APK_DEBUG=${ANDROID_OUTPUT_APK}/debug ANDROID_OUTPUT_APK_DEBUG=${ANDROID_OUTPUT_APK}/debug
ANDROID_OUTPUT_APK_RELEASE=${ANDROID_OUTPUT_APK}/release ANDROID_OUTPUT_APK_RELEASE=${ANDROID_OUTPUT_APK}/release
ANDROID_OUTPUT_MIN_SDK_VERSION=22 # Used by release-android-sign.sh
ANDROID_OUTPUT_MAX_SDK_VERSION=34 # Used by release-android-sign.sh
DIST_WEB=${PROJECT_DIR}/dist/web/build DIST_WEB=${PROJECT_DIR}/dist/web/build
DIST_ANDROID=${PROJECT_DIR}/dist/android DIST_ANDROID=${PROJECT_DIR}/dist/android/build # Where APK are stored
SOURCES_ANDROID=${PROJECT_DIR}/dist/android/sources # Where git cesium-android is checkout
# Addons Mozilla Web extension ID # Addons Mozilla Web extension ID
WEB_EXT_ID="{6f9922f7-a054-4609-94ce-d269993246a5}" WEB_EXT_ID=${WEB_EXT_ID:-"{6f9922f7-a054-4609-94ce-d269993246a5}"}
# /!\ WARN can be define in your <project>/.local/env.sh file # /!\ WARN can be define in your <project>/.local/env.sh file
#JAVA_HOME= #JAVA_HOME=
GRADLE_VERSION=6.5.1 GRADLE_VERSION=6.7.1
GRADLE_HOME=${HOME}/.gradle/${GRADLE_VERSION} GRADLE_HOME=${HOME}/.gradle/${GRADLE_VERSION}
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
GRADLE_OPTS=-Dorg.gradle.jvmargs=-Xmx512m GRADLE_OPTS=-Dorg.gradle.jvmargs=-Xmx512m
...@@ -56,7 +62,7 @@ else ...@@ -56,7 +62,7 @@ else
fi fi
# Checking Java installed # Checking Java installed
if test -z "${JAVA_HOME}"; then if test -d "${JAVA_HOME}"; then
JAVA_CMD=`which java` JAVA_CMD=`which java`
if test -z "${JAVA_CMD}"; then if test -z "${JAVA_CMD}"; then
echo "ERROR: No Java installed. Please install java, or set env variable JAVA_HOME " echo "ERROR: No Java installed. Please install java, or set env variable JAVA_HOME "
...@@ -68,10 +74,12 @@ if test -z "${JAVA_HOME}"; then ...@@ -68,10 +74,12 @@ if test -z "${JAVA_HOME}"; then
if test $? -ne 0 || test -z "${JAVA_VERSION}"; then if test $? -ne 0 || test -z "${JAVA_VERSION}"; then
echo "No Java JRE 1.8 found in machine. This is required for Android artifacts." echo "No Java JRE 1.8 found in machine. This is required for Android artifacts."
else else
if ! test "${JAVA_VERSION}" -eq "11"; then
JAVA_MAJOR_VERSION=$(echo ${JAVA_VERSION} | awk '{split($0, array, ".")} END{print array[1]}') JAVA_MAJOR_VERSION=$(echo ${JAVA_VERSION} | awk '{split($0, array, ".")} END{print array[1]}')
JAVA_MINOR_VERSION=$(echo ${JAVA_VERSION} | awk '{split($0, array, ".")} END{print array[2]}') JAVA_MINOR_VERSION=$(echo ${JAVA_VERSION} | awk '{split($0, array, ".")} END{print array[2]}')
if ! test "${JAVA_MAJOR_VERSION}" == "1" || ! test "${JAVA_MINOR_VERSION}" == "8"; then if ! test "${JAVA_MAJOR_VERSION}" -eq "11" || ! test "${JAVA_MINOR_VERSION}" -eq "0"; then
echo "ERROR: Require a Java JRE in version 1.8, but found ${JAVA_VERSION}. You can override your default JAVA_HOME in '.local/env.sh'." echo "ERROR: Require a Java SDK in version 11, but found ${JAVA_VERSION}. You can override your default JAVA_HOME in '.local/env.sh'."
fi
fi fi
fi fi
fi fi
...@@ -85,6 +93,7 @@ if test -z "${ANDROID_SDK_ROOT}" || ! test -d "${ANDROID_SDK_ROOT}"; then ...@@ -85,6 +93,7 @@ if test -z "${ANDROID_SDK_ROOT}" || ! test -d "${ANDROID_SDK_ROOT}"; then
fi fi
fi fi
# Add Java, Android SDK tools to path # Add Java, Android SDK tools to path
PATH=${ANDROID_SDK_CLI_ROOT}/bin:${GRADLE_HOME}/bin:${JAVA_HOME}/bin$:$PATH PATH=${ANDROID_SDK_CLI_ROOT}/bin:${GRADLE_HOME}/bin:${JAVA_HOME}/bin$:$PATH
...@@ -96,7 +105,6 @@ export PATH \ ...@@ -96,7 +105,6 @@ export PATH \
ANDROID_SDK_CLI_ROOT \ ANDROID_SDK_CLI_ROOT \
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL
# Node JS # Node JS
export NVM_DIR="$HOME/.nvm" export NVM_DIR="$HOME/.nvm"
if test -d "${NVM_DIR}"; then if test -d "${NVM_DIR}"; then
...@@ -105,26 +113,32 @@ if test -d "${NVM_DIR}"; then ...@@ -105,26 +113,32 @@ if test -d "${NVM_DIR}"; then
. "${NVM_DIR}/nvm.sh" . "${NVM_DIR}/nvm.sh"
# Switch to expected version # Switch to expected version
nvm use ${NODEJS_VERSION} nvm use ${NODE_VERSION}
# Or install it # Or install it
if test $? -ne 0; then if test $? -ne 0; then
nvm install ${NODEJS_VERSION} nvm install ${NODE_VERSION}
fi fi
else else
echo "nvm (Node version manager) not found (directory ${NVM_DIR} not found). Please install, and retry" echo "nvm (Node version manager) not found (directory ${NVM_DIR} not found). Please install, and retry"
fi fi
# Checking if some global dependencies are missing
GLOBAL_TOOLS="yarn gulp ionic cordova web-ext cordova-res native-run"
MISSING_GLOBAL_TOOLS=
for GLOBAL_TOOL in ${GLOBAL_TOOLS}
do
GLOBAL_TOOL_PATH=$(which ${GLOBAL_TOOL})
if test -z "${GLOBAL_TOOL_PATH}"; then
echo "- Missing global dependency: ${GLOBAL_TOOL}"
MISSING_GLOBAL_TOOLS="${GLOBAL_TOOL} ${MISSING_GLOBAL_TOOLS}"
fi
done
# Install global dependencies # Install global dependencies
YARN_PATH=`which yarn` if ! test -z "${MISSING_GLOBAL_TOOLS}"; then
IONIC_PATH=`which ionic`
CORDOVA_PATH=`which cordova`
CORDOVA_RES_PATH=`which cordova-res`
NATIVE_RUN_PATH=`which native-run`
WEB_EXT_PATH=`which web-ext`
if test -z "${YARN_PATH}" || test -z "${IONIC_PATH}" || test -z "${CORDOVA_PATH}" || test -z "${CORDOVA_RES_PATH}" || test -z "${NATIVE_RUN_PATH}" || test -z "${WEB_EXT_PATH}"; then
echo "Installing global dependencies..." echo "Installing global dependencies..."
npm install -g yarn cordova cordova-res @ionic/cli web-ext native-run npm install -g yarn gulp cordova @ionic/cli@$IONIC_CLI_VERSION web-ext cordova-res native-run
if ! test $? == 0; then if ! test $? == 0; then
echo "ERROR: Unable to install global dependencies" echo "ERROR: Unable to install global dependencies"
#exit 1 #exit 1
...@@ -136,18 +150,28 @@ fi ...@@ -136,18 +150,28 @@ fi
# Install project dependencies # Install project dependencies
if ! test -d "${PROJECT_DIR}/node_modules"; then if ! test -d "${PROJECT_DIR}/node_modules"; then
echo "Installing project dependencies..." echo "--- Installing project dependencies..."
cd "${PROJECT_DIR}" cd ${PROJECT_DIR}
yarn install yarn install
fi fi
# Install project submodules # Install platform Android
if ! test -d "${PROJECT_DIR}/platforms/android" || ! test -d "${PROJECT_DIR}/dist/desktop"; then if ! test -d "${PROJECT_DIR}/platforms/android"; then
#echo "Installing project submodules..." echo "-- Installing platform Android..."
#cd "${PROJECT_DIR}" cd ${PROJECT_DIR}
#git submodule init && git submodule sync && git submodule update --remote --merge ionic cordova platform add android
if ! test $? == 0; then if ! test $? == 0; then
echo "ERROR: Unable to sync git submodule. Will not be able to build android and desktop artifacts!" echo "ERROR: Unable to install Android platform. Will not be able to build Android artifacts!"
#exit 1
fi
fi
if ! test -d "${PROJECT_DIR}/dist/desktop"; then
echo "-- Checkout submodules (dist/desktop) ..."
cd "${PROJECT_DIR}"
git submodule init && git submodule sync && git submodule update --remote --merge
if ! test $? == 0; then
echo "ERROR: Unable to sync git submodule. Will not be able to build desktop artifacts!"
#exit 1 #exit 1
fi fi
fi fi
...@@ -156,9 +180,12 @@ fi ...@@ -156,9 +180,12 @@ fi
export PATH \ export PATH \
PROJECT_DIR PROJECT_NAME \ PROJECT_DIR PROJECT_NAME \
REPO REPO_API_URL REPO_PUBLIC_URL \ REPO REPO_API_URL REPO_PUBLIC_URL \
NODEJS_VERSION \ NODE_VERSION \
ANDROID_NDK_VERSION ANDROID_SDK_VERSION ANDROID_SDK_CLI_VERSION ANDROID_SDK_ROOT ANDROID_ALTERNATIVE_SDK_ROOT \ JAVA_HOME \
ANDROID_SDK_CLI_ROOT ANDROID_OUTPUT_APK ANDROID_OUTPUT_APK_DEBUG ANDROID_OUTPUT_APK_RELEASE \ ANDROID_NDK_VERSION ANDROID_SDK_VERSION ANDROID_SDK_CLI_VERSION \
ANDROID_HOME ANDROID_SDK_ROOT ANDROID_ALTERNATIVE_SDK_ROOT ANDROID_SDK_CLI_ROOT \
ANDROID_OUTPUT_APK ANDROID_OUTPUT_APK_DEBUG ANDROID_OUTPUT_APK_RELEASE \
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL \
GRADLE_HOME GRADLE_OPTS \ GRADLE_HOME GRADLE_OPTS \
DIST_WEB DIST_ANDROID \ DIST_WEB DIST_ANDROID \
WEB_EXT_ID WEB_EXT_ID
......
#!/bin/bash #!/bin/bash -e
# Load global variables # Load global variables
. "$(dirname $0)/env-global.sh" . "$(dirname $0)/env-global.sh"
...@@ -13,23 +13,24 @@ if [[ "_" == "_${ANDROID_SDK_CLI_ROOT}" ]]; then ...@@ -13,23 +13,24 @@ if [[ "_" == "_${ANDROID_SDK_CLI_ROOT}" ]]; then
exit 1 exit 1
fi fi
if [[ ! -d "${ANDROID_SDK_CLI_ROOT}/tools/bin" ]]; then if [[ ! -d "${ANDROID_SDK_CLI_ROOT}/bin" ]]; then
echo "-------------------------------------------"
echo "Installing Android SDK CLI... ${ANDROID_SDK_CLI_ROOT}" echo "Installing Android SDK CLI... ${ANDROID_SDK_CLI_ROOT}"
mkdir -vp "${ANDROID_SDK_CLI_ROOT}"
ANDROID_SDK_CLI_FILE="commandlinetools-linux-${ANDROID_SDK_CLI_VERSION}_latest.zip" ANDROID_SDK_CLI_FILE="commandlinetools-linux-${ANDROID_SDK_CLI_VERSION}_latest.zip"
test -e "${ANDROID_SDK_CLI_FILE}" || wget -kL https://dl.google.com/android/repository/${ANDROID_SDK_CLI_FILE} test -e "${ANDROID_SDK_CLI_FILE}" || wget -kL https://dl.google.com/android/repository/${ANDROID_SDK_CLI_FILE}
test -e "${ANDROID_SDK_CLI_ROOT}" || sudo mkdir -p "${ANDROID_SDK_CLI_ROOT}" test -e "${ANDROID_SDK_CLI_ROOT}" || sudo mkdir -p "${ANDROID_SDK_CLI_ROOT}"
test -e "${ANDROID_SDK_CLI_ROOT}" && sudo unzip -qq ${ANDROID_SDK_CLI_FILE} -d "${ANDROID_SDK_CLI_ROOT}" test -e "/tmp/cmdline-tools" && sudo rm -rf /tmp/cmdline-tools
test -e "${ANDROID_SDK_CLI_ROOT}" && sudo rm "${ANDROID_SDK_CLI_FILE}" test -e "${ANDROID_SDK_CLI_ROOT}" && sudo unzip -qq ${ANDROID_SDK_CLI_FILE} -d /tmp
test -e "/tmp/cmdline-tools" && sudo mv /tmp/cmdline-tools/* "${ANDROID_SDK_CLI_ROOT}"
test -e "${ANDROID_SDK_CLI_FILE}" && sudo rm "${ANDROID_SDK_CLI_FILE}"
fi fi
if [[ ! -d "${ANDROID_SDK_CLI_ROOT}/tools/bin" ]]; then if [[ ! -d "${ANDROID_SDK_CLI_ROOT}/bin" ]]; then
echo "Failed to install Android SDK CLI tools. If you are not root, try with \`sudo -E ./install-android-sdk-tools.sh\`" echo "Failed to install Android SDK CLI. If you are not root, try with \`sudo -E ./install-android-sdk-tools.sh\`"
exit 1 exit 1
fi fi
# Add SDK CLI and Java to path
export PATH=${ANDROID_SDK_CLI_ROOT}/tools/bin:$PATH
mkdir -p ${ANDROID_SDK_ROOT}/licenses mkdir -p ${ANDROID_SDK_ROOT}/licenses
echo 8933bad161af4178b1185d1a37fbf41ea5269c55 > ${ANDROID_SDK_ROOT}/licenses/android-sdk-license echo 8933bad161af4178b1185d1a37fbf41ea5269c55 > ${ANDROID_SDK_ROOT}/licenses/android-sdk-license
echo 601085b94cd77f0b54ff86406957099ebe79c4d6 > ${ANDROID_SDK_ROOT}/licenses/android-googletv-license echo 601085b94cd77f0b54ff86406957099ebe79c4d6 > ${ANDROID_SDK_ROOT}/licenses/android-googletv-license
...@@ -42,26 +43,30 @@ touch ~/.android/repositories.cfg ...@@ -42,26 +43,30 @@ touch ~/.android/repositories.cfg
echo y | sdkmanager "platform-tools" "--sdk_root=${ANDROID_SDK_ROOT}" | tee sdkmanager.log echo y | sdkmanager "platform-tools" "--sdk_root=${ANDROID_SDK_ROOT}" | tee sdkmanager.log
echo y | sdkmanager "extras;android;m2repository" "--sdk_root=${ANDROID_SDK_ROOT}" | tee -a sdkmanager.log echo y | sdkmanager "extras;android;m2repository" "--sdk_root=${ANDROID_SDK_ROOT}" | tee -a sdkmanager.log
echo y | sdkmanager "extras;google;m2repository" "--sdk_root=${ANDROID_SDK_ROOT}" | tee -a sdkmanager.log echo y | sdkmanager "extras;google;m2repository" "--sdk_root=${ANDROID_SDK_ROOT}" | tee -a sdkmanager.log
echo y | sdkmanager "cmdline-tools;latest" "--sdk_root=${ANDROID_SDK_ROOT}" | tee sdkmanager.log
# Install build tools # Install build tools
echo "Installing Android build-tools..." echo ""
echo y | sdkmanager "build-tools;21.1.1" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log echo "-------------------------------------------"
echo "--- Installing Android build-tools ${ANDROID_SDK_VERSION}..."
echo y | sdkmanager "build-tools;${ANDROID_SDK_VERSION}" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log echo y | sdkmanager "build-tools;${ANDROID_SDK_VERSION}" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
# Install platforms # Install platforms
echo "Installing Android target platforms..." TARGET_VERSIONS="22 23 24 25 26 27 28 29 30 31 32 33"
echo y | sdkmanager "platforms;android-16" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log for TARGET_VERSION in $TARGET_VERSIONS
echo y | sdkmanager "platforms;android-21" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log do
echo y | sdkmanager "platforms;android-23" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log echo "-------------------------------------------"
echo y | sdkmanager "platforms;android-24" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log echo "--- Installing Android target ${TARGET_VERSION}..."
echo y | sdkmanager "platforms;android-25" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log echo y | sdkmanager "platforms;android-${TARGET_VERSION}" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
echo y | sdkmanager "platforms;android-27" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
echo y | sdkmanager "platforms;android-28" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
echo y | sdkmanager "platforms;android-29" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
done
# Install NDK # Install NDK
echo "Installing Android NDK..." echo "-------------------------------------------"
sdkmanager "ndk;22.0.7026061" --sdk_root=${ANDROID_SDK_ROOT} echo "--- Installing Android NDK..."
sdkmanager "ndk;${ANDROID_NDK_VERSION}" --sdk_root=${ANDROID_SDK_ROOT} echo y | sdkmanager "ndk;22.0.7026061" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
#echo y | sdkmanager "ndk;25.2.9519653" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
echo y | sdkmanager "ndk;${ANDROID_NDK_VERSION}" --sdk_root=${ANDROID_SDK_ROOT} | tee -a sdkmanager.log
echo "--- Installing Android [OK]"
## Chat GPT prompt for translations
I need translations for the following messages in a web application, in these languages/locales: en, en-GB, de-DE, eo-EO, es-CT, es-ES, it-IT, nl-NL, pt-PT. Please follow these constraints: maintain the input JSON format, indentation, and message keys; preserve HTML tags and case; and keep proper nouns untranslated (e.g., "Duniter" and "Cesium"). Here is the source message in French:
```json
"ORIGINAL_KEY_UNCHANGED": "<your_translation>"
```
Please provide the translations for each language/locale in this format:
- <language_code> (e.g., en, en-GB, ...):
```json
{
"ORIGINAL_KEY_UNCHANGED": "<your_translation>"
}
```
If you have any questions before starting, please ask for clarifications to avoid mistakes.
\ No newline at end of file
...@@ -13,48 +13,69 @@ KEY_ALIAS=Cesium ...@@ -13,48 +13,69 @@ KEY_ALIAS=Cesium
KEYSTORE_PWD= KEYSTORE_PWD=
# Preparing Android environment # Preparing Android environment
source ${PROJECT_DIR}/scripts/env-android.sh . ${PROJECT_DIR}/scripts/env-android.sh
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
APK_UNSIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/app-release-unsigned.apk APK_SIGNED_FILE=${APK_SIGNED_FILE:-"${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-signed.apk"}
APK_SIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/app-release.apk APK_UNSIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-unsigned.apk
APK_UNSIGNED_FILE_ALTERNATIVE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release.apk
cd ${PROJECT_DIR} cd ${PROJECT_DIR}
# Sign files
echo "Signing APK file..." # Checking files
if [[ ! -f "${APK_UNSIGNED_FILE}" ]]; then if [[ ! -f "${KEYSTORE_FILE}" ]]; then
echo "APK file not found: ${APK_UNSIGNED_FILE}" echo "ERROR: Keystore file not found: ${KEYSTORE_FILE}"
exit 1 exit 1
fi fi
if [[ ! -f "${KEYSTORE_FILE}" ]]; then if [[ ! -f "${APK_UNSIGNED_FILE}" ]]; then
echo "Keystore file not found: ${KEYSTORE_FILE}" # Check in an alternative path (e.g. Android default signed file)
if [[ ! -f "${APK_UNSIGNED_FILE_ALTERNATIVE}" ]]; then
echo "ERROR: Unsigned APK file not found: ${APK_UNSIGNED_FILE}"
exit 1 exit 1
fi fi
APK_UNSIGNED_FILE=${APK_UNSIGNED_FILE_ALTERNATIVE}
fi
# Remove previous version echo "--- Signing Android APK..."
echo ""
# Remove previous version (only if unsigned exists)
if [[ -f "${APK_SIGNED_FILE}" ]]; then if [[ -f "${APK_SIGNED_FILE}" ]]; then
echo "Delete previous signed APK file: ${APK_SIGNED_FILE}" echo "Delete previous signed APK file: ${APK_SIGNED_FILE}"
rm -f ${APK_SIGNED_FILE} rm -f ${APK_SIGNED_FILE}*
fi fi
echo "Executing jarsigner..." #echo "Executing jarsigner..."
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ${KEYSTORE_FILE} ${APK_UNSIGNED_FILE} Cesium #jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -storepass ${KEYSTORE_PWD} -keystore ${KEYSTORE_FILE} ${APK_UNSIGNED_FILE} ${KEY_ALIAS}
[[ $? -ne 0 ]] && exit 1 #[[ $? -ne 0 ]] && exit 1
echo "Executing jarsigner [OK]" #echo "Executing jarsigner [OK]"
BUILD_TOOLS_DIR="${ANDROID_SDK_ROOT}/build-tools/${ANDROID_SDK_VERSION}/" cd ${ANDROID_BUILD_TOOLS_ROOT}
cd ${BUILD_TOOLS_DIR} [[ $? -ne 0 ]] && exit 1
echo "Executing zipalign..." echo "Executing zipalign..."
./zipalign -v 4 ${APK_UNSIGNED_FILE} ${APK_SIGNED_FILE} ./zipalign -v 4 ${APK_UNSIGNED_FILE} ${APK_SIGNED_FILE}
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
echo "Executing zipalign [OK]" echo "Executing zipalign [OK]"
echo ""
echo "Executing apksigner..."
./apksigner sign --ks ${KEYSTORE_FILE} --ks-pass "pass:${KEYSTORE_PWD}" --ks-key-alias ${KEY_ALIAS} \
--min-sdk-version ${ANDROID_OUTPUT_MIN_SDK_VERSION} \
--max-sdk-version ${ANDROID_OUTPUT_MAX_SDK_VERSION} \
${APK_SIGNED_FILE}
[[ $? -ne 0 ]] && exit 1
echo "Executing apksigner [OK]"
echo ""
echo "Verify APK signature..." echo "Verify APK signature..."
./apksigner verify ${APK_SIGNED_FILE} ./apksigner verify --verbose --print-certs ${APK_SIGNED_FILE}
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
echo "Verify APK signature [OK]" echo "Verify APK signature [OK]"
echo ""
echo "Successfully generated signed APK at: ${APK_SIGNED_FILE}" export APK_SIGNED_FILE
echo "--- Successfully generated signed APK at: ${APK_SIGNED_FILE}"
exit 0
...@@ -7,22 +7,58 @@ if [[ "_" == "_${PROJECT_DIR}" ]]; then ...@@ -7,22 +7,58 @@ if [[ "_" == "_${PROJECT_DIR}" ]]; then
export PROJECT_DIR export PROJECT_DIR
fi; fi;
### Get version to release
cd ${PROJECT_DIR} cd ${PROJECT_DIR}
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo " - Make sure the file 'package.json' exists and is readable."
echo " - Check version format is: x.y.z (x and y should be an integer)"
exit 1
fi
# Preparing the environment # Preparing the environment
source ${PROJECT_DIR}/scripts/env-global.sh source ${PROJECT_DIR}/scripts/env-global.sh
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
# Commit android project # Make sure to checkout the source project
cd ${PROJECT_DIR}/platforms/android || exit 1 if ! test -d "${SOURCES_ANDROID}"; then
git reset HEAD echo "-- Checkout submodules (dist/android/sources) ..."
cd "${PROJECT_DIR}"
git submodule init && git submodule sync && git submodule update --remote --merge
if ! test $? == 0; then
echo "ERROR: Unable to sync git submodule. Will not be able commit android sources !"
#exit 1
else
echo "-- Checkout submodules (dist/android/sources) [OK]"
fi
fi
if test -d "${SOURCES_ANDROID}"; then
# Revert changes in the Android sources project
cd ${SOURCES_ANDROID} || exit 1
git fetch && git reset --hard --merge HEAD
# Update sources, from platforms/android
echo "--- Copy Android sources from 'platforms/android' to '${SOURCES_ANDROID}' ..."
rsync -rlptgocq --exclude=.* --exclude=build --exclude=release-signing.* --exclude=*.keystore --delete --force "${PROJECT_DIR}/platforms/android/" "${SOURCES_ANDROID}/"
echo "--- Copy Android sources [OK] ..."
echo ""
echo "--- Git push Android sources, and tag as 'v$current'..."
cd ${SOURCES_ANDROID} || exit 1
git add -A git add -A
git commit -m "v$1" git commit -a -m "v$current"
git tag -f -a "v$1" -m "Release v$1" git tag -f -a "v$current" -m "Release v$current"
# Push the tag # Push the tag
git push -f origin "v$1" git push -f origin "v$current"
# Push the master branch # Push the master branch
git push -f origin git push -f origin
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
echo "ERROR: cannot push platform/android project ! Continue anyway..." echo "ERROR: cannot push Android sources at '${SOURCES_ANDROID}' ! Continue anyway..."
else
echo "--- Git push Android sources, and tag [OK]"
fi
fi fi