├── WhatsAppStickers ├── app │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── refs.xml │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ ├── dimens.xml │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── drawable │ │ │ │ │ ├── sticker.jpg │ │ │ │ │ ├── ripple.xml │ │ │ │ │ ├── selector_bottom_menu_item.xml │ │ │ │ │ ├── ic_outline_add_24px.xml │ │ │ │ │ ├── btn_green.xml │ │ │ │ │ ├── ic_outline_save_24px.xml │ │ │ │ │ ├── ic_round_explore_24px.xml │ │ │ │ │ ├── ic_round_home_24px.xml │ │ │ │ │ ├── ic_round_create_24px.xml │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── drawable-xxxhdpi │ │ │ │ │ ├── done.png │ │ │ │ │ ├── intro_pencil.png │ │ │ │ │ ├── intro_magic_wand.png │ │ │ │ │ ├── intro_magnifier.png │ │ │ │ │ ├── sticker_3rdparty_wa.png │ │ │ │ │ ├── sticker_3rdparty_add.png │ │ │ │ │ ├── sticker_3rdparty_added.png │ │ │ │ │ ├── sticker_3rdparty_email.png │ │ │ │ │ ├── sticker_3rdparty_info.png │ │ │ │ │ ├── sticker_3rdparty_web.png │ │ │ │ │ ├── sticker_3rdparty_privacy.png │ │ │ │ │ ├── magnifier_selector.xml │ │ │ │ │ ├── pencil_selector.xml │ │ │ │ │ ├── magic_selector.xml │ │ │ │ │ ├── redo_selector.xml │ │ │ │ │ ├── undo_selector.xml │ │ │ │ │ ├── ic_round_check_24px.xml │ │ │ │ │ ├── ic_round_undo_24px.xml │ │ │ │ │ ├── ic_round_redo_24px.xml │ │ │ │ │ ├── ic_round_undo_inactive_24px.xml │ │ │ │ │ ├── ic_round_redo_inactive_24px.xml │ │ │ │ │ ├── ic_pencil.xml │ │ │ │ │ ├── ic_magic_wand.xml │ │ │ │ │ ├── ic_zoom.xml │ │ │ │ │ └── ic_zoom_inactive.xml │ │ │ │ ├── font │ │ │ │ │ ├── googlesans_bold.ttf │ │ │ │ │ ├── googlesans_italic.ttf │ │ │ │ │ ├── googlesans_medium.ttf │ │ │ │ │ ├── googlesans_regular.ttf │ │ │ │ │ ├── googlesans_bolditalic.ttf │ │ │ │ │ ├── googlesans_mediumitalic.ttf │ │ │ │ │ └── google_sans.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_round.png │ │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ ├── sticker_error.png │ │ │ │ │ ├── btn_green_normal.9.png │ │ │ │ │ ├── btn_green_pressed.9.png │ │ │ │ │ ├── sticker_3rdparty_add.png │ │ │ │ │ ├── sticker_3rdparty_wa.png │ │ │ │ │ ├── sticker_3rdparty_web.png │ │ │ │ │ ├── sticker_3rdparty_added.png │ │ │ │ │ ├── sticker_3rdparty_email.png │ │ │ │ │ ├── sticker_3rdparty_info.png │ │ │ │ │ └── sticker_3rdparty_privacy.png │ │ │ │ ├── drawable-hdpi │ │ │ │ │ ├── sticker_3rdparty_add.png │ │ │ │ │ ├── sticker_3rdparty_wa.png │ │ │ │ │ ├── sticker_3rdparty_web.png │ │ │ │ │ ├── sticker_3rdparty_added.png │ │ │ │ │ ├── sticker_3rdparty_email.png │ │ │ │ │ ├── sticker_3rdparty_info.png │ │ │ │ │ ├── sticker_3rdparty_privacy.png │ │ │ │ │ ├── ic_pencil_inactive.xml │ │ │ │ │ └── ic_magic_wand_inactive.xml │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ ├── sticker_3rdparty_wa.png │ │ │ │ │ ├── sticker_3rdparty_add.png │ │ │ │ │ ├── sticker_3rdparty_info.png │ │ │ │ │ ├── sticker_3rdparty_web.png │ │ │ │ │ ├── sticker_3rdparty_added.png │ │ │ │ │ ├── sticker_3rdparty_email.png │ │ │ │ │ └── sticker_3rdparty_privacy.png │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── menu │ │ │ │ │ ├── menu_new_sticker_pack.xml │ │ │ │ │ ├── sticker_menu.xml │ │ │ │ │ ├── toolbar.xml │ │ │ │ │ ├── sticker_option_menu.xml │ │ │ │ │ └── bottom_menu.xml │ │ │ │ ├── values-v23 │ │ │ │ │ └── styles.xml │ │ │ │ ├── layout │ │ │ │ │ ├── sticker_pack_list_item_image.xml │ │ │ │ │ ├── fragment_explore.xml │ │ │ │ │ ├── activity_entry.xml │ │ │ │ │ ├── activity_sticker_pack_list.xml │ │ │ │ │ ├── activity_add_to_sticker_pack.xml │ │ │ │ │ ├── sticker_image.xml │ │ │ │ │ ├── sticker_created_item.xml │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ ├── activity_sticker_pack_info.xml │ │ │ │ │ ├── activity_request_permission.xml │ │ │ │ │ ├── fragment_create.xml │ │ │ │ │ ├── sticker_packs_list_item.xml │ │ │ │ │ ├── fragment_my_stickers.xml │ │ │ │ │ ├── sticker_item_of_list.xml │ │ │ │ │ ├── activity_new_sticker_pack.xml │ │ │ │ │ ├── activity_photo_edit.xml │ │ │ │ │ └── sticker_pack_details.xml │ │ │ │ └── drawable-v24 │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── unusualapps │ │ │ │ │ └── whatsappstickers │ │ │ │ │ ├── constants │ │ │ │ │ └── Constants.java │ │ │ │ │ ├── whatsapp_api │ │ │ │ │ ├── StickerPreviewViewHolder.java │ │ │ │ │ ├── BottomFadingRecyclerView.java │ │ │ │ │ ├── StickerPackListItemViewHolder.java │ │ │ │ │ ├── Sticker.java │ │ │ │ │ ├── BaseActivity.java │ │ │ │ │ ├── StickerPreviewAdapter.java │ │ │ │ │ ├── WhitelistCheck.java │ │ │ │ │ ├── StickerPackInfoActivity.java │ │ │ │ │ ├── StickerPack.java │ │ │ │ │ └── AddStickerPackActivity.java │ │ │ │ │ ├── activities │ │ │ │ │ ├── AddToStickerPackActivity.java │ │ │ │ │ ├── ExploreFragment.java │ │ │ │ │ ├── RequestPermissionActivity.java │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MyStickersFragment.java │ │ │ │ │ ├── utils │ │ │ │ │ ├── RequestPermissionsHelper.java │ │ │ │ │ ├── ImageUtils.java │ │ │ │ │ ├── FileUtils.java │ │ │ │ │ └── StickerPacksManager.java │ │ │ │ │ ├── identities │ │ │ │ │ └── StickerPacksContainer.java │ │ │ │ │ └── backgroundRemover │ │ │ │ │ ├── SaveDrawingTask.java │ │ │ │ │ ├── BitmapUtility.java │ │ │ │ │ ├── IntroActivity.java │ │ │ │ │ └── CutOut.java │ │ │ └── AndroidManifest.xml │ │ ├── test │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── unusualapps │ │ │ │ └── whatsappstickers │ │ │ │ └── ExampleUnitTest.kt │ │ └── androidTest │ │ │ └── java │ │ │ └── com │ │ │ └── unusualapps │ │ │ └── whatsappstickers │ │ │ └── ExampleInstrumentedTest.kt │ ├── proguard-rules.pro │ └── build.gradle ├── settings.gradle ├── .idea │ ├── caches │ │ └── gradle_models.ser │ ├── vcs.xml │ ├── misc.xml │ ├── runConfigurations.xml │ ├── gradle.xml │ └── codeStyles │ │ └── Project.xml ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── .gitignore ├── build.gradle ├── gradle.properties ├── gradlew.bat └── gradlew ├── .gitignore ├── LICENSE.md └── README.md /WhatsAppStickers/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /WhatsAppStickers/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /WhatsAppStickers/.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/values/refs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/sticker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable/sticker.jpg -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/done.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/googlesans_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/font/googlesans_bold.ttf -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/googlesans_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/font/googlesans_italic.ttf -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/googlesans_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/font/googlesans_medium.ttf -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/googlesans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/font/googlesans_regular.ttf -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/googlesans_bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/font/googlesans_bolditalic.ttf -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_error.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/intro_pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/intro_pencil.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/googlesans_mediumitalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/font/googlesans_mediumitalic.ttf -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_add.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_wa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_wa.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_web.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_wa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_wa.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/btn_green_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/btn_green_normal.9.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/intro_magic_wand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/intro_magic_wand.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/intro_magnifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/intro_magnifier.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_added.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_email.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_info.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_add.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_info.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_web.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/btn_green_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/btn_green_pressed.9.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_add.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_wa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_wa.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_web.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_wa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_wa.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_privacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-hdpi/sticker_3rdparty_privacy.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_added.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_email.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_privacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xhdpi/sticker_3rdparty_privacy.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_added.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_email.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_info.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_add.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_added.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_email.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_info.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_web.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_privacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxhdpi/sticker_3rdparty_privacy.png -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_privacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikovega21/whatsapp-sticker-maker/HEAD/WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/sticker_3rdparty_privacy.png -------------------------------------------------------------------------------- /WhatsAppStickers/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches/build_file_checksums.ser 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | .DS_Store 9 | /build 10 | /captures 11 | .externalNativeBuild 12 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Jan 20 11:50:59 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/selector_bottom_menu_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/magnifier_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/pencil_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/magic_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/redo_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/undo_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/menu/menu_new_sticker_pack.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/menu/sticker_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/ic_outline_add_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/font/google_sans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/btn_green.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/menu/toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/menu/sticker_option_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/test/java/com/unusualapps/whatsappstickers/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/values-v23/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | 15 | # Gradle files 16 | .gradle/ 17 | build/ 18 | 19 | # Local configuration file (sdk path, etc) 20 | local.properties 21 | 22 | # Proguard folder generated by Eclipse 23 | proguard/ 24 | 25 | # Log Files 26 | *.log 27 | 28 | # Android Studio Navigation editor temp files 29 | .navigation/ 30 | 31 | # Android Studio captures folder 32 | captures/ 33 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/sticker_pack_list_item_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/constants/Constants.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.constants; 2 | 3 | import android.os.Environment; 4 | 5 | public class Constants { 6 | 7 | public final static String STICKERS_DIRECTORY_PATH = Environment.getExternalStorageDirectory() + "/stickerPacks/"; 8 | public final static String STICKERS_CREATED_DIRECTORY_PATH = Environment.getExternalStorageDirectory() + "/stickersCreated/"; 9 | public final static int STICKER_PACK_IDENTIFIER_LENGHT = 20; 10 | } 11 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/ic_outline_save_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_round_check_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/ic_round_explore_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/ic_round_home_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable/ic_round_create_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_round_undo_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_round_redo_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_round_undo_inactive_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_round_redo_inactive_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/fragment_explore.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /WhatsAppStickers/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | jcenter() 7 | 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.3.0' 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | google() 19 | jcenter() 20 | maven { url 'https://jitpack.io' } 21 | } 22 | } 23 | 24 | task clean(type: Delete) { 25 | delete rootProject.buildDir 26 | } 27 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/activity_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 11 | 12 | 18 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_pencil.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /WhatsAppStickers/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/ic_pencil_inactive.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/androidTest/java/com/unusualapps/whatsappstickers/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers 2 | 3 | import android.support.test.InstrumentationRegistry 4 | import android.support.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("com.unusualapps.whatsappstickers", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 80dp 6 | 8dp 7 | 8dp 8 | 50dp 9 | 4dp 10 | 4dp 11 | 12 | 16dp 13 | 16dp 14 | 15 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/whatsapp_api/StickerPreviewViewHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) WhatsApp Inc. and its affiliates. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | package com.unusualapps.whatsappstickers.whatsapp_api; 10 | 11 | import android.support.v7.widget.RecyclerView; 12 | import android.view.View; 13 | 14 | import com.facebook.drawee.view.SimpleDraweeView; 15 | import com.unusualapps.whatsappstickers.R; 16 | 17 | public class StickerPreviewViewHolder extends RecyclerView.ViewHolder { 18 | 19 | public SimpleDraweeView stickerPreviewView; 20 | 21 | StickerPreviewViewHolder(final View itemView) { 22 | super(itemView); 23 | stickerPreviewView = itemView.findViewById(R.id.sticker_preview); 24 | } 25 | } -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/menu/bottom_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | 16 | 22 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/activity_sticker_pack_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/activity_add_to_sticker_pack.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 17 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/sticker_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-xxxhdpi/ic_magic_wand.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | MIT License 4 | 5 | Copyright (c) 2019 [nikovega21] 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-hdpi/ic_magic_wand_inactive.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | #ffffff 8 | #BABABA 9 | #128c7e 10 | #B3B3B3 11 | #EBEBEB 12 | @color/colorAccent 13 | 14 | 15 | #b7000000 16 | #FFFFFF 17 | #b7000000 18 | #ff303e 19 | #fcfcfc 20 | #373737 21 | #E64E4E 22 | #4E5DE6 23 | 24 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/sticker_created_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 15 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/whatsapp_api/BottomFadingRecyclerView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) WhatsApp Inc. and its affiliates. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | package com.unusualapps.whatsappstickers.whatsapp_api; 10 | 11 | import android.content.Context; 12 | import android.support.annotation.Nullable; 13 | import android.support.v7.widget.RecyclerView; 14 | import android.util.AttributeSet; 15 | 16 | public class BottomFadingRecyclerView extends RecyclerView { 17 | public BottomFadingRecyclerView(Context context) { 18 | super(context); 19 | } 20 | 21 | public BottomFadingRecyclerView(Context context, @Nullable AttributeSet attrs) { 22 | super(context, attrs); 23 | } 24 | 25 | public BottomFadingRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) { 26 | super(context, attrs, defStyle); 27 | } 28 | 29 | @Override 30 | protected float getTopFadingEdgeStrength() { 31 | return 0.0f; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/activities/AddToStickerPackActivity.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.activities; 2 | 3 | import android.net.Uri; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.os.Bundle; 6 | import android.widget.Toast; 7 | import com.unusualapps.whatsappstickers.R; 8 | import com.unusualapps.whatsappstickers.identities.StickerPacksContainer; 9 | import com.unusualapps.whatsappstickers.utils.StickerPacksManager; 10 | 11 | import java.util.ArrayList; 12 | 13 | public class AddToStickerPackActivity extends AppCompatActivity { 14 | 15 | Uri stickerUri; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_add_to_sticker_pack); 21 | this.stickerUri = this.getIntent().getData(); 22 | StickerPacksManager.stickerPacksContainer = new StickerPacksContainer("", "", StickerPacksManager.getStickerPacks(this)); 23 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 24 | Toast.makeText(this, stickerUri.getPath(), Toast.LENGTH_LONG).show(); 25 | } 26 | } -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/activities/ExploreFragment.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.activities; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.os.Bundle; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import com.unusualapps.whatsappstickers.R; 9 | 10 | public class ExploreFragment extends Fragment { 11 | 12 | public ExploreFragment() { 13 | // Required empty public constructor 14 | } 15 | 16 | // TODO: Rename and change types and number of parameters 17 | public static ExploreFragment newInstance(String param1, String param2) { 18 | ExploreFragment fragment = new ExploreFragment(); 19 | return fragment; 20 | } 21 | 22 | @Override 23 | public void onCreate(Bundle savedInstanceState) { 24 | super.onCreate(savedInstanceState); 25 | } 26 | 27 | @Override 28 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 29 | Bundle savedInstanceState) { 30 | // Inflate the layout for this fragment 31 | return inflater.inflate(R.layout.fragment_explore, container, false); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/utils/RequestPermissionsHelper.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.utils; 2 | 3 | import android.Manifest; 4 | import android.app.Activity; 5 | import android.content.Context; 6 | import android.content.pm.PackageManager; 7 | import android.support.v4.app.ActivityCompat; 8 | import android.support.v4.content.ContextCompat; 9 | 10 | public class RequestPermissionsHelper { 11 | 12 | private static final int CODE_REQUEST_WRITE_READ_EXTERNAL_STORAGE = 0; 13 | 14 | public static boolean verifyPermissions(Context context) { 15 | int permissionToWriteCheck = ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE); 16 | int permissionToReadCheck = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE); 17 | 18 | if (permissionToWriteCheck == PackageManager.PERMISSION_DENIED && permissionToReadCheck == PackageManager.PERMISSION_DENIED) { 19 | return false; 20 | } else return true; 21 | } 22 | 23 | public static void requestPermissions(Activity context) { 24 | ActivityCompat.requestPermissions(context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, CODE_REQUEST_WRITE_READ_EXTERNAL_STORAGE); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/whatsapp_api/StickerPackListItemViewHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) WhatsApp Inc. and its affiliates. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | package com.unusualapps.whatsappstickers.whatsapp_api; 10 | 11 | import android.support.v7.widget.RecyclerView; 12 | import android.view.View; 13 | import android.widget.ImageView; 14 | import android.widget.LinearLayout; 15 | import android.widget.TextView; 16 | import com.unusualapps.whatsappstickers.R; 17 | 18 | public class StickerPackListItemViewHolder extends RecyclerView.ViewHolder { 19 | 20 | public View container; 21 | public TextView titleView; 22 | public TextView publisherView; 23 | public TextView filesizeView; 24 | public ImageView addButton; 25 | public LinearLayout imageRowView; 26 | 27 | StickerPackListItemViewHolder(final View itemView) { 28 | super(itemView); 29 | container = itemView; 30 | titleView = itemView.findViewById(R.id.sticker_pack_title); 31 | publisherView = itemView.findViewById(R.id.sticker_pack_publisher); 32 | filesizeView = itemView.findViewById(R.id.sticker_pack_filesize); 33 | addButton = itemView.findViewById(R.id.add_button_on_list); 34 | imageRowView = itemView.findViewById(R.id.sticker_packs_list_item_image_list); 35 | } 36 | } -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/whatsapp_api/Sticker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) WhatsApp Inc. and its affiliates. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | package com.unusualapps.whatsappstickers.whatsapp_api; 10 | 11 | import android.os.Parcel; 12 | import android.os.Parcelable; 13 | 14 | import java.util.List; 15 | 16 | public class Sticker implements Parcelable { 17 | public String imageFileName; 18 | List emojis; 19 | long size; 20 | 21 | public Sticker(String imageFileName, List emojis) { 22 | this.imageFileName = imageFileName; 23 | this.emojis = emojis; 24 | } 25 | 26 | protected Sticker(Parcel in) { 27 | imageFileName = in.readString(); 28 | emojis = in.createStringArrayList(); 29 | size = in.readLong(); 30 | } 31 | 32 | public static final Creator CREATOR = new Creator() { 33 | @Override 34 | public Sticker createFromParcel(Parcel in) { 35 | return new Sticker(in); 36 | } 37 | 38 | @Override 39 | public Sticker[] newArray(int size) { 40 | return new Sticker[size]; 41 | } 42 | }; 43 | 44 | public void setSize(long size) { 45 | this.size = size; 46 | } 47 | 48 | @Override 49 | public int describeContents() { 50 | return 0; 51 | } 52 | 53 | @Override 54 | public void writeToParcel(Parcel dest, int flags) { 55 | dest.writeString(imageFileName); 56 | dest.writeStringList(emojis); 57 | dest.writeLong(size); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 18 | 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Whatsapp android sticker maker 2 | 3 | # Introduction 4 | What can you do with this app?: 5 | 6 | - Create stickers removing its background 7 | - Create stickerpacks and add it to whatsapp 8 | 9 | Additional information: 10 | 11 | - This is not a fully tested app so I could have some errors. 12 | 13 | - Some features of this app may not work. 14 | 15 | - Feel free to make any changes and make pull requests. 16 | 17 | # Libraries used 18 | 19 | - Android CutOut [https://github.com/GabrielBB/Android-CutOut] 20 | - Lottie [https://github.com/airbnb/lottie-android] 21 | - FishBun Image Chooser [https://github.com/sangcomz/FishBun] 22 | - Fresco [https://github.com/facebook/fresco] 23 | 24 | # License 25 | 26 | MIT License 27 | 28 | Copyright (c) 2019 [nikovega21] 29 | 30 | Permission is hereby granted, free of charge, to any person obtaining a copy 31 | of this software and associated documentation files (the "Software"), to deal 32 | in the Software without restriction, including without limitation the rights 33 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 34 | copies of the Software, and to permit persons to whom the Software is 35 | furnished to do so, subject to the following conditions: 36 | 37 | The above copyright notice and this permission notice shall be included in all 38 | copies or substantial portions of the Software. 39 | 40 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 41 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 42 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 43 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 44 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 45 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 46 | SOFTWARE. 47 | -------------------------------------------------------------------------------- /WhatsAppStickers/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/activities/RequestPermissionActivity.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.activities; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.annotation.NonNull; 6 | import android.support.v7.app.AppCompatActivity; 7 | import android.widget.Toast; 8 | import com.unusualapps.whatsappstickers.R; 9 | import com.unusualapps.whatsappstickers.utils.FileUtils; 10 | import com.unusualapps.whatsappstickers.utils.RequestPermissionsHelper; 11 | 12 | public class RequestPermissionActivity extends AppCompatActivity { 13 | 14 | @Override 15 | protected void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setContentView(R.layout.activity_request_permission); 18 | FileUtils.initializeDirectories(this); 19 | if (RequestPermissionsHelper.verifyPermissions(this)) { 20 | startActivity(new Intent(this, MainActivity.class)); 21 | this.finish(); 22 | } else { 23 | RequestPermissionsHelper.requestPermissions(this); 24 | } 25 | findViewById(R.id.grant_permissions_button).setOnClickListener(v -> RequestPermissionsHelper.requestPermissions(this)); 26 | } 27 | 28 | @Override 29 | public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 30 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); 31 | FileUtils.initializeDirectories(this); 32 | if (RequestPermissionsHelper.verifyPermissions(this)) {//If the app has all the required permissions we pass to MainActivity to get started 33 | startActivity(new Intent(this, MainActivity.class)); 34 | } else { 35 | Toast.makeText(this, "We need access to write and read files in your phone", Toast.LENGTH_SHORT).show(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/identities/StickerPacksContainer.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.identities; 2 | 3 | import com.unusualapps.whatsappstickers.whatsapp_api.Sticker; 4 | import com.unusualapps.whatsappstickers.whatsapp_api.StickerPack; 5 | 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | 9 | public class StickerPacksContainer { 10 | private String androidPlayStoreLink; 11 | private String iosAppStoreLink; 12 | private List stickerPacks; 13 | 14 | public StickerPacksContainer() { 15 | stickerPacks = new ArrayList<>(); 16 | } 17 | 18 | public StickerPacksContainer(String androidPlayStoreLink, String iosAppStoreLink, List stickerPacks) { 19 | this.androidPlayStoreLink = androidPlayStoreLink; 20 | this.iosAppStoreLink = iosAppStoreLink; 21 | this.stickerPacks = stickerPacks; 22 | } 23 | 24 | public void addStickerPack(StickerPack stickerPack) { 25 | this.stickerPacks.add(stickerPack); 26 | } 27 | 28 | public StickerPack removeStickerPack(int index) { 29 | return this.stickerPacks.remove(index); 30 | } 31 | 32 | public StickerPack getStickerPack(int index) { 33 | return this.stickerPacks.get(index); 34 | } 35 | 36 | public String getAndroidPlayStoreLink() { 37 | return androidPlayStoreLink; 38 | } 39 | 40 | public void setAndroidPlayStoreLink(String androidPlayStoreLink) { 41 | this.androidPlayStoreLink = androidPlayStoreLink; 42 | } 43 | 44 | public String getIosAppStoreLink() { 45 | return iosAppStoreLink; 46 | } 47 | 48 | public void setIosAppStoreLink(String iosAppStoreLink) { 49 | this.iosAppStoreLink = iosAppStoreLink; 50 | } 51 | 52 | public List getStickerPacks() { 53 | return stickerPacks; 54 | } 55 | 56 | public void setStickerPacks(List stickerPacks) { 57 | this.stickerPacks = stickerPacks; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/activity_sticker_pack_info.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 16 | 24 | 25 | 31 | 32 | 38 | 39 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/whatsapp_api/BaseActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) WhatsApp Inc. and its affiliates. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | */ 8 | 9 | package com.unusualapps.whatsappstickers.whatsapp_api; 10 | 11 | import android.app.Dialog; 12 | import android.os.Bundle; 13 | import android.support.annotation.NonNull; 14 | import android.support.annotation.StringRes; 15 | import android.support.v4.app.DialogFragment; 16 | import android.support.v7.app.AlertDialog; 17 | import android.support.v7.app.AppCompatActivity; 18 | 19 | public abstract class BaseActivity extends AppCompatActivity { 20 | @Override 21 | public boolean onSupportNavigateUp() { 22 | onBackPressed(); 23 | return true; 24 | } 25 | 26 | public static final class MessageDialogFragment extends DialogFragment { 27 | private static final String ARG_TITLE_ID = "title_id"; 28 | private static final String ARG_MESSAGE = "message"; 29 | 30 | public static DialogFragment newInstance(@StringRes int titleId, String message) { 31 | DialogFragment fragment = new MessageDialogFragment(); 32 | Bundle arguments = new Bundle(); 33 | arguments.putInt(ARG_TITLE_ID, titleId); 34 | arguments.putString(ARG_MESSAGE, message); 35 | fragment.setArguments(arguments); 36 | return fragment; 37 | } 38 | 39 | @NonNull 40 | @Override 41 | public Dialog onCreateDialog(Bundle savedInstanceState) { 42 | @StringRes final int title = getArguments().getInt(ARG_TITLE_ID); 43 | String message = getArguments().getString(ARG_MESSAGE); 44 | 45 | AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity()) 46 | .setMessage(message) 47 | .setCancelable(true) 48 | .setPositiveButton(android.R.string.ok, (dialog, which) -> dismiss()); 49 | 50 | if (title != 0) { 51 | dialogBuilder.setTitle(title); 52 | } 53 | return dialogBuilder.create(); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/backgroundRemover/SaveDrawingTask.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.backgroundRemover; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.graphics.Bitmap; 6 | import android.net.Uri; 7 | import android.os.AsyncTask; 8 | import android.util.Pair; 9 | 10 | import java.io.File; 11 | import java.io.FileOutputStream; 12 | import java.io.IOException; 13 | import java.lang.ref.WeakReference; 14 | 15 | import static android.view.View.VISIBLE; 16 | 17 | public class SaveDrawingTask extends AsyncTask> { 18 | 19 | private static final String SAVED_IMAGE_FORMAT = "png"; 20 | private static final String SAVED_IMAGE_NAME = "cutout_tmp"; 21 | 22 | private final WeakReference activityWeakReference; 23 | 24 | SaveDrawingTask(CutOutActivity activity) { 25 | this.activityWeakReference = new WeakReference<>(activity); 26 | } 27 | 28 | @Override 29 | protected void onPreExecute() { 30 | super.onPreExecute(); 31 | activityWeakReference.get().loadingModal.setVisibility(VISIBLE); 32 | } 33 | 34 | @Override 35 | protected Pair doInBackground(Bitmap... bitmaps) { 36 | 37 | try { 38 | File file = File.createTempFile(SAVED_IMAGE_NAME, SAVED_IMAGE_FORMAT, activityWeakReference.get().getApplicationContext().getCacheDir()); 39 | 40 | try (FileOutputStream out = new FileOutputStream(file)) { 41 | bitmaps[0].compress(Bitmap.CompressFormat.PNG, 95, out); 42 | return new Pair<>(file, null); 43 | } 44 | } catch (IOException e) { 45 | return new Pair<>(null, e); 46 | } 47 | } 48 | 49 | protected void onPostExecute(Pair result) { 50 | super.onPostExecute(result); 51 | 52 | Intent resultIntent = new Intent(); 53 | 54 | if (result.first != null) { 55 | Uri uri = Uri.fromFile(result.first); 56 | 57 | resultIntent.putExtra(CutOut.CUTOUT_EXTRA_RESULT, uri); 58 | activityWeakReference.get().setResult(Activity.RESULT_OK, resultIntent); 59 | activityWeakReference.get().finish(); 60 | 61 | } else { 62 | activityWeakReference.get().exitWithError(result.second); 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/java/com/unusualapps/whatsappstickers/backgroundRemover/BitmapUtility.java: -------------------------------------------------------------------------------- 1 | package com.unusualapps.whatsappstickers.backgroundRemover; 2 | 3 | import android.graphics.*; 4 | 5 | class BitmapUtility { 6 | 7 | static Bitmap getResizedBitmap(Bitmap bitmap, int width, int height) { 8 | Bitmap background = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 9 | 10 | float originalWidth = bitmap.getWidth(); 11 | float originalHeight = bitmap.getHeight(); 12 | 13 | Canvas canvas = new Canvas(background); 14 | 15 | float scale = width / originalWidth; 16 | 17 | float xTranslation = 0.0f; 18 | float yTranslation = (height - originalHeight * scale) / 2.0f; 19 | 20 | Matrix transformation = new Matrix(); 21 | transformation.postTranslate(xTranslation, yTranslation); 22 | transformation.preScale(scale, scale); 23 | 24 | Paint paint = new Paint(); 25 | paint.setFilterBitmap(true); 26 | 27 | canvas.drawBitmap(bitmap, transformation, paint); 28 | 29 | return background; 30 | } 31 | 32 | static Bitmap getBorderedBitmap(Bitmap image, int borderColor, int borderSize) { 33 | 34 | // Creating a canvas with an empty bitmap, this is the bitmap that gonna store the final canvas changes 35 | Bitmap finalImage = Bitmap.createBitmap(image.getWidth(), image.getHeight(), Bitmap.Config.ARGB_8888); 36 | Canvas canvas = new Canvas(finalImage); 37 | 38 | // Make a smaller copy of the image to draw on top of original 39 | Bitmap imageCopy = Bitmap.createScaledBitmap(image, image.getWidth() - borderSize, image.getHeight() - borderSize, true); 40 | 41 | // Let's draw the bigger image using a white paint brush 42 | Paint paint = new Paint(); 43 | paint.setColorFilter(new PorterDuffColorFilter(borderColor, PorterDuff.Mode.SRC_ATOP)); 44 | canvas.drawBitmap(image, 0, 0, paint); 45 | 46 | int width = image.getWidth(); 47 | int height = image.getHeight(); 48 | float centerX = (width - imageCopy.getWidth()) * 0.5f; 49 | float centerY = (height - imageCopy.getHeight()) * 0.5f; 50 | // Now let's draw the original image on top of the white image, passing a null paint because we want to keep it original 51 | canvas.drawBitmap(imageCopy, centerX, centerY, null); 52 | 53 | // Returning the image with the final results 54 | return finalImage; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /WhatsAppStickers/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /WhatsAppStickers/app/src/main/res/layout/activity_request_permission.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 26 | 34 |