diff --git a/release_notes.md b/CHANGELOG.md similarity index 95% rename from release_notes.md rename to CHANGELOG.md index cc8e775..fcb557e 100644 --- a/release_notes.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ card.io Android SDK change log and release notes ================================================ +5.3.1 +----- +* Fix issue where the camera was flipped when the app was backgrounded with card.io open [#118](https://github.com/card-io/card.io-Android-SDK/issues/118). +* Add proguard config to `aar` file [112](https://github.com/card-io/card.io-Android-SDK/issues/112), [#117](https://github.com/card-io/card.io-Android-SDK/issues/117). + 5.3.0 ----- * Add option for only numeric input for postal code, `EXTRA_RESTRICT_POSTAL_CODE_TO_NUMERIC_ONLY` [#100](https://github.com/card-io/card.io-Android-SDK/issues/100). @@ -154,6 +159,10 @@ We are continuing to work to improve expiry-scanning accuracy. -------------------- * Client side scanning! +3.0.0 +-------------------- +* Skipped + 2.4.3 - Aug 31, 2012 -------------------- * Correct layouts for high resolution cameras & xhdpi displays @@ -169,7 +178,7 @@ We are continuing to work to improve expiry-scanning accuracy. * Work around a crash in some Qualcomm camera drivers. (e.g. Samsung Galaxy II S running Android 4.0.4) * Improve efficiency of internal API. -2.4 - June 25, 2012 +2.4.0 - June 25, 2012 -------------------- * Charges are no longer supported. @@ -203,13 +212,21 @@ Note that if your app is not targeting x86 or MIPS, you can safely leave out the ************************* +2.3.1 +-------------------- +* Skipped + +2.3.0 +-------------------- +* Skipped + 2.2.1 - April 20, 2012 -------------------- * Make CardType.getLogoBitmap() a public method. * Repackage library jar to avoid proguard parsing problems in client apps. * Fix string display bug in the charge screens. -2.2 - April 11, 2012 +2.2.0 - April 11, 2012 -------------------- ************************* @@ -226,7 +243,7 @@ IMPORTANT: You should delete libs/armeabi*/libcardio.so from your project direct -------------------- * Fix NullPointerException on manual entry press in scan only mode. -2.1 - April 4, 2012 +2.1.0 - April 4, 2012 -------------------- * Made the charge screens more beautiful. * Add support for JCB cards. @@ -263,7 +280,7 @@ IMPORTANT: You should delete libs/armeabi*/libcardio.so from your project direct * Add connection status messages to logs. * Correctly report network type. Fixes problems associated with networks other than WiFi or mobile. -2.0 - January 18, 2012 +2.0.0 - January 18, 2012 ------------------- * (new!) Support processing charges * Rename package io.card.scan to io.card.payments @@ -271,7 +288,7 @@ IMPORTANT: You should delete libs/armeabi*/libcardio.so from your project direct * Updated HTTPS library for better performance while scanning. * Fixed crashes in Android 4.0/Ice Cream Sandwich. -1.0 - Wednesday, 8/24/2011 +1.0.0 - Wednesday, 8/24/2011 ------------------- * First release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ce39e40 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,5 @@ +# Contribute to the card.io Android SDK + +We love your contributions. If you're looking to submit changes to the sample app or documentation available within this repo, feel free to submit a PR. + +If you are looking to make a change to the card.io source, please take a look at [the open source repo](https://github.com/card-io/card.io-Android-source). diff --git a/LICENSE.md b/LICENSE.txt similarity index 100% rename from LICENSE.md rename to LICENSE.txt diff --git a/README.md b/README.md index bbc5046..59ab963 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ All releases follow [semantic versioning](http://semver.org/). The latest version is available via `mavenCentral()`. Just add the following dependency: ``` -compile 'io.card:android-sdk:5.3.0' +compile 'io.card:android-sdk:5.3.1' ``` You can receive updates about new versions via a few different channels: @@ -46,7 +46,7 @@ A manual entry fallback mode is provided for devices that do not meet these requ ##### If you use gradle, then add the following dependency from `mavenCentral()`: ``` -compile 'io.card:android-sdk:5.3.0' +compile 'io.card:android-sdk:5.3.1' ``` ##### If you use something other than gradle, then: @@ -80,15 +80,6 @@ compile 'io.card:android-sdk:5.3.0' ``` -##### Note: Before you build in release mode, make sure to adjust your proguard configuration by adding the following to `proguard.cnf`: - -``` --keep class io.card.** --keepclassmembers class io.card.** { - *; -} -``` - ### Sample code (See the SampleApp for an example) First, we'll assume that you're going to launch the scanner from a button, @@ -153,8 +144,19 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { ### Hints & Tips * [Javadocs](http://card-io.github.io/card.io-Android-SDK/) are provided in this repo for a complete reference. +* Note: the correct proguard file is automatically imported into your gradle project from the `aar` package. Anyone not using gradle will need to extract the proguard file and add it to their proguard config. * card.io errors and warnings will be logged to the "card.io" tag. * If upgrading the card.io SDK, first remove all card.io libraries so that you don't accidentally ship obsolete or unnecessary libraries. The bundled libraries may change. * Processing images can be memory intensive. * [Memory Analysis for Android Applications](http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html) provides some useful information about how to track and reduce your app's memory useage. * card.io recommends the use of [SSL pinning](http://blog.thoughtcrime.org/authenticity-is-broken-in-ssl-but-your-app-ha) when transmitting sensitive information to protect against man-in-the-middle attacks. + +Contributing +------------ + +Please read our [contributing guidelines](CONTRIBUTING.md) prior to submitting a Pull Request. + +License +------- + +Please refer to this repo's [license file](LICENSE.txt). diff --git a/SampleApp/build.gradle b/SampleApp/build.gradle index e0f290e..455f8ed 100644 --- a/SampleApp/build.gradle +++ b/SampleApp/build.gradle @@ -33,7 +33,7 @@ android { release { minifyEnabled true - proguardFile file('proguard.cfg') + proguardFile getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.myConfig } } @@ -52,7 +52,7 @@ dependencies { if (parent != null) { compile project(':card.io') } else { - compile 'io.card:android-sdk:5.3.0' + compile 'io.card:android-sdk:5.3.1' } } diff --git a/SampleApp/proguard.cfg b/SampleApp/proguard.cfg deleted file mode 100644 index 0c5d54d..0000000 --- a/SampleApp/proguard.cfg +++ /dev/null @@ -1,88 +0,0 @@ -# If your application, applet, servlet, library, etc., contains enumeration -# classes, you'll have to preserve some special methods. Enumerations were -# introduced in Java 5. The java compiler translates enumerations into classes -# with a special structure. Notably, the classes contain implementations of some -# static methods that the run-time environment accesses by introspection (Isn't -# that just grand? Introspection is the self-modifying code of a new -# generation). You have to specify these explicitly, to make sure they aren't -# removed or obfuscated: - --keepclassmembers enum * { - public static **[] values(); - public static ** valueOf(java.lang.String); -} - -# More complex applications, applets, servlets, libraries, etc., may contain -# classes that are serialized. Depending on the way in which they are used, they -# may require special attention - --keepclassmembers class * implements java.io.Serializable { - static final long serialVersionUID; - private static final java.io.ObjectStreamField[] serialPersistentFields; - private void writeObject(java.io.ObjectOutputStream); - private void readObject(java.io.ObjectInputStream); - java.lang.Object writeReplace(); - java.lang.Object readResolve(); -} - -# --- RECOMMENDED ANDROID CONFIG ------------------------------------------ - --keep public class * extends android.app.Activity --keep public class * extends android.app.Application --keep public class * extends android.app.Service --keep public class * extends android.content.BroadcastReceiver --keep public class * extends android.content.ContentProvider - --keep public class * extends android.view.View { - public (android.content.Context); - public (android.content.Context, android.util.AttributeSet); - public (android.content.Context, android.util.AttributeSet, int); - public void set*(...); -} - --keepclasseswithmembers class * { - public (android.content.Context, android.util.AttributeSet); -} - --keepclasseswithmembers class * { - public (android.content.Context, android.util.AttributeSet, int); -} - --keepclassmembers class * implements android.os.Parcelable { - static android.os.Parcelable$Creator CREATOR; -} - - -# ---- REQUIRED card.io CONFIG ---------------------------------------- -# card.io is a native lib, so anything crossing JNI must not be changed - -# Don't obfuscate DetectionInfo or public fields, since -# it is used by native methods --keep class io.card.payment.DetectionInfo --keepclassmembers class io.card.payment.DetectionInfo { - public *; -} - --keep class io.card.payment.CreditCard --keep class io.card.payment.CreditCard$1 --keepclassmembers class io.card.payment.CreditCard { - *; -} - --keepclassmembers class io.card.payment.CardScanner { - *** onEdgeUpdate(...); -} - -# Don't mess with classes with native methods - --keepclasseswithmembers class * { - native ; -} - --keepclasseswithmembernames class * { - native ; -} - --keep public class io.card.payment.* { - public protected *; -} \ No newline at end of file diff --git a/aars/card.io-5.3.0.aar b/aars/card.io-5.3.1.aar similarity index 98% rename from aars/card.io-5.3.0.aar rename to aars/card.io-5.3.1.aar index 14ecdfe..d98b7fa 100644 Binary files a/aars/card.io-5.3.0.aar and b/aars/card.io-5.3.1.aar differ