Compare commits
No commits in common. "2.6.3.1" and "main" have entirely different histories.
1
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
BIN
.github/images/IzzyOnDroid-badge.png
vendored
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
.github/images/Paypal-badge.png
vendored
Normal file
After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
.github/images/github-badge.png
vendored
Normal file
After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
.github/images/icon_round.png
vendored
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
.github/images/screenshot_0.png
vendored
Normal file
After Width: | Height: | Size: 586 KiB |
BIN
.github/images/screenshot_1.png
vendored
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
.github/images/screenshot_2.png
vendored
Normal file
After Width: | Height: | Size: 655 KiB |
BIN
.github/images/screenshot_3.png
vendored
Normal file
After Width: | Height: | Size: 634 KiB |
BIN
.github/images/screenshot_4.png
vendored
Normal file
After Width: | Height: | Size: 734 KiB |
BIN
.github/images/screenshot_5.png
vendored
Normal file
After Width: | Height: | Size: 647 KiB |
5
LICENSE
|
@ -631,8 +631,7 @@ to attach them to the start of each source file to most effectively
|
||||||
state the exclusion of warranty; and each file should have at least
|
state the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
Copyright (C) 2022 Tom Fong
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -652,7 +651,7 @@ Also add information on how to contact you by electronic and paper mail.
|
||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
Simple QR Copyright (C) 2022 Tom Fong
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|
152
README.md
|
@ -1,31 +1,32 @@
|
||||||
# Simple QR
|
# Simple QR
|
||||||
|
|
||||||
|
<p align="center"><br><img src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/icon_round.png" width="100" height="100" /></p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img alt="Simple QR" src="./resources/icon.png" width="100px">
|
<strong>
|
||||||
</p>
|
Simple QR
|
||||||
|
</strong>
|
||||||
<p align="center">
|
|
||||||
<a href="#about">About</a>
|
|
||||||
• <a href="#features">Features</a>
|
|
||||||
• <a href="#support-developer">Support Developer</a>
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#contribute">Contribute</a>
|
Simple and lightweight app to scan, create and store QR codes
|
||||||
• <a href="#framework">Framework</a>
|
</p>
|
||||||
• <a href="#privacy-policy">Privacy Policy</a>
|
<br>
|
||||||
• <a href="#license">License</a>
|
<p align="center">
|
||||||
|
<img height="300" src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/screenshot_1.png">
|
||||||
|
<img height="300" src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/screenshot_2.png">
|
||||||
|
<img height="300" src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/screenshot_3.png">
|
||||||
|
<img height="300" src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/screenshot_4.png">
|
||||||
|
<img height="300" src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/screenshot_5.png">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
Simple QR (簡易QR) is an app providing the simplest way to scan, create and store QR codes on your phone. No backend service connected. No data collected. No ads.
|
Simple QR is an open-source app to scan, create and store QR codes with a simple UI and experience. No backend service connected. No data collected. No ads.
|
||||||
|
|
||||||
It's available on the App Store, Google Play and IzzyOnDroid. You can also download the apk from <a href="https://github.com/tomfong/simple-qr/releases">release</a>.
|
It's now available on the following platforms.
|
||||||
|
|
||||||
| App Store | Google Play | IzzyOnDroid |
|
| Google Play | GitHub | IzzyOnDroid |
|
||||||
|:-:|:-:|:-:|
|
|:-:|:-:|:-:|
|
||||||
| [<img src="badges/appstore-badge.png" height="50">](https://apps.apple.com/us/app/simple-qr-by-tom-fong/id1621121553) | [<img src="badges/google-play-badge.png" height="50">](https://play.google.com/store/apps/details?id=com.tomfong.simpleqr) | [<img src="badges/IzzyOnDroid.png" height="75">](https://apt.izzysoft.de/fdroid/index/apk/com.tomfong.simpleqr) |
|
| [<img src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/google-play-badge.png" height="50">](https://play.google.com/store/apps/details?id=com.tomfong.simpleqr) | [<img src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/github-badge.png" height="50">](https://github.com/tomfong/simple-qr/releases/latest) | [<img src="https://raw.githubusercontent.com/tomfong/simple-qr/main/.github/images/IzzyOnDroid-badge.png" height="50">](https://apt.izzysoft.de/fdroid/index/apk/com.tomfong.simpleqr) |
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
@ -35,89 +36,104 @@ By using the app, you can
|
||||||
|
|
||||||
2. Import image files and scan the QR Code on it.
|
2. Import image files and scan the QR Code on it.
|
||||||
|
|
||||||
3. Create QR code from templates, which includes Free Text, URL, vCard Contact, Phone Number, Message, Email and Wi-Fi.
|
3. Create QR code from templates, which includes Free Text, URL, vCard Contact, Phone Number, Message, Email, Wi-Fi and Geolocation.
|
||||||
|
|
||||||
4. Automatically log results that you scan, create or view again. These logged records can be bookmarked for quick access, and also backupable.
|
4. Automatically log results that you scan, create or view again. These logged records can be bookmarked for quick access, and also backupable.
|
||||||
|
|
||||||
5. Do tasks on the result with a tap, including but not limited to
|
5. Do tasks on the result content with a tap, including but not limited to
|
||||||
* Use it as a keyword to do web search.
|
* Use it as a keyword to do web search.
|
||||||
* Quickly copy it to the clipboard.
|
* Quickly copy it to the clipboard.
|
||||||
* Execute base64 encoding/decoding on it.
|
* Execute base64 encoding/decoding on it.
|
||||||
* Generate a new shareable QR code by using it as the content.
|
* Use it as a content to generate a new shareable QR code.
|
||||||
* Directly do special tasks, if it is a link, vCard contact, phone number, message or email.
|
* Do corresponding tasks if it is a
|
||||||
|
* URL: Browse website / Open application
|
||||||
|
* vCard contact: Add contact
|
||||||
|
* Phone number: Phone call, add contact
|
||||||
|
* Message: Send message, add contact
|
||||||
|
* Email: Send email
|
||||||
|
* Geolocation: Open map
|
||||||
|
|
||||||
6. Adjust the generated QR code, e.g. error correction level and screen brightness.
|
6. Customize the generated QR code, e.g. error correction level, color, margin and screen brightness.
|
||||||
|
|
||||||
7. Customize the app, e.g. app initial page, language and color theme etc.
|
7. Customize the app, e.g. app initial page, language and color theme etc.
|
||||||
|
|
||||||
### Demo
|
### Demo
|
||||||
|
|
||||||
[](https://www.youtube.com/watch?v=D57VveikN8U)
|
[](https://www.youtube.com/watch?v=TIC6ZAkWoXY)
|
||||||
|
|
||||||
## Languages Supported
|
### Languages Supported
|
||||||
|
|
||||||
* English (en)
|
* English (en)
|
||||||
* Traditional Chinese 正體中文 (zh-HK)
|
* Chinese (Hong Kong) 中文 (香港) (zh-HK)
|
||||||
* Simplified Chinese 简体中文 (zh-CN)
|
* Chinese (Simplified) 简体中文 (zh-CN)
|
||||||
|
* German Deutsch (de)
|
||||||
|
* French Français (fr)
|
||||||
|
* Italian Italiano (it)
|
||||||
|
* Portuguese (Brazil) (pt-BR)
|
||||||
|
* Russian Русский (ru)
|
||||||
|
|
||||||
You are welcomed to help me do translations in more languages (see <a href="#how-to-do-the-translation">section</a>)
|
You are welcomed to help translate the app into more languages (refer to this <a href="#how-to-help-translate">section</a>)
|
||||||
|
|
||||||
## Support Developer
|
|
||||||
|
|
||||||
If you want to support me or my projects, please <a href="https://github.com/tomfong"><b>click me</b></a>😊
|
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
|
|
||||||
* Star the project
|
* Sponsor the project.
|
||||||
* Do translation for different languages
|
|
||||||
* Open issues for reporting bugs or any new ideas
|
|
||||||
|
|
||||||
### How to do the translation?
|
[](https://github.com/sponsors/tomfong?frequency=one-time)
|
||||||
|
[](https://www.buymeacoffee.com/tomfong)
|
||||||
|
|
||||||
|
* Star the project.
|
||||||
|
|
||||||
|
[](https://github.com/tomfong/simple-qr/stargazers)
|
||||||
|
|
||||||
|
* Open issues to report bugs or share any new ideas.
|
||||||
|
|
||||||
|
[](https://github.com/tomfong/simple-qr/issues)
|
||||||
|
|
||||||
|
* Translate the app into different languages.
|
||||||
|
|
||||||
|
### How to help translate?
|
||||||
|
|
||||||
1. Take a look at this [JSON](https://github.com/tomfong/simple-qr/blob/master/src/assets/i18n/en.json)
|
1. Take a look at this [JSON](https://github.com/tomfong/simple-qr/blob/master/src/assets/i18n/en.json)
|
||||||
2. Copy the JSON, rename it to <i>locale</i>.json, e.g. ja.json for Japanese, de.json for German
|
2. Download it, rename it to <i>locale</i>.json, e.g. ja.json for Japanese, de.json for German
|
||||||
3. Change the values of each key. Try to stick to the meaning of the original wordings. <b>DO NOT</b> change key names.
|
3. Change the values of each key.
|
||||||
4. [Email]('mailto:tomfong.dev@gmail.com') the JSON to me.
|
* Try to stick to the meaning of the original wordings.
|
||||||
|
* Preserve special characters, e.g. ```<p> <b> \n```.
|
||||||
|
* Preserve wordings with { }, e.g. ```{secret}```.
|
||||||
|
* Preserve wordings with \" \", e.g. ```\"cozmo/jsQR\"```.
|
||||||
|
* <b>DO NOT</b> change the key names.
|
||||||
|
* <b>DO NOT</b> change the order.
|
||||||
|
4. Email the JSON to me (tomfong.dev@gmail.com) after you finish.
|
||||||
|
|
||||||
## Build the project (Android)
|
### Build the project
|
||||||
|
|
||||||
1. Run ```npm install``` to install all dependencies
|
1. Run ```npm install``` to install all dependencies.
|
||||||
2. Run ```npm run sync``` and ```npm run copy:an```
|
2. Run ```npm run build```
|
||||||
3. In ```android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml```, add ```android:exported="true"``` inside receiver tag.
|
|
||||||
4. In ```android/capacitor-cordova-android-plugins/src/main/java/nl/xservices/plugins/SocialSharing.java```, change line 274 to
|
|
||||||
|
|
||||||
```java
|
### Contributors
|
||||||
final PendingIntent pendingIntent = PendingIntent.getBroadcast(cordova.getActivity().getApplicationContext(), 0, receiverIntent, PendingIntent.FLAG_UPDATE_CURRENT|PendingIntent.FLAG_IMMUTABLE);
|
|
||||||
```
|
|
||||||
|
|
||||||
5. In ```android/app/src/main/res/values/styles.xml```, change
|
Thank you the following contributors who have made the app better!
|
||||||
|
|
||||||
```xml
|
| Name | GitHub | How? |
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
|:-:|:-:|:-:|
|
||||||
<item name="android:background">#00a5aa</item>
|
| mondstern | [mondlicht-und-sterne](https://github.com/mondlicht-und-sterne) | German language translation |
|
||||||
</style>
|
| Valentino Bocchetti | [luftmensch-luftmensch](https://github.com/luftmensch-luftmensch) | Italian language translation |
|
||||||
```
|
| Smooth-E | [Smooth-E](https://github.com/Smooth-E) | Russian language translation |
|
||||||
|
| Daniel Ribeiro | [drcsj](https://github.com/drcsj) | Portuguese (Brazil) language translation |
|
||||||
|
|
||||||
## Framework
|
## Framework
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
Ionic CLI : 6.19.0
|
Ionic CLI : 7.2.0
|
||||||
Ionic Framework : @ionic/angular 6.1.6
|
Ionic Framework : @ionic/angular 7.8.2
|
||||||
@angular-devkit/build-angular : 13.3.6
|
@angular-devkit/build-angular : 16.2.13
|
||||||
@angular-devkit/schematics : 13.3.6
|
@angular-devkit/schematics : 16.2.13
|
||||||
@angular/cli : 13.3.6
|
@angular/cli : 16.2.13
|
||||||
@ionic/angular-toolkit : 6.1.0
|
@ionic/angular-toolkit : 9.0.0
|
||||||
|
|
||||||
Capacitor CLI : 3.5.1
|
Capacitor CLI : 5.7.4
|
||||||
@capacitor/android : 3.5.1
|
@capacitor/android : 5.7.4
|
||||||
@capacitor/core : 3.5.1
|
@capacitor/core : 5.7.4
|
||||||
@capacitor/ios : 3.5.1
|
@capacitor/ios : 5.7.4
|
||||||
|
|
||||||
Cordova CLI : 10.0.0
|
|
||||||
|
|
||||||
Android SDK Tools : 26.1.1
|
|
||||||
NodeJS : v16.15.4
|
|
||||||
npm : 8.8.0
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Privacy Policy
|
## Privacy Policy
|
||||||
|
@ -126,4 +142,4 @@ Please read the [Privacy Policy](https://www.privacypolicies.com/live/771b1123-9
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Please view the [LICENSE](LICENSE)
|
[](https://github.com/tomfong/simple-qr/blob/main/LICENSE)
|
||||||
|
|
2
android/.idea/compiler.xml
generated
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="CompilerConfiguration">
|
<component name="CompilerConfiguration">
|
||||||
<bytecodeTargetLevel target="11" />
|
<bytecodeTargetLevel target="17" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
13
android/.idea/misc.xml
generated
|
@ -1,6 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
<component name="DesignSurface">
|
||||||
|
<option name="filePathToZoomLevelMap">
|
||||||
|
<map>
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_qr_code_24.xml" value="0.2485" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_launcher_background.xml" value="0.2485" />
|
||||||
|
<entry key="app/src/main/res/drawable/splash_background.xml" value="0.2485" />
|
||||||
|
<entry key="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.2485" />
|
||||||
|
<entry key="app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" value="0.2485" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
namespace "com.tomfong.simpleqr"
|
||||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.tomfong.simpleqr"
|
applicationId "com.tomfong.simpleqr"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 2060301
|
versionCode 4010000
|
||||||
versionName "2.6.3.1"
|
versionName "4.1.0"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
aaptOptions {
|
aaptOptions {
|
||||||
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
||||||
|
@ -30,6 +31,8 @@ repositories {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
|
||||||
|
implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
|
||||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
|
implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
|
||||||
implementation project(':capacitor-android')
|
implementation project(':capacitor-android')
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ dependencies {
|
||||||
implementation project(':capacitor-filesystem')
|
implementation project(':capacitor-filesystem')
|
||||||
implementation project(':capacitor-haptics')
|
implementation project(':capacitor-haptics')
|
||||||
implementation project(':capacitor-keyboard')
|
implementation project(':capacitor-keyboard')
|
||||||
|
implementation project(':capacitor-preferences')
|
||||||
implementation project(':capacitor-splash-screen')
|
implementation project(':capacitor-splash-screen')
|
||||||
implementation project(':capacitor-status-bar')
|
implementation project(':capacitor-status-bar')
|
||||||
implementation project(':capacitor-toast')
|
implementation project(':capacitor-toast')
|
||||||
|
|
20
android/app/release/output-metadata.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"artifactType": {
|
||||||
|
"type": "APK",
|
||||||
|
"kind": "Directory"
|
||||||
|
},
|
||||||
|
"applicationId": "com.tomfong.simpleqr",
|
||||||
|
"variantName": "release",
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"type": "SINGLE",
|
||||||
|
"filters": [],
|
||||||
|
"attributes": [],
|
||||||
|
"versionCode": 4010000,
|
||||||
|
"versionName": "4.1.0",
|
||||||
|
"outputFile": "app-release.apk"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"elementType": "File"
|
||||||
|
}
|
|
@ -1,7 +1,16 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.tomfong.simpleqr">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" >
|
||||||
|
|
||||||
<application android:hardwareAccelerated="true" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:requestLegacyExternalStorage="true" android:largeHeap="true">
|
<application
|
||||||
|
android:hardwareAccelerated="true"
|
||||||
|
android:allowBackup="true"
|
||||||
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
|
android:supportsRtl="true"
|
||||||
|
android:theme="@style/AppTheme"
|
||||||
|
android:requestLegacyExternalStorage="true"
|
||||||
|
android:largeHeap="true">
|
||||||
|
|
||||||
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:name="com.tomfong.simpleqr.MainActivity" android:label="@string/title_activity_main" android:theme="@style/AppTheme.NoActionBarLaunch" android:launchMode="singleTask" android:exported="true">
|
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:name="com.tomfong.simpleqr.MainActivity" android:label="@string/title_activity_main" android:theme="@style/AppTheme.NoActionBarLaunch" android:launchMode="singleTask" android:exported="true">
|
||||||
|
|
||||||
|
@ -15,13 +24,29 @@
|
||||||
<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
|
<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
|
||||||
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
|
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name=".MyQSTileService"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:icon="@drawable/ic_baseline_qr_code_24"
|
||||||
|
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
|
||||||
|
android:exported="true">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.service.quicksettings.action.QS_TILE" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<!-- Permissions -->
|
<!-- Permissions -->
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
|
||||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||||
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
|
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.camera"
|
||||||
|
android:required="true" />
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"pkg": "@capacitor-community/contacts",
|
"pkg": "@capacitor-community/contacts",
|
||||||
"classpath": "ch.byrds.capacitor.contacts.Contacts"
|
"classpath": "getcapacitor.community.contacts.ContactsPlugin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"pkg": "@capacitor-community/screen-brightness",
|
"pkg": "@capacitor-community/screen-brightness",
|
||||||
|
@ -39,6 +39,10 @@
|
||||||
"pkg": "@capacitor/keyboard",
|
"pkg": "@capacitor/keyboard",
|
||||||
"classpath": "com.capacitorjs.plugins.keyboard.KeyboardPlugin"
|
"classpath": "com.capacitorjs.plugins.keyboard.KeyboardPlugin"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"pkg": "@capacitor/preferences",
|
||||||
|
"classpath": "com.capacitorjs.plugins.preferences.PreferencesPlugin"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"pkg": "@capacitor/splash-screen",
|
"pkg": "@capacitor/splash-screen",
|
||||||
"classpath": "com.capacitorjs.plugins.splashscreen.SplashScreenPlugin"
|
"classpath": "com.capacitorjs.plugins.splashscreen.SplashScreenPlugin"
|
||||||
|
|
|
@ -2,4 +2,20 @@ package com.tomfong.simpleqr;
|
||||||
|
|
||||||
import com.getcapacitor.BridgeActivity;
|
import com.getcapacitor.BridgeActivity;
|
||||||
|
|
||||||
public class MainActivity extends BridgeActivity {}
|
public class MainActivity extends BridgeActivity {
|
||||||
|
|
||||||
|
static boolean active = false;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
active = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStop() {
|
||||||
|
super.onStop();
|
||||||
|
active = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
package com.tomfong.simpleqr;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.service.quicksettings.Tile;
|
||||||
|
import android.service.quicksettings.TileService;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||||
|
public class MyQSTileService extends TileService {
|
||||||
|
|
||||||
|
public MyQSTileService() {}
|
||||||
|
|
||||||
|
// Called when the user adds your tile.
|
||||||
|
@Override
|
||||||
|
public void onTileAdded() {
|
||||||
|
super.onTileAdded();
|
||||||
|
Log.println(Log.INFO,"MyQSTileService","onTileAdded");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when your app can update your tile.
|
||||||
|
@Override
|
||||||
|
public void onStartListening() {
|
||||||
|
super.onStartListening();
|
||||||
|
Log.println(Log.INFO,"MyQSTileService","onStartListening");
|
||||||
|
Tile tile = this.getQsTile();
|
||||||
|
if (MainActivity.active) {
|
||||||
|
tile.setState(Tile.STATE_ACTIVE);
|
||||||
|
} else {
|
||||||
|
tile.setState(Tile.STATE_INACTIVE);
|
||||||
|
}
|
||||||
|
tile.updateTile();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when your app can no longer update your tile.
|
||||||
|
@Override
|
||||||
|
public void onStopListening() {
|
||||||
|
super.onStopListening();
|
||||||
|
Log.println(Log.INFO,"MyQSTileService","onStopListening");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when the user taps on your tile in an active or inactive state.
|
||||||
|
@Override
|
||||||
|
public void onClick() {
|
||||||
|
super.onClick();
|
||||||
|
Log.println(Log.INFO,"MyQSTileService","onClick");
|
||||||
|
Tile tile = this.getQsTile();
|
||||||
|
Intent intent = new Intent(this.getApplicationContext(), MainActivity.class);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
startActivityAndCollapse(intent);
|
||||||
|
tile.setState(Tile.STATE_ACTIVE);
|
||||||
|
tile.updateTile();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when the user removes your tile.
|
||||||
|
@Override
|
||||||
|
public void onTileRemoved() {
|
||||||
|
super.onTileRemoved();
|
||||||
|
Log.println(Log.INFO,"MyQSTileService","onTileRemoved");
|
||||||
|
}
|
||||||
|
}
|
15
android/app/src/main/res/drawable/ic_baseline_qr_code_24.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M3,11h8V3H3V11zM5,5h4v4H5V5z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M3,21h8v-8H3V21zM5,15h4v4H5V15z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M13,3v8h8V3H13zM19,9h-4V5h4V9z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M19,19h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M13,13h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M15,15h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M13,17h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M15,19h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M17,17h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M17,13h2v2h-2z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M19,15h2v2h-2z"/>
|
||||||
|
</vector>
|
5
android/app/src/main/res/drawable/splash_background.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="@color/colorPrimary"/>
|
||||||
|
<item android:gravity="center" android:drawable="@drawable/splash"/>
|
||||||
|
</layer-list>
|
6
android/app/src/main/res/values-ru/colors.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimary">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimaryDark">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorAccent">#00a5aa</color>
|
||||||
|
</resources>
|
7
android/app/src/main/res/values-ru/strings.xml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Simple QR</string>
|
||||||
|
<string name="title_activity_main">Simple QR</string>
|
||||||
|
<string name="package_name">com.tomfong.simpleqr</string>
|
||||||
|
<string name="custom_url_scheme">com.tomfong.simpleqr</string>
|
||||||
|
</resources>
|
22
android/app/src/main/res/values-ru/styles.xml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<!-- Base application theme. -->
|
||||||
|
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||||
|
<!-- Customize your theme here. -->
|
||||||
|
<item name="colorPrimary">@color/colorPrimary</item>
|
||||||
|
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||||
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
|
<item name="windowActionBar">false</item>
|
||||||
|
<item name="windowNoTitle">true</item>
|
||||||
|
<item name="android:background">@null</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
|
||||||
|
<item name="android:background">@drawable/splash_background</item>
|
||||||
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
6
android/app/src/main/res/values-zh-rCN/colors.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimary">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimaryDark">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorAccent">#00a5aa</color>
|
||||||
|
</resources>
|
|
@ -9,14 +9,14 @@
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="android:background">@null</item>
|
<item name="android:background">@null</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
<item name="android:background">@drawable/splash_background</item>
|
||||||
<item name="android:background">#00a5aa</item>
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
6
android/app/src/main/res/values-zh-rSG/colors.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimary">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimaryDark">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorAccent">#00a5aa</color>
|
||||||
|
</resources>
|
|
@ -9,14 +9,14 @@
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="android:background">@null</item>
|
<item name="android:background">@null</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
<item name="android:background">@drawable/splash_background</item>
|
||||||
<item name="android:background">#00a5aa</item>
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
6
android/app/src/main/res/values-zh-rTW/colors.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimary">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimaryDark">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorAccent">#00a5aa</color>
|
||||||
|
</resources>
|
|
@ -9,14 +9,14 @@
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="android:background">@null</item>
|
<item name="android:background">@null</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
<item name="android:background">@drawable/splash_background</item>
|
||||||
<item name="android:background">#00a5aa</item>
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
6
android/app/src/main/res/values-zh/colors.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimary">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimaryDark">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorAccent">#00a5aa</color>
|
||||||
|
</resources>
|
|
@ -9,14 +9,14 @@
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="android:background">@null</item>
|
<item name="android:background">@null</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
<item name="android:background">@drawable/splash_background</item>
|
||||||
<item name="android:background">#00a5aa</item>
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
6
android/app/src/main/res/values/colors.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimary">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorPrimaryDark">#00a5aa</color>
|
||||||
|
<color tools:ignore="UnusedResources" name="colorAccent">#00a5aa</color>
|
||||||
|
</resources>
|
|
@ -9,14 +9,14 @@
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
<item name="colorAccent">@color/colorAccent</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="android:background">@null</item>
|
<item name="android:background">@null</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppTheme.NoActionBarLaunch" parent="Theme.SplashScreen">
|
||||||
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
|
<item name="android:background">@drawable/splash_background</item>
|
||||||
<item name="android:background">#00a5aa</item>
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -4,11 +4,11 @@ buildscript {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:4.2.1'
|
classpath 'com.android.tools.build:gradle:8.0.2'
|
||||||
classpath 'com.google.gms:google-services:4.3.5'
|
classpath 'com.google.gms:google-services:4.3.15'
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
@ -20,10 +20,11 @@ apply from: "variables.gradle"
|
||||||
allprojects {
|
allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task clean(type: Delete) {
|
task clean(type: Delete) {
|
||||||
delete rootProject.buildDir
|
delete rootProject.buildDir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,9 @@ project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/
|
||||||
include ':capacitor-keyboard'
|
include ':capacitor-keyboard'
|
||||||
project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android')
|
project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android')
|
||||||
|
|
||||||
|
include ':capacitor-preferences'
|
||||||
|
project(':capacitor-preferences').projectDir = new File('../node_modules/@capacitor/preferences/android')
|
||||||
|
|
||||||
include ':capacitor-splash-screen'
|
include ':capacitor-splash-screen'
|
||||||
project(':capacitor-splash-screen').projectDir = new File('../node_modules/@capacitor/splash-screen/android')
|
project(':capacitor-splash-screen').projectDir = new File('../node_modules/@capacitor/splash-screen/android')
|
||||||
|
|
||||||
|
|
|
@ -20,5 +20,4 @@ org.gradle.jvmargs=-Xmx1536m
|
||||||
# Android operating system, and which are packaged with your app's APK
|
# Android operating system, and which are packaged with your app's APK
|
||||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
# Automatically convert third-party libraries to use AndroidX
|
|
||||||
android.enableJetifier=true
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
ext {
|
ext {
|
||||||
minSdkVersion = 23
|
minSdkVersion = 22
|
||||||
compileSdkVersion = 31
|
compileSdkVersion = 33
|
||||||
targetSdkVersion = 31
|
targetSdkVersion = 33
|
||||||
androidxActivityVersion = '1.2.0'
|
androidxActivityVersion = '1.7.0'
|
||||||
androidxAppCompatVersion = '1.2.0'
|
androidxAppCompatVersion = '1.6.1'
|
||||||
androidxCoordinatorLayoutVersion = '1.1.0'
|
androidxCoordinatorLayoutVersion = '1.2.0'
|
||||||
androidxCoreVersion = '1.3.2'
|
androidxCoreVersion = '1.10.0'
|
||||||
androidxFragmentVersion = '1.3.0'
|
androidxFragmentVersion = '1.5.6'
|
||||||
junitVersion = '4.13.1'
|
junitVersion = '4.13.2'
|
||||||
androidxJunitVersion = '1.1.2'
|
androidxJunitVersion = '1.1.5'
|
||||||
androidxEspressoCoreVersion = '3.3.0'
|
androidxEspressoCoreVersion = '3.5.1'
|
||||||
cordovaAndroidVersion = '7.0.0'
|
cordovaAndroidVersion = '10.1.1'
|
||||||
|
coreSplashScreenVersion = '1.0.0'
|
||||||
|
androidxWebkitVersion = '1.6.1'
|
||||||
}
|
}
|
||||||
|
|
38
angular.json
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"defaultProject": "app",
|
|
||||||
"newProjectRoot": "projects",
|
"newProjectRoot": "projects",
|
||||||
"projects": {
|
"projects": {
|
||||||
"app": {
|
"app": {
|
||||||
|
@ -31,7 +30,10 @@
|
||||||
"output": "./svg"
|
"output": "./svg"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"styles": ["src/theme/variables.scss", "src/global.scss"],
|
"styles": [
|
||||||
|
"src/theme/variables.scss",
|
||||||
|
"src/global.scss"
|
||||||
|
],
|
||||||
"scripts": [],
|
"scripts": [],
|
||||||
"aot": false,
|
"aot": false,
|
||||||
"vendorChunk": true,
|
"vendorChunk": true,
|
||||||
|
@ -80,8 +82,7 @@
|
||||||
"production": {
|
"production": {
|
||||||
"browserTarget": "app:build:production"
|
"browserTarget": "app:build:production"
|
||||||
},
|
},
|
||||||
"ci": {
|
"ci": {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extract-i18n": {
|
"extract-i18n": {
|
||||||
|
@ -133,36 +134,15 @@
|
||||||
"devServerTarget": "app:serve:ci"
|
"devServerTarget": "app:serve:ci"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"ionic-cordova-build": {
|
|
||||||
"builder": "@ionic/angular-toolkit:cordova-build",
|
|
||||||
"options": {
|
|
||||||
"browserTarget": "app:build"
|
|
||||||
},
|
|
||||||
"configurations": {
|
|
||||||
"production": {
|
|
||||||
"browserTarget": "app:build:production"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ionic-cordova-serve": {
|
|
||||||
"builder": "@ionic/angular-toolkit:cordova-serve",
|
|
||||||
"options": {
|
|
||||||
"cordovaBuildTarget": "app:ionic-cordova-build",
|
|
||||||
"devServerTarget": "app:serve"
|
|
||||||
},
|
|
||||||
"configurations": {
|
|
||||||
"production": {
|
|
||||||
"cordovaBuildTarget": "app:ionic-cordova-build:production",
|
|
||||||
"devServerTarget": "app:serve:production"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cli": {
|
"cli": {
|
||||||
"defaultCollection": "@ionic/angular-toolkit"
|
"schematicCollections": [
|
||||||
|
"@ionic/angular-toolkit"
|
||||||
|
],
|
||||||
|
"analytics": false
|
||||||
},
|
},
|
||||||
"schematics": {
|
"schematics": {
|
||||||
"@ionic/angular-toolkit:component": {
|
"@ionic/angular-toolkit:component": {
|
||||||
|
|
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 27 KiB |
24
fastlane/metadata/android/de/full_description.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<i>Simple QR</i> ist eine FOSS-App zum Scannen, Erstellen und Speichern von QR-Codes mit einer einfachen Benutzeroberfläche und Erfahrung. Kein Back-End-Dienst verbunden. Keine Daten gesammelt. Keine Werbung.
|
||||||
|
|
||||||
|
Englisch, Französisch, Deutsch, Italienisch, traditionelles Chinesisch und vereinfachtes Chinesisch werden unterstützt.
|
||||||
|
|
||||||
|
Mit der App ist das möglich
|
||||||
|
|
||||||
|
* QR-Code und andere Barcodes in Sekundenschnelle zu scannen, einschließlich UPC, EAN, Code 39/128, ITF, Codabar, Aztec, Data Matrix, PDF417, MaxiCode und GS1 DataBar.
|
||||||
|
* Bilddateien zu importieren und den darauf befindlichen QR-Code zu scannen.
|
||||||
|
* QR-Codes aus Vorlagen,die Freitext, URL, vCard-Kontakt, Telefonnummer, Nachricht, Geolokalisierung, E-Mail und WLAN enthalten, zu erstellen.
|
||||||
|
* Gescannte Ergebnissen, die gescannt wurden, erstellt oder erneut angezeigt wurden zu protokollieren. Diese protokollierten Aufzeichnungen können für schnellen Zugriff mit einem Lesezeichen versehen und auch gesichert werden.
|
||||||
|
* Aufgaben auf dem Ergebnis mit einem Fingertipp zu erledigen, einschließlich, aber nicht beschränkt auf
|
||||||
|
* Verwenden als Schlüsselwort für die Websuche.
|
||||||
|
* Kopieren in die Zwischenablage.
|
||||||
|
* base64-Codierung/Decodierung darauf ausführen.
|
||||||
|
* Einen neuen teilbaren QR-Codegenerieren.
|
||||||
|
* Führen Sie entsprechende Aufgaben aus, wenn es sich um a handelt
|
||||||
|
* URL: Website durchsuchen
|
||||||
|
* vCard-Kontakt: Kontakt hinzufügen
|
||||||
|
* Telefonnummer: Telefonanruf, Kontakt hinzufügen
|
||||||
|
* Nachricht: Nachricht senden, Kontakt hinzufügen
|
||||||
|
* E-Mail: E-Mail senden
|
||||||
|
* Geolokalisierung: Karte öffnen
|
||||||
|
* Passen Sie den generierten QR-Code an, z. Fehlerkorrekturstufe, Farbe, Rand und Bildschirmhelligkeit.
|
||||||
|
* Die App anzupassen, z.B. App-Startseite, Sprache und Farbthema etc.
|
1
fastlane/metadata/android/de/short_description.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
QR-Codes mit einer einfachen Benutzeroberfläche scannen, erstellen und speichern
|
5
fastlane/metadata/android/en-US/changelogs/2070000.txt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
* More QR code customization settings, including color, background color and margin.
|
||||||
|
* Limit the maximum number of records that can be stored (30, 50, 100 or unlimited).
|
||||||
|
* Support Itanlian language.
|
||||||
|
* Update UI.
|
||||||
|
* Improve performance and fix known bugs.
|
4
fastlane/metadata/android/en-US/changelogs/3000000.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
* Upgraded framework, improved performance and fixed known bugs.
|
||||||
|
* Support quick access tile in the Quick Settings panel.
|
||||||
|
* More customizable UI.
|
||||||
|
* Removed Read/Write Contacts permission.
|
1
fastlane/metadata/android/en-US/changelogs/3000100.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
* Bug fix
|
3
fastlane/metadata/android/en-US/changelogs/3010000.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
* Support Ecosia
|
||||||
|
* Support CSV export
|
||||||
|
* Bug fix
|
2
fastlane/metadata/android/en-US/changelogs/3020000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
* Support Open Food Facts
|
||||||
|
* Bug fix
|
3
fastlane/metadata/android/en-US/changelogs/3030000.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
* Support Russian language
|
||||||
|
* Allow user to manually save a record if auto logging is off
|
||||||
|
* Minor update on UI
|
4
fastlane/metadata/android/en-US/changelogs/4000000.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
* Upgrade framework, improve performance and fix known bugs
|
||||||
|
* Support Brave Search
|
||||||
|
* Support open URL automatically
|
||||||
|
* Allow user to further edit QR code content
|
1
fastlane/metadata/android/en-US/changelogs/4000100.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
* Fix import image issue
|
3
fastlane/metadata/android/en-US/changelogs/4010000.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
* Support geolocation QR code
|
||||||
|
* Support Portuguese (Brazil) language
|
||||||
|
* Disable auto URL opening by default
|
24
fastlane/metadata/android/en-US/full_description.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<i>Simple QR</i> is an open-source app to scan, create and store QR codes with a simple UI and experience. No backend service connected. No data collected. No ads.
|
||||||
|
|
||||||
|
English, French, German, Itanlian, Russian, Traditional Chinese and Simplified Chinese are supported.
|
||||||
|
|
||||||
|
By using the app, you can:
|
||||||
|
|
||||||
|
* Scan QR Code and other barcodes in a second, including UPC, EAN, Code 39/128, ITF, Codabar, Aztec, Data Matrix, PDF417, MaxiCode and GS1 DataBar.
|
||||||
|
* Import image files and scan the QR Code on it.
|
||||||
|
* Create QR code from templates, which includes Free Text, URL, vCard Contact, Phone Number, Message, Email, Wi-Fi and Geolocation.
|
||||||
|
* Automatically log results that you scan, create or view again. These logged records can be bookmarked for quick access, and also backupable.
|
||||||
|
* Do tasks on the result with a tap, including but not limited to
|
||||||
|
* Use it as a keyword to do web search.
|
||||||
|
* Quickly copy it to the clipboard.
|
||||||
|
* Execute base64 encoding/decoding on it.
|
||||||
|
* Generate a new shareable QR code by using it as the content.
|
||||||
|
* Do corresponding tasks if it is a
|
||||||
|
* URL: Browse website / Open application
|
||||||
|
* vCard contact: Add contact
|
||||||
|
* Phone number: Phone call, add contact
|
||||||
|
* Message: Send message, add contact
|
||||||
|
* Email: Send email
|
||||||
|
* Geolocation: Open map
|
||||||
|
* Customize the generated QR code, e.g. error correction level, color, margin and screen brightness.
|
||||||
|
* Customize the app, e.g. app initial page, language and color theme etc.
|
BIN
fastlane/metadata/android/en-US/images/featureGraphic.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
fastlane/metadata/android/en-US/images/icon.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/01.png
Normal file
After Width: | Height: | Size: 586 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/02.png
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/03.png
Normal file
After Width: | Height: | Size: 618 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/04.png
Normal file
After Width: | Height: | Size: 655 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/05.png
Normal file
After Width: | Height: | Size: 634 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/06.png
Normal file
After Width: | Height: | Size: 647 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/07.png
Normal file
After Width: | Height: | Size: 734 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/08.png
Normal file
After Width: | Height: | Size: 658 KiB |
1
fastlane/metadata/android/en-US/short_description.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Scan, create and store QR codes with a simple UI and experience
|
1
fastlane/metadata/android/en-US/title.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Simple QR
|
2
ios/.gitignore
vendored
|
@ -1,9 +1,9 @@
|
||||||
App/build
|
App/build
|
||||||
App/Pods
|
App/Pods
|
||||||
App/Podfile.lock
|
|
||||||
App/App/public
|
App/App/public
|
||||||
DerivedData
|
DerivedData
|
||||||
xcuserdata
|
xcuserdata
|
||||||
|
|
||||||
# Cordova plugins for Capacitor
|
# Cordova plugins for Capacitor
|
||||||
capacitor-cordova-ios-plugins
|
capacitor-cordova-ios-plugins
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
1B75189429375EAB00800D38 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = "<group>"; };
|
2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = "<group>"; };
|
||||||
50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = "<group>"; };
|
50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = "<group>"; };
|
||||||
504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
@ -40,6 +41,9 @@
|
||||||
D208D0BE281849AA006217ED /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
D208D0BE281849AA006217ED /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = "zh-HK.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
D208D0BF281849AD006217ED /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
D208D0BF281849AD006217ED /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
D208D0C0281849AE006217ED /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
D208D0C0281849AE006217ED /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
|
D26FE7F9283D1E6C002A61AE /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
D26FE7FA283D1E76002A61AE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
D29D2E2A2847C31D00566DFF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig"; sourceTree = "<group>"; };
|
FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
@ -154,6 +158,10 @@
|
||||||
"zh-HK",
|
"zh-HK",
|
||||||
"zh-Hant",
|
"zh-Hant",
|
||||||
"zh-Hans",
|
"zh-Hans",
|
||||||
|
de,
|
||||||
|
fr,
|
||||||
|
it,
|
||||||
|
ru,
|
||||||
);
|
);
|
||||||
mainGroup = 504EC2FB1FED79650016851F;
|
mainGroup = 504EC2FB1FED79650016851F;
|
||||||
productRefGroup = 504EC3051FED79650016851F /* Products */;
|
productRefGroup = 504EC3051FED79650016851F /* Products */;
|
||||||
|
@ -259,6 +267,10 @@
|
||||||
D208D0BE281849AA006217ED /* zh-HK */,
|
D208D0BE281849AA006217ED /* zh-HK */,
|
||||||
D208D0BF281849AD006217ED /* zh-Hant */,
|
D208D0BF281849AD006217ED /* zh-Hant */,
|
||||||
D208D0C0281849AE006217ED /* zh-Hans */,
|
D208D0C0281849AE006217ED /* zh-Hans */,
|
||||||
|
D26FE7F9283D1E6C002A61AE /* fr */,
|
||||||
|
D26FE7FA283D1E76002A61AE /* de */,
|
||||||
|
D29D2E2A2847C31D00566DFF /* it */,
|
||||||
|
1B75189429375EAB00800D38 /* ru */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -315,7 +327,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
@ -367,7 +379,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||||
|
@ -385,9 +397,9 @@
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = G23992CVBU;
|
DEVELOPMENT_TEAM = G23992CVBU;
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
INFOPLIST_FILE = App/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
MARKETING_VERSION = 2.6.3;
|
MARKETING_VERSION = 4.1.0;
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tomfong.simpleqr;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tomfong.simpleqr;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
@ -408,9 +420,9 @@
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = G23992CVBU;
|
DEVELOPMENT_TEAM = G23992CVBU;
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
INFOPLIST_FILE = App/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
MARKETING_VERSION = 2.6.3;
|
MARKETING_VERSION = 4.1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tomfong.simpleqr;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tomfong.simpleqr;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "Simple QR";
|
PROVISIONING_PROFILE_SPECIFIER = "Simple QR";
|
||||||
|
|
|
@ -46,15 +46,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||||
return ApplicationDelegateProxy.shared.application(application, continue: userActivity, restorationHandler: restorationHandler)
|
return ApplicationDelegateProxy.shared.application(application, continue: userActivity, restorationHandler: restorationHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
|
||||||
super.touchesBegan(touches, with: event)
|
|
||||||
|
|
||||||
let statusBarRect = UIApplication.shared.statusBarFrame
|
|
||||||
guard let touchPoint = event?.allTouches?.first?.location(in: self.window) else { return }
|
|
||||||
|
|
||||||
if statusBarRect.contains(touchPoint) {
|
|
||||||
NotificationCenter.default.post(name: .capacitorStatusBarTapped, object: nil)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 588 B |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 2.7 KiB |
|
@ -1,116 +1,14 @@
|
||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-20x20@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-20x20@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-29x29@2x-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-29x29@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-40x40@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-40x40@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-60x60@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-60x60@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-20x20@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-20x20@2x-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-29x29@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-29x29@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-40x40@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-40x40@2x-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-76x76@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-76x76@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "83.5x83.5",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-83.5x83.5@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "1024x1024",
|
|
||||||
"idiom" : "ios-marketing",
|
|
||||||
"filename" : "AppIcon-512@2x.png",
|
"filename" : "AppIcon-512@2x.png",
|
||||||
"scale" : "1x"
|
"idiom" : "universal",
|
||||||
|
"platform" : "ios",
|
||||||
|
"size" : "1024x1024"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"info" : {
|
"info" : {
|
||||||
"version" : 1,
|
"author" : "xcode",
|
||||||
"author" : "xcode"
|
"version" : 1
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,11 +22,6 @@
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSAppTransportSecurity</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSAllowsArbitraryLoads</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>Simple QR uses Camera to scan barcodes</string>
|
<string>Simple QR uses Camera to scan barcodes</string>
|
||||||
<key>NSContactsUsageDescription</key>
|
<key>NSContactsUsageDescription</key>
|
||||||
|
|
6
ios/App/App/de.lproj/InfoPlist.strings
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
"CFBundleDisplayName" = "Simple QR";
|
||||||
|
"CFBundleName" = "Simple QR";
|
||||||
|
"NSCameraUsageDescription" = "Simple QR verwendet die Kamera, um QR-Codes und Barcodes zu scannen";
|
||||||
|
"NSContactsUsageDescription" = "Simple QR verwendet Kontakte, um Kontakte hinzuzufügen";
|
||||||
|
"NSPhotoLibraryAddUsageDescription" = "Simple QR verwendet die Fotobibliothek, um das QR-Code-Bild zu speichern";
|
||||||
|
"NSPhotoLibraryUsageDescription" = "Simple QR verwendet die Fotobibliothek, um Bilder zu importieren und QR-Codes zu scannen";
|
6
ios/App/App/fr.lproj/InfoPlist.strings
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
"CFBundleDisplayName" = "Simple QR";
|
||||||
|
"CFBundleName" = "Simple QR";
|
||||||
|
"NSCameraUsageDescription" = "Simple QR utilise l'appareil photo pour scanner le code QR et les codes-barres";
|
||||||
|
"NSContactsUsageDescription" = "Simple QR utilise Contacts pour ajouter un contact";
|
||||||
|
"NSPhotoLibraryAddUsageDescription" = "Simple QR utilise la bibliothèque de photos pour enregistrer l'image du code QR";
|
||||||
|
"NSPhotoLibraryUsageDescription" = "Simple QR utilise la bibliothèque de photos pour importer l'image et scanner le code QR";
|
6
ios/App/App/it.lproj/InfoPlist.strings
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
"CFBundleDisplayName" = "Simple QR";
|
||||||
|
"CFBundleName" = "Simple QR";
|
||||||
|
"NSCameraUsageDescription" = "Simple QR utilizza la fotocamera per scansionare codici QR e codici a barre";
|
||||||
|
"NSContactsUsageDescription" = "Simple QR utilizza Contatti per aggiungere contatti";
|
||||||
|
"NSPhotoLibraryAddUsageDescription" = "Simple QR utilizza Photo Library per salvare l'immagine del codice QR";
|
||||||
|
"NSPhotoLibraryUsageDescription" = "Simple QR utilizza Photo Library per importare immagini e scansionare il codice QR";
|
6
ios/App/App/ru.lproj/InfoPlist.strings
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
"CFBundleDisplayName" = "Simple QR";
|
||||||
|
"CFBundleName" = "Simple QR";
|
||||||
|
"NSCameraUsageDescription" = "Simple QR использует камеру для сканирования QR-кода и штрих-кодов";
|
||||||
|
"NSContactsUsageDescription" = "Simple QR использует Контакты для добавления контакта";
|
||||||
|
"NSPhotoLibraryAddUsageDescription" = "Simple QR использует библиотеку фотографий для сохранения изображения QR-кода";
|
||||||
|
"NSPhotoLibraryUsageDescription" = "Simple QR использует библиотеку фотографий для импорта изображений и сканирования QR-кода.";
|
|
@ -1,4 +1,6 @@
|
||||||
platform :ios, '12.0'
|
require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers'
|
||||||
|
|
||||||
|
platform :ios, '13.0'
|
||||||
use_frameworks!
|
use_frameworks!
|
||||||
|
|
||||||
# workaround to avoid Xcode caching of Pods that requires
|
# workaround to avoid Xcode caching of Pods that requires
|
||||||
|
@ -19,6 +21,7 @@ def capacitor_pods
|
||||||
pod 'CapacitorFilesystem', :path => '../../node_modules/@capacitor/filesystem'
|
pod 'CapacitorFilesystem', :path => '../../node_modules/@capacitor/filesystem'
|
||||||
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
|
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
|
||||||
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
|
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
|
||||||
|
pod 'CapacitorPreferences', :path => '../../node_modules/@capacitor/preferences'
|
||||||
pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen'
|
pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen'
|
||||||
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
|
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
|
||||||
pod 'CapacitorToast', :path => '../../node_modules/@capacitor/toast'
|
pod 'CapacitorToast', :path => '../../node_modules/@capacitor/toast'
|
||||||
|
@ -29,3 +32,8 @@ target 'App' do
|
||||||
capacitor_pods
|
capacitor_pods
|
||||||
# Add your Pods here
|
# Add your Pods here
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
assertDeploymentTarget(installer)
|
||||||
|
end
|
||||||
|
|
112
ios/App/Podfile.lock
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
PODS:
|
||||||
|
- Capacitor (5.7.4):
|
||||||
|
- CapacitorCordova
|
||||||
|
- CapacitorApp (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorCamera (5.0.9):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorClipboard (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorCommunityBarcodeScanner (4.0.1):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorCommunityContacts (5.0.5):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorCommunityScreenBrightness (5.0.0):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorCordova (5.7.4)
|
||||||
|
- CapacitorDevice (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorFilesystem (5.2.1):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorHaptics (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorKeyboard (5.0.8):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorPreferences (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorSplashScreen (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorStatusBar (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CapacitorToast (5.0.7):
|
||||||
|
- Capacitor
|
||||||
|
- CordovaPlugins (5.7.4):
|
||||||
|
- CapacitorCordova
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- "Capacitor (from `../../node_modules/@capacitor/ios`)"
|
||||||
|
- "CapacitorApp (from `../../node_modules/@capacitor/app`)"
|
||||||
|
- "CapacitorCamera (from `../../node_modules/@capacitor/camera`)"
|
||||||
|
- "CapacitorClipboard (from `../../node_modules/@capacitor/clipboard`)"
|
||||||
|
- "CapacitorCommunityBarcodeScanner (from `../../node_modules/@capacitor-community/barcode-scanner`)"
|
||||||
|
- "CapacitorCommunityContacts (from `../../node_modules/@capacitor-community/contacts`)"
|
||||||
|
- "CapacitorCommunityScreenBrightness (from `../../node_modules/@capacitor-community/screen-brightness`)"
|
||||||
|
- "CapacitorCordova (from `../../node_modules/@capacitor/ios`)"
|
||||||
|
- "CapacitorDevice (from `../../node_modules/@capacitor/device`)"
|
||||||
|
- "CapacitorFilesystem (from `../../node_modules/@capacitor/filesystem`)"
|
||||||
|
- "CapacitorHaptics (from `../../node_modules/@capacitor/haptics`)"
|
||||||
|
- "CapacitorKeyboard (from `../../node_modules/@capacitor/keyboard`)"
|
||||||
|
- "CapacitorPreferences (from `../../node_modules/@capacitor/preferences`)"
|
||||||
|
- "CapacitorSplashScreen (from `../../node_modules/@capacitor/splash-screen`)"
|
||||||
|
- "CapacitorStatusBar (from `../../node_modules/@capacitor/status-bar`)"
|
||||||
|
- "CapacitorToast (from `../../node_modules/@capacitor/toast`)"
|
||||||
|
- CordovaPlugins (from `../capacitor-cordova-ios-plugins`)
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
Capacitor:
|
||||||
|
:path: "../../node_modules/@capacitor/ios"
|
||||||
|
CapacitorApp:
|
||||||
|
:path: "../../node_modules/@capacitor/app"
|
||||||
|
CapacitorCamera:
|
||||||
|
:path: "../../node_modules/@capacitor/camera"
|
||||||
|
CapacitorClipboard:
|
||||||
|
:path: "../../node_modules/@capacitor/clipboard"
|
||||||
|
CapacitorCommunityBarcodeScanner:
|
||||||
|
:path: "../../node_modules/@capacitor-community/barcode-scanner"
|
||||||
|
CapacitorCommunityContacts:
|
||||||
|
:path: "../../node_modules/@capacitor-community/contacts"
|
||||||
|
CapacitorCommunityScreenBrightness:
|
||||||
|
:path: "../../node_modules/@capacitor-community/screen-brightness"
|
||||||
|
CapacitorCordova:
|
||||||
|
:path: "../../node_modules/@capacitor/ios"
|
||||||
|
CapacitorDevice:
|
||||||
|
:path: "../../node_modules/@capacitor/device"
|
||||||
|
CapacitorFilesystem:
|
||||||
|
:path: "../../node_modules/@capacitor/filesystem"
|
||||||
|
CapacitorHaptics:
|
||||||
|
:path: "../../node_modules/@capacitor/haptics"
|
||||||
|
CapacitorKeyboard:
|
||||||
|
:path: "../../node_modules/@capacitor/keyboard"
|
||||||
|
CapacitorPreferences:
|
||||||
|
:path: "../../node_modules/@capacitor/preferences"
|
||||||
|
CapacitorSplashScreen:
|
||||||
|
:path: "../../node_modules/@capacitor/splash-screen"
|
||||||
|
CapacitorStatusBar:
|
||||||
|
:path: "../../node_modules/@capacitor/status-bar"
|
||||||
|
CapacitorToast:
|
||||||
|
:path: "../../node_modules/@capacitor/toast"
|
||||||
|
CordovaPlugins:
|
||||||
|
:path: "../capacitor-cordova-ios-plugins"
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
Capacitor: 4fe9adf012caceb4c71ffea2f1f4d005cdcbeea7
|
||||||
|
CapacitorApp: 17fecd0e6cb23feafac7eb0939417389038b0979
|
||||||
|
CapacitorCamera: 4892c5c392f60039d853dde78bc50ba19fbd113e
|
||||||
|
CapacitorClipboard: 45e5e25f2271f98712985d422776cdc5a779cca1
|
||||||
|
CapacitorCommunityBarcodeScanner: 7feb206489c8555a8ca0c74c57ddf49ead774eb8
|
||||||
|
CapacitorCommunityContacts: e8fbc4d669c9478a29f1e104818b4c16e158b2e0
|
||||||
|
CapacitorCommunityScreenBrightness: b2d9c6fffee6b684994cd69f727f2090e2f05c6d
|
||||||
|
CapacitorCordova: a6e87fccc0307dee7aec1560ec9398485f2b0ce7
|
||||||
|
CapacitorDevice: fc91bdb484dc0e70755e9b621cd557afe642613a
|
||||||
|
CapacitorFilesystem: 9f3e3c7fea2fff12f46dd5b07a2914f2103e4cfc
|
||||||
|
CapacitorHaptics: 7c7c206f0c96a628fed073830c96d28c4b2e772e
|
||||||
|
CapacitorKeyboard: aec619a578235c6ce279075009a2689c2cf5c42c
|
||||||
|
CapacitorPreferences: 77ac427e98db83bace772455f8ba447430382c4c
|
||||||
|
CapacitorSplashScreen: dd3de3f3644710fa2a697cfb91ec262eece4d242
|
||||||
|
CapacitorStatusBar: f390fbb49b82ffb754ea4b3cf71dc8b048baf3e7
|
||||||
|
CapacitorToast: c8bb89eeb59a23c1fc298f138cc06c8ff4d90ac1
|
||||||
|
CordovaPlugins: 5495649167d6829fea7bc7eacd2034646aee5bd1
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: dc80e3587547d0d302dad43090af30e2a96d6c5a
|
||||||
|
|
||||||
|
COCOAPODS: 1.11.3
|