Compare commits
45 Commits
@ -1,4 +1,6 @@
|
||||
nbproject/private
|
||||
platforms
|
||||
plugins
|
||||
node_modules
|
||||
node_modules
|
||||
/www/old/
|
||||
build.json
|
@ -1,17 +1,17 @@
|
||||
Branding assets copyright (c) 2017 Netsyms Technologies.
|
||||
Branding assets copyright (c) 2018 Netsyms Technologies.
|
||||
|
||||
If you modify and redistribute this project, you must replace the branding
|
||||
If you modify and redistribute this project, you must replace the branding
|
||||
assets with your own.
|
||||
|
||||
Private builds (i.e. not distributed outside your organization) or builds for
|
||||
Private builds (i.e. not distributed outside your organization) or builds for
|
||||
strictly personal use are exempted from this requirement.
|
||||
|
||||
The branding assets include:
|
||||
The branding assets include:
|
||||
* the application icon
|
||||
* the splash/loading screen graphic
|
||||
* the Netsyms N punchcard logo
|
||||
* the Netsyms for Business graph logo
|
||||
|
||||
If you are unsure if your usage is allowed, please contact us:
|
||||
https://netsyms.com/contact
|
||||
If you are unsure if your usage is allowed, please contact us:
|
||||
https://netsyms.com/contact
|
||||
legal@netsyms.com
|
@ -1,23 +1,23 @@
|
||||
Business Mobile
|
||||
Netsyms Mobile
|
||||
===============
|
||||
|
||||
A mobile app for easy and secure access to the Business Apps on the go.
|
||||
A mobile app for easy and secure access to the Netsyms Apps on the go.
|
||||
|
||||
https://netsyms.biz/apps/bizmobile
|
||||
https://netsyms.biz/apps/netsymsmobile
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
**Simple Pairing**
|
||||
Scan a QR code displayed in AccountHub with the app, enter your password, and
|
||||
**Simple Pairing**
|
||||
Scan a QR code displayed in AccountHub with the app, enter your password, and
|
||||
everything is setup automatically.
|
||||
|
||||
**Full Access**
|
||||
Access all features of all Business Apps from one place.
|
||||
**Full Access**
|
||||
Access all features of all Netsyms Apps from one place.
|
||||
|
||||
**Barcode Scanning**
|
||||
**Barcode Scanning**
|
||||
Use your device camera to scan barcodes into BinStack and other apps.
|
||||
|
||||
**Secure**
|
||||
If the device is lost, Apps access can be revoked from AccountHub by deleting the
|
||||
**Secure**
|
||||
If the device is lost, Apps access can be revoked from AccountHub by deleting the
|
||||
pairing code.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 25 KiB |
@ -1,8 +1,8 @@
|
||||
auxiliary.org-netbeans-modules-cordova.cordova_5f_build_5f_script_5f_version=52
|
||||
auxiliary.org-netbeans-modules-cordova.phonegap=false
|
||||
file.reference.BusinessMobile-test=test
|
||||
file.reference.BusinessMobile-www=www
|
||||
file.reference.NetsymsMobile-test=test
|
||||
file.reference.NetsymsMobile-www=www
|
||||
files.encoding=UTF-8
|
||||
project.licensePath=./nbproject/mplheader.txt
|
||||
site.root.folder=${file.reference.BusinessMobile-www}
|
||||
test.folder=${file.reference.BusinessMobile-test}
|
||||
project.licensePath=nbproject/mplheader.txt
|
||||
site.root.folder=${file.reference.NetsymsMobile-www}
|
||||
test.folder=${file.reference.NetsymsMobile-test}
|
||||
|
@ -1,522 +0,0 @@
|
||||
{
|
||||
"name": "com.netsyms.BusinessMobile",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"cordova-android": {
|
||||
"version": "https://registry.npmjs.org/cordova-android/-/cordova-android-6.2.3.tgz",
|
||||
"integrity": "sha1-JJ8hts5fHxyEenq4OxaQnb7Vqig=",
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "http://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
|
||||
"integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8="
|
||||
},
|
||||
"ansi": {
|
||||
"version": "http://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
|
||||
"integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "http://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
|
||||
"integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "http://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
|
||||
"integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg="
|
||||
},
|
||||
"big-integer": {
|
||||
"version": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.22.tgz",
|
||||
"integrity": "sha1-SHyV/OiGAi6kj/XxnjiJMt9G3S4="
|
||||
},
|
||||
"bplist-parser": {
|
||||
"version": "http://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
|
||||
"integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY="
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
|
||||
"integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k="
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "http://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||
},
|
||||
"cordova-common": {
|
||||
"version": "http://registry.npmjs.org/cordova-common/-/cordova-common-2.0.2.tgz",
|
||||
"integrity": "sha1-V0Z5driv1eC9ChMRG2akIEQWAcs="
|
||||
},
|
||||
"cordova-registry-mapper": {
|
||||
"version": "http://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz",
|
||||
"integrity": "sha1-4kS5GFuBdUc7/2B5MkkFEV+D3Hw="
|
||||
},
|
||||
"elementtree": {
|
||||
"version": "http://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz",
|
||||
"integrity": "sha1-KsTEbqMFFsjEy9teOsdBjlkt4gw="
|
||||
},
|
||||
"glob": {
|
||||
"version": "http://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
||||
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E="
|
||||
},
|
||||
"inflight": {
|
||||
"version": "http://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
|
||||
},
|
||||
"inherits": {
|
||||
"version": "http://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||
},
|
||||
"lodash": {
|
||||
"version": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "http://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
|
||||
"integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q="
|
||||
},
|
||||
"nopt": {
|
||||
"version": "http://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k="
|
||||
},
|
||||
"once": {
|
||||
"version": "http://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
|
||||
},
|
||||
"os-homedir": {
|
||||
"version": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"osenv": {
|
||||
"version": "http://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
|
||||
"integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ="
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"plist": {
|
||||
"version": "http://registry.npmjs.org/plist/-/plist-1.2.0.tgz",
|
||||
"integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM="
|
||||
},
|
||||
"properties-parser": {
|
||||
"version": "http://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz",
|
||||
"integrity": "sha1-91kSVfcHq7/yJ8e1a2N9uwNzoQ8="
|
||||
},
|
||||
"q": {
|
||||
"version": "http://registry.npmjs.org/q/-/q-1.5.0.tgz",
|
||||
"integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE="
|
||||
},
|
||||
"sax": {
|
||||
"version": "http://registry.npmjs.org/sax/-/sax-0.3.5.tgz",
|
||||
"integrity": "sha1-iPz8H3PAyLvVt8d2ttPzUB7tBz0="
|
||||
},
|
||||
"semver": {
|
||||
"version": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
|
||||
},
|
||||
"shelljs": {
|
||||
"version": "http://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
|
||||
"integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM="
|
||||
},
|
||||
"underscore": {
|
||||
"version": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
|
||||
},
|
||||
"unorm": {
|
||||
"version": "http://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz",
|
||||
"integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "http://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz",
|
||||
"integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M="
|
||||
},
|
||||
"xmldom": {
|
||||
"version": "http://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
|
||||
"integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cordova-browser": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-browser/-/cordova-browser-4.1.0.tgz",
|
||||
"integrity": "sha1-dQeQZeXNUKpnQ8vYUxdhcFP7IMY=",
|
||||
"dependencies": {
|
||||
"adm-zip": {
|
||||
"version": "0.4.7",
|
||||
"bundled": true
|
||||
},
|
||||
"cordova-serve": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "2.2.0",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"color-convert": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"bundled": true
|
||||
},
|
||||
"has-ansi": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"compression": {
|
||||
"version": "1.6.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"accepts": {
|
||||
"version": "1.3.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"mime-types": {
|
||||
"version": "2.1.10",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.22.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.6.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"bytes": {
|
||||
"version": "2.2.0",
|
||||
"bundled": true
|
||||
},
|
||||
"compressible": {
|
||||
"version": "2.0.7",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.22.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"on-headers": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"express": {
|
||||
"version": "4.13.4",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"accepts": {
|
||||
"version": "1.2.13",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"mime-types": {
|
||||
"version": "2.1.10",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.22.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.5.3",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"array-flatten": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true
|
||||
},
|
||||
"content-disposition": {
|
||||
"version": "0.5.1",
|
||||
"bundled": true
|
||||
},
|
||||
"content-type": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"cookie": {
|
||||
"version": "0.1.5",
|
||||
"bundled": true
|
||||
},
|
||||
"cookie-signature": {
|
||||
"version": "1.0.6",
|
||||
"bundled": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"depd": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
},
|
||||
"escape-html": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true
|
||||
},
|
||||
"etag": {
|
||||
"version": "1.7.0",
|
||||
"bundled": true
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "0.4.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"unpipe": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"fresh": {
|
||||
"version": "0.3.0",
|
||||
"bundled": true
|
||||
},
|
||||
"merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"bundled": true
|
||||
},
|
||||
"on-finished": {
|
||||
"version": "2.3.0",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"parseurl": {
|
||||
"version": "1.3.1",
|
||||
"bundled": true
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"bundled": true
|
||||
},
|
||||
"proxy-addr": {
|
||||
"version": "1.0.10",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"forwarded": {
|
||||
"version": "0.1.0",
|
||||
"bundled": true
|
||||
},
|
||||
"ipaddr.js": {
|
||||
"version": "1.0.5",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"qs": {
|
||||
"version": "4.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"range-parser": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true
|
||||
},
|
||||
"send": {
|
||||
"version": "0.13.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"destroy": {
|
||||
"version": "1.0.4",
|
||||
"bundled": true
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.3.1",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"bundled": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"bundled": true
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.2.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.10.2",
|
||||
"bundled": true
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.12",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"bundled": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.10",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.22.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"utils-merge": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nopt": {
|
||||
"version": "3.0.6",
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.0.7",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"q": {
|
||||
"version": "1.4.1",
|
||||
"bundled": true
|
||||
},
|
||||
"shelljs": {
|
||||
"version": "0.6.0",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"cordova-plugin-compat": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-compat/-/cordova-plugin-compat-1.1.0.tgz",
|
||||
"integrity": "sha1-kr3xaf62EgUyPcyWo/+DSON+h/w="
|
||||
},
|
||||
"cordova-plugin-console": {
|
||||
"version": "git+https://github.com/apache/cordova-plugin-console.git#45d4e38b5d807aa3eb5e19c712cb387414a80239"
|
||||
},
|
||||
"cordova-plugin-device": {
|
||||
"version": "git+https://github.com/apache/cordova-plugin-device.git#2d845036befa5152ab9b87011c0970cc95833e69"
|
||||
},
|
||||
"cordova-plugin-dialog": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-dialog/-/cordova-plugin-dialog-0.0.1.tgz",
|
||||
"integrity": "sha1-PbQ9++2318hL4dOjOfGxbZIHyA4="
|
||||
},
|
||||
"cordova-plugin-dialogs": {
|
||||
"version": "git+https://github.com/apache/cordova-plugin-dialogs.git#a22b0eb7fd013e5b50486ebc54e6396780cad999"
|
||||
},
|
||||
"cordova-plugin-headercolor": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-headercolor/-/cordova-plugin-headercolor-1.0.0.tgz",
|
||||
"integrity": "sha1-AgrNlDeH7gOdZ/Z56NnqbTiSAxY="
|
||||
},
|
||||
"cordova-plugin-splashscreen": {
|
||||
"version": "git+https://github.com/apache/cordova-plugin-splashscreen.git#98f83fea5ae58fb50962af2725310cc199b28f40"
|
||||
},
|
||||
"cordova-plugin-statusbar": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-statusbar/-/cordova-plugin-statusbar-2.2.3.tgz",
|
||||
"integrity": "sha1-UcXgKtQzvr0LDcl3pEbrkd/uFQI="
|
||||
},
|
||||
"cordova-plugin-whitelist": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.2.tgz",
|
||||
"integrity": "sha1-W2M1/rn1MB88ATuQlsuIhb29UHY="
|
||||
},
|
||||
"phonegap-plugin-barcodescanner": {
|
||||
"version": "6.0.6",
|
||||
"resolved": "https://registry.npmjs.org/phonegap-plugin-barcodescanner/-/phonegap-plugin-barcodescanner-6.0.6.tgz",
|
||||
"integrity": "sha1-wy35plMyEU1j3b45Xw9OE206IPI="
|
||||
}
|
||||
}
|
||||
}
|
@ -1,47 +1,57 @@
|
||||
{
|
||||
"name": "com.netsyms.BusinessMobile",
|
||||
"displayName": "Business for Mobile",
|
||||
"version": "1.5",
|
||||
"description": "Mobile client for the Netsyms Business Apps.",
|
||||
"main": "index.html",
|
||||
"author": "Netsyms Technologies",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"cordova-android": "^6.3.0",
|
||||
"cordova-browser": "^4.1.0",
|
||||
"cordova-plugin-add-swift-support": "^1.7.0",
|
||||
"cordova-plugin-app-version": "^0.1.9",
|
||||
"cordova-plugin-console": "git+https://github.com/apache/cordova-plugin-console.git",
|
||||
"cordova-plugin-device": "git+https://github.com/apache/cordova-plugin-device.git",
|
||||
"cordova-plugin-dialog": "0.0.1",
|
||||
"cordova-plugin-dialogs": "git+https://github.com/apache/cordova-plugin-dialogs.git",
|
||||
"cordova-plugin-file": "^6.0.1",
|
||||
"cordova-plugin-headercolor": "^1.0.0",
|
||||
"cordova-plugin-inappbrowser": "^1.7.1",
|
||||
"cordova-plugin-splashscreen": "git+https://github.com/apache/cordova-plugin-splashscreen.git",
|
||||
"cordova-plugin-statusbar": "^2.2.3",
|
||||
"cordova-plugin-whitelist": "^1.3.2",
|
||||
"cordova-plugin-zeroconf": "^1.2.5",
|
||||
"phonegap-plugin-barcodescanner": "^6.0.6"
|
||||
"name": "com.netsyms.apps.Mobile",
|
||||
"displayName": "Netsyms Apps for Mobile",
|
||||
"version": "2.0.1",
|
||||
"description": "Securely use the Netsyms Apps from your phone or tablet.",
|
||||
"main": "index.html",
|
||||
"author": "Netsyms Technologies",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"cordova-android": "^7.1.2",
|
||||
"cordova-browser": "^5.0.4",
|
||||
"cordova-plugin-add-swift-support": "^1.7.1",
|
||||
"cordova-plugin-app-version": "^0.1.9",
|
||||
"cordova-plugin-background-fetch": "^5.4.1",
|
||||
"cordova-plugin-badge": "^0.8.7",
|
||||
"cordova-plugin-console": "^1.1.0",
|
||||
"cordova-plugin-device": "^2.0.1",
|
||||
"cordova-plugin-dialog": "0.0.1",
|
||||
"cordova-plugin-dialogs": "^2.0.1",
|
||||
"cordova-plugin-file": "^6.0.1",
|
||||
"cordova-plugin-headercolor": "^1.0.0",
|
||||
"cordova-plugin-inappbrowser": "^2.0.2",
|
||||
"cordova-plugin-local-notification": "^0.9.0-beta.2",
|
||||
"cordova-plugin-nativestorage": "^2.3.2",
|
||||
"cordova-plugin-splashscreen": "^5.0.2",
|
||||
"cordova-plugin-statusbar": "^2.4.1",
|
||||
"cordova-plugin-whitelist": "^1.3.2",
|
||||
"cordova-plugin-zeroconf": "^1.3.1",
|
||||
"phonegap-plugin-barcodescanner": "^7.1.0"
|
||||
},
|
||||
"cordova": {
|
||||
"plugins": {
|
||||
"cordova-plugin-whitelist": {},
|
||||
"cordova-plugin-headercolor": {},
|
||||
"cordova-plugin-app-version": {},
|
||||
"cordova-plugin-file": {},
|
||||
"cordova-plugin-add-swift-support": {},
|
||||
"cordova-plugin-zeroconf": {},
|
||||
"cordova-plugin-statusbar": {},
|
||||
"phonegap-plugin-barcodescanner": {
|
||||
"ANDROID_SUPPORT_V4_VERSION": "27.+"
|
||||
},
|
||||
"cordova-plugin-console": {},
|
||||
"cordova-plugin-device": {},
|
||||
"cordova-plugin-dialogs": {},
|
||||
"cordova-plugin-inappbrowser": {},
|
||||
"cordova-plugin-splashscreen": {},
|
||||
"cordova-plugin-nativestorage": {},
|
||||
"cordova-plugin-local-notification": {},
|
||||
"cordova-plugin-background-fetch": {}
|
||||
},
|
||||
"cordova": {
|
||||
"plugins": {
|
||||
"phonegap-plugin-barcodescanner": {},
|
||||
"cordova-plugin-console": {},
|
||||
"cordova-plugin-device": {},
|
||||
"cordova-plugin-whitelist": {},
|
||||
"cordova-plugin-dialogs": {},
|
||||
"cordova-plugin-splashscreen": {},
|
||||
"cordova-plugin-statusbar": {},
|
||||
"cordova-plugin-headercolor": {},
|
||||
"cordova-plugin-inappbrowser": {},
|
||||
"cordova-plugin-app-version": {},
|
||||
"cordova-plugin-zeroconf": {},
|
||||
"cordova-plugin-file": {}
|
||||
},
|
||||
"platforms": [
|
||||
"android",
|
||||
"browser"
|
||||
]
|
||||
}
|
||||
"platforms": [
|
||||
"browser",
|
||||
"android"
|
||||
]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 593 B |
After Width: | Height: | Size: 599 B |
After Width: | Height: | Size: 438 B |
After Width: | Height: | Size: 559 B |
After Width: | Height: | Size: 427 B |
After Width: | Height: | Size: 438 B |
After Width: | Height: | Size: 328 B |
After Width: | Height: | Size: 376 B |
After Width: | Height: | Size: 727 B |
After Width: | Height: | Size: 744 B |
After Width: | Height: | Size: 536 B |
After Width: | Height: | Size: 731 B |
After Width: | Height: | Size: 1021 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 681 B |
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,23 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="60"
|
||||
android:viewportHeight="60">
|
||||
<group android:translateX="6"
|
||||
android:translateY="6">
|
||||
<path
|
||||
android:pathData="M0,0h48v48h-48z"
|
||||
android:strokeAlpha="0"
|
||||
android:strokeWidth="8.06694221"
|
||||
android:fillColor="#0d87f6"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillAlpha="1"/>
|
||||
<path
|
||||
android:pathData="m18.9031,9.2872c-0.1596,0.014 -0.3055,0.044 -0.4348,0.093 -2.0694,0.7831 -4.1011,7.8462 -5.0107,9.8633 -0.9096,2.017 -4.8582,8.2167 -4.0752,10.2861 0.7831,2.0694 7.8463,4.1011 9.8633,5.0106 2.0171,0.9097 8.2167,4.8583 10.2861,4.0752 2.0694,-0.7831 4.1011,-7.8462 5.0107,-9.8632 0.9096,-2.0171 4.8583,-8.2168 4.0752,-10.2862 -0.7831,-2.0694 -7.8462,-4.1011 -9.8633,-5.0106 -1.8909,-0.8528 -7.4577,-4.3768 -9.8513,-4.1686z"
|
||||
android:strokeAlpha="1"
|
||||
android:strokeWidth="0.61330891"
|
||||
android:fillColor="#0d87f6"
|
||||
android:strokeColor="#ffffff"
|
||||
android:fillAlpha="1"/>
|
||||
</group>
|
||||
</vector>
|
@ -0,0 +1,44 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="1163.6364"
|
||||
android:viewportHeight="1163.6364">
|
||||
<group android:translateX="325.81818"
|
||||
android:translateY="325.81818">
|
||||
<path
|
||||
android:pathData="m198.563,65.838c-0.615,0 -1.144,-0 -1.572,0.158 -3.427,1.296 -6.794,12.993 -8.3,16.335 -1.506,3.341 -8.046,13.593 -6.749,17.021 1.297,3.426 12.995,6.793 16.335,8.3 3.341,1.506 13.615,8.046 17.042,6.749 3.427,-1.296 6.794,-12.995 8.3,-16.335 1.506,-3.342 8.046,-13.614 6.749,-17.042 -1.297,-3.427 -12.992,-6.794 -16.332,-8.3 -2.923,-1.318 -11.166,-6.475 -15.473,-6.883zM151.95,146.228c-0.615,0 -1.144,-0 -1.572,0.158 -3.427,1.296 -6.794,12.991 -8.3,16.332 -1.506,3.34 -8.046,13.594 -6.749,17.021 1.297,3.428 12.995,6.794 16.335,8.3 3.341,1.506 13.593,8.049 17.021,6.752 3.427,-1.298 6.794,-12.994 8.3,-16.335 1.506,-3.34 8.046,-13.614 6.749,-17.042 -1.297,-3.428 -12.995,-6.794 -16.335,-8.3 -2.923,-1.318 -11.142,-6.475 -15.448,-6.883zM237.163,147.843c-0.615,0 -1.141,0.013 -1.569,0.137 -3.427,1.296 -6.794,12.991 -8.3,16.332 -1.506,3.34 -8.049,13.617 -6.752,17.045 1.297,3.427 12.995,6.79 16.335,8.297 3.341,1.506 13.593,8.049 17.021,6.752 3.427,-1.296 6.794,-12.993 8.3,-16.335 1.506,-3.341 8.046,-13.614 6.749,-17.042 -1.297,-3.427 -12.992,-6.794 -16.332,-8.3 -2.923,-1.319 -11.145,-6.487 -15.452,-6.883zM422.045,160.701c-0.615,0 -1.144,0.013 -1.572,0.137 -3.427,1.298 -6.794,12.992 -8.3,16.332 -1.506,3.341 -8.046,13.618 -6.749,17.045 1.297,3.427 12.995,6.794 16.335,8.3 3.341,1.507 13.615,8.046 17.042,6.749 3.427,-1.296 6.794,-12.992 8.3,-16.332 1.506,-3.341 8.049,-13.618 6.752,-17.045 -1.297,-3.427 -12.995,-6.793 -16.335,-8.3 -2.923,-1.318 -11.166,-6.475 -15.473,-6.883zM240.757,227.406c-0.615,0 -1.141,0.01 -1.569,0.134 -3.427,1.298 -6.794,12.996 -8.3,16.338 -1.506,3.34 -8.049,13.614 -6.752,17.042 1.297,3.426 12.995,6.794 16.335,8.3 3.341,1.506 13.615,8.047 17.042,6.749 3.427,-1.296 6.794,-12.995 8.3,-16.335 1.506,-3.341 8.049,-13.616 6.752,-17.042 -1.297,-3.428 -12.995,-6.793 -16.335,-8.3 -2.923,-1.318 -11.166,-6.475 -15.473,-6.883zM113.407,226.65c-0.615,0 -1.165,-0 -1.594,0.158 -3.427,1.296 -6.794,12.993 -8.3,16.335 -1.506,3.341 -8.025,13.594 -6.728,17.021 1.297,3.427 12.992,6.792 16.332,8.3 3.341,1.506 13.593,8.046 17.021,6.749 3.427,-1.296 6.794,-12.991 8.3,-16.332 1.506,-3.341 8.049,-13.596 6.752,-17.024 -1.297,-3.427 -12.995,-6.79 -16.335,-8.297 -2.923,-1.317 -11.142,-6.511 -15.448,-6.908zM385.081,239.476c-0.615,0 -1.165,-0 -1.594,0.158 -3.427,1.298 -6.794,12.991 -8.3,16.332 -1.506,3.34 -8.025,13.593 -6.728,17.021 1.297,3.427 12.995,6.794 16.335,8.3 3.341,1.507 13.593,8.05 17.021,6.752 3.427,-1.298 6.794,-12.994 8.3,-16.335 1.506,-3.34 8.046,-13.594 6.749,-17.021 -1.297,-3.428 -12.992,-6.794 -16.332,-8.3 -2.923,-1.319 -11.145,-6.508 -15.451,-6.905zM74.772,311.831c-0.615,0 -1.144,0.01 -1.572,0.134 -3.427,1.298 -6.794,12.994 -8.3,16.335 -1.506,3.34 -8.049,13.614 -6.752,17.042 1.297,3.428 12.995,6.794 16.335,8.3 3.341,1.506 13.618,8.049 17.045,6.752 3.427,-1.298 6.794,-12.994 8.3,-16.335 1.506,-3.34 8.025,-13.615 6.728,-17.042 -1.297,-3.428 -12.995,-6.794 -16.335,-8.3 -2.923,-1.319 -11.142,-6.475 -15.448,-6.883zM253.233,311.831c-0.615,0 -1.144,0.01 -1.572,0.134 -3.427,1.298 -6.794,12.994 -8.3,16.335 -1.506,3.34 -8.046,13.614 -6.749,17.042 1.297,3.428 12.995,6.794 16.335,8.3 3.341,1.506 13.615,8.049 17.042,6.752 3.427,-1.298 6.794,-12.994 8.3,-16.335 1.506,-3.34 8.046,-13.615 6.749,-17.042 -1.297,-3.428 -12.992,-6.794 -16.332,-8.3 -2.923,-1.319 -11.166,-6.475 -15.473,-6.883zM338.482,317.478c-0.615,0 -1.144,0.013 -1.572,0.137 -3.427,1.298 -6.794,12.994 -8.3,16.335 -1.506,3.341 -8.046,13.614 -6.749,17.042 1.297,3.426 12.995,6.794 16.335,8.3 3.341,1.506 13.615,8.05 17.042,6.752 3.427,-1.296 6.794,-12.995 8.3,-16.335 1.506,-3.341 8.046,-13.616 6.749,-17.042 -1.297,-3.428 -12.992,-6.792 -16.332,-8.3 -2.923,-1.317 -11.166,-6.475 -15.473,-6.883zM298.975,397.426c-0.615,0 -1.165,-0 -1.594,0.158 -3.427,1.298 -6.794,12.994 -8.3,16.335 -1.506,3.341 -8.049,13.594 -6.752,17.021 1.297,3.427 12.995,6.794 16.335,8.3 3.341,1.506 13.618,8.05 17.045,6.752 3.427,-1.296 6.794,-12.995 8.3,-16.335 1.506,-3.341 8.046,-13.594 6.749,-17.021 -1.297,-3.428 -12.995,-6.794 -16.335,-8.3 -2.923,-1.318 -11.142,-6.511 -15.448,-6.908z"
|
||||
android:strokeAlpha="1"
|
||||
android:strokeWidth="11.33235741"
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillAlpha="1"/>
|
||||
<path
|
||||
android:pathData="M-2521.377,-590.781l531.981,230.764l-141.472,326.136l-531.981,-230.764z"
|
||||
android:strokeAlpha="1"
|
||||
android:strokeWidth="11.87444973"
|
||||
android:fillColor="#78bff8"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillAlpha="1"/>
|
||||
<path
|
||||
android:pathData="M-1810.385,-660.711l-531.981,-230.764l141.472,-326.136l531.981,230.764z"
|
||||
android:strokeAlpha="1"
|
||||
android:strokeWidth="11.87444973"
|
||||
android:fillColor="#78bff8"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillAlpha="1"/>
|
||||
<path
|
||||
android:pathData="M-2146.024,-292.892l230.764,-531.981l326.136,141.472l-230.764,531.981z"
|
||||
android:strokeAlpha="1"
|
||||
android:strokeWidth="11.87444973"
|
||||
android:fillColor="#78bff8"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillAlpha="1"/>
|
||||
<path
|
||||
android:pathData="M-2786.024,-572.892l230.764,-531.981l326.136,141.472l-230.764,531.981z"
|
||||
android:strokeAlpha="1"
|
||||
android:strokeWidth="11.87444973"
|
||||
android:fillColor="#78bff8"
|
||||
android:strokeColor="#00000000"
|
||||
android:fillAlpha="1"/>
|
||||
</group>
|
||||
</vector>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,6 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<string name="app_name">Netsyms</string>
|
||||
<string name="launcher_name">@string/app_name</string>
|
||||
<string name="activity_name">@string/launcher_name</string>
|
||||
</resources>
|
Before Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 23 KiB |
@ -0,0 +1,171 @@
|
||||
package com.transistorsoft.cordova.backgroundfetch;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.util.Log;
|
||||
|
||||
import com.netsyms.apps.Mobile.MainActivity;
|
||||
import com.netsyms.apps.Mobile.R;
|
||||
import com.transistorsoft.tsbackgroundfetch.BackgroundFetch;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
public class BackgroundFetchHeadlessTask implements HeadlessTask {
|
||||
|
||||
private static final String PREFS_NAME = "NativeStorage";
|
||||
private static final String KEY = "accounts";
|
||||
private static String shownNotifications = "";
|
||||
public final String NOTIFICATION_CHANNEL_ID = "background-channel-id";
|
||||
|
||||
public static String getValue(Context context, String key, String defaultValue) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE);
|
||||
return settings.getString(key, defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* https://stackoverflow.com/a/34691486
|
||||
*
|
||||
* @param urlString
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
public static String getStringFromURL(String urlString) throws IOException {
|
||||
HttpURLConnection urlConnection = null;
|
||||
URL url = new URL(urlString);
|
||||
urlConnection = (HttpURLConnection) url.openConnection();
|
||||
urlConnection.setRequestMethod("GET");
|
||||
urlConnection.setReadTimeout(10000 /* milliseconds */);
|
||||
urlConnection.setConnectTimeout(15000 /* milliseconds */);
|
||||
urlConnection.setDoOutput(true);
|
||||
urlConnection.connect();
|
||||
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
String line;
|
||||
while ((line = br.readLine()) != null) {
|
||||
sb.append(line + "\n");
|
||||
}
|
||||
br.close();
|
||||
|
||||
String jsonString = sb.toString();
|
||||
return jsonString;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFetch(Context context) {
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: onFetch");
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
String accountjson = getValue(context, KEY, null).replaceAll("\\\\", "");
|
||||
accountjson = accountjson.substring(1, accountjson.length() - 1);
|
||||
//Log.d(BackgroundFetch.TAG, "Notification Poller: Account JSON: " + accountjson);
|
||||
try {
|
||||
JSONArray accounts = new JSONArray(accountjson);
|
||||
|
||||
for (int i = 0; i < accounts.length(); i++) {
|
||||
try {
|
||||
JSONObject acct = accounts.getJSONObject(i);
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Account " + i + " URL: " + acct.getString("syncurl"));
|
||||
String notificationString = getStringFromURL(acct.getString("syncurl") + "?key=" + acct.getString("key") + "&username=" + acct.getString("username") + "&action=checknotifications");
|
||||
//Log.d(BackgroundFetch.TAG, "Notification Poller: Account " + i + " JSON: " + notificationString);
|
||||
JSONArray notifications = new JSONObject(notificationString).getJSONArray("notifications");
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Account " + i + " JSON parsed: " + notifications.length() + " notifications");
|
||||
for (int j = 0; j < notifications.length(); j++) {
|
||||
JSONObject notif = notifications.getJSONObject(j);
|
||||
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Procesing notification ID " + notif.getString("id") + " with title " + notif.getString("title"));
|
||||
|
||||
if (notif.getBoolean("seen") || shownNotifications.contains("|" + i + ":" + notif.getString("id") + "|")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Intent intent = new Intent(context, MainActivity.class);
|
||||
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
|
||||
NotificationCompat.Builder b = new NotificationCompat.Builder(context);
|
||||
|
||||
b.setAutoCancel(true)
|
||||
.setDefaults(Notification.DEFAULT_ALL)
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setContentTitle(notif.getString("title"))
|
||||
.setContentText(notif.getString("content"))
|
||||
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
|
||||
.setContentIntent(contentIntent)
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||
.setVisibility(Notification.VISIBILITY_PRIVATE);
|
||||
|
||||
// Create alternate notification for lockscreen
|
||||
NotificationCompat.Builder lockb = new NotificationCompat.Builder(context);
|
||||
if (notif.getBoolean("sensitive") == true) {
|
||||
lockb
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setContentTitle("Contents hidden")
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
|
||||
} else {
|
||||
lockb
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setContentTitle(notif.getString("title"))
|
||||
.setContentText(notif.getString("content"))
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
|
||||
}
|
||||
|
||||
b.setPublicVersion(lockb.build());
|
||||
|
||||
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
CharSequence name = "Background Notifications";
|
||||
int importance = NotificationManager.IMPORTANCE_DEFAULT;
|
||||
NotificationChannel channel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, name, importance);
|
||||
channel.enableLights(true);
|
||||
channel.enableVibration(true);
|
||||
channel.setLightColor(Color.rgb(33, 150, 243));
|
||||
// Register the channel with the system; you can't change the importance
|
||||
// or other notification behaviors after this
|
||||
b.setChannelId(NOTIFICATION_CHANNEL_ID);
|
||||
notificationManager.createNotificationChannel(channel);
|
||||
}
|
||||
|
||||
|
||||
notificationManager.notify(Integer.parseInt(notif.getString("id")), b.build());
|
||||
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Shown notification " + notif.getString("id"));
|
||||
|
||||
shownNotifications += "|" + i + ":" + notif.getString("id") + "|";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Exception: " + e.getMessage());
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Stack trace: " + Log.getStackTraceString(e));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Exception: " + e.getMessage());
|
||||
Log.d(BackgroundFetch.TAG, "Notification Poller: Stack trace: " + Log.getStackTraceString(e));
|
||||
} finally {
|
||||
BackgroundFetch.getInstance(context).finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
thread.start();
|
||||
}
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.app-dock-container {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.app-dock {
|
||||
margin: 0 auto 10px auto;
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.app-icon {
|
||||
border: 1px solid grey;
|
||||
border-radius: 20%;
|
||||
}
|
||||
|
||||
.app-dock-item {
|
||||
padding: 0px 10px 2px 10px;
|
||||
min-width: 100px;
|
||||
max-width: 50%;
|
||||
width: 120px;
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
.app-dock-item p {
|
||||
margin-bottom: 0px;
|
||||
font-size: 120%;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.app-dock-item p img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
display: block;
|
||||
background: url(../img/app-icon-bg.svg) no-repeat;
|
||||
background-size: 90%;
|
||||
background-position: 50%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.app-dock-item p span {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* https://stackoverflow.com/a/23536146 */
|
||||
|
||||
.navbar-collapse.collapse {
|
||||
display: block!important;
|
||||
}
|
||||
|
||||
.navbar-nav>li, .navbar-nav {
|
||||
float: left !important;
|
||||
}
|
||||
|
||||
.navbar-nav.navbar-right:last-child {
|
||||
margin-right: -15px !important;
|
||||
}
|
||||
|
||||
.navbar-right {
|
||||
float: right!important;
|
||||
}
|
||||
|
||||
/* /stackoverflow */
|
||||
|
||||
|
||||
.nav {
|
||||
color: white;
|
||||
margin-right: 0px;
|
||||
height: 30px;
|
||||
margin-top: -4px;
|
||||
font-size: 20px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.navbar-right span {
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.navbar-brand img {
|
||||
margin-right: 15px;
|
||||
height: 30px;
|
||||
margin-top: -4px;
|
||||
margin-left: -10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.navbar-right li a img {
|
||||
height: 30px;
|
||||
margin-top: 6px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.navbar-right {
|
||||
margin-top: -6px;
|
||||
}
|
||||
|
||||
.navbar-right li a img {
|
||||
margin-top: -1px;
|
||||
}
|
||||
}
|
||||
|
||||
#manual_setup {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
#navbar {
|
||||
min-height: 56px;
|
||||
}
|
||||
|
||||
.loading-text {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.circle-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
border-radius: 50%;
|
||||
height: 5rem;
|
||||
width: 5rem;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
margin: 2rem;
|
||||
}
|
||||
|
||||
.circle-btn img {
|
||||
height: 3rem;
|
||||
width: 3rem;
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/*
|
||||
A tiny bit of CSS to inject into apps even if injectcode = false.
|
||||
|
||||
This hides items in the app with the class mobile-app-hide.
|
||||
*/
|
||||
|
||||
.mobile-app-hide {
|
||||
display: none;
|
||||
visibility: hidden;
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
Roboto font family
|
||||
Downloaded from Google Web Fonts
|
||||
Apache 2.0 License
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/Roboto-Light.ttf) format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Roboto'), local('Roboto-Regular'), url(../fonts/Roboto-Regular.ttf) format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/Roboto-Medium.ttf) format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Roboto Bold'), local('Roboto-Bold'), url(../fonts/Roboto-Bold.ttf) format('truetype');
|
||||
}
|
@ -1,76 +0,0 @@
|
||||
/*
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
@media screen and (max-width: 767px) {
|
||||
.navbar, .navbar-brand {
|
||||
min-height: 56px;
|
||||
height: 56px;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-size: 20px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.navbar-toggle {
|
||||
border: 0px solid white;
|
||||
margin-top: 11px;
|
||||
margin-bottom: 11px;
|
||||
}
|
||||
|
||||
#navbar-collapse {
|
||||
display: none;
|
||||
}
|
||||
|
||||
button.navbar-toggle[data-toggle="collapse"] {
|
||||
float: left;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.navbar-header .navbar-brand {
|
||||
margin-left: -20px;
|
||||
}
|
||||
|
||||
.navbar-header .navbar-brand img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#swipe-nav ul {
|
||||
margin-bottom: 10px;
|
||||
padding-left: 2px;
|
||||
list-style-type: none;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#swipe-nav ul li {
|
||||
color: #424242;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#swipe-nav ul li a:focus,a:active {
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
|
||||
#swipe-nav ul li i.fa {
|
||||
font-size: 120%;
|
||||
margin-right: 10px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#swipe-nav ul li a {
|
||||
display: inline-block;
|
||||
color: #424242;
|
||||
font-size: 110%;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#swipe-nav ul li a:hover {
|
||||
text-decoration: none;
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
@media screen and (max-width: 767px) {
|
||||
#navbar-collapse {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#swipe-nav .swipe-list {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 10px;
|
||||
padding-left: 0px;
|
||||
list-style-type: none;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#swipe-nav .swipe-list .nav-item {
|
||||
color: #424242;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#swipe-nav .swipe-list .nav-item a:focus,a:active {
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
|
||||
#swipe-nav .swipe-list .nav-item i.fa {
|
||||
font-size: 120%;
|
||||
margin-right: 10px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#swipe-nav .swipe-list .nav-item a {
|
||||
display: inline-block;
|
||||
color: #424242;
|
||||
font-size: 110%;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
#swipe-nav .swipe-list .nav-item a:hover {
|
||||
text-decoration: none;
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Material Icons'),
|
||||
local('MaterialIcons-Regular'),
|
||||
url(./MaterialIcons-Regular.woff2) format('woff2'),
|
||||
url(./MaterialIcons-Regular.woff) format('woff');
|
||||
}
|
||||
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px; /* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 199 B |
@ -1,57 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
fill="#000000"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="ic_arrow-back.svg">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.125"
|
||||
inkscape:cx="-6.0246914"
|
||||
inkscape:cy="11.802469"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
<path
|
||||
d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"
|
||||
id="path6"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1,4 +0,0 @@
|
||||
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 274 B |
@ -1,4 +0,0 @@
|
||||
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 389 B |
@ -1,56 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
fill="#000000"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
id="svg3421"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="ic_settings.svg">
|
||||
<metadata
|
||||
id="metadata3431">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3429" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="640"
|
||||
inkscape:window-height="480"
|
||||
id="namedview3427"
|
||||
showgrid="false"
|
||||
inkscape:zoom="33.083333"
|
||||
inkscape:cx="11.969773"
|
||||
inkscape:cy="12"
|
||||
inkscape:current-layer="svg3421" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path3423" />
|
||||
<path
|
||||
d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"
|
||||
id="path3425"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none" />
|
||||
</svg>
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1,4 +0,0 @@
|
||||
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 320 B |