Compare commits

...

No commits in common. "2.6.3" and "main" have entirely different histories.
2.6.3 ... main

197 changed files with 14802 additions and 19182 deletions

1
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1 @@

BIN
.github/images/IzzyOnDroid-badge.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
.github/images/Paypal-badge.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Before After
Before After

BIN
.github/images/github-badge.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

BIN
.github/images/icon_round.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
.github/images/screenshot_0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

BIN
.github/images/screenshot_1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
.github/images/screenshot_2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 KiB

BIN
.github/images/screenshot_3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

BIN
.github/images/screenshot_4.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 KiB

BIN
.github/images/screenshot_5.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

1046
LICENSE

File diff suppressed because it is too large Load diff

152
README.md
View file

@ -1,31 +1,32 @@
# 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">
<img alt="Simple QR" src="./resources/icon.png" width="100px">
</p>
<p align="center">
<a href="#about">About</a>
<a href="#features">Features</a>
<a href="#support-developer">Support Developer</a>
<strong>
Simple QR
</strong>
</p>
<p align="center">
<a href="#contribute">Contribute</a>
<a href="#framework">Framework</a>
<a href="#privacy-policy">Privacy Policy</a>
<a href="#license">License</a>
Simple and lightweight app to scan, create and store QR codes
</p>
<br>
<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>
## 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 both the App Store and Google Play. 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
@ -35,89 +36,104 @@ By using the app, you can
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.
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.
* Quickly copy it to the clipboard.
* Execute base64 encoding/decoding on it.
* Generate a new shareable QR code by using it as the content.
* Directly do special tasks, if it is a link, vCard contact, phone number, message or email.
* Use it as a content to generate a new shareable QR code.
* 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.
### Demo
[![Simple QR Demo](https://img.youtube.com/vi/D57VveikN8U/0.jpg)](https://www.youtube.com/watch?v=D57VveikN8U)
[![Simple QR Demo](https://img.youtube.com/vi/TIC6ZAkWoXY/0.jpg)](https://www.youtube.com/watch?v=TIC6ZAkWoXY)
## Languages Supported
### Languages Supported
* English (en)
* Traditional Chinese 正體中文 (zh-HK)
* Simplified Chinese 简体中文 (zh-CN)
* Chinese (Hong Kong) 中文 (香港) (zh-HK)
* 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>)
## Support Developer
If you want to support me or my projects, please <a href="https://github.com/tomfong"><b>click me</b></a>😊
You are welcomed to help translate the app into more languages (refer to this <a href="#how-to-help-translate">section</a>)
## Contribute
* Star the project
* Do translation for different languages
* Open issues for reporting bugs or any new ideas
* Sponsor the project.
### How to do the translation?
[![GitHub Sponsor](https://img.shields.io/badge/sponsor-30363D?style=flat&logo=GitHub-Sponsors&logoColor=#white)](https://github.com/sponsors/tomfong?frequency=one-time)
[![Buy me a Coffee](https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?style=flat&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/tomfong)
* Star the project.
[![Stars](https://img.shields.io/github/stars/tomfong/simple-qr?style=flat)](https://github.com/tomfong/simple-qr/stargazers)
* Open issues to report bugs or share any new ideas.
[![Issues](https://img.shields.io/github/issues/tomfong/simple-qr?style=flat)](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)
2. Copy the JSON, 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.
4. [Email]('mailto:tomfong.dev@gmail.com') the JSON to me.
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.
* 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
2. Run ```npm run sync``` and ```npm run copy:an```
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
1. Run ```npm install``` to install all dependencies.
2. Run ```npm run build```
```java
final PendingIntent pendingIntent = PendingIntent.getBroadcast(cordova.getActivity().getApplicationContext(), 0, receiverIntent, PendingIntent.FLAG_UPDATE_CURRENT|PendingIntent.FLAG_IMMUTABLE);
```
### Contributors
5. In ```android/app/src/main/res/values/styles.xml```, change
Thank you the following contributors who have made the app better!
```xml
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#00a5aa</item>
</style>
```
| Name | GitHub | How? |
|:-:|:-:|:-:|
| mondstern | [mondlicht-und-sterne](https://github.com/mondlicht-und-sterne) | German language translation |
| 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
```sh
Ionic CLI : 6.19.0
Ionic Framework : @ionic/angular 6.1.6
@angular-devkit/build-angular : 13.3.6
@angular-devkit/schematics : 13.3.6
@angular/cli : 13.3.6
@ionic/angular-toolkit : 6.1.0
Ionic CLI : 7.2.0
Ionic Framework : @ionic/angular 7.8.2
@angular-devkit/build-angular : 16.2.13
@angular-devkit/schematics : 16.2.13
@angular/cli : 16.2.13
@ionic/angular-toolkit : 9.0.0
Capacitor CLI : 3.5.1
@capacitor/android : 3.5.1
@capacitor/core : 3.5.1
@capacitor/ios : 3.5.1
Cordova CLI : 10.0.0
Android SDK Tools : 26.1.1
NodeJS : v16.15.4
npm : 8.8.0
Capacitor CLI : 5.7.4
@capacitor/android : 5.7.4
@capacitor/core : 5.7.4
@capacitor/ios : 5.7.4
```
## Privacy Policy
@ -126,4 +142,4 @@ Please read the [Privacy Policy](https://www.privacypolicies.com/live/771b1123-9
## License
Please view the [LICENSE](LICENSE)
[![License](https://img.shields.io/github/license/tomfong/simple-qr?style=flat)](https://github.com/tomfong/simple-qr/blob/main/LICENSE)

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
<bytecodeTargetLevel target="17" />
</component>
</project>

13
android/.idea/misc.xml generated
View file

@ -1,6 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<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" />
</component>
<component name="ProjectType">

View file

@ -1,13 +1,14 @@
apply plugin: 'com.android.application'
android {
namespace "com.tomfong.simpleqr"
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.tomfong.simpleqr"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2060300
versionName "2.6.3"
versionCode 4010000
versionName "4.1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@ -30,6 +31,8 @@ repositories {
}
dependencies {
implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
implementation project(':capacitor-android')

View file

@ -2,8 +2,8 @@
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
@ -19,6 +19,7 @@ dependencies {
implementation project(':capacitor-filesystem')
implementation project(':capacitor-haptics')
implementation project(':capacitor-keyboard')
implementation project(':capacitor-preferences')
implementation project(':capacitor-splash-screen')
implementation project(':capacitor-status-bar')
implementation project(':capacitor-toast')

View 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"
}

View file

@ -1,7 +1,16 @@
<?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">
@ -15,13 +24,29 @@
<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>
</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>
<!-- 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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_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-feature
android:name="android.hardware.camera"
android:required="true" />
</manifest>

View file

@ -5,7 +5,7 @@
},
{
"pkg": "@capacitor-community/contacts",
"classpath": "ch.byrds.capacitor.contacts.Contacts"
"classpath": "getcapacitor.community.contacts.ContactsPlugin"
},
{
"pkg": "@capacitor-community/screen-brightness",
@ -39,6 +39,10 @@
"pkg": "@capacitor/keyboard",
"classpath": "com.capacitorjs.plugins.keyboard.KeyboardPlugin"
},
{
"pkg": "@capacitor/preferences",
"classpath": "com.capacitorjs.plugins.preferences.PreferencesPlugin"
},
{
"pkg": "@capacitor/splash-screen",
"classpath": "com.capacitorjs.plugins.splashscreen.SplashScreenPlugin"

View file

@ -2,4 +2,20 @@ package com.tomfong.simpleqr;
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;
}
}

View file

@ -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");
}
}

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View file

@ -9,14 +9,14 @@
<item name="colorAccent">@color/colorAccent</item>
</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="windowNoTitle">true</item>
<item name="android:background">@null</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#00a5aa</item>
<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>

View 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>

View file

@ -9,14 +9,14 @@
<item name="colorAccent">@color/colorAccent</item>
</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="windowNoTitle">true</item>
<item name="android:background">@null</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#00a5aa</item>
<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>

View 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>

View file

@ -9,14 +9,14 @@
<item name="colorAccent">@color/colorAccent</item>
</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="windowNoTitle">true</item>
<item name="android:background">@null</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#00a5aa</item>
<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>

View 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>

View file

@ -9,14 +9,14 @@
<item name="colorAccent">@color/colorAccent</item>
</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="windowNoTitle">true</item>
<item name="android:background">@null</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#00a5aa</item>
<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>

View 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>

View file

@ -9,14 +9,14 @@
<item name="colorAccent">@color/colorAccent</item>
</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="windowNoTitle">true</item>
<item name="android:background">@null</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:background">#00a5aa</item>
<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>

View file

@ -6,10 +6,6 @@
<param name="android-package" value="com.ideas2it.aes256.AES256"/>
</feature>
<feature name="AppVersion">
<param name="android-package" value="uk.co.whiteoctober.cordova.AppVersion"/>
</feature>
<feature name="Chooser">
<param name="android-package" value="com.cyph.cordova.Chooser"/>
</feature>

View file

@ -4,11 +4,11 @@ buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.1'
classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.android.tools.build:gradle:8.0.2'
classpath 'com.google.gms:google-services:4.3.15'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@ -20,10 +20,11 @@ apply from: "variables.gradle"
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

View file

@ -32,6 +32,9 @@ project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/
include ':capacitor-keyboard'
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'
project(':capacitor-splash-screen').projectDir = new File('../node_modules/@capacitor/splash-screen/android')

View file

@ -20,5 +20,4 @@ org.gradle.jvmargs=-Xmx1536m
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

View file

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
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
zipStorePath=wrapper/dists

View file

@ -1,14 +1,16 @@
ext {
minSdkVersion = 23
compileSdkVersion = 31
targetSdkVersion = 31
androidxActivityVersion = '1.2.0'
androidxAppCompatVersion = '1.2.0'
androidxCoordinatorLayoutVersion = '1.1.0'
androidxCoreVersion = '1.3.2'
androidxFragmentVersion = '1.3.0'
junitVersion = '4.13.1'
androidxJunitVersion = '1.1.2'
androidxEspressoCoreVersion = '3.3.0'
cordovaAndroidVersion = '7.0.0'
minSdkVersion = 22
compileSdkVersion = 33
targetSdkVersion = 33
androidxActivityVersion = '1.7.0'
androidxAppCompatVersion = '1.6.1'
androidxCoordinatorLayoutVersion = '1.2.0'
androidxCoreVersion = '1.10.0'
androidxFragmentVersion = '1.5.6'
junitVersion = '4.13.2'
androidxJunitVersion = '1.1.5'
androidxEspressoCoreVersion = '3.5.1'
cordovaAndroidVersion = '10.1.1'
coreSplashScreenVersion = '1.0.0'
androidxWebkitVersion = '1.6.1'
}

View file

@ -1,7 +1,6 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"defaultProject": "app",
"newProjectRoot": "projects",
"projects": {
"app": {
@ -31,7 +30,10 @@
"output": "./svg"
}
],
"styles": ["src/theme/variables.scss", "src/global.scss"],
"styles": [
"src/theme/variables.scss",
"src/global.scss"
],
"scripts": [],
"aot": false,
"vendorChunk": true,
@ -80,8 +82,7 @@
"production": {
"browserTarget": "app:build:production"
},
"ci": {
}
"ci": {}
}
},
"extract-i18n": {
@ -133,36 +134,15 @@
"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": {
"defaultCollection": "@ionic/angular-toolkit"
"schematicCollections": [
"@ionic/angular-toolkit"
],
"analytics": false
},
"schematics": {
"@ionic/angular-toolkit:component": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View 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.

View file

@ -0,0 +1 @@
QR-Codes mit einer einfachen Benutzeroberfläche scannen, erstellen und speichern

View 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.

View 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.

View file

@ -0,0 +1 @@
* Bug fix

View file

@ -0,0 +1,3 @@
* Support Ecosia
* Support CSV export
* Bug fix

View file

@ -0,0 +1,2 @@
* Support Open Food Facts
* Bug fix

View file

@ -0,0 +1,3 @@
* Support Russian language
* Allow user to manually save a record if auto logging is off
* Minor update on UI

View 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

View file

@ -0,0 +1 @@
* Fix import image issue

View file

@ -0,0 +1,3 @@
* Support geolocation QR code
* Support Portuguese (Brazil) language
* Disable auto URL opening by default

View 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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 KiB

View file

@ -0,0 +1 @@
Scan, create and store QR codes with a simple UI and experience

View file

@ -0,0 +1 @@
Simple QR

2
ios/.gitignore vendored
View file

@ -1,9 +1,9 @@
App/build
App/Pods
App/Podfile.lock
App/App/public
DerivedData
xcuserdata
# Cordova plugins for Capacitor
capacitor-cordova-ios-plugins

View file

@ -19,6 +19,7 @@
/* End PBXBuildFile 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>"; };
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; };
@ -40,6 +41,9 @@
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>"; };
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>"; };
/* End PBXFileReference section */
@ -154,6 +158,10 @@
"zh-HK",
"zh-Hant",
"zh-Hans",
de,
fr,
it,
ru,
);
mainGroup = 504EC2FB1FED79650016851F;
productRefGroup = 504EC3051FED79650016851F /* Products */;
@ -259,6 +267,10 @@
D208D0BE281849AA006217ED /* zh-HK */,
D208D0BF281849AD006217ED /* zh-Hant */,
D208D0C0281849AE006217ED /* zh-Hans */,
D26FE7F9283D1E6C002A61AE /* fr */,
D26FE7FA283D1E76002A61AE /* de */,
D29D2E2A2847C31D00566DFF /* it */,
1B75189429375EAB00800D38 /* ru */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
@ -315,7 +327,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@ -367,7 +379,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@ -385,9 +397,9 @@
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = G23992CVBU;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
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\"";
PRODUCT_BUNDLE_IDENTIFIER = com.tomfong.simpleqr;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -408,9 +420,9 @@
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = G23992CVBU;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
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_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "Simple QR";

View file

@ -46,15 +46,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
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)
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,116 +1,14 @@
{
"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",
"scale" : "1x"
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}

View file

@ -22,11 +22,6 @@
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>Simple QR uses Camera to scan barcodes</string>
<key>NSContactsUsageDescription</key>

View file

@ -6,10 +6,6 @@
<param name="ios-package" value="AES256"/>
</feature>
<feature name="AppVersion">
<param name="ios-package" value="AppVersion"/>
</feature>
<feature name="Chooser">
<param name="ios-package" value="Chooser"/>
</feature>

View 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";

View 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";

View 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";

View 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-кода.";

View file

@ -1,4 +1,6 @@
platform :ios, '12.0'
require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers'
platform :ios, '13.0'
use_frameworks!
# workaround to avoid Xcode caching of Pods that requires
@ -19,6 +21,7 @@ def capacitor_pods
pod 'CapacitorFilesystem', :path => '../../node_modules/@capacitor/filesystem'
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
pod 'CapacitorPreferences', :path => '../../node_modules/@capacitor/preferences'
pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen'
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
pod 'CapacitorToast', :path => '../../node_modules/@capacitor/toast'
@ -29,3 +32,8 @@ target 'App' do
capacitor_pods
# Add your Pods here
end
post_install do |installer|
assertDeploymentTarget(installer)
end

Some files were not shown because too many files have changed in this diff Show more