diff --git a/Preferencefragment/gradle/wrapper/gradle-wrapper.jar b/Preferencefragment/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 5838598..0000000
Binary files a/Preferencefragment/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/Preferencefragment/gradle/wrapper/gradle-wrapper.properties b/Preferencefragment/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index a114d4b..0000000
--- a/Preferencefragment/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Tue Feb 11 23:32:07 BRST 2014
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip
diff --git a/aFileChooser/build.gradle b/aFileChooser/build.gradle
deleted file mode 100644
index e6a16f3..0000000
--- a/aFileChooser/build.gradle
+++ /dev/null
@@ -1,21 +0,0 @@
-apply plugin: 'com.android.library'
-
-android {
- compileSdkVersion 19
- buildToolsVersion "19.1.0"
-
- defaultConfig {
- minSdkVersion 10
- targetSdkVersion 19
- }
-
- lintOptions {
- abortOnError false
- }
-}
-
-dependencies {
- compile 'com.android.support:appcompat-v7:19.0.0'
- compile 'com.android.support:support-v4:19.0.0'
-
-}
diff --git a/android_commons.gradle b/android_commons.gradle
new file mode 100644
index 0000000..fcb1a6b
--- /dev/null
+++ b/android_commons.gradle
@@ -0,0 +1,29 @@
+repositories {
+ mavenCentral()
+ jcenter()
+}
+
+
+android {
+ compileSdkVersion 21
+ buildToolsVersion '21.1.2'
+
+ defaultConfig {
+ minSdkVersion 10
+ targetSdkVersion 21
+ }
+
+ lintOptions {
+ abortOnError false
+ }
+
+
+ packagingOptions {
+ exclude 'META-INF/DEPENDENCIES'
+ exclude 'META-INF/NOTICE'
+ exclude 'META-INF/LICENSE'
+ exclude 'META-INF/LICENSE.txt'
+ exclude 'META-INF/NOTICE.txt'
+ exclude 'META-INF/ASL2.0'
+ }
+}
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..c0236f6
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1,16 @@
+#Android Studio
+.idea
+*.iml
+*.ipr
+*.iws
+classes
+gen-external-apklibs
+
+#Gradle
+.gradle
+local.properties
+build
+
+#Crashlytics
+/src/main/res/values/com_crashlytics_export_strings.xml
+/src/main/assets/crashlytics-build.properties
diff --git a/app/build.gradle b/app/build.gradle
index 6c7b3ba..7b1c4c5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,38 +1,20 @@
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
+apply from: '../android_commons.gradle'
-repositories {
- mavenCentral()
-}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName "com.doplgangr.secrecy"
}
}
-android {
- compileSdkVersion 21
- buildToolsVersion '21.1.2'
-
- defaultConfig {
- applicationId "com.doplgangr.secrecy"
- minSdkVersion 10
- targetSdkVersion 21
- versionCode 53
- versionName "0.5.3"
- }
- buildTypes {
- release {
- minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- lintOptions {
- abortOnError false
- }
-}
dependencies {
+ compile project(':libraries:aFileChooser')
+ compile project(':libraries:Preferencefragment')
+ compile project(':libraries:payme')
+
+
compile 'commons-io:commons-io:2.4'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
@@ -40,16 +22,23 @@ dependencies {
compile 'com.github.chrisbanes.photoview:library:1.2.3'
compile 'com.path:android-priority-jobqueue:1.1.2'
compile 'de.greenrobot:eventbus:2.2.0'
- compile project(':aFileChooser')
- compile project(':Preferencefragment')
- compile project(':payme:library')
compile 'com.google.protobuf:protobuf-java:2.6.0'
compile 'com.madgag.spongycastle:prov:1.51.0.0'
}
android {
- packagingOptions {
- exclude 'META-INF/LICENSE.txt'
- exclude 'META-INF/NOTICE.txt'
+ defaultConfig {
+ applicationId "com.doplgangr.secrecy"
+ versionCode 53
+ versionName "0.5.3"
}
+
+ buildTypes {
+ release {
+ minifyEnabled true
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+
}
diff --git a/libraries/Preferencefragment/.gitignore b/libraries/Preferencefragment/.gitignore
new file mode 100644
index 0000000..10ba002
--- /dev/null
+++ b/libraries/Preferencefragment/.gitignore
@@ -0,0 +1,12 @@
+#Android Studio
+.idea
+*.iml
+*.ipr
+*.iws
+classes
+gen-external-apklibs
+
+#Gradle
+.gradle
+local.properties
+build
\ No newline at end of file
diff --git a/Preferencefragment/AndroidManifest.xml b/libraries/Preferencefragment/AndroidManifest.xml
similarity index 100%
rename from Preferencefragment/AndroidManifest.xml
rename to libraries/Preferencefragment/AndroidManifest.xml
diff --git a/Preferencefragment/LICENSE b/libraries/Preferencefragment/LICENSE
similarity index 100%
rename from Preferencefragment/LICENSE
rename to libraries/Preferencefragment/LICENSE
diff --git a/Preferencefragment/README.md b/libraries/Preferencefragment/README.md
similarity index 100%
rename from Preferencefragment/README.md
rename to libraries/Preferencefragment/README.md
diff --git a/Preferencefragment/build.gradle b/libraries/Preferencefragment/build.gradle
similarity index 86%
rename from Preferencefragment/build.gradle
rename to libraries/Preferencefragment/build.gradle
index acbd0b2..85f01b6 100644
--- a/Preferencefragment/build.gradle
+++ b/libraries/Preferencefragment/build.gradle
@@ -11,18 +11,14 @@ buildscript {
apply plugin: 'android-library'
apply plugin: 'maven'
+apply from: '../../android_commons.gradle'
dependencies {
compile 'com.android.support:support-v4:21.0.3'
}
android {
- compileSdkVersion 19
- buildToolsVersion '19.1.0'
- defaultConfig {
- minSdkVersion 10
- targetSdkVersion 19
- }
+
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
diff --git a/Preferencefragment/gradle.properties b/libraries/Preferencefragment/gradle.properties
similarity index 100%
rename from Preferencefragment/gradle.properties
rename to libraries/Preferencefragment/gradle.properties
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.md5 b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.md5
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.md5
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.md5
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.sha1 b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.sha1
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.sha1
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.aar.sha1
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.md5 b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.md5
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.md5
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.md5
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.sha1 b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.sha1
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.sha1
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom.sha1
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.md5 b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.md5
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.md5
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.md5
diff --git a/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.sha1 b/libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.sha1
similarity index 100%
rename from Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.sha1
rename to libraries/Preferencefragment/maven-repository/com/android/support/support-v4-preferencefragment/maven-metadata.xml.sha1
diff --git a/Preferencefragment/proguard-rules.txt b/libraries/Preferencefragment/proguard-rules.txt
similarity index 100%
rename from Preferencefragment/proguard-rules.txt
rename to libraries/Preferencefragment/proguard-rules.txt
diff --git a/Preferencefragment/project.properties b/libraries/Preferencefragment/project.properties
similarity index 100%
rename from Preferencefragment/project.properties
rename to libraries/Preferencefragment/project.properties
diff --git a/Preferencefragment/res/layout/preference_list_fragment.xml b/libraries/Preferencefragment/res/layout/preference_list_fragment.xml
similarity index 100%
rename from Preferencefragment/res/layout/preference_list_fragment.xml
rename to libraries/Preferencefragment/res/layout/preference_list_fragment.xml
diff --git a/Preferencefragment/res/values-sw320dp/dimens.xml b/libraries/Preferencefragment/res/values-sw320dp/dimens.xml
similarity index 100%
rename from Preferencefragment/res/values-sw320dp/dimens.xml
rename to libraries/Preferencefragment/res/values-sw320dp/dimens.xml
diff --git a/Preferencefragment/res/values-w720dp/dimens.xml b/libraries/Preferencefragment/res/values-w720dp/dimens.xml
similarity index 100%
rename from Preferencefragment/res/values-w720dp/dimens.xml
rename to libraries/Preferencefragment/res/values-w720dp/dimens.xml
diff --git a/Preferencefragment/res/values/dimens.xml b/libraries/Preferencefragment/res/values/dimens.xml
similarity index 100%
rename from Preferencefragment/res/values/dimens.xml
rename to libraries/Preferencefragment/res/values/dimens.xml
diff --git a/Preferencefragment/res/values/strings.xml b/libraries/Preferencefragment/res/values/strings.xml
similarity index 100%
rename from Preferencefragment/res/values/strings.xml
rename to libraries/Preferencefragment/res/values/strings.xml
diff --git a/Preferencefragment/src/.readme b/libraries/Preferencefragment/src/.readme
similarity index 100%
rename from Preferencefragment/src/.readme
rename to libraries/Preferencefragment/src/.readme
diff --git a/Preferencefragment/src/android/support/v4/preference/PreferenceFragment.java b/libraries/Preferencefragment/src/android/support/v4/preference/PreferenceFragment.java
similarity index 100%
rename from Preferencefragment/src/android/support/v4/preference/PreferenceFragment.java
rename to libraries/Preferencefragment/src/android/support/v4/preference/PreferenceFragment.java
diff --git a/Preferencefragment/src/android/support/v4/preference/PreferenceManagerCompat.java b/libraries/Preferencefragment/src/android/support/v4/preference/PreferenceManagerCompat.java
similarity index 100%
rename from Preferencefragment/src/android/support/v4/preference/PreferenceManagerCompat.java
rename to libraries/Preferencefragment/src/android/support/v4/preference/PreferenceManagerCompat.java
diff --git a/libraries/aFileChooser/.gitignore b/libraries/aFileChooser/.gitignore
new file mode 100644
index 0000000..10ba002
--- /dev/null
+++ b/libraries/aFileChooser/.gitignore
@@ -0,0 +1,12 @@
+#Android Studio
+.idea
+*.iml
+*.ipr
+*.iws
+classes
+gen-external-apklibs
+
+#Gradle
+.gradle
+local.properties
+build
\ No newline at end of file
diff --git a/libraries/aFileChooser/build.gradle b/libraries/aFileChooser/build.gradle
new file mode 100644
index 0000000..37f1e4b
--- /dev/null
+++ b/libraries/aFileChooser/build.gradle
@@ -0,0 +1,8 @@
+apply plugin: 'com.android.library'
+apply from: '../../android_commons.gradle'
+
+dependencies {
+ compile 'com.android.support:appcompat-v7:19.0.0'
+ compile 'com.android.support:support-v4:19.0.0'
+
+}
diff --git a/aFileChooser/proguard-rules.txt b/libraries/aFileChooser/proguard-rules.txt
similarity index 100%
rename from aFileChooser/proguard-rules.txt
rename to libraries/aFileChooser/proguard-rules.txt
diff --git a/aFileChooser/src/main/AndroidManifest.xml b/libraries/aFileChooser/src/main/AndroidManifest.xml
similarity index 100%
rename from aFileChooser/src/main/AndroidManifest.xml
rename to libraries/aFileChooser/src/main/AndroidManifest.xml
diff --git a/aFileChooser/src/main/java/com/ianhanniballake/localstorage/LocalStorageProvider.java b/libraries/aFileChooser/src/main/java/com/ianhanniballake/localstorage/LocalStorageProvider.java
similarity index 100%
rename from aFileChooser/src/main/java/com/ianhanniballake/localstorage/LocalStorageProvider.java
rename to libraries/aFileChooser/src/main/java/com/ianhanniballake/localstorage/LocalStorageProvider.java
diff --git a/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileChooserActivity.java b/libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileChooserActivity.java
similarity index 100%
rename from aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileChooserActivity.java
rename to libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileChooserActivity.java
diff --git a/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListAdapter.java b/libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListAdapter.java
similarity index 100%
rename from aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListAdapter.java
rename to libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListAdapter.java
diff --git a/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListFragment.java b/libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListFragment.java
similarity index 100%
rename from aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListFragment.java
rename to libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileListFragment.java
diff --git a/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileLoader.java b/libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileLoader.java
similarity index 100%
rename from aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileLoader.java
rename to libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/FileLoader.java
diff --git a/aFileChooser/src/main/java/com/ipaulpro/afilechooser/utils/FileUtils.java b/libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/utils/FileUtils.java
similarity index 100%
rename from aFileChooser/src/main/java/com/ipaulpro/afilechooser/utils/FileUtils.java
rename to libraries/aFileChooser/src/main/java/com/ipaulpro/afilechooser/utils/FileUtils.java
diff --git a/aFileChooser/src/main/res/drawable-hdpi/ic_chooser.png b/libraries/aFileChooser/src/main/res/drawable-hdpi/ic_chooser.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-hdpi/ic_chooser.png
rename to libraries/aFileChooser/src/main/res/drawable-hdpi/ic_chooser.png
diff --git a/aFileChooser/src/main/res/drawable-hdpi/ic_file.png b/libraries/aFileChooser/src/main/res/drawable-hdpi/ic_file.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-hdpi/ic_file.png
rename to libraries/aFileChooser/src/main/res/drawable-hdpi/ic_file.png
diff --git a/aFileChooser/src/main/res/drawable-hdpi/ic_folder.png b/libraries/aFileChooser/src/main/res/drawable-hdpi/ic_folder.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-hdpi/ic_folder.png
rename to libraries/aFileChooser/src/main/res/drawable-hdpi/ic_folder.png
diff --git a/aFileChooser/src/main/res/drawable-hdpi/ic_provider.png b/libraries/aFileChooser/src/main/res/drawable-hdpi/ic_provider.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-hdpi/ic_provider.png
rename to libraries/aFileChooser/src/main/res/drawable-hdpi/ic_provider.png
diff --git a/aFileChooser/src/main/res/drawable-mdpi/ic_chooser.png b/libraries/aFileChooser/src/main/res/drawable-mdpi/ic_chooser.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-mdpi/ic_chooser.png
rename to libraries/aFileChooser/src/main/res/drawable-mdpi/ic_chooser.png
diff --git a/aFileChooser/src/main/res/drawable-mdpi/ic_file.png b/libraries/aFileChooser/src/main/res/drawable-mdpi/ic_file.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-mdpi/ic_file.png
rename to libraries/aFileChooser/src/main/res/drawable-mdpi/ic_file.png
diff --git a/aFileChooser/src/main/res/drawable-mdpi/ic_folder.png b/libraries/aFileChooser/src/main/res/drawable-mdpi/ic_folder.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-mdpi/ic_folder.png
rename to libraries/aFileChooser/src/main/res/drawable-mdpi/ic_folder.png
diff --git a/aFileChooser/src/main/res/drawable-mdpi/ic_provider.png b/libraries/aFileChooser/src/main/res/drawable-mdpi/ic_provider.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-mdpi/ic_provider.png
rename to libraries/aFileChooser/src/main/res/drawable-mdpi/ic_provider.png
diff --git a/aFileChooser/src/main/res/drawable-xhdpi/ic_chooser.png b/libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_chooser.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xhdpi/ic_chooser.png
rename to libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_chooser.png
diff --git a/aFileChooser/src/main/res/drawable-xhdpi/ic_file.png b/libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_file.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xhdpi/ic_file.png
rename to libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_file.png
diff --git a/aFileChooser/src/main/res/drawable-xhdpi/ic_folder.png b/libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_folder.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xhdpi/ic_folder.png
rename to libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_folder.png
diff --git a/aFileChooser/src/main/res/drawable-xhdpi/ic_provider.png b/libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_provider.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xhdpi/ic_provider.png
rename to libraries/aFileChooser/src/main/res/drawable-xhdpi/ic_provider.png
diff --git a/aFileChooser/src/main/res/drawable-xxhdpi/ic_chooser.png b/libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_chooser.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xxhdpi/ic_chooser.png
rename to libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_chooser.png
diff --git a/aFileChooser/src/main/res/drawable-xxhdpi/ic_file.png b/libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_file.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xxhdpi/ic_file.png
rename to libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_file.png
diff --git a/aFileChooser/src/main/res/drawable-xxhdpi/ic_folder.png b/libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_folder.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xxhdpi/ic_folder.png
rename to libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_folder.png
diff --git a/aFileChooser/src/main/res/drawable-xxhdpi/ic_provider.png b/libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_provider.png
similarity index 100%
rename from aFileChooser/src/main/res/drawable-xxhdpi/ic_provider.png
rename to libraries/aFileChooser/src/main/res/drawable-xxhdpi/ic_provider.png
diff --git a/aFileChooser/src/main/res/layout/file.xml b/libraries/aFileChooser/src/main/res/layout/file.xml
similarity index 100%
rename from aFileChooser/src/main/res/layout/file.xml
rename to libraries/aFileChooser/src/main/res/layout/file.xml
diff --git a/aFileChooser/src/main/res/values-ca/strings.xml b/libraries/aFileChooser/src/main/res/values-ca/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-ca/strings.xml
rename to libraries/aFileChooser/src/main/res/values-ca/strings.xml
diff --git a/aFileChooser/src/main/res/values-de/strings.xml b/libraries/aFileChooser/src/main/res/values-de/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-de/strings.xml
rename to libraries/aFileChooser/src/main/res/values-de/strings.xml
diff --git a/aFileChooser/src/main/res/values-es/strings.xml b/libraries/aFileChooser/src/main/res/values-es/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-es/strings.xml
rename to libraries/aFileChooser/src/main/res/values-es/strings.xml
diff --git a/aFileChooser/src/main/res/values-fr/strings.xml b/libraries/aFileChooser/src/main/res/values-fr/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-fr/strings.xml
rename to libraries/aFileChooser/src/main/res/values-fr/strings.xml
diff --git a/aFileChooser/src/main/res/values-ga/strings.xml b/libraries/aFileChooser/src/main/res/values-ga/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-ga/strings.xml
rename to libraries/aFileChooser/src/main/res/values-ga/strings.xml
diff --git a/aFileChooser/src/main/res/values-it/strings.xml b/libraries/aFileChooser/src/main/res/values-it/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-it/strings.xml
rename to libraries/aFileChooser/src/main/res/values-it/strings.xml
diff --git a/aFileChooser/src/main/res/values-ko/strings.xml b/libraries/aFileChooser/src/main/res/values-ko/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-ko/strings.xml
rename to libraries/aFileChooser/src/main/res/values-ko/strings.xml
diff --git a/aFileChooser/src/main/res/values-pl/strings.xml b/libraries/aFileChooser/src/main/res/values-pl/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-pl/strings.xml
rename to libraries/aFileChooser/src/main/res/values-pl/strings.xml
diff --git a/aFileChooser/src/main/res/values-pt-rBR/strings.xml b/libraries/aFileChooser/src/main/res/values-pt-rBR/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-pt-rBR/strings.xml
rename to libraries/aFileChooser/src/main/res/values-pt-rBR/strings.xml
diff --git a/aFileChooser/src/main/res/values-ru/strings.xml b/libraries/aFileChooser/src/main/res/values-ru/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-ru/strings.xml
rename to libraries/aFileChooser/src/main/res/values-ru/strings.xml
diff --git a/aFileChooser/src/main/res/values-v11/strings.xml b/libraries/aFileChooser/src/main/res/values-v11/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-v11/strings.xml
rename to libraries/aFileChooser/src/main/res/values-v11/strings.xml
diff --git a/aFileChooser/src/main/res/values-v19/bool.xml b/libraries/aFileChooser/src/main/res/values-v19/bool.xml
similarity index 100%
rename from aFileChooser/src/main/res/values-v19/bool.xml
rename to libraries/aFileChooser/src/main/res/values-v19/bool.xml
diff --git a/aFileChooser/src/main/res/values/bool.xml b/libraries/aFileChooser/src/main/res/values/bool.xml
similarity index 100%
rename from aFileChooser/src/main/res/values/bool.xml
rename to libraries/aFileChooser/src/main/res/values/bool.xml
diff --git a/aFileChooser/src/main/res/values/dimens.xml b/libraries/aFileChooser/src/main/res/values/dimens.xml
similarity index 100%
rename from aFileChooser/src/main/res/values/dimens.xml
rename to libraries/aFileChooser/src/main/res/values/dimens.xml
diff --git a/aFileChooser/src/main/res/values/strings.xml b/libraries/aFileChooser/src/main/res/values/strings.xml
similarity index 100%
rename from aFileChooser/src/main/res/values/strings.xml
rename to libraries/aFileChooser/src/main/res/values/strings.xml
diff --git a/aFileChooser/src/main/res/values/styles.xml b/libraries/aFileChooser/src/main/res/values/styles.xml
similarity index 100%
rename from aFileChooser/src/main/res/values/styles.xml
rename to libraries/aFileChooser/src/main/res/values/styles.xml
diff --git a/aFileChooser/src/main/res/xml/mimetypes.xml b/libraries/aFileChooser/src/main/res/xml/mimetypes.xml
similarity index 100%
rename from aFileChooser/src/main/res/xml/mimetypes.xml
rename to libraries/aFileChooser/src/main/res/xml/mimetypes.xml
diff --git a/libraries/payme/.gitignore b/libraries/payme/.gitignore
new file mode 100644
index 0000000..10ba002
--- /dev/null
+++ b/libraries/payme/.gitignore
@@ -0,0 +1,12 @@
+#Android Studio
+.idea
+*.iml
+*.ipr
+*.iws
+classes
+gen-external-apklibs
+
+#Gradle
+.gradle
+local.properties
+build
\ No newline at end of file
diff --git a/payme/.travis.yml b/libraries/payme/.travis.yml
similarity index 100%
rename from payme/.travis.yml
rename to libraries/payme/.travis.yml
diff --git a/payme/LICENSE b/libraries/payme/LICENSE
similarity index 100%
rename from payme/LICENSE
rename to libraries/payme/LICENSE
diff --git a/payme/NOTICE b/libraries/payme/NOTICE
similarity index 100%
rename from payme/NOTICE
rename to libraries/payme/NOTICE
diff --git a/payme/README.md b/libraries/payme/README.md
similarity index 100%
rename from payme/README.md
rename to libraries/payme/README.md
diff --git a/libraries/payme/build.gradle b/libraries/payme/build.gradle
new file mode 100644
index 0000000..0867f19
--- /dev/null
+++ b/libraries/payme/build.gradle
@@ -0,0 +1,4 @@
+apply plugin: 'com.android.library'
+apply from: '../../android_commons.gradle'
+
+
diff --git a/payme/library/lint.xml b/libraries/payme/lint.xml
similarity index 100%
rename from payme/library/lint.xml
rename to libraries/payme/lint.xml
diff --git a/payme/library/pom.xml b/libraries/payme/pom.xml
similarity index 100%
rename from payme/library/pom.xml
rename to libraries/payme/pom.xml
diff --git a/payme/library/proguard-rules.txt b/libraries/payme/proguard-rules.txt
similarity index 100%
rename from payme/library/proguard-rules.txt
rename to libraries/payme/proguard-rules.txt
diff --git a/payme/library/AndroidManifest.xml b/libraries/payme/src/main/AndroidManifest.xml
similarity index 100%
rename from payme/library/AndroidManifest.xml
rename to libraries/payme/src/main/AndroidManifest.xml
diff --git a/payme/library/src/main/java/com/android/vending/billing/IInAppBillingService.aidl b/libraries/payme/src/main/aidl/com/android/vending/billing/IInAppBillingService.aidl
similarity index 100%
rename from payme/library/src/main/java/com/android/vending/billing/IInAppBillingService.aidl
rename to libraries/payme/src/main/aidl/com/android/vending/billing/IInAppBillingService.aidl
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/ConsumeTask.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/ConsumeTask.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/ConsumeTask.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/ConsumeTask.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/IabConsts.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/IabConsts.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/IabConsts.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/IabConsts.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/IabException.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/IabException.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/IabException.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/IabException.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/IabHelper.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/IabHelper.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/IabHelper.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/IabHelper.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/IabResult.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/IabResult.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/IabResult.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/IabResult.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/PurchaseFlowState.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/PurchaseFlowState.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/PurchaseFlowState.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/PurchaseFlowState.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/QueryInventoryTask.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/QueryInventoryTask.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/QueryInventoryTask.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/QueryInventoryTask.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/Response.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/Response.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/Response.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/Response.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeFinishedListener.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeFinishedListener.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeFinishedListener.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeFinishedListener.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeMultiFinishedListener.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeMultiFinishedListener.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeMultiFinishedListener.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnConsumeMultiFinishedListener.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnIabPurchaseFinishedListener.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnIabPurchaseFinishedListener.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnIabPurchaseFinishedListener.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnIabPurchaseFinishedListener.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnIabSetupFinishedListener.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnIabSetupFinishedListener.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/listener/OnIabSetupFinishedListener.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/OnIabSetupFinishedListener.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/listener/QueryInventoryFinishedListener.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/QueryInventoryFinishedListener.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/listener/QueryInventoryFinishedListener.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/listener/QueryInventoryFinishedListener.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/model/Inventory.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/model/Inventory.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/model/Inventory.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/model/Inventory.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/model/ItemType.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/model/ItemType.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/model/ItemType.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/model/ItemType.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/model/Purchase.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/model/Purchase.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/model/Purchase.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/model/Purchase.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/model/SkuDetails.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/model/SkuDetails.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/model/SkuDetails.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/model/SkuDetails.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/model/TestSkus.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/model/TestSkus.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/model/TestSkus.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/model/TestSkus.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/package-info.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/package-info.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/package-info.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/package-info.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/validator/DefaultSignatureValidator.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/validator/DefaultSignatureValidator.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/validator/DefaultSignatureValidator.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/validator/DefaultSignatureValidator.java
diff --git a/payme/library/src/main/java/com/github/jberkel/pay/me/validator/SignatureValidator.java b/libraries/payme/src/main/java/com/github/jberkel/pay/me/validator/SignatureValidator.java
similarity index 100%
rename from payme/library/src/main/java/com/github/jberkel/pay/me/validator/SignatureValidator.java
rename to libraries/payme/src/main/java/com/github/jberkel/pay/me/validator/SignatureValidator.java
diff --git a/payme/library/res/values/strings.xml b/libraries/payme/src/main/res/values/strings.xml
similarity index 100%
rename from payme/library/res/values/strings.xml
rename to libraries/payme/src/main/res/values/strings.xml
diff --git a/payme/.gitignore b/payme/.gitignore
deleted file mode 100644
index 4f8b078..0000000
--- a/payme/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-.idea
-*.iml
-target
-bin
-gen
-out
-local.properties
-build.xml
-gen-external-apklibs/
diff --git a/payme/example/AndroidManifest.xml b/payme/example/AndroidManifest.xml
deleted file mode 100644
index c16de8f..0000000
--- a/payme/example/AndroidManifest.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/payme/example/pom.xml b/payme/example/pom.xml
deleted file mode 100644
index d983017..0000000
--- a/payme/example/pom.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
- 4.0.0
-
-
- com.github.jberkel.pay.me
- parent
- 0.0.5-SNAPSHOT
-
-
- example
- apk
- pay-me example
-
-
-
-
- com.simpligility.maven.plugins
- android-maven-plugin
-
- AndroidManifest.xml
- res
-
-
-
-
-
-
-
- ${project.groupId}
- library
- ${project.version}
- apklib
- compile
-
-
-
- com.google.android
- android
-
-
-
diff --git a/payme/example/res/drawable-hdpi/ic_action_search.png b/payme/example/res/drawable-hdpi/ic_action_search.png
deleted file mode 100644
index 67de12d..0000000
Binary files a/payme/example/res/drawable-hdpi/ic_action_search.png and /dev/null differ
diff --git a/payme/example/res/drawable-hdpi/ic_launcher.png b/payme/example/res/drawable-hdpi/ic_launcher.png
deleted file mode 100644
index e328a3b..0000000
Binary files a/payme/example/res/drawable-hdpi/ic_launcher.png and /dev/null differ
diff --git a/payme/example/res/drawable-ldpi/ic_launcher.png b/payme/example/res/drawable-ldpi/ic_launcher.png
deleted file mode 100644
index 1b4a215..0000000
Binary files a/payme/example/res/drawable-ldpi/ic_launcher.png and /dev/null differ
diff --git a/payme/example/res/drawable-mdpi/ic_action_search.png b/payme/example/res/drawable-mdpi/ic_action_search.png
deleted file mode 100644
index 134d549..0000000
Binary files a/payme/example/res/drawable-mdpi/ic_action_search.png and /dev/null differ
diff --git a/payme/example/res/drawable-mdpi/ic_launcher.png b/payme/example/res/drawable-mdpi/ic_launcher.png
deleted file mode 100644
index 7d2e504..0000000
Binary files a/payme/example/res/drawable-mdpi/ic_launcher.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/buy_gas.png b/payme/example/res/drawable-xhdpi/buy_gas.png
deleted file mode 100644
index 52bcf93..0000000
Binary files a/payme/example/res/drawable-xhdpi/buy_gas.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/drive.png b/payme/example/res/drawable-xhdpi/drive.png
deleted file mode 100644
index 7acfcb8..0000000
Binary files a/payme/example/res/drawable-xhdpi/drive.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/free.png b/payme/example/res/drawable-xhdpi/free.png
deleted file mode 100644
index 8251293..0000000
Binary files a/payme/example/res/drawable-xhdpi/free.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/gas0.png b/payme/example/res/drawable-xhdpi/gas0.png
deleted file mode 100644
index 3324768..0000000
Binary files a/payme/example/res/drawable-xhdpi/gas0.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/gas1.png b/payme/example/res/drawable-xhdpi/gas1.png
deleted file mode 100644
index abcfc9a..0000000
Binary files a/payme/example/res/drawable-xhdpi/gas1.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/gas2.png b/payme/example/res/drawable-xhdpi/gas2.png
deleted file mode 100644
index 72900ad..0000000
Binary files a/payme/example/res/drawable-xhdpi/gas2.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/gas3.png b/payme/example/res/drawable-xhdpi/gas3.png
deleted file mode 100644
index eb56378..0000000
Binary files a/payme/example/res/drawable-xhdpi/gas3.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/gas4.png b/payme/example/res/drawable-xhdpi/gas4.png
deleted file mode 100644
index 10dd539..0000000
Binary files a/payme/example/res/drawable-xhdpi/gas4.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/gas_inf.png b/payme/example/res/drawable-xhdpi/gas_inf.png
deleted file mode 100644
index 4eb0248..0000000
Binary files a/payme/example/res/drawable-xhdpi/gas_inf.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/ic_action_search.png b/payme/example/res/drawable-xhdpi/ic_action_search.png
deleted file mode 100644
index d699c6b..0000000
Binary files a/payme/example/res/drawable-xhdpi/ic_action_search.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/ic_launcher.png b/payme/example/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100644
index 6b37e8d..0000000
Binary files a/payme/example/res/drawable-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/infinite_gas.png b/payme/example/res/drawable-xhdpi/infinite_gas.png
deleted file mode 100644
index 5a5d883..0000000
Binary files a/payme/example/res/drawable-xhdpi/infinite_gas.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/premium.png b/payme/example/res/drawable-xhdpi/premium.png
deleted file mode 100644
index d099bd4..0000000
Binary files a/payme/example/res/drawable-xhdpi/premium.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/title.png b/payme/example/res/drawable-xhdpi/title.png
deleted file mode 100644
index 60f13c5..0000000
Binary files a/payme/example/res/drawable-xhdpi/title.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/upgrade_app.png b/payme/example/res/drawable-xhdpi/upgrade_app.png
deleted file mode 100644
index dec7fd2..0000000
Binary files a/payme/example/res/drawable-xhdpi/upgrade_app.png and /dev/null differ
diff --git a/payme/example/res/drawable-xhdpi/wait.png b/payme/example/res/drawable-xhdpi/wait.png
deleted file mode 100644
index 3a27953..0000000
Binary files a/payme/example/res/drawable-xhdpi/wait.png and /dev/null differ
diff --git a/payme/example/res/layout/activity_main.xml b/payme/example/res/layout/activity_main.xml
deleted file mode 100644
index 6651188..0000000
--- a/payme/example/res/layout/activity_main.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/payme/example/res/values/strings.xml b/payme/example/res/values/strings.xml
deleted file mode 100644
index 1db93b9..0000000
--- a/payme/example/res/values/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
- TrivialDrive
- Hello world!
- Settings
- TrivialDrive
-
diff --git a/payme/example/res/values/styles.xml b/payme/example/res/values/styles.xml
deleted file mode 100644
index 6676b8a..0000000
--- a/payme/example/res/values/styles.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/payme/example/src/main/java/com/github/jberkel/pay/me/example/MainActivity.java b/payme/example/src/main/java/com/github/jberkel/pay/me/example/MainActivity.java
deleted file mode 100644
index e1d8a38..0000000
--- a/payme/example/src/main/java/com/github/jberkel/pay/me/example/MainActivity.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/* Copyright (c) 2012 Google Inc.
- *
- * 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
- *
- * http://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.
- */
-
-package com.github.jberkel.pay.me.example;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.ImageView;
-import com.github.jberkel.pay.me.IabHelper;
-import com.github.jberkel.pay.me.IabResult;
-import com.github.jberkel.pay.me.listener.OnConsumeFinishedListener;
-import com.github.jberkel.pay.me.listener.OnIabPurchaseFinishedListener;
-import com.github.jberkel.pay.me.listener.OnIabSetupFinishedListener;
-import com.github.jberkel.pay.me.listener.QueryInventoryFinishedListener;
-import com.github.jberkel.pay.me.model.Inventory;
-import com.github.jberkel.pay.me.model.ItemType;
-import com.github.jberkel.pay.me.model.Purchase;
-import com.github.jberkel.pay.me.validator.SignatureValidator;
-
-
-/**
- * Example game using in-app billing version 3.
- *
- * Before attempting to run this sample, please read the README file. It
- * contains important information on how to set up this project.
- *
- * All the game-specific logic is implemented here in MainActivity, while the
- * general-purpose boilerplate that can be reused in any app is provided in the
- * classes in the util/ subdirectory. When implementing your own application,
- * you can copy over util/*.java to make use of those utility classes.
- *
- * This game is a simple "driving" game where the player can buy gas
- * and drive. The car has a tank which stores gas. When the player purchases
- * gas, the tank fills up (1/4 tank at a time). When the player drives, the gas
- * in the tank diminishes (also 1/4 tank at a time).
- *
- * The user can also purchase a "premium upgrade" that gives them a red car
- * instead of the standard blue one (exciting!).
- *
- * The user can also purchase a subscription ("infinite gas") that allows them
- * to drive without using up any gas while that subscription is active.
- *
- * It's important to note the consumption mechanics for each item.
- *
- * PREMIUM: the item is purchased and NEVER consumed. So, after the original
- * purchase, the player will always own that item. The application knows to
- * display the red car instead of the blue one because it queries whether
- * the premium "item" is owned or not.
- *
- * INFINITE GAS: this is a subscription, and subscriptions can't be consumed.
- *
- * GAS: when gas is purchased, the "gas" item is then owned. We consume it
- * when we apply that item's effects to our app's world, which to us means
- * filling up 1/4 of the tank. This happens immediately after purchase!
- * It's at this point (and not when the user drives) that the "gas"
- * item is CONSUMED. Consumption should always happen when your game
- * world was safely updated to apply the effect of the purchase. So,
- * in an example scenario:
- *
- * BEFORE: tank at 1/2
- * ON PURCHASE: tank at 1/2, "gas" item is owned
- * IMMEDIATELY: "gas" is consumed, tank goes to 3/4
- * AFTER: tank at 3/4, "gas" item NOT owned any more
- *
- * Another important point to notice is that it may so happen that
- * the application crashed (or anything else happened) after the user
- * purchased the "gas" item, but before it was consumed. That's why,
- * on startup, we check if we own the "gas" item, and, if so,
- * we have to apply its effects to our world and consume it. This
- * is also very important!
- *
- * @author Bruno Oliveira (Google)
- */
-public class MainActivity extends Activity {
- // Debug tag, for logging
- static final String TAG = "TrivialDrive";
-
- // Does the user have the premium upgrade?
- boolean mIsPremium = false;
-
- // Does the user have an active subscription to the infinite gas plan?
- boolean mSubscribedToInfiniteGas = false;
-
- // SKUs for our products: the premium upgrade (non-consumable) and gas (consumable)
- static final String SKU_PREMIUM = "premium";
- static final String SKU_GAS = "gas";
-
- // SKU for our subscription (infinite gas)
- static final String SKU_INFINITE_GAS = "infinite_gas";
-
- // (arbitrary) request code for the purchase flow
- static final int RC_REQUEST = 10001;
-
- // Graphics for the gas gauge
- static int[] TANK_RES_IDS = { R.drawable.gas0, R.drawable.gas1, R.drawable.gas2,
- R.drawable.gas3, R.drawable.gas4 };
-
- // How many units (1/4 tank is our unit) fill in the tank.
- static final int TANK_MAX = 4;
-
- // Current amount of gas in tank, in units
- int mTank;
-
- // The helper object
- IabHelper mHelper;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- // load game data
- loadData();
-
- /* base64EncodedPublicKey should be YOUR APPLICATION'S PUBLIC KEY
- * (that you got from the Google Play developer console). This is not your
- * developer public key, it's the *app-specific* public key.
- *
- * Instead of just storing the entire literal string here embedded in the
- * program, construct the key at runtime from pieces or
- * use bit manipulation (for example, XOR with some other string) to hide
- * the actual key. The key itself is not secret information, but we don't
- * want to make it easy for an attacker to replace the public key with one
- * of their own and then fake messages from the server.
- */
- final String KEY = "application-app-key";
-
- // Create the helper, passing it our context and the public key to verify signatures with
- Log.d(TAG, "Creating IAB helper.");
-
- if (!KEY.equals("application-app-key")) {
- mHelper = new IabHelper(this, KEY);
- } else {
- // this is just for testing purposes - don't use in your own app!
- mHelper = new IabHelper(this, new SignatureValidator() {
- @Override
- public boolean validate(String signedData, String signature) {
- return true;
- }
- });
- }
-
- // enable debug logging (for a production application, you should set this to false).
- mHelper.enableDebugLogging(true);
-
- // Start setup. This is asynchronous and the specified listener
- // will be called once setup completes.
- Log.d(TAG, "Starting setup.");
- mHelper.startSetup(new OnIabSetupFinishedListener() {
- public void onIabSetupFinished(IabResult result) {
- Log.d(TAG, "Setup finished.");
-
- if (!result.isSuccess()) {
- // Oh noes, there was a problem.
- complain("Problem setting up in-app billing: " + result);
- return;
- }
-
- // Have we been disposed of in the meantime? If so, quit.
- if (mHelper == null) return;
-
- // IAB is fully set up. Now, let's get an inventory of stuff we own.
- Log.d(TAG, "Setup successful. Querying inventory.");
- mHelper.queryInventoryAsync(mGotInventoryListener);
- }
- });
- }
-
- // Listener that's called when we finish querying the items and subscriptions we own
- QueryInventoryFinishedListener mGotInventoryListener = new QueryInventoryFinishedListener() {
- public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
- Log.d(TAG, "Query inventory finished.");
-
- // Have we been disposed of in the meantime? If so, quit.
- if (mHelper == null) return;
-
- // Is it a failure?
- if (result.isFailure()) {
- complain("Failed to query inventory: " + result);
- return;
- }
-
- Log.d(TAG, "Query inventory was successful.");
-
- /*
- * Check for items we own. Notice that for each purchase, we check
- * the developer payload to see if it's correct! See
- * verifyDeveloperPayload().
- */
-
- // Do we have the premium upgrade?
- Purchase premiumPurchase = inventory.getPurchase(SKU_PREMIUM);
- mIsPremium = (premiumPurchase != null && verifyDeveloperPayload(premiumPurchase));
- Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
-
- // Do we have the infinite gas plan?
- Purchase infiniteGasPurchase = inventory.getPurchase(SKU_INFINITE_GAS);
- mSubscribedToInfiniteGas = (infiniteGasPurchase != null &&
- verifyDeveloperPayload(infiniteGasPurchase));
- Log.d(TAG, "User " + (mSubscribedToInfiniteGas ? "HAS" : "DOES NOT HAVE")
- + " infinite gas subscription.");
- if (mSubscribedToInfiniteGas) mTank = TANK_MAX;
-
- // Check for gas delivery -- if we own gas, we should fill up the tank immediately
- Purchase gasPurchase = inventory.getPurchase(SKU_GAS);
- if (gasPurchase != null && verifyDeveloperPayload(gasPurchase)) {
- Log.d(TAG, "We have gas. Consuming it.");
- mHelper.consumeAsync(inventory.getPurchase(SKU_GAS), mConsumeFinishedListener);
- return;
- }
-
- updateUi();
- setWaitScreen(false);
- Log.d(TAG, "Initial inventory query finished; enabling main UI.");
- }
- };
-
- // User clicked the "Buy Gas" button
- public void onBuyGasButtonClicked(View arg0) {
- Log.d(TAG, "Buy gas button clicked.");
-
- if (mSubscribedToInfiniteGas) {
- complain("No need! You're subscribed to infinite gas. Isn't that awesome?");
- return;
- }
-
- if (mTank >= TANK_MAX) {
- complain("Your tank is full. Drive around a bit!");
- return;
- }
-
- // launch the gas purchase UI flow.
- // We will be notified of completion via mPurchaseFinishedListener
- setWaitScreen(true);
- Log.d(TAG, "Launching purchase flow for gas.");
-
- /* TODO: for security, generate your payload here for verification. See the comments on
- * verifyDeveloperPayload() for more info. Since this is a SAMPLE, we just use
- * an empty string, but on a production app you should carefully generate this. */
- String payload = "";
-
- mHelper.launchPurchaseFlow(this, SKU_GAS, ItemType.INAPP, RC_REQUEST,
- mPurchaseFinishedListener, payload);
- }
-
- // User clicked the "Upgrade to Premium" button.
- public void onUpgradeAppButtonClicked(View arg0) {
- Log.d(TAG, "Upgrade button clicked; launching purchase flow for upgrade.");
- setWaitScreen(true);
-
- /* TODO: for security, generate your payload here for verification. See the comments on
- * verifyDeveloperPayload() for more info. Since this is a SAMPLE, we just use
- * an empty string, but on a production app you should carefully generate this. */
- String payload = "";
-
- mHelper.launchPurchaseFlow(this, SKU_PREMIUM, ItemType.INAPP, RC_REQUEST,
- mPurchaseFinishedListener, payload);
- }
-
- // "Subscribe to infinite gas" button clicked. Explain to user, then start purchase
- // flow for subscription.
- public void onInfiniteGasButtonClicked(View arg0) {
- if (!mHelper.subscriptionsSupported()) {
- complain("Subscriptions not supported on your device yet. Sorry!");
- return;
- }
-
- /* TODO: for security, generate your payload here for verification. See the comments on
- * verifyDeveloperPayload() for more info. Since this is a SAMPLE, we just use
- * an empty string, but on a production app you should carefully generate this. */
- String payload = "";
-
- setWaitScreen(true);
- Log.d(TAG, "Launching purchase flow for infinite gas subscription.");
- mHelper.launchPurchaseFlow(this,
- SKU_INFINITE_GAS, ItemType.SUBS,
- RC_REQUEST, mPurchaseFinishedListener, payload);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);
- if (mHelper == null) return;
-
- // Pass on the activity result to the helper for handling
- if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
- // not handled, so handle it ourselves (here's where you'd
- // perform any handling of activity results not related to in-app
- // billing...
- super.onActivityResult(requestCode, resultCode, data);
- }
- else {
- Log.d(TAG, "onActivityResult handled by IABUtil.");
- }
- }
-
- /** Verifies the developer payload of a purchase. */
- boolean verifyDeveloperPayload(Purchase p) {
- String payload = p.getDeveloperPayload();
-
- /*
- * TODO: verify that the developer payload of the purchase is correct. It will be
- * the same one that you sent when initiating the purchase.
- *
- * WARNING: Locally generating a random string when starting a purchase and
- * verifying it here might seem like a good approach, but this will fail in the
- * case where the user purchases an item on one device and then uses your app on
- * a different device, because on the other device you will not have access to the
- * random string you originally generated.
- *
- * So a good developer payload has these characteristics:
- *
- * 1. If two different users purchase an item, the payload is different between them,
- * so that one user's purchase can't be replayed to another user.
- *
- * 2. The payload must be such that you can verify it even when the app wasn't the
- * one who initiated the purchase flow (so that items purchased by the user on
- * one device work on other devices owned by the user).
- *
- * Using your own server to store and verify developer payloads across app
- * installations is recommended.
- */
-
- return true;
- }
-
- // Callback for when a purchase is finished
- OnIabPurchaseFinishedListener mPurchaseFinishedListener = new OnIabPurchaseFinishedListener() {
- public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
- Log.d(TAG, "Purchase finished: " + result + ", purchase: " + purchase);
-
- // if we were disposed of in the meantime, quit.
- if (mHelper == null) return;
-
- if (result.isFailure()) {
- complain("Error purchasing: " + result);
- setWaitScreen(false);
- return;
- }
- if (!verifyDeveloperPayload(purchase)) {
- complain("Error purchasing. Authenticity verification failed.");
- setWaitScreen(false);
- return;
- }
-
- Log.d(TAG, "Purchase successful.");
-
- if (purchase.getSku().equals(SKU_GAS)) {
- // bought 1/4 tank of gas. So consume it.
- Log.d(TAG, "Purchase is gas. Starting gas consumption.");
- mHelper.consumeAsync(purchase, mConsumeFinishedListener);
- }
- else if (purchase.getSku().equals(SKU_PREMIUM)) {
- // bought the premium upgrade!
- Log.d(TAG, "Purchase is premium upgrade. Congratulating user.");
- alert("Thank you for upgrading to premium!");
- mIsPremium = true;
- updateUi();
- setWaitScreen(false);
- }
- else if (purchase.getSku().equals(SKU_INFINITE_GAS)) {
- // bought the infinite gas subscription
- Log.d(TAG, "Infinite gas subscription purchased.");
- alert("Thank you for subscribing to infinite gas!");
- mSubscribedToInfiniteGas = true;
- mTank = TANK_MAX;
- updateUi();
- setWaitScreen(false);
- }
- }
- };
-
- // Called when consumption is complete
- OnConsumeFinishedListener mConsumeFinishedListener = new OnConsumeFinishedListener() {
- public void onConsumeFinished(Purchase purchase, IabResult result) {
- Log.d(TAG, "Consumption finished. Purchase: " + purchase + ", result: " + result);
-
- // if we were disposed of in the meantime, quit.
- if (mHelper == null) return;
-
- // We know this is the "gas" sku because it's the only one we consume,
- // so we don't check which sku was consumed. If you have more than one
- // sku, you probably should check...
- if (result.isSuccess()) {
- // successfully consumed, so we apply the effects of the item in our
- // game world's logic, which in our case means filling the gas tank a bit
- Log.d(TAG, "Consumption successful. Provisioning.");
- mTank = mTank == TANK_MAX ? TANK_MAX : mTank + 1;
- saveData();
- alert("You filled 1/4 tank. Your tank is now " + String.valueOf(mTank) + "/4 full!");
- }
- else {
- complain("Error while consuming: " + result);
- }
- updateUi();
- setWaitScreen(false);
- Log.d(TAG, "End consumption flow.");
- }
- };
-
- // Drive button clicked. Burn gas!
- public void onDriveButtonClicked(View arg0) {
- Log.d(TAG, "Drive button clicked.");
- if (!mSubscribedToInfiniteGas && mTank <= 0) alert("Oh, no! You are out of gas! Try buying some!");
- else {
- if (!mSubscribedToInfiniteGas) --mTank;
- saveData();
- alert("Vroooom, you drove a few miles.");
- updateUi();
- Log.d(TAG, "Vrooom. Tank is now " + mTank);
- }
- }
-
- // We're being destroyed. It's important to dispose of the helper here!
- @Override
- public void onDestroy() {
- super.onDestroy();
-
- // very important:
- Log.d(TAG, "Destroying helper.");
- if (mHelper != null) {
- mHelper.dispose();
- mHelper = null;
- }
- }
-
- // updates UI to reflect model
- public void updateUi() {
- // update the car color to reflect premium status or lack thereof
- ((ImageView)findViewById(R.id.free_or_premium)).setImageResource(mIsPremium ? R.drawable.premium : R.drawable.free);
-
- // "Upgrade" button is only visible if the user is not premium
- findViewById(R.id.upgrade_button).setVisibility(mIsPremium ? View.GONE : View.VISIBLE);
-
- // "Get infinite gas" button is only visible if the user is not subscribed yet
- findViewById(R.id.infinite_gas_button).setVisibility(mSubscribedToInfiniteGas ?
- View.GONE : View.VISIBLE);
-
- // update gas gauge to reflect tank status
- if (mSubscribedToInfiniteGas) {
- ((ImageView)findViewById(R.id.gas_gauge)).setImageResource(R.drawable.gas_inf);
- }
- else {
- int index = mTank >= TANK_RES_IDS.length ? TANK_RES_IDS.length - 1 : mTank;
- ((ImageView)findViewById(R.id.gas_gauge)).setImageResource(TANK_RES_IDS[index]);
- }
- }
-
- // Enables or disables the "please wait" screen.
- void setWaitScreen(boolean set) {
- findViewById(R.id.screen_main).setVisibility(set ? View.GONE : View.VISIBLE);
- findViewById(R.id.screen_wait).setVisibility(set ? View.VISIBLE : View.GONE);
- }
-
- void complain(String message) {
- Log.e(TAG, "**** TrivialDrive Error: " + message);
- alert("Error: " + message);
- }
-
- void alert(String message) {
- AlertDialog.Builder bld = new AlertDialog.Builder(this);
- bld.setMessage(message);
- bld.setNeutralButton("OK", null);
- Log.d(TAG, "Showing alert dialog: " + message);
- bld.create().show();
- }
-
- void saveData() {
-
- /*
- * WARNING: on a real application, we recommend you save data in a secure way to
- * prevent tampering. For simplicity in this sample, we simply store the data using a
- * SharedPreferences.
- */
-
- SharedPreferences.Editor spe = getPreferences(MODE_PRIVATE).edit();
- spe.putInt("tank", mTank);
- spe.commit();
- Log.d(TAG, "Saved data: tank = " + String.valueOf(mTank));
- }
-
- void loadData() {
- SharedPreferences sp = getPreferences(MODE_PRIVATE);
- mTank = sp.getInt("tank", 2);
- Log.d(TAG, "Loaded data: tank = " + String.valueOf(mTank));
- }
-}
-
diff --git a/payme/library/build.gradle b/payme/library/build.gradle
deleted file mode 100644
index f5f2284..0000000
--- a/payme/library/build.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
-apply plugin: 'com.android.library'
-android {
- compileSdkVersion 21
- buildToolsVersion '21.1.2'
-
- defaultConfig {
- minSdkVersion 10
- targetSdkVersion 21
- }
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src']
- resources.srcDirs = ['src']
- aidl.srcDirs = ['src']
- renderscript.srcDirs = ['src']
- res.srcDirs = ['res']
- assets.srcDirs = ['assets']
- }
- }
-}
-
-android {
- lintOptions {
- abortOnError false
- }
-}
-
-dependencies {
-}
diff --git a/payme/pom.xml b/payme/pom.xml
deleted file mode 100644
index 5ada190..0000000
--- a/payme/pom.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
- 4.0.0
- com.github.jberkel.pay.me
- parent
- 0.0.5-SNAPSHOT
- pom
- pay-me parent
- pay-me parent
-
-
-
-
-
- com.simpligility.maven.plugins
- android-maven-plugin
- 4.0.0
-
-
- 21
-
-
- true
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.1
-
- 1.6
- 1.6
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.1
-
- ${javadoc.opts}
-
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 2.5.1
-
- @{project.version}
-
-
-
-
-
-
- library
- example
-
-
-
-
- bintray
- https://api.bintray.com/maven/jberkel/maven/pay-me
-
-
- true
- snapshot-repo
- zegoggles Snapshots
- http://zegoggl.es:8081/nexus/content/repositories/snapshots/
-
-
-
-
-
- sonatype-snapshots
- sonatype snapshots
- https://oss.sonatype.org/content/repositories/snapshots/
-
-
-
-
- UTF-8
- UTF-8
-
-
-
-
-
- com.google.android
- android
- 4.1.1.4
- provided
-
-
-
-
-
-
- travis
- https://travis-ci.org/jberkel/pay-me
-
-
-
-
- The Apache Software License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
- repo
-
-
-
-
- https://github.com/jberkel/pay-me
- scm:git:https://github.com/jberkel/pay-me.git
- scm:git:git@github.com:jberkel/pay-me.git
- HEAD
-
-
-
- doclint-java8-disable
-
- [1.8,)
-
-
- -Xdoclint:none
-
-
-
-
diff --git a/settings.gradle b/settings.gradle
index 8469b17..1817530 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,9 @@
-include ':app', ':payme:library'
-include ':aFileChooser'
-include ':Preferencefragment'
\ No newline at end of file
+/* Apps*/
+include ':app'
+
+/*Libraries*/
+include':libraries:payme'
+include ':libraries:aFileChooser'
+include ':libraries:Preferencefragment'
+
+/*Modules*/
\ No newline at end of file