Initial commit
This commit is contained in:
		
						commit
						1cfde91b76
					
				
							
								
								
									
										3
									
								
								.eslintignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.eslintignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					build
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					example-app
 | 
				
			||||||
							
								
								
									
										70
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					# node files
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# iOS files
 | 
				
			||||||
 | 
					Pods
 | 
				
			||||||
 | 
					Podfile.lock
 | 
				
			||||||
 | 
					Package.resolved
 | 
				
			||||||
 | 
					Build
 | 
				
			||||||
 | 
					xcuserdata
 | 
				
			||||||
 | 
					/.build
 | 
				
			||||||
 | 
					/Packages
 | 
				
			||||||
 | 
					xcuserdata/
 | 
				
			||||||
 | 
					DerivedData/
 | 
				
			||||||
 | 
					.swiftpm/configuration/registries.json
 | 
				
			||||||
 | 
					.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
 | 
				
			||||||
 | 
					.netrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# macOS files
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Based on Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Built application files
 | 
				
			||||||
 | 
					*.apk
 | 
				
			||||||
 | 
					*.ap_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Files for the ART/Dalvik VM
 | 
				
			||||||
 | 
					*.dex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Java class files
 | 
				
			||||||
 | 
					*.class
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generated files
 | 
				
			||||||
 | 
					bin
 | 
				
			||||||
 | 
					gen
 | 
				
			||||||
 | 
					out
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gradle files
 | 
				
			||||||
 | 
					.gradle
 | 
				
			||||||
 | 
					build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Local configuration file (sdk path, etc)
 | 
				
			||||||
 | 
					local.properties
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Proguard folder generated by Eclipse
 | 
				
			||||||
 | 
					proguard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Log Files
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Android Studio Navigation editor temp files
 | 
				
			||||||
 | 
					.navigation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Android Studio captures folder
 | 
				
			||||||
 | 
					captures
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# IntelliJ
 | 
				
			||||||
 | 
					*.iml
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Keystore files
 | 
				
			||||||
 | 
					# Uncomment the following line if you do not want to check your keystore files in.
 | 
				
			||||||
 | 
					#*.jks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# External native build folder generated in Android Studio 2.2 and later
 | 
				
			||||||
 | 
					.externalNativeBuild
 | 
				
			||||||
							
								
								
									
										3
									
								
								.prettierignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.prettierignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					build
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					example-app
 | 
				
			||||||
							
								
								
									
										52
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					# Contributing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This guide provides instructions for contributing to this Capacitor plugin.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Developing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Local Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Fork and clone the repo.
 | 
				
			||||||
 | 
					1. Install the dependencies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ```shell
 | 
				
			||||||
 | 
					    npm install
 | 
				
			||||||
 | 
					    ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Install SwiftLint if you're on macOS.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ```shell
 | 
				
			||||||
 | 
					    brew install swiftlint
 | 
				
			||||||
 | 
					    ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `npm run build`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Build the plugin web assets and generate plugin API documentation using [`@capacitor/docgen`](https://github.com/ionic-team/capacitor-docgen).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It will compile the TypeScript code from `src/` into ESM JavaScript in `dist/esm/`. These files are used in apps with bundlers when your plugin is imported.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Then, Rollup will bundle the code into a single file at `dist/plugin.js`. This file is used in apps without bundlers by including it as a script in `index.html`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `npm run verify`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Build and validate the web and native projects.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is useful to run in CI to verify that the plugin builds for all platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### `npm run lint` / `npm run fmt`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Check formatting and code quality, autoformat/autofix if possible.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This template is integrated with ESLint, Prettier, and SwiftLint. Using these tools is completely optional, but the [Capacitor Community](https://github.com/capacitor-community/) strives to have consistent code style and structure for easier cooperation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Publishing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There is a `prepublishOnly` hook in `package.json` which prepares the plugin before publishing, so all you need to do is run:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					npm publish
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> **Note**: The [`files`](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#files) array in `package.json` specifies which files get published. If you rename files/directories or add files elsewhere, you may need to update it.
 | 
				
			||||||
							
								
								
									
										17
									
								
								CapacitorPromocode.podspec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								CapacitorPromocode.podspec
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					require 'json'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pod::Spec.new do |s|
 | 
				
			||||||
 | 
					  s.name = 'CapacitorPromocode'
 | 
				
			||||||
 | 
					  s.version = package['version']
 | 
				
			||||||
 | 
					  s.summary = package['description']
 | 
				
			||||||
 | 
					  s.license = package['license']
 | 
				
			||||||
 | 
					  s.homepage = package['repository']['url']
 | 
				
			||||||
 | 
					  s.author = package['author']
 | 
				
			||||||
 | 
					  s.source = { :git => package['repository']['url'], :tag => s.version.to_s }
 | 
				
			||||||
 | 
					  s.source_files = 'ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}'
 | 
				
			||||||
 | 
					  s.ios.deployment_target  = '13.0'
 | 
				
			||||||
 | 
					  s.dependency 'Capacitor'
 | 
				
			||||||
 | 
					  s.swift_version = '5.1'
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										28
									
								
								Package.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Package.swift
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					// swift-tools-version: 5.9
 | 
				
			||||||
 | 
					import PackageDescription
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let package = Package(
 | 
				
			||||||
 | 
					    name: "CapacitorPromocode",
 | 
				
			||||||
 | 
					    platforms: [.iOS(.v13)],
 | 
				
			||||||
 | 
					    products: [
 | 
				
			||||||
 | 
					        .library(
 | 
				
			||||||
 | 
					            name: "CapacitorPromocode",
 | 
				
			||||||
 | 
					            targets: ["PromoCodePlugin"])
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    dependencies: [
 | 
				
			||||||
 | 
					        .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "main")
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    targets: [
 | 
				
			||||||
 | 
					        .target(
 | 
				
			||||||
 | 
					            name: "PromoCodePlugin",
 | 
				
			||||||
 | 
					            dependencies: [
 | 
				
			||||||
 | 
					                .product(name: "Capacitor", package: "capacitor-swift-pm"),
 | 
				
			||||||
 | 
					                .product(name: "Cordova", package: "capacitor-swift-pm")
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            path: "ios/Sources/PromoCodePlugin"),
 | 
				
			||||||
 | 
					        .testTarget(
 | 
				
			||||||
 | 
					            name: "PromoCodePluginTests",
 | 
				
			||||||
 | 
					            dependencies: ["PromoCodePlugin"],
 | 
				
			||||||
 | 
					            path: "ios/Tests/PromoCodePluginTests")
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					# capacitor-promocode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					npm install capacitor-promocode
 | 
				
			||||||
 | 
					npx cap sync
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<docgen-index></docgen-index>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<docgen-api>
 | 
				
			||||||
 | 
					<!-- run docgen to generate docs from the source -->
 | 
				
			||||||
 | 
					<!-- More info: https://github.com/ionic-team/capacitor-docgen -->
 | 
				
			||||||
 | 
					</docgen-api>
 | 
				
			||||||
							
								
								
									
										1
									
								
								android/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								android/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/build
 | 
				
			||||||
							
								
								
									
										58
									
								
								android/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								android/build.gradle
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					ext {
 | 
				
			||||||
 | 
					    junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
 | 
				
			||||||
 | 
					    androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.6.1'
 | 
				
			||||||
 | 
					    androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.5'
 | 
				
			||||||
 | 
					    androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.5.1'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					buildscript {
 | 
				
			||||||
 | 
					    repositories {
 | 
				
			||||||
 | 
					        google()
 | 
				
			||||||
 | 
					        mavenCentral()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    dependencies {
 | 
				
			||||||
 | 
					        classpath 'com.android.tools.build:gradle:8.2.1'
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply plugin: 'com.android.library'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					android {
 | 
				
			||||||
 | 
					    namespace "software.eskimo.capacitor.promocode"
 | 
				
			||||||
 | 
					    compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 34
 | 
				
			||||||
 | 
					    defaultConfig {
 | 
				
			||||||
 | 
					        minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 22
 | 
				
			||||||
 | 
					        targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 34
 | 
				
			||||||
 | 
					        versionCode 1
 | 
				
			||||||
 | 
					        versionName "1.0"
 | 
				
			||||||
 | 
					        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    buildTypes {
 | 
				
			||||||
 | 
					        release {
 | 
				
			||||||
 | 
					            minifyEnabled false
 | 
				
			||||||
 | 
					            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    lintOptions {
 | 
				
			||||||
 | 
					        abortOnError false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    compileOptions {
 | 
				
			||||||
 | 
					        sourceCompatibility JavaVersion.VERSION_17
 | 
				
			||||||
 | 
					        targetCompatibility JavaVersion.VERSION_17
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					    google()
 | 
				
			||||||
 | 
					    mavenCentral()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies {
 | 
				
			||||||
 | 
					    implementation fileTree(dir: 'libs', include: ['*.jar'])
 | 
				
			||||||
 | 
					    implementation project(':capacitor-android')
 | 
				
			||||||
 | 
					    implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
 | 
				
			||||||
 | 
					    testImplementation "junit:junit:$junitVersion"
 | 
				
			||||||
 | 
					    androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
 | 
				
			||||||
 | 
					    androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								android/gradle.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								android/gradle.properties
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# Project-wide Gradle settings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# IDE (e.g. Android Studio) users:
 | 
				
			||||||
 | 
					# Gradle settings configured through the IDE *will override*
 | 
				
			||||||
 | 
					# any settings specified in this file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# For more details on how to configure your build environment visit
 | 
				
			||||||
 | 
					# http://www.gradle.org/docs/current/userguide/build_environment.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Specifies the JVM arguments used for the daemon process.
 | 
				
			||||||
 | 
					# The setting is particularly useful for tweaking memory settings.
 | 
				
			||||||
 | 
					org.gradle.jvmargs=-Xmx1536m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# When configured, Gradle will run in incubating parallel mode.
 | 
				
			||||||
 | 
					# This option should only be used with decoupled projects. More details, visit
 | 
				
			||||||
 | 
					# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 | 
				
			||||||
 | 
					# org.gradle.parallel=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# AndroidX package structure to make it clearer which packages are bundled with the
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								android/gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								android/gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										7
									
								
								android/gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								android/gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					distributionBase=GRADLE_USER_HOME
 | 
				
			||||||
 | 
					distributionPath=wrapper/dists
 | 
				
			||||||
 | 
					distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
 | 
				
			||||||
 | 
					networkTimeout=10000
 | 
				
			||||||
 | 
					validateDistributionUrl=true
 | 
				
			||||||
 | 
					zipStoreBase=GRADLE_USER_HOME
 | 
				
			||||||
 | 
					zipStorePath=wrapper/dists
 | 
				
			||||||
							
								
								
									
										248
									
								
								android/gradlew
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										248
									
								
								android/gradlew
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@ -0,0 +1,248 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright © 2015-2021 the original authors.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					# you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					# You may obtain a copy of the License at
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#      https://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					# distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##############################################################################
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Gradle start up script for POSIX generated by Gradle.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Important for running:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
 | 
				
			||||||
 | 
					#       noncompliant, but you have some other compliant shell such as ksh or
 | 
				
			||||||
 | 
					#       bash, then to run this script, type that shell name before the whole
 | 
				
			||||||
 | 
					#       command line, like:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#           ksh Gradle
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#       Busybox and similar reduced shells will NOT work, because this script
 | 
				
			||||||
 | 
					#       requires all of these POSIX shell features:
 | 
				
			||||||
 | 
					#         * functions;
 | 
				
			||||||
 | 
					#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
 | 
				
			||||||
 | 
					#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
 | 
				
			||||||
 | 
					#         * compound commands having a testable exit status, especially «case»;
 | 
				
			||||||
 | 
					#         * various built-in commands including «command», «set», and «ulimit».
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Important for patching:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   (2) This script targets any POSIX shell, so it avoids extensions provided
 | 
				
			||||||
 | 
					#       by Bash, Ksh, etc; in particular arrays are avoided.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#       The "traditional" practice of packing multiple parameters into a
 | 
				
			||||||
 | 
					#       space-separated string is a well documented source of bugs and security
 | 
				
			||||||
 | 
					#       problems, so this is (mostly) avoided, by progressively accumulating
 | 
				
			||||||
 | 
					#       options in "$@", and eventually passing that to Java.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
 | 
				
			||||||
 | 
					#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
 | 
				
			||||||
 | 
					#       see the in-line comments for details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#       There are tweaks for specific operating systems such as AIX, CygWin,
 | 
				
			||||||
 | 
					#       Darwin, MinGW, and NonStop.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   (3) This script is generated from the Groovy template
 | 
				
			||||||
 | 
					#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 | 
				
			||||||
 | 
					#       within the Gradle project.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#       You can find Gradle at https://github.com/gradle/gradle/.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					##############################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Attempt to set APP_HOME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Resolve links: $0 may be a link
 | 
				
			||||||
 | 
					app_path=$0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Need this for daisy-chained symlinks.
 | 
				
			||||||
 | 
					while
 | 
				
			||||||
 | 
					    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path
 | 
				
			||||||
 | 
					    [ -h "$app_path" ]
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    ls=$( ls -ld "$app_path" )
 | 
				
			||||||
 | 
					    link=${ls#*' -> '}
 | 
				
			||||||
 | 
					    case $link in             #(
 | 
				
			||||||
 | 
					      /*)   app_path=$link ;; #(
 | 
				
			||||||
 | 
					      *)    app_path=$APP_HOME$link ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This is normally unused
 | 
				
			||||||
 | 
					# shellcheck disable=SC2034
 | 
				
			||||||
 | 
					APP_BASE_NAME=${0##*/}
 | 
				
			||||||
 | 
					APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use the maximum available, or set MAX_FD != -1 to use that value.
 | 
				
			||||||
 | 
					MAX_FD=maximum
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					warn () {
 | 
				
			||||||
 | 
					    echo "$*"
 | 
				
			||||||
 | 
					} >&2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					die () {
 | 
				
			||||||
 | 
					    echo
 | 
				
			||||||
 | 
					    echo "$*"
 | 
				
			||||||
 | 
					    echo
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					} >&2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# OS specific support (must be 'true' or 'false').
 | 
				
			||||||
 | 
					cygwin=false
 | 
				
			||||||
 | 
					msys=false
 | 
				
			||||||
 | 
					darwin=false
 | 
				
			||||||
 | 
					nonstop=false
 | 
				
			||||||
 | 
					case "$( uname )" in                #(
 | 
				
			||||||
 | 
					  CYGWIN* )         cygwin=true  ;; #(
 | 
				
			||||||
 | 
					  Darwin* )         darwin=true  ;; #(
 | 
				
			||||||
 | 
					  MSYS* | MINGW* )  msys=true    ;; #(
 | 
				
			||||||
 | 
					  NONSTOP* )        nonstop=true ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Determine the Java command to use to start the JVM.
 | 
				
			||||||
 | 
					if [ -n "$JAVA_HOME" ] ; then
 | 
				
			||||||
 | 
					    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
 | 
				
			||||||
 | 
					        # IBM's JDK on AIX uses strange locations for the executables
 | 
				
			||||||
 | 
					        JAVACMD=$JAVA_HOME/jre/sh/java
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        JAVACMD=$JAVA_HOME/bin/java
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    if [ ! -x "$JAVACMD" ] ; then
 | 
				
			||||||
 | 
					        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Please set the JAVA_HOME variable in your environment to match the
 | 
				
			||||||
 | 
					location of your Java installation."
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    JAVACMD=java
 | 
				
			||||||
 | 
					    if ! command -v java >/dev/null 2>&1
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Please set the JAVA_HOME variable in your environment to match the
 | 
				
			||||||
 | 
					location of your Java installation."
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Increase the maximum file descriptors if we can.
 | 
				
			||||||
 | 
					if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
 | 
				
			||||||
 | 
					    case $MAX_FD in #(
 | 
				
			||||||
 | 
					      max*)
 | 
				
			||||||
 | 
					        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
 | 
				
			||||||
 | 
					        # shellcheck disable=SC3045
 | 
				
			||||||
 | 
					        MAX_FD=$( ulimit -H -n ) ||
 | 
				
			||||||
 | 
					            warn "Could not query maximum file descriptor limit"
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					    case $MAX_FD in  #(
 | 
				
			||||||
 | 
					      '' | soft) :;; #(
 | 
				
			||||||
 | 
					      *)
 | 
				
			||||||
 | 
					        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
 | 
				
			||||||
 | 
					        # shellcheck disable=SC3045
 | 
				
			||||||
 | 
					        ulimit -n "$MAX_FD" ||
 | 
				
			||||||
 | 
					            warn "Could not set maximum file descriptor limit to $MAX_FD"
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Collect all arguments for the java command, stacking in reverse order:
 | 
				
			||||||
 | 
					#   * args from the command line
 | 
				
			||||||
 | 
					#   * the main class name
 | 
				
			||||||
 | 
					#   * -classpath
 | 
				
			||||||
 | 
					#   * -D...appname settings
 | 
				
			||||||
 | 
					#   * --module-path (only if needed)
 | 
				
			||||||
 | 
					#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# For Cygwin or MSYS, switch paths to Windows format before running java
 | 
				
			||||||
 | 
					if "$cygwin" || "$msys" ; then
 | 
				
			||||||
 | 
					    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
 | 
				
			||||||
 | 
					    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    JAVACMD=$( cygpath --unix "$JAVACMD" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Now convert the arguments - kludge to limit ourselves to /bin/sh
 | 
				
			||||||
 | 
					    for arg do
 | 
				
			||||||
 | 
					        if
 | 
				
			||||||
 | 
					            case $arg in                                #(
 | 
				
			||||||
 | 
					              -*)   false ;;                            # don't mess with options #(
 | 
				
			||||||
 | 
					              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath
 | 
				
			||||||
 | 
					                    [ -e "$t" ] ;;                      #(
 | 
				
			||||||
 | 
					              *)    false ;;
 | 
				
			||||||
 | 
					            esac
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            arg=$( cygpath --path --ignore --mixed "$arg" )
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        # Roll the args list around exactly as many times as the number of
 | 
				
			||||||
 | 
					        # args, so each arg winds up back in the position where it started, but
 | 
				
			||||||
 | 
					        # possibly modified.
 | 
				
			||||||
 | 
					        #
 | 
				
			||||||
 | 
					        # NB: a `for` loop captures its iteration list before it begins, so
 | 
				
			||||||
 | 
					        # changing the positional parameters here affects neither the number of
 | 
				
			||||||
 | 
					        # iterations, nor the values presented in `arg`.
 | 
				
			||||||
 | 
					        shift                   # remove old arg
 | 
				
			||||||
 | 
					        set -- "$@" "$arg"      # push replacement arg
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 | 
				
			||||||
 | 
					DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Collect all arguments for the java command;
 | 
				
			||||||
 | 
					#   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
 | 
				
			||||||
 | 
					#     shell script including quotes and variable substitutions, so put them in
 | 
				
			||||||
 | 
					#     double quotes to make sure that they get re-expanded; and
 | 
				
			||||||
 | 
					#   * put everything else in single quotes, so that it's not re-expanded.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -- \
 | 
				
			||||||
 | 
					        "-Dorg.gradle.appname=$APP_BASE_NAME" \
 | 
				
			||||||
 | 
					        -classpath "$CLASSPATH" \
 | 
				
			||||||
 | 
					        org.gradle.wrapper.GradleWrapperMain \
 | 
				
			||||||
 | 
					        "$@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Stop when "xargs" is not available.
 | 
				
			||||||
 | 
					if ! command -v xargs >/dev/null 2>&1
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    die "xargs is not available"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use "xargs" to parse quoted args.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# In Bash we could simply go:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
 | 
				
			||||||
 | 
					#   set -- "${ARGS[@]}" "$@"
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# but POSIX shell has neither arrays nor command substitution, so instead we
 | 
				
			||||||
 | 
					# post-process each arg (as a line of input to sed) to backslash-escape any
 | 
				
			||||||
 | 
					# character that might be a shell metacharacter, then use eval to reverse
 | 
				
			||||||
 | 
					# that process (while maintaining the separation between arguments), and wrap
 | 
				
			||||||
 | 
					# the whole thing up as a single "set" statement.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This will of course break if any of these variables contains a newline or
 | 
				
			||||||
 | 
					# an unmatched quote.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					eval "set -- $(
 | 
				
			||||||
 | 
					        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
 | 
				
			||||||
 | 
					        xargs -n1 |
 | 
				
			||||||
 | 
					        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
 | 
				
			||||||
 | 
					        tr '\n' ' '
 | 
				
			||||||
 | 
					    )" '"$@"'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec "$JAVACMD" "$@"
 | 
				
			||||||
							
								
								
									
										92
									
								
								android/gradlew.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								android/gradlew.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,92 @@
 | 
				
			|||||||
 | 
					@rem
 | 
				
			||||||
 | 
					@rem Copyright 2015 the original author or authors.
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					@rem Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					@rem you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					@rem You may obtain a copy of the License at
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					@rem      https://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					@rem Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					@rem distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					@rem See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					@rem limitations under the License.
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@if "%DEBUG%"=="" @echo off
 | 
				
			||||||
 | 
					@rem ##########################################################################
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					@rem  Gradle startup script for Windows
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					@rem ##########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@rem Set local scope for the variables with windows NT shell
 | 
				
			||||||
 | 
					if "%OS%"=="Windows_NT" setlocal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set DIRNAME=%~dp0
 | 
				
			||||||
 | 
					if "%DIRNAME%"=="" set DIRNAME=.
 | 
				
			||||||
 | 
					@rem This is normally unused
 | 
				
			||||||
 | 
					set APP_BASE_NAME=%~n0
 | 
				
			||||||
 | 
					set APP_HOME=%DIRNAME%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@rem Resolve any "." and ".." in APP_HOME to make it shorter.
 | 
				
			||||||
 | 
					for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 | 
				
			||||||
 | 
					set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@rem Find java.exe
 | 
				
			||||||
 | 
					if defined JAVA_HOME goto findJavaFromJavaHome
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set JAVA_EXE=java.exe
 | 
				
			||||||
 | 
					%JAVA_EXE% -version >NUL 2>&1
 | 
				
			||||||
 | 
					if %ERRORLEVEL% equ 0 goto execute
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo.
 | 
				
			||||||
 | 
					echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 | 
				
			||||||
 | 
					echo.
 | 
				
			||||||
 | 
					echo Please set the JAVA_HOME variable in your environment to match the
 | 
				
			||||||
 | 
					echo location of your Java installation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					goto fail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:findJavaFromJavaHome
 | 
				
			||||||
 | 
					set JAVA_HOME=%JAVA_HOME:"=%
 | 
				
			||||||
 | 
					set JAVA_EXE=%JAVA_HOME%/bin/java.exe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if exist "%JAVA_EXE%" goto execute
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo.
 | 
				
			||||||
 | 
					echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
 | 
				
			||||||
 | 
					echo.
 | 
				
			||||||
 | 
					echo Please set the JAVA_HOME variable in your environment to match the
 | 
				
			||||||
 | 
					echo location of your Java installation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					goto fail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:execute
 | 
				
			||||||
 | 
					@rem Setup the command line
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@rem Execute Gradle
 | 
				
			||||||
 | 
					"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:end
 | 
				
			||||||
 | 
					@rem End local scope for the variables with windows NT shell
 | 
				
			||||||
 | 
					if %ERRORLEVEL% equ 0 goto mainEnd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:fail
 | 
				
			||||||
 | 
					rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 | 
				
			||||||
 | 
					rem the _cmd.exe /c_ return code!
 | 
				
			||||||
 | 
					set EXIT_CODE=%ERRORLEVEL%
 | 
				
			||||||
 | 
					if %EXIT_CODE% equ 0 set EXIT_CODE=1
 | 
				
			||||||
 | 
					if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
 | 
				
			||||||
 | 
					exit /b %EXIT_CODE%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:mainEnd
 | 
				
			||||||
 | 
					if "%OS%"=="Windows_NT" endlocal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:omega
 | 
				
			||||||
							
								
								
									
										21
									
								
								android/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								android/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					# Add project specific ProGuard rules here.
 | 
				
			||||||
 | 
					# You can control the set of applied configuration files using the
 | 
				
			||||||
 | 
					# proguardFiles setting in build.gradle.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# For more details, see
 | 
				
			||||||
 | 
					#   http://developer.android.com/guide/developing/tools/proguard.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If your project uses WebView with JS, uncomment the following
 | 
				
			||||||
 | 
					# and specify the fully qualified class name to the JavaScript interface
 | 
				
			||||||
 | 
					# class:
 | 
				
			||||||
 | 
					#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
 | 
				
			||||||
 | 
					#   public *;
 | 
				
			||||||
 | 
					#}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Uncomment this to preserve the line number information for
 | 
				
			||||||
 | 
					# debugging stack traces.
 | 
				
			||||||
 | 
					#-keepattributes SourceFile,LineNumberTable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If you keep the line number information, uncomment this to
 | 
				
			||||||
 | 
					# hide the original source file name.
 | 
				
			||||||
 | 
					#-renamesourcefileattribute SourceFile
 | 
				
			||||||
							
								
								
									
										2
									
								
								android/settings.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								android/settings.gradle
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					include ':capacitor-android'
 | 
				
			||||||
 | 
					project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
 | 
				
			||||||
@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					package com.getcapacitor.android;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.Assert.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.content.Context;
 | 
				
			||||||
 | 
					import androidx.test.ext.junit.runners.AndroidJUnit4;
 | 
				
			||||||
 | 
					import androidx.test.platform.app.InstrumentationRegistry;
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					import org.junit.runner.RunWith;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Instrumented test, which will execute on an Android device.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RunWith(AndroidJUnit4.class)
 | 
				
			||||||
 | 
					public class ExampleInstrumentedTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void useAppContext() throws Exception {
 | 
				
			||||||
 | 
					        // Context of the app under test.
 | 
				
			||||||
 | 
					        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertEquals("com.getcapacitor.android", appContext.getPackageName());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								android/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								android/src/main/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					<manifest xmlns:android="http://schemas.android.com/apk/res/android">
 | 
				
			||||||
 | 
					</manifest>
 | 
				
			||||||
@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					package software.eskimo.capacitor.promocode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.util.Log;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class PromoCode {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String echo(String value) {
 | 
				
			||||||
 | 
					        Log.i("Echo", value);
 | 
				
			||||||
 | 
					        return value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					package software.eskimo.capacitor.promocode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.getcapacitor.JSObject;
 | 
				
			||||||
 | 
					import com.getcapacitor.Plugin;
 | 
				
			||||||
 | 
					import com.getcapacitor.PluginCall;
 | 
				
			||||||
 | 
					import com.getcapacitor.PluginMethod;
 | 
				
			||||||
 | 
					import com.getcapacitor.annotation.CapacitorPlugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@CapacitorPlugin(name = "PromoCode")
 | 
				
			||||||
 | 
					public class PromoCodePlugin extends Plugin {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private PromoCode implementation = new PromoCode();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PluginMethod
 | 
				
			||||||
 | 
					    public void echo(PluginCall call) {
 | 
				
			||||||
 | 
					        String value = call.getString("value");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        JSObject ret = new JSObject();
 | 
				
			||||||
 | 
					        ret.put("value", implementation.echo(value));
 | 
				
			||||||
 | 
					        call.resolve(ret);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										0
									
								
								android/src/main/res/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								android/src/main/res/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										18
									
								
								android/src/test/java/com/getcapacitor/ExampleUnitTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								android/src/test/java/com/getcapacitor/ExampleUnitTest.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					package com.getcapacitor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.Assert.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Example local unit test, which will execute on the development machine (host).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class ExampleUnitTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void addition_isCorrect() throws Exception {
 | 
				
			||||||
 | 
					        assertEquals(4, 2 + 2);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								example-app/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								example-app/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					.idea/
 | 
				
			||||||
 | 
					node_modules/
 | 
				
			||||||
 | 
					.vscode/
 | 
				
			||||||
 | 
					*.map
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					.sourcemaps
 | 
				
			||||||
 | 
					dist/
 | 
				
			||||||
							
								
								
									
										12
									
								
								example-app/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								example-app/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					## Created with Capacitor Create App
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This app was created using [`@capacitor/create-app`](https://github.com/ionic-team/create-capacitor-app),
 | 
				
			||||||
 | 
					and comes with a very minimal shell for building an app.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Running this example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To run the provided example, you can use `npm start` command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					npm start
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										10
									
								
								example-app/capacitor.config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								example-app/capacitor.config.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "appId": "com.example.plugin",
 | 
				
			||||||
 | 
					  "appName": "example-app",
 | 
				
			||||||
 | 
					  "webDir": "dist",
 | 
				
			||||||
 | 
					  "plugins": {
 | 
				
			||||||
 | 
					    "SplashScreen": {
 | 
				
			||||||
 | 
					      "launchAutoHide": false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										29
									
								
								example-app/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								example-app/package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "capacitor-app",
 | 
				
			||||||
 | 
					  "version": "1.0.0",
 | 
				
			||||||
 | 
					  "description": "An Amazing Capacitor App",
 | 
				
			||||||
 | 
					  "type": "module",
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "capacitor",
 | 
				
			||||||
 | 
					    "mobile"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "start": "vite",
 | 
				
			||||||
 | 
					    "build": "vite build",
 | 
				
			||||||
 | 
					    "preview": "vite preview"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@capacitor/core": "latest",
 | 
				
			||||||
 | 
					    "@capacitor/camera": "latest",
 | 
				
			||||||
 | 
					    "@capacitor/splash-screen": "latest",
 | 
				
			||||||
 | 
					    "capacitor-promocode": "file:..",
 | 
				
			||||||
 | 
					    "@capacitor/ios": "^6.0.0",
 | 
				
			||||||
 | 
					    "@capacitor/android": "^6.0.0"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@capacitor/cli": "latest",
 | 
				
			||||||
 | 
					    "vite": "^5.4.2"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "author": "",
 | 
				
			||||||
 | 
					  "license": "ISC"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								example-app/src/assets/icon/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								example-app/src/assets/icon/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 99 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								example-app/src/assets/imgs/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								example-app/src/assets/imgs/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										5
									
								
								example-app/src/css/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								example-app/src/css/style.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					html,
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
					  padding: 0;
 | 
				
			||||||
 | 
					  margin: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										32
									
								
								example-app/src/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								example-app/src/index.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					<!doctype html>
 | 
				
			||||||
 | 
					<html lang="en" dir="ltr">
 | 
				
			||||||
 | 
					  <head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8" />
 | 
				
			||||||
 | 
					    <title>Awesome Capacitor App</title>
 | 
				
			||||||
 | 
					    <meta
 | 
				
			||||||
 | 
					      name="viewport"
 | 
				
			||||||
 | 
					      content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
 | 
				
			||||||
 | 
					    />
 | 
				
			||||||
 | 
					    <meta name="format-detection" content="telephone=no" />
 | 
				
			||||||
 | 
					    <meta name="msapplication-tap-highlight" content="no" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <script
 | 
				
			||||||
 | 
					      type="module"
 | 
				
			||||||
 | 
					      src="https://unpkg.com/@ionic/pwa-elements@latest/dist/ionicpwaelements/ionicpwaelements.esm.js"
 | 
				
			||||||
 | 
					    ></script>
 | 
				
			||||||
 | 
					    <script
 | 
				
			||||||
 | 
					      nomodule
 | 
				
			||||||
 | 
					      src="https://unpkg.com/@ionic/pwa-elements@latest/dist/ionicpwaelements/ionicpwaelements.js"
 | 
				
			||||||
 | 
					    ></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <link rel="icon" type="image/x-icon" href="./assets/icon/favicon.ico" />
 | 
				
			||||||
 | 
					    <link rel="manifest" href="./manifest.json" />
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="./css/style.css" />
 | 
				
			||||||
 | 
					    <meta name="theme-color" content="#31d53d" />
 | 
				
			||||||
 | 
					  </head>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <capacitor-welcome></capacitor-welcome>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <script src="./js/capacitor-welcome.js" type="module"></script>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										142
									
								
								example-app/src/js/capacitor-welcome.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								example-app/src/js/capacitor-welcome.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,142 @@
 | 
				
			|||||||
 | 
					import { SplashScreen } from '@capacitor/splash-screen';
 | 
				
			||||||
 | 
					import { Camera } from '@capacitor/camera';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					window.customElements.define(
 | 
				
			||||||
 | 
					  'capacitor-welcome',
 | 
				
			||||||
 | 
					  class extends HTMLElement {
 | 
				
			||||||
 | 
					    constructor() {
 | 
				
			||||||
 | 
					      super();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      SplashScreen.hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      const root = this.attachShadow({ mode: 'open' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      root.innerHTML = `
 | 
				
			||||||
 | 
					    <style>
 | 
				
			||||||
 | 
					      :host {
 | 
				
			||||||
 | 
					        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
 | 
				
			||||||
 | 
					        display: block;
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 100%;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      h1, h2, h3, h4, h5 {
 | 
				
			||||||
 | 
					        text-transform: uppercase;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      .button {
 | 
				
			||||||
 | 
					        display: inline-block;
 | 
				
			||||||
 | 
					        padding: 10px;
 | 
				
			||||||
 | 
					        background-color: #73B5F6;
 | 
				
			||||||
 | 
					        color: #fff;
 | 
				
			||||||
 | 
					        font-size: 0.9em;
 | 
				
			||||||
 | 
					        border: 0;
 | 
				
			||||||
 | 
					        border-radius: 3px;
 | 
				
			||||||
 | 
					        text-decoration: none;
 | 
				
			||||||
 | 
					        cursor: pointer;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      main {
 | 
				
			||||||
 | 
					        padding: 15px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      main hr { height: 1px; background-color: #eee; border: 0; }
 | 
				
			||||||
 | 
					      main h1 {
 | 
				
			||||||
 | 
					        font-size: 1.4em;
 | 
				
			||||||
 | 
					        text-transform: uppercase;
 | 
				
			||||||
 | 
					        letter-spacing: 1px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      main h2 {
 | 
				
			||||||
 | 
					        font-size: 1.1em;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      main h3 {
 | 
				
			||||||
 | 
					        font-size: 0.9em;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      main p {
 | 
				
			||||||
 | 
					        color: #333;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      main pre {
 | 
				
			||||||
 | 
					        white-space: pre-line;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					    <div>
 | 
				
			||||||
 | 
					      <capacitor-welcome-titlebar>
 | 
				
			||||||
 | 
					        <h1>Capacitor</h1>
 | 
				
			||||||
 | 
					      </capacitor-welcome-titlebar>
 | 
				
			||||||
 | 
					      <main>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          Capacitor makes it easy to build powerful apps for the app stores, mobile web (Progressive Web Apps), and desktop, all
 | 
				
			||||||
 | 
					          with a single code base.
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					        <h2>Getting Started</h2>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          You'll probably need a UI framework to build a full-featured app. Might we recommend
 | 
				
			||||||
 | 
					          <a target="_blank" href="http://ionicframework.com/">Ionic</a>?
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          Visit <a href="https://capacitorjs.com">capacitorjs.com</a> for information
 | 
				
			||||||
 | 
					          on using native features, building plugins, and more.
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					        <a href="https://capacitorjs.com" target="_blank" class="button">Read more</a>
 | 
				
			||||||
 | 
					        <h2>Tiny Demo</h2>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          This demo shows how to call Capacitor plugins. Say cheese!
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          <button class="button" id="take-photo">Take Photo</button>
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					        <p>
 | 
				
			||||||
 | 
					          <img id="image" style="max-width: 100%">
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					      </main>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    `;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connectedCallback() {
 | 
				
			||||||
 | 
					      const self = this;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      self.shadowRoot.querySelector('#take-photo').addEventListener('click', async function (e) {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					          const photo = await Camera.getPhoto({
 | 
				
			||||||
 | 
					            resultType: 'uri',
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          const image = self.shadowRoot.querySelector('#image');
 | 
				
			||||||
 | 
					          if (!image) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          image.src = photo.webPath;
 | 
				
			||||||
 | 
					        } catch (e) {
 | 
				
			||||||
 | 
					          console.warn('User cancelled', e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					window.customElements.define(
 | 
				
			||||||
 | 
					  'capacitor-welcome-titlebar',
 | 
				
			||||||
 | 
					  class extends HTMLElement {
 | 
				
			||||||
 | 
					    constructor() {
 | 
				
			||||||
 | 
					      super();
 | 
				
			||||||
 | 
					      const root = this.attachShadow({ mode: 'open' });
 | 
				
			||||||
 | 
					      root.innerHTML = `
 | 
				
			||||||
 | 
					    <style>
 | 
				
			||||||
 | 
					      :host {
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					        display: block;
 | 
				
			||||||
 | 
					        padding: 15px 15px 15px 15px;
 | 
				
			||||||
 | 
					        text-align: center;
 | 
				
			||||||
 | 
					        background-color: #73B5F6;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      ::slotted(h1) {
 | 
				
			||||||
 | 
					        margin: 0;
 | 
				
			||||||
 | 
					        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
 | 
				
			||||||
 | 
					        font-size: 0.9em;
 | 
				
			||||||
 | 
					        font-weight: 600;
 | 
				
			||||||
 | 
					        color: #fff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					    <slot></slot>
 | 
				
			||||||
 | 
					    `;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
							
								
								
									
										13
									
								
								example-app/src/manifest.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								example-app/src/manifest.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "App",
 | 
				
			||||||
 | 
					  "short_name": "App",
 | 
				
			||||||
 | 
					  "start_url": "index.html",
 | 
				
			||||||
 | 
					  "display": "standalone",
 | 
				
			||||||
 | 
					  "icons": [{
 | 
				
			||||||
 | 
					    "src": "assets/imgs/logo.png",
 | 
				
			||||||
 | 
					    "sizes": "512x512",
 | 
				
			||||||
 | 
					    "type": "image/png"
 | 
				
			||||||
 | 
					  }],
 | 
				
			||||||
 | 
					  "background_color": "#31d53d",
 | 
				
			||||||
 | 
					  "theme_color": "#31d53d"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								example-app/vite.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								example-app/vite.config.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					import { defineConfig } from 'vite';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default defineConfig({
 | 
				
			||||||
 | 
					  root: './src',
 | 
				
			||||||
 | 
					  build: {
 | 
				
			||||||
 | 
					    outDir: '../dist',
 | 
				
			||||||
 | 
					    minify: false,
 | 
				
			||||||
 | 
					    emptyOutDir: true,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										8
									
								
								ios/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ios/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					.build
 | 
				
			||||||
 | 
					/Packages
 | 
				
			||||||
 | 
					xcuserdata/
 | 
				
			||||||
 | 
					DerivedData/
 | 
				
			||||||
 | 
					.swiftpm/configuration/registries.json
 | 
				
			||||||
 | 
					.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
 | 
				
			||||||
 | 
					.netrc
 | 
				
			||||||
							
								
								
									
										8
									
								
								ios/Sources/PromoCodePlugin/PromoCode.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ios/Sources/PromoCodePlugin/PromoCode.swift
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import Foundation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@objc public class PromoCode: NSObject {
 | 
				
			||||||
 | 
					    @objc public func echo(_ value: String) -> String {
 | 
				
			||||||
 | 
					        print(value)
 | 
				
			||||||
 | 
					        return value
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								ios/Sources/PromoCodePlugin/PromoCodePlugin.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								ios/Sources/PromoCodePlugin/PromoCodePlugin.swift
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					import Foundation
 | 
				
			||||||
 | 
					import Capacitor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Please read the Capacitor iOS Plugin Development Guide
 | 
				
			||||||
 | 
					 * here: https://capacitorjs.com/docs/plugins/ios
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@objc(PromoCodePlugin)
 | 
				
			||||||
 | 
					public class PromoCodePlugin: CAPPlugin, CAPBridgedPlugin {
 | 
				
			||||||
 | 
					    public let identifier = "PromoCodePlugin"
 | 
				
			||||||
 | 
					    public let jsName = "PromoCode"
 | 
				
			||||||
 | 
					    public let pluginMethods: [CAPPluginMethod] = [
 | 
				
			||||||
 | 
					        CAPPluginMethod(name: "echo", returnType: CAPPluginReturnPromise)
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					    private let implementation = PromoCode()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @objc func echo(_ call: CAPPluginCall) {
 | 
				
			||||||
 | 
					        let value = call.getString("value") ?? ""
 | 
				
			||||||
 | 
					        call.resolve([
 | 
				
			||||||
 | 
					            "value": implementation.echo(value)
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								ios/Tests/PromoCodePluginTests/PromoCodePluginTests.swift
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								ios/Tests/PromoCodePluginTests/PromoCodePluginTests.swift
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					import XCTest
 | 
				
			||||||
 | 
					@testable import PromoCodePlugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PromoCodeTests: XCTestCase {
 | 
				
			||||||
 | 
					    func testEcho() {
 | 
				
			||||||
 | 
					        // This is an example of a functional test case for a plugin.
 | 
				
			||||||
 | 
					        // Use XCTAssert and related functions to verify your tests produce the correct results.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let implementation = PromoCode()
 | 
				
			||||||
 | 
					        let value = "Hello, World!"
 | 
				
			||||||
 | 
					        let result = implementation.echo(value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        XCTAssertEqual(value, result)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										80
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "capacitor-promocode",
 | 
				
			||||||
 | 
					  "version": "0.0.1",
 | 
				
			||||||
 | 
					  "description": "no",
 | 
				
			||||||
 | 
					  "main": "dist/plugin.cjs.js",
 | 
				
			||||||
 | 
					  "module": "dist/esm/index.js",
 | 
				
			||||||
 | 
					  "types": "dist/esm/index.d.ts",
 | 
				
			||||||
 | 
					  "unpkg": "dist/plugin.js",
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "android/src/main/",
 | 
				
			||||||
 | 
					    "android/build.gradle",
 | 
				
			||||||
 | 
					    "dist/",
 | 
				
			||||||
 | 
					    "ios/Sources",
 | 
				
			||||||
 | 
					    "ios/Tests",
 | 
				
			||||||
 | 
					    "Package.swift",
 | 
				
			||||||
 | 
					    "CapacitorPromocode.podspec"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "author": "",
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "repository": {
 | 
				
			||||||
 | 
					    "type": "git",
 | 
				
			||||||
 | 
					    "url": "git+https://git.eskimo.dev/eskimo/capacitor-promocode.git"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "bugs": {
 | 
				
			||||||
 | 
					    "url": "https://git.eskimo.dev/eskimo/capacitor-promocode/issues"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "capacitor",
 | 
				
			||||||
 | 
					    "plugin",
 | 
				
			||||||
 | 
					    "native"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "verify": "npm run verify:ios && npm run verify:android && npm run verify:web",
 | 
				
			||||||
 | 
					    "verify:ios": "xcodebuild -scheme CapacitorPromocode -destination generic/platform=iOS",
 | 
				
			||||||
 | 
					    "verify:android": "cd android && ./gradlew clean build test && cd ..",
 | 
				
			||||||
 | 
					    "verify:web": "npm run build",
 | 
				
			||||||
 | 
					    "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
 | 
				
			||||||
 | 
					    "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format",
 | 
				
			||||||
 | 
					    "eslint": "eslint . --ext ts",
 | 
				
			||||||
 | 
					    "prettier": "prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java",
 | 
				
			||||||
 | 
					    "swiftlint": "node-swiftlint",
 | 
				
			||||||
 | 
					    "docgen": "docgen --api PromoCodePlugin --output-readme README.md --output-json dist/docs.json",
 | 
				
			||||||
 | 
					    "build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.js",
 | 
				
			||||||
 | 
					    "clean": "rimraf ./dist",
 | 
				
			||||||
 | 
					    "watch": "tsc --watch",
 | 
				
			||||||
 | 
					    "prepublishOnly": "npm run build"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@capacitor/android": "^6.0.0",
 | 
				
			||||||
 | 
					    "@capacitor/core": "^6.0.0",
 | 
				
			||||||
 | 
					    "@capacitor/docgen": "^0.2.2",
 | 
				
			||||||
 | 
					    "@capacitor/ios": "^6.0.0",
 | 
				
			||||||
 | 
					    "@ionic/eslint-config": "^0.4.0",
 | 
				
			||||||
 | 
					    "@ionic/prettier-config": "^4.0.0",
 | 
				
			||||||
 | 
					    "@ionic/swiftlint-config": "^1.1.2",
 | 
				
			||||||
 | 
					    "eslint": "^8.57.0",
 | 
				
			||||||
 | 
					    "prettier": "^3.3.3",
 | 
				
			||||||
 | 
					    "prettier-plugin-java": "^2.6.4",
 | 
				
			||||||
 | 
					    "rimraf": "^3.0.2",
 | 
				
			||||||
 | 
					    "rollup": "^2.32.0",
 | 
				
			||||||
 | 
					    "swiftlint": "^1.0.1",
 | 
				
			||||||
 | 
					    "typescript": "~4.1.5"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "peerDependencies": {
 | 
				
			||||||
 | 
					    "@capacitor/core": "^6.0.0"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "prettier": "@ionic/prettier-config",
 | 
				
			||||||
 | 
					  "swiftlint": "@ionic/swiftlint-config",
 | 
				
			||||||
 | 
					  "eslintConfig": {
 | 
				
			||||||
 | 
					    "extends": "@ionic/eslint-config/recommended"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "capacitor": {
 | 
				
			||||||
 | 
					    "ios": {
 | 
				
			||||||
 | 
					      "src": "ios"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "android": {
 | 
				
			||||||
 | 
					      "src": "android"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								rollup.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								rollup.config.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  input: 'dist/esm/index.js',
 | 
				
			||||||
 | 
					  output: [
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      file: 'dist/plugin.js',
 | 
				
			||||||
 | 
					      format: 'iife',
 | 
				
			||||||
 | 
					      name: 'capacitorPromoCode',
 | 
				
			||||||
 | 
					      globals: {
 | 
				
			||||||
 | 
					        '@capacitor/core': 'capacitorExports',
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      sourcemap: true,
 | 
				
			||||||
 | 
					      inlineDynamicImports: true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      file: 'dist/plugin.cjs.js',
 | 
				
			||||||
 | 
					      format: 'cjs',
 | 
				
			||||||
 | 
					      sourcemap: true,
 | 
				
			||||||
 | 
					      inlineDynamicImports: true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  external: ['@capacitor/core'],
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										3
									
								
								src/definitions.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/definitions.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					export interface PromoCodePlugin {
 | 
				
			||||||
 | 
					  echo(options: { value: string }): Promise<{ value: string }>;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					import { registerPlugin } from '@capacitor/core';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import type { PromoCodePlugin } from './definitions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const PromoCode = registerPlugin<PromoCodePlugin>('PromoCode', {
 | 
				
			||||||
 | 
					  web: () => import('./web').then((m) => new m.PromoCodeWeb()),
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export * from './definitions';
 | 
				
			||||||
 | 
					export { PromoCode };
 | 
				
			||||||
							
								
								
									
										10
									
								
								src/web.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/web.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					import { WebPlugin } from '@capacitor/core';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import type { PromoCodePlugin } from './definitions';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class PromoCodeWeb extends WebPlugin implements PromoCodePlugin {
 | 
				
			||||||
 | 
					  async echo(options: { value: string }): Promise<{ value: string }> {
 | 
				
			||||||
 | 
					    console.log('ECHO', options);
 | 
				
			||||||
 | 
					    return options;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "compilerOptions": {
 | 
				
			||||||
 | 
					    "allowUnreachableCode": false,
 | 
				
			||||||
 | 
					    "declaration": true,
 | 
				
			||||||
 | 
					    "esModuleInterop": true,
 | 
				
			||||||
 | 
					    "inlineSources": true,
 | 
				
			||||||
 | 
					    "lib": ["dom", "es2017"],
 | 
				
			||||||
 | 
					    "module": "esnext",
 | 
				
			||||||
 | 
					    "moduleResolution": "node",
 | 
				
			||||||
 | 
					    "noFallthroughCasesInSwitch": true,
 | 
				
			||||||
 | 
					    "noUnusedLocals": true,
 | 
				
			||||||
 | 
					    "noUnusedParameters": true,
 | 
				
			||||||
 | 
					    "outDir": "dist/esm",
 | 
				
			||||||
 | 
					    "pretty": true,
 | 
				
			||||||
 | 
					    "sourceMap": true,
 | 
				
			||||||
 | 
					    "strict": true,
 | 
				
			||||||
 | 
					    "target": "es2017"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "files": ["src/index.ts"]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user