From d246673a7a7ce56f05d412beaab17eec77567022 Mon Sep 17 00:00:00 2001 From: aagarwal1012 Date: Sun, 11 Aug 2019 16:46:42 +0530 Subject: [PATCH 1/6] conf: added CF configurations --- ImageSteganographyLibrary/build.gradle | 40 ++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/ImageSteganographyLibrary/build.gradle b/ImageSteganographyLibrary/build.gradle index 882190d..33cdba6 100644 --- a/ImageSteganographyLibrary/build.gradle +++ b/ImageSteganographyLibrary/build.gradle @@ -3,8 +3,6 @@ apply plugin: 'com.android.library' android { compileSdkVersion 26 - - defaultConfig { minSdkVersion 19 targetSdkVersion 26 @@ -13,8 +11,6 @@ android { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - - } buildTypes { @@ -22,10 +18,29 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + + checkTypes { + javaCompileOptions.annotationProcessorOptions. + classNames.add("org.checkerframework.checker.androidthreading.AndroidThreadingChecker") + // You can pass options like so: + // javaCompileOptions.annotationProcessorOptions.arguments.put("warns", "") + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } } +configurations { + checkerFrameworkAnnotatedJDK { + description = 'a copy of JDK classes with Checker Framework type qualifers inserted' + } +} + + configurations.all { resolutionStrategy { force 'com.android.support:support-annotations:23.1.1' @@ -33,10 +48,23 @@ configurations.all { } dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - + implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + + implementation files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker-qual.jar") + annotationProcessor files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker.jar") + checkerFrameworkAnnotatedJDK files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/jdk8.jar") +} + +gradle.projectsEvaluated { + tasks.withType(JavaCompile).all { compile -> + if (compile.name.contains("checkTypes")) { + compile.options.compilerArgs += [ + "-Xbootclasspath/p:${configurations.checkerFrameworkAnnotatedJDK.asPath}" + ] + } + } } From 377e824eeac5fe7536ab6742921541700f5c97e4 Mon Sep 17 00:00:00 2001 From: aagarwal1012 Date: Mon, 12 Aug 2019 01:05:03 +0530 Subject: [PATCH 2/6] conf: updated android annotations version --- ImageSteganographyLibrary/build.gradle | 2 +- app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ImageSteganographyLibrary/build.gradle b/ImageSteganographyLibrary/build.gradle index 33cdba6..ba3b639 100644 --- a/ImageSteganographyLibrary/build.gradle +++ b/ImageSteganographyLibrary/build.gradle @@ -43,7 +43,7 @@ configurations { configurations.all { resolutionStrategy { - force 'com.android.support:support-annotations:23.1.1' + force 'com.android.support:support-annotations:28.0.0' } } diff --git a/app/build.gradle b/app/build.gradle index 7bd537b..626bf5f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,7 +22,7 @@ android { configurations.all { resolutionStrategy { - force 'com.android.support:support-annotations:23.1.1' + force 'com.android.support:support-annotations:28.0.0' } } From 7f7f532810778787bd6aed6ac612427ace064084 Mon Sep 17 00:00:00 2001 From: aagarwal1012 Date: Tue, 13 Aug 2019 02:44:44 +0530 Subject: [PATCH 3/6] conf: updated build --- ImageSteganographyLibrary/build.gradle | 8 +------- app/build.gradle | 8 ++------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/ImageSteganographyLibrary/build.gradle b/ImageSteganographyLibrary/build.gradle index ba3b639..3d54671 100644 --- a/ImageSteganographyLibrary/build.gradle +++ b/ImageSteganographyLibrary/build.gradle @@ -40,13 +40,6 @@ configurations { } } - -configurations.all { - resolutionStrategy { - force 'com.android.support:support-annotations:28.0.0' - } -} - dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' @@ -54,6 +47,7 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + implementation 'com.android.support:support-annotations:28.0.0' implementation files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker-qual.jar") annotationProcessor files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker.jar") checkerFrameworkAnnotatedJDK files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/jdk8.jar") diff --git a/app/build.gradle b/app/build.gradle index 626bf5f..a23d07d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,12 +20,6 @@ android { } -configurations.all { - resolutionStrategy { - force 'com.android.support:support-annotations:28.0.0' - } -} - dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' @@ -34,4 +28,6 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation project(':ImageSteganographyLibrary') + + implementation 'com.android.support:support-annotations:28.0.0' } From 959b2d92e2ca837a954af8f1f834034efa3afaed Mon Sep 17 00:00:00 2001 From: aagarwal1012 Date: Tue, 13 Aug 2019 02:54:10 +0530 Subject: [PATCH 4/6] conf: build checker build --- ImageSteganographyLibrary/build.gradle | 3 ++- app/build.gradle | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ImageSteganographyLibrary/build.gradle b/ImageSteganographyLibrary/build.gradle index 3d54671..452013e 100644 --- a/ImageSteganographyLibrary/build.gradle +++ b/ImageSteganographyLibrary/build.gradle @@ -47,7 +47,8 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' - implementation 'com.android.support:support-annotations:28.0.0' + annotationProcessor 'com.android.support:support-annotations:28.0.0' + implementation files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker-qual.jar") annotationProcessor files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker.jar") checkerFrameworkAnnotatedJDK files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/jdk8.jar") diff --git a/app/build.gradle b/app/build.gradle index a23d07d..626bf5f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,6 +20,12 @@ android { } +configurations.all { + resolutionStrategy { + force 'com.android.support:support-annotations:28.0.0' + } +} + dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' @@ -28,6 +34,4 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation project(':ImageSteganographyLibrary') - - implementation 'com.android.support:support-annotations:28.0.0' } From a78c44e6d370c96531efe95488d22b7272b6b7ea Mon Sep 17 00:00:00 2001 From: Ayush Agarwal Date: Sun, 18 Aug 2019 19:12:08 +0530 Subject: [PATCH 5/6] conf: removed redundant dependencies from build --- ImageSteganographyLibrary/build.gradle | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/ImageSteganographyLibrary/build.gradle b/ImageSteganographyLibrary/build.gradle index 452013e..d2f9137 100644 --- a/ImageSteganographyLibrary/build.gradle +++ b/ImageSteganographyLibrary/build.gradle @@ -34,12 +34,6 @@ android { } -configurations { - checkerFrameworkAnnotatedJDK { - description = 'a copy of JDK classes with Checker Framework type qualifers inserted' - } -} - dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' @@ -49,17 +43,6 @@ dependencies { annotationProcessor 'com.android.support:support-annotations:28.0.0' - implementation files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker-qual.jar") - annotationProcessor files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/checker.jar") - checkerFrameworkAnnotatedJDK files("C:/Users/Ayush/ayush_files/gsoc/the-checker-framework/checker-framework/checker/dist/jdk8.jar") -} - -gradle.projectsEvaluated { - tasks.withType(JavaCompile).all { compile -> - if (compile.name.contains("checkTypes")) { - compile.options.compilerArgs += [ - "-Xbootclasspath/p:${configurations.checkerFrameworkAnnotatedJDK.asPath}" - ] - } - } + implementation files("E:/gsoc-2019/the-checker-framework/checker-framework/checker/dist/checker-qual.jar") + annotationProcessor files("E:/gsoc-2019/the-checker-framework/checker-framework/checker/dist/checker.jar") } From 777d7500dad7867c2f87925868f7d3c88dd4b2a4 Mon Sep 17 00:00:00 2001 From: Ayush Agarwal Date: Sun, 18 Aug 2019 19:43:13 +0530 Subject: [PATCH 6/6] feat: added android thread annotations --- .../Text/AsyncTaskCallback/TextDecodingCallback.java | 4 ++++ .../Text/AsyncTaskCallback/TextEncodingCallback.java | 4 ++++ .../imagesteganographylibrary/Text/EncodeDecode.java | 7 ++++++- .../Text/ImageSteganography.java | 7 +++++++ .../imagesteganographylibrary/Text/TextDecoding.java | 3 +++ .../imagesteganographylibrary/Text/TextEncoding.java | 2 ++ .../ayush/imagesteganographylibrary/Utils/Crypto.java | 3 +++ .../ayush/imagesteganographylibrary/Utils/Utility.java | 10 +++++++++- .../ayush/imagesteganographylibrary/Utils/Zipping.java | 5 ++++- 9 files changed, 42 insertions(+), 3 deletions(-) diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextDecodingCallback.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextDecodingCallback.java index f257565..c8b6779 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextDecodingCallback.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextDecodingCallback.java @@ -1,5 +1,7 @@ package com.ayush.imagesteganographylibrary.Text.AsyncTaskCallback; +import android.support.annotation.AnyThread; + import com.ayush.imagesteganographylibrary.Text.ImageSteganography; /** @@ -8,8 +10,10 @@ public interface TextDecodingCallback { + @AnyThread void onStartTextEncoding(); + @AnyThread void onCompleteTextEncoding(ImageSteganography result); } diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextEncodingCallback.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextEncodingCallback.java index 3d65d24..4bcc707 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextEncodingCallback.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/AsyncTaskCallback/TextEncodingCallback.java @@ -1,5 +1,7 @@ package com.ayush.imagesteganographylibrary.Text.AsyncTaskCallback; +import android.support.annotation.AnyThread; + import com.ayush.imagesteganographylibrary.Text.ImageSteganography; /** @@ -8,8 +10,10 @@ public interface TextEncodingCallback { + @AnyThread void onStartTextEncoding(); + @AnyThread void onCompleteTextEncoding(ImageSteganography result); } diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/EncodeDecode.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/EncodeDecode.java index 1ae5904..52fd0a3 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/EncodeDecode.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/EncodeDecode.java @@ -2,6 +2,7 @@ import android.graphics.Bitmap; import android.graphics.Color; +import android.support.annotation.WorkerThread; import android.util.Log; import com.ayush.imagesteganographylibrary.Utils.Utility; @@ -32,6 +33,7 @@ class EncodeDecode { * @parameter : progressHandler {A handler interface, for the progress bar} */ + @WorkerThread private static byte[] encodeMessage(int[] integer_pixel_array, int image_columns, int image_rows, MessageEncodingStatus messageEncodingStatus, ProgressHandler progressHandler) { @@ -105,6 +107,7 @@ private static byte[] encodeMessage(int[] integer_pixel_array, int image_columns * @parameter : encrypted_message {string} * @parameter : progressHandler {Progress bar handler} */ + @WorkerThread public static List encodeMessage(List splitted_images, String encrypted_message, ProgressHandler progressHandler) { @@ -191,6 +194,7 @@ public static List encodeMessage(List splitted_images, * @parameter : image_rows {Image height} * @parameter : messageDecodingStatus {object} */ + @WorkerThread private static void decodeMessage(byte[] byte_pixel_array, int image_columns, int image_rows, MessageDecodingStatus messageDecodingStatus) { @@ -278,7 +282,7 @@ private static void decodeMessage(byte[] byte_pixel_array, int image_columns, * @return : encrypted message {String} * @parameter : encodedImages {list of encode chunk images} */ - + @WorkerThread public static String decodeMessage(List encodedImages) { //Creating object @@ -309,6 +313,7 @@ public static String decodeMessage(List encodedImages) { * @return : The number of pixel {integer} * @parameter : message {Message to encode} */ + @WorkerThread public static int numberOfPixelForMessage(String message) { int result = -1; if (message != null) { diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/ImageSteganography.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/ImageSteganography.java index e8bfdcf..e1101ce 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/ImageSteganography.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/ImageSteganography.java @@ -1,6 +1,8 @@ package com.ayush.imagesteganographylibrary.Text; import android.graphics.Bitmap; +import android.support.annotation.AnyThread; +import android.support.annotation.WorkerThread; import android.util.Log; import com.ayush.imagesteganographylibrary.Utils.Crypto; @@ -36,6 +38,7 @@ public ImageSteganography() { this.encrypted_zip = new byte[0]; } + @WorkerThread public ImageSteganography(String message, String secret_key, Bitmap image) { this.message = message; @@ -58,6 +61,7 @@ public ImageSteganography(String message, String secret_key, Bitmap image) { } + @WorkerThread public ImageSteganography(String secret_key, Bitmap image) { this.secret_key = convertKeyTo128bit(secret_key); this.image = image; @@ -72,6 +76,7 @@ public ImageSteganography(String secret_key, Bitmap image) { this.encrypted_zip = new byte[0]; } + @WorkerThread private static String encryptMessage(String message, String secret_key) { Log.d(TAG, "Message : " + message); @@ -93,6 +98,7 @@ private static String encryptMessage(String message, String secret_key) { return encrypted_message; } + @WorkerThread public static String decryptMessage(String message, String secret_key) { String decrypted_message = ""; if (message != null) { @@ -110,6 +116,7 @@ public static String decryptMessage(String message, String secret_key) { return decrypted_message; } + @WorkerThread private static String convertKeyTo128bit(String secret_key) { StringBuilder result = new StringBuilder(secret_key); diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextDecoding.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextDecoding.java index 9dc0be4..07d0e38 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextDecoding.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextDecoding.java @@ -4,6 +4,8 @@ import android.app.ProgressDialog; import android.graphics.Bitmap; import android.os.AsyncTask; +import android.support.annotation.UiThread; +import android.support.annotation.WorkerThread; import android.util.Log; import com.ayush.imagesteganographylibrary.Text.AsyncTaskCallback.TextDecodingCallback; @@ -34,6 +36,7 @@ public TextDecoding(Activity activity, TextDecodingCallback textDecodingCallback } //setting progress dialog if wanted + @UiThread public void setProgressDialog(ProgressDialog progressDialog) { this.progressDialog = progressDialog; } diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextEncoding.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextEncoding.java index 2f32a7a..769c43f 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextEncoding.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Text/TextEncoding.java @@ -4,6 +4,8 @@ import android.app.ProgressDialog; import android.graphics.Bitmap; import android.os.AsyncTask; +import android.support.annotation.UiThread; +import android.support.annotation.WorkerThread; import android.util.Log; import com.ayush.imagesteganographylibrary.Text.AsyncTaskCallback.TextEncodingCallback; diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Crypto.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Crypto.java index ff9fe0c..b830a6f 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Crypto.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Crypto.java @@ -1,5 +1,6 @@ package com.ayush.imagesteganographylibrary.Utils; +import android.support.annotation.WorkerThread; import android.util.Log; import java.util.Arrays; @@ -14,6 +15,7 @@ public class Crypto { @parameter : Message {String}, Secret key {String} @return : Encrypted Message {String} */ + @WorkerThread public static String encryptMessage(String message, String secret_key) throws Exception { // Creating key and cipher @@ -42,6 +44,7 @@ public static String encryptMessage(String message, String secret_key) throws Ex @parameter : Encrypted Message {String}, Secret key {String} @return : Message {String} */ + @WorkerThread public static String decryptMessage(String encrypted_message, String secret_key) throws Exception { Log.d("Decrypt", "message: + " + encrypted_message); diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Utility.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Utility.java index d0016c5..c6b8f03 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Utility.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Utility.java @@ -3,6 +3,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; +import android.support.annotation.WorkerThread; import android.util.Log; import java.util.ArrayList; @@ -23,6 +24,7 @@ public class Utility { * @return : number of Square blocks {Integer} * @parameter : number of pixels {Integer} */ + @WorkerThread public static int squareBlockNeeded(int pixels) { int result; @@ -41,6 +43,7 @@ public static int squareBlockNeeded(int pixels) { * @return : List of splitted images {List} * @parameter : Image {Bitmap} */ + @WorkerThread public static List splitImage(Bitmap bitmap) { //For height and width of the small image chunks @@ -101,6 +104,7 @@ public static List splitImage(Bitmap bitmap) { * @return : Merged Image {Bitmap} * @parameter : List {Bitmap}, Original Height {Integer}, Original Width {Integer} */ + @WorkerThread public static Bitmap mergeImage(List images, int original_height, int original_width) { //Calculating number of Rows and columns of that matrix @@ -144,7 +148,7 @@ public static Bitmap mergeImage(List images, int original_height, int or * @return : Integer Array * @parameter : b {the byte array} */ - + @WorkerThread public static int[] byteArrayToIntArray(byte[] b) { Log.v("Size byte array", b.length + ""); @@ -176,6 +180,7 @@ public static int[] byteArrayToIntArray(byte[] b) { * @return : Integer * @parameter : b {the byte array} */ + @WorkerThread public static int byteArrayToInt(byte[] b) { return byteArrayToInt(b, 0); @@ -188,6 +193,7 @@ public static int byteArrayToInt(byte[] b) { * @return : Integer * @parameter : b {the byte array}, offset {integer} */ + @WorkerThread private static int byteArrayToInt(byte[] b, int offset) { int value = 0x00000000; @@ -209,6 +215,7 @@ private static int byteArrayToInt(byte[] b, int offset) { * @return : byte Array representing [rgb] values. * @parameter : Integer array representing [argb] values. */ + @WorkerThread public static byte[] convertArray(int[] array) { byte[] newarray = new byte[array.length * 3]; @@ -230,6 +237,7 @@ public static byte[] convertArray(int[] array) { * @return : true or false {boolean} * @parameter : String */ + @WorkerThread public static boolean isStringEmpty(String str) { boolean result = true; diff --git a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Zipping.java b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Zipping.java index fde500e..e09af7d 100644 --- a/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Zipping.java +++ b/ImageSteganographyLibrary/src/main/java/com/ayush/imagesteganographylibrary/Utils/Zipping.java @@ -1,5 +1,7 @@ package com.ayush.imagesteganographylibrary.Utils; +import android.support.annotation.WorkerThread; + import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -20,7 +22,7 @@ class Zipping { @parameter : Encrypted message {String} @return : Compressed byte array */ - + @WorkerThread public static byte[] compress(String string) throws Exception { ByteArrayOutputStream os = new ByteArrayOutputStream(string.length()); @@ -41,6 +43,7 @@ public static byte[] compress(String string) throws Exception { @parameter : byte array @return : Uncompressed encrypted_message {String} */ + @WorkerThread public static String decompress(byte[] compressed) throws Exception { ByteArrayInputStream bis = new ByteArrayInputStream(compressed);