├── .gitignore ├── DevicePhotoPicker ├── .gitignore ├── build.gradle ├── gradle.properties ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── ly │ │ └── kite │ │ └── devicephotopicker │ │ ├── DevicePhotoPicker.java │ │ └── DevicePhotoPickerActivity.java │ └── res │ ├── drawable-xxhdpi │ ├── checkbox_off.png │ └── checkbox_on.png │ ├── values-cs │ └── strings.xml │ ├── values-da │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-fi │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-hu │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-nb │ └── strings.xml │ ├── values-nl │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt │ └── strings.xml │ ├── values-sk │ └── strings.xml │ ├── values-sv │ └── strings.xml │ └── values │ ├── strings.xml │ └── styles.xml ├── FacebookPhotoPicker ├── .gitignore ├── build.gradle ├── gradle.properties ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── ly │ │ └── kite │ │ └── facebookphotopicker │ │ ├── FacebookAgent.java │ │ ├── FacebookPhotoPicker.java │ │ └── FacebookPhotoPickerActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_exit_to_app_black.png │ ├── drawable-mdpi │ └── ic_exit_to_app_black.png │ ├── drawable-xhdpi │ └── ic_exit_to_app_black.png │ ├── drawable-xxhdpi │ ├── checkbox_off.png │ ├── checkbox_on.png │ └── ic_exit_to_app_black.png │ ├── menu │ └── action_bar_menu.xml │ ├── values-cs │ └── strings.xml │ ├── values-da │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-fi │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-hu │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-nb │ └── strings.xml │ ├── values-nl │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt │ └── strings.xml │ ├── values-sk │ └── strings.xml │ ├── values-sv │ └── strings.xml │ └── values │ ├── facebook_resources.xml │ ├── strings.xml │ └── styles.xml ├── ImagePicker ├── .gitignore ├── build.gradle ├── gradle.properties ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── ly │ │ └── kite │ │ └── imagepicker │ │ ├── AImagePickerActivity.java │ │ ├── IImagePickerItem.java │ │ ├── ISelectableItem.java │ │ ├── ImagePickerGridView.java │ │ ├── ImagePickerGridViewAdaptor.java │ │ ├── SimpleChildItem.java │ │ ├── SimpleParentItem.java │ │ └── SquareImageView.java │ └── res │ ├── drawable-hdpi │ ├── ip_icon_back.png │ └── ip_icon_done.png │ ├── drawable-mdpi │ ├── ip_icon_back.png │ └── ip_icon_done.png │ ├── drawable-xhdpi │ ├── ip_icon_back.png │ └── ip_icon_done.png │ ├── drawable-xxhdpi │ ├── ip_icon_back.png │ ├── ip_icon_check_off.png │ ├── ip_icon_check_on.png │ └── ip_icon_done.png │ ├── layout │ ├── ip_grid_item.xml │ └── ip_screen_grid.xml │ ├── menu │ └── ip_menu.xml │ ├── values-land │ └── integers.xml │ ├── values-xxhdpi │ └── dimens.xml │ └── values │ ├── colours.xml │ ├── dimens.xml │ ├── integers.xml │ └── styles.xml ├── InstagramPhotoPicker ├── .gitignore ├── build.gradle ├── gradle.properties ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── ly │ │ └── kite │ │ └── instagramphotopicker │ │ ├── InstagramAgent.java │ │ ├── InstagramLoginActivity.java │ │ ├── InstagramPhotoPicker.java │ │ └── InstagramPhotoPickerActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_exit_to_app_black.png │ ├── drawable-mdpi │ └── ic_exit_to_app_black.png │ ├── drawable-xhdpi │ └── ic_exit_to_app_black.png │ ├── drawable-xxhdpi │ ├── checkbox_off.png │ ├── checkbox_on.png │ └── ic_exit_to_app_black.png │ ├── layout │ └── screen_instagram_login.xml │ ├── menu │ └── action_bar_menu.xml │ ├── values-cs │ └── strings.xml │ ├── values-da │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-fi │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-hu │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-nb │ └── strings.xml │ ├── values-nl │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt │ └── strings.xml │ ├── values-sk │ └── strings.xml │ ├── values-sv │ └── strings.xml │ └── values │ ├── strings.xml │ └── styles.xml ├── Kite Print SDK.iml ├── KitePrintSDK-GCM ├── .gitignore ├── build.gradle ├── gradle.properties ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── ly │ │ └── kite │ │ └── gcm │ │ ├── AGCMListenerService.java │ │ ├── GCMInstanceIDListenerService.java │ │ └── GCMRegistrationService.java │ └── res │ └── values │ └── gcm_resources.xml ├── KitePrintSDK ├── .gitignore ├── CHANGELOG.md ├── build.gradle ├── exclude_paypal_libs.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── libs │ └── OnBarcode.AndroidBarcode.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── ly │ │ └── kite │ │ ├── BasketOrderTests.java │ │ ├── KiteTestCase.java │ │ ├── PhotobookSummaryCustomiser.java │ │ ├── address │ │ ├── AddressTests.java │ │ └── CountryTests.java │ │ ├── catalogue │ │ ├── BleedTests.java │ │ ├── BorderFTests.java │ │ ├── BorderTests.java │ │ ├── CatalogueLoaderTests.java │ │ ├── CatalogueTests.java │ │ ├── MultipleCurrencyAmountsTest.java │ │ └── SingleCurrencyAmountsTest.java │ │ ├── image │ │ ├── ImageAgentTests.java │ │ ├── ImageCacheTests.java │ │ └── ImageLoadRequestTests.java │ │ ├── journey │ │ └── UserJourneyTypeTests.java │ │ ├── ordering │ │ ├── OrderingDataAgentTests.java │ │ └── OrderingDatabaseAgentTests.java │ │ ├── pricing │ │ └── OrderPricingTests.java │ │ └── util │ │ ├── ACacheTests.java │ │ ├── AssetTests.java │ │ ├── BooleanUtilsTests.java │ │ ├── DelimitedStringBuilderTests.java │ │ ├── EncryptionTest.java │ │ ├── NetUtilsTests.java │ │ ├── StringUtilsTests.java │ │ └── UploadableImageTests.java │ └── main │ ├── .classpath │ ├── .project │ ├── AndroidManifest.xml │ ├── assets │ └── Amatic-Bold.ttf │ ├── java │ └── ly │ │ └── kite │ │ ├── KiteSDK.java │ │ ├── KiteSDKException.java │ │ ├── SDKCustomiser.java │ │ ├── SecurePreferences.java │ │ ├── TemplateClass.java │ │ ├── address │ │ ├── AAddressActivity.java │ │ ├── Address.java │ │ ├── AddressBook.java │ │ ├── AddressBookActivity.java │ │ ├── AddressEditActivity.java │ │ └── Country.java │ │ ├── analytics │ │ ├── Analytics.java │ │ ├── IAnalyticsEventCallback.java │ │ ├── MixpanelAgent.java │ │ └── NullAnalyticsEventCallback.java │ │ ├── animation │ │ ├── ASimpleFloatPropertyAnimator.java │ │ └── BellInterpolator.java │ │ ├── api │ │ ├── AssetUploadRequest.java │ │ ├── KiteAPIRequest.java │ │ ├── OrderState.java │ │ ├── OrderStatusRequest.java │ │ └── SubmitOrderRequest.java │ │ ├── app │ │ ├── ADeepLinkableActivity.java │ │ ├── APermissionsRequestingActivity.java │ │ ├── ARetainedDialogFragment.java │ │ ├── ARetainedFragment.java │ │ ├── IndeterminateProgressDialogFragment.java │ │ └── RetainedFragmentHelper.java │ │ ├── catalogue │ │ ├── Bleed.java │ │ ├── Border.java │ │ ├── BorderF.java │ │ ├── Catalogue.java │ │ ├── CatalogueLoader.java │ │ ├── CatalogueLoaderFragment.java │ │ ├── ICatalogueConsumer.java │ │ ├── IGroupOrProduct.java │ │ ├── MultipleCurrencyAmounts.java │ │ ├── MultipleDestinationShippingCosts.java │ │ ├── MultipleUnitSize.java │ │ ├── Product.java │ │ ├── ProductGroup.java │ │ ├── ProductOption.java │ │ ├── ProductType.java │ │ ├── SingleCurrencyAmounts.java │ │ ├── SingleDestinationShippingCost.java │ │ ├── SingleUnitSize.java │ │ └── UnitOfLength.java │ │ ├── checkout │ │ ├── ACreditCardDialogFragment.java │ │ ├── AOrderSubmissionActivity.java │ │ ├── APaymentFragment.java │ │ ├── AReceiptActivity.java │ │ ├── AShippingActivity.java │ │ ├── DefaultPaymentFragment.java │ │ ├── ICreditCardAgent.java │ │ ├── IOrderSubmissionProgressListener.java │ │ ├── IOrderSubmissionResultListener.java │ │ ├── OrderPricingAdaptor.java │ │ ├── OrderReceiptActivity.java │ │ ├── OrderSubmissionFragment.java │ │ ├── OrderSubmitter.java │ │ ├── PayPalCreditCardAgent.java │ │ ├── PaymentActivity.java │ │ ├── PaymentMethod.java │ │ ├── ShippingActivity.java │ │ └── StripeCreditCardAgent.java │ │ ├── facebookphotopicker │ │ └── FacebookImageSource.java │ │ ├── image │ │ ├── IImageConsumer.java │ │ ├── IImageSizeConsumer.java │ │ ├── IImageTransformer.java │ │ ├── ImageAgent.java │ │ ├── ImageCache.java │ │ ├── ImageLoadRequest.java │ │ ├── ImageProcessingRequest.java │ │ ├── ImageProcessingService.java │ │ ├── ImageRequestProcessor.java │ │ └── ImageViewConsumer.java │ │ ├── instagramphotopicker │ │ └── InstagramImageSource.java │ │ ├── journey │ │ ├── AHomeActivity.java │ │ ├── AImageSource.java │ │ ├── AKiteActivity.java │ │ ├── AKiteFragment.java │ │ ├── AStandardHomeActivity.java │ │ ├── DeviceImageSource.java │ │ ├── IImageSpecStore.java │ │ ├── ImageSourceAdaptor.java │ │ ├── LogOutDialogFragment.java │ │ ├── UserJourneyType.java │ │ ├── basket │ │ │ └── BasketActivity.java │ │ ├── creation │ │ │ ├── AEditImageFragment.java │ │ │ ├── AProductCreationFragment.java │ │ │ ├── ICustomImageEditorAgent.java │ │ │ ├── IUpdatedImageListener.java │ │ │ ├── ProductCreationActivity.java │ │ │ ├── calendar │ │ │ │ ├── CalendarAdaptor.java │ │ │ │ └── CalendarFragment.java │ │ │ ├── imageselection │ │ │ │ ├── ImageSelectionAdaptor.java │ │ │ │ └── ImageSelectionFragment.java │ │ │ ├── imagesource │ │ │ │ └── ImageSourceFragment.java │ │ │ ├── phonecase │ │ │ │ └── PhoneCaseFragment.java │ │ │ ├── photobook │ │ │ │ ├── PhotobookAdaptor.java │ │ │ │ └── PhotobookFragment.java │ │ │ ├── poster │ │ │ │ ├── PosterAdaptor.java │ │ │ │ └── PosterFragment.java │ │ │ └── reviewandedit │ │ │ │ ├── EditBorderTextImageFragment.java │ │ │ │ ├── EditImageFragment.java │ │ │ │ ├── ImageSpecAdaptor.java │ │ │ │ └── ReviewAndEditFragment.java │ │ ├── ordering │ │ │ ├── OrderHistoryActivity.java │ │ │ └── OrderHistoryFragment.java │ │ └── selection │ │ │ ├── AGroupOrProductFragment.java │ │ │ ├── AProductSelectionFragment.java │ │ │ ├── ChooseProductFragment.java │ │ │ ├── ChooseProductGroupFragment.java │ │ │ ├── ICatalogueHolder.java │ │ │ ├── ProductImagePagerAdaptor.java │ │ │ ├── ProductOverviewFragment.java │ │ │ └── ProductSelectionActivity.java │ │ ├── ordering │ │ ├── BasketItem.java │ │ ├── GreetingCardJob.java │ │ ├── IOrderSubmissionSuccessListener.java │ │ ├── ImageSpec.java │ │ ├── ImagesJob.java │ │ ├── Job.java │ │ ├── Order.java │ │ ├── OrderHistoryItem.java │ │ ├── OrderingDataAgent.java │ │ ├── OrderingDatabaseAgent.java │ │ ├── PhotobookJob.java │ │ └── PostcardJob.java │ │ ├── payment │ │ ├── PayPalCard.java │ │ ├── PayPalCardChargeListener.java │ │ └── PayPalCardVaultStorageListener.java │ │ ├── photofromphone │ │ ├── FromPhoneImageSource.java │ │ └── PhotoFromPhoneFragment.java │ │ ├── pricing │ │ ├── OrderPricing.java │ │ └── PricingAgent.java │ │ ├── util │ │ ├── ACache.java │ │ ├── Asset.java │ │ ├── AssetFragment.java │ │ ├── AssetHelper.java │ │ ├── BitmapDBConverter.java │ │ ├── BooleanUtils.java │ │ ├── DelimitedStringBuilder.java │ │ ├── FeedbackEmailer.java │ │ ├── FileDownloader.java │ │ ├── HTTPJSONRequest.java │ │ ├── HTTPRequest.java │ │ ├── NetUtils.java │ │ ├── StringUtils.java │ │ ├── UploadableImage.java │ │ └── ViewToBitmap.java │ │ └── widget │ │ ├── AAREImageContainerFrame.java │ │ ├── AEditTextEnforcer.java │ │ ├── ALimitedRangeEditTextEnforcer.java │ │ ├── AREFrameLayout.java │ │ ├── AREImageView.java │ │ ├── AnchorableImageView.java │ │ ├── AspectRatioEnforcer.java │ │ ├── CVVEditTextEnforcer.java │ │ ├── CardNumberEditTextEnforcer.java │ │ ├── CheckableImageContainerFrame.java │ │ ├── CustomActionBarDrawerToggle.java │ │ ├── CustomActionBarDrawerToggleHoneycomb.java │ │ ├── CustomDrawerIndicator.java │ │ ├── CustomTypefaceButton.java │ │ ├── CustomTypefaceEditText.java │ │ ├── CustomTypefaceSetter.java │ │ ├── CustomTypefaceSpan.java │ │ ├── CustomTypefaceTextView.java │ │ ├── EditableImageContainerFrame.java │ │ ├── EditableMaskedImageView.java │ │ ├── ExtendedRecyclerView.java │ │ ├── FramedImageView.java │ │ ├── HeaderFooterGridView.java │ │ ├── LabelledImageView.java │ │ ├── MonthEditTextEnforcer.java │ │ ├── OverlayLabel.java │ │ ├── PagingDots.java │ │ ├── PromptTextFrame.java │ │ ├── QRCodeView.java │ │ ├── SlidingOverlayFrame.java │ │ ├── StencilImageView.java │ │ ├── TypefaceCache.java │ │ ├── VerticallyScalingImageView.java │ │ ├── ViewHelper.java │ │ ├── VisibilitySettingAnimationListener.java │ │ └── YearEditTextEnforcer.java │ ├── libs │ ├── PayPalAndroidSDK.jar │ ├── README │ ├── armeabi-v7a │ │ ├── libcardioDecider.so │ │ ├── libcardioRecognizer.so │ │ ├── libcardioRecognizer_tegra2.so │ │ ├── libopencv_core.so │ │ └── libopencv_imgproc.so │ ├── armeabi │ │ └── libcardioDecider.so │ ├── mips │ │ └── libcardioDecider.so │ └── x86 │ │ └── libcardioDecider.so │ ├── lint.xml │ ├── project.properties │ └── res │ ├── anim │ └── reject_add_image.xml │ ├── color │ └── apply_button.xml │ ├── drawable-hdpi │ ├── ic_action_discard.png │ ├── ic_action_edit.png │ ├── ic_action_remove.png │ ├── ic_add_black.png │ ├── ic_add_photo.png │ ├── ic_arrow_back.png │ ├── ic_basket_empty.png │ ├── ic_basket_items.png │ ├── ic_check_off.png │ ├── ic_check_on.png │ ├── ic_delivery.png │ ├── ic_flip_horizontally.png │ ├── ic_flip_vertically.png │ ├── ic_image_source_device.png │ ├── ic_image_source_facebook.png │ ├── ic_image_source_instagram.png │ ├── ic_rotate_anticlockwise.png │ ├── ic_search_black.png │ ├── ic_shipping.png │ ├── photobook_content_base.png │ ├── photobook_content_shadow.png │ ├── photobook_content_shadow_dark.png │ └── photobook_frontcover.png │ ├── drawable-mdpi │ ├── ic_action_discard.png │ ├── ic_action_edit.png │ ├── ic_action_remove.png │ ├── ic_add_black.png │ ├── ic_add_photo.png │ ├── ic_arrow_back.png │ ├── ic_basket_empty.png │ ├── ic_basket_items.png │ ├── ic_check_off.png │ ├── ic_check_on.png │ ├── ic_delivery.png │ ├── ic_flip_horizontally.png │ ├── ic_flip_vertically.png │ ├── ic_image_source_device.png │ ├── ic_image_source_facebook.png │ ├── ic_image_source_instagram.png │ ├── ic_rotate_anticlockwise.png │ ├── ic_search_black.png │ ├── ic_shipping.png │ ├── photobook_content_base.png │ ├── photobook_content_shadow.png │ ├── photobook_content_shadow_dark.png │ └── photobook_frontcover.png │ ├── drawable-nodpi │ ├── checkout_progress_indicator1.png │ ├── checkout_progress_indicator2.png │ ├── close_drawer_icon.png │ ├── corner_bottom_left.png │ ├── corner_bottom_right.png │ ├── corner_top_left.png │ ├── corner_top_right.png │ ├── credit_card_logo_amex.jpg │ ├── credit_card_logo_diners.jpg │ ├── credit_card_logo_discover.jpg │ ├── credit_card_logo_jcb.png │ ├── credit_card_logo_maestro.jpg │ ├── credit_card_logo_mastercard.jpg │ ├── credit_card_logo_visa.jpg │ ├── cta_bar_divider.png │ ├── empty_photo_frame.png │ ├── logout_ring.png │ ├── multi_page_add_image.png │ ├── order_failure_banner.png │ ├── order_success_banner.png │ ├── photobook_content_middle.png │ └── placeholder.png │ ├── drawable-xhdpi │ ├── ic_action_discard.png │ ├── ic_action_edit.png │ ├── ic_action_remove.png │ ├── ic_add_black.png │ ├── ic_add_photo.png │ ├── ic_arrow_back.png │ ├── ic_basket_empty.png │ ├── ic_basket_items.png │ ├── ic_check_off.png │ ├── ic_check_on.png │ ├── ic_delivery.png │ ├── ic_flip_horizontally.png │ ├── ic_flip_vertically.png │ ├── ic_image_source_device.png │ ├── ic_image_source_facebook.png │ ├── ic_image_source_instagram.png │ ├── ic_rotate_anticlockwise.png │ ├── ic_search_black.png │ ├── ic_shipping.png │ ├── photobook_content_base.png │ ├── photobook_content_shadow.png │ ├── photobook_content_shadow_dark.png │ └── photobook_frontcover.png │ ├── drawable-xxhdpi │ ├── ic_action_discard.png │ ├── ic_action_edit.png │ ├── ic_action_remove.png │ ├── ic_add_black.png │ ├── ic_add_photo.png │ ├── ic_arrow_back.png │ ├── ic_basket_empty.png │ ├── ic_basket_items.png │ ├── ic_check_off.png │ ├── ic_check_on.png │ ├── ic_delivery.png │ ├── ic_flip_horizontally.png │ ├── ic_flip_vertically.png │ ├── ic_image_source_device.png │ ├── ic_image_source_facebook.png │ ├── ic_image_source_instagram.png │ ├── ic_rotate_anticlockwise.png │ ├── ic_search_black.png │ ├── ic_shipping.png │ ├── photobook_content_base.png │ ├── photobook_content_shadow.png │ ├── photobook_content_shadow_dark.png │ └── photobook_frontcover.png │ ├── drawable │ ├── check_off.xml │ ├── check_on.xml │ ├── filled_white_circle.xml │ ├── filled_white_rectangle.xml │ ├── ic_google_pay.xml │ ├── ic_paypal.xml │ ├── inactivity_warning_cancel_button_background.xml │ ├── inactivity_warning_log_out_button_background.xml │ ├── paging_dot_selected.xml │ ├── paging_dot_unselected.xml │ ├── payment_button.xml │ ├── product_overview_gradient_background.xml │ └── progress_bar.xml │ ├── layout-land │ ├── grid_item_image_source_horizontal.xml │ ├── include_edit_image_button_frame.xml │ ├── screen_basket.xml │ ├── screen_edit_border_text_image.xml │ ├── screen_edit_image.xml │ ├── screen_order_failure.xml │ ├── screen_order_receipt.xml │ ├── screen_payment.xml │ └── screen_shipping.xml │ ├── layout │ ├── action_end_customer_session.xml │ ├── checkable_image_container_frame.xml │ ├── dialog_credit_card.xml │ ├── dialog_inactivity.xml │ ├── dialog_indeterminate_progress.xml │ ├── dialog_photo_from_phone.xml │ ├── editable_image_container_frame.xml │ ├── fragment_default_payment.xml │ ├── framed_image_view.xml │ ├── grid_item_image_source_device_horizontal.xml │ ├── grid_item_image_source_device_vertical.xml │ ├── grid_item_image_source_facebook_horizontal.xml │ ├── grid_item_image_source_facebook_vertical.xml │ ├── grid_item_image_source_horizontal.xml │ ├── grid_item_image_source_instagram_horizontal.xml │ ├── grid_item_image_source_instagram_vertical.xml │ ├── grid_item_image_source_vertical.xml │ ├── grid_item_product.xml │ ├── grid_item_product_group.xml │ ├── grid_item_review_and_crop.xml │ ├── include_9x9_image_grid.xml │ ├── include_basket_cta_bar.xml │ ├── include_calendar_cta_bar.xml │ ├── include_credit_card_form.xml │ ├── include_cta_bar.xml │ ├── include_cta_bar_divided.xml │ ├── include_edit_border_text_image.xml │ ├── include_edit_image_cta_bar.xml │ ├── include_payment_items.xml │ ├── include_payment_options.xml │ ├── include_photobook_cta_bar.xml │ ├── include_placeholder_text_view.xml │ ├── include_poster_cta_bar.xml │ ├── include_powered_by.xml │ ├── include_pricing_cta_bar.xml │ ├── include_proceed_overlay.xml │ ├── include_product_overview_drawer_proceed_overlay.xml │ ├── include_small_progress_bar.xml │ ├── item_calendar_image.xml │ ├── item_calendar_page.xml │ ├── item_poster_image.xml │ ├── labelled_image_view.xml │ ├── list_item_address_book.xml │ ├── list_item_basket.xml │ ├── list_item_order_history.xml │ ├── list_item_order_pricing.xml │ ├── list_item_photobook_content.xml │ ├── list_item_photobook_front_cover.xml │ ├── list_item_photobook_instructions.xml │ ├── list_item_product_option_value.xml │ ├── order_summary_list_item.xml │ ├── overlay_label.xml │ ├── pager_item_product_overview_image.xml │ ├── product_option.xml │ ├── product_overview_drawer_content.xml │ ├── product_overview_drawer_control_bar.xml │ ├── prompt_text_frame.xml │ ├── recycler_item_image.xml │ ├── recycler_item_proceed_frame_spacer.xml │ ├── recycler_item_title.xml │ ├── screen_address_book.xml │ ├── screen_address_edit.xml │ ├── screen_basket.xml │ ├── screen_calendar.xml │ ├── screen_choose_product.xml │ ├── screen_choose_product_group.xml │ ├── screen_edit_border_text_image.xml │ ├── screen_edit_image.xml │ ├── screen_general_fragment_container.xml │ ├── screen_home.xml │ ├── screen_image_selection.xml │ ├── screen_image_source.xml │ ├── screen_order_failure.xml │ ├── screen_order_history.xml │ ├── screen_order_receipt.xml │ ├── screen_payment.xml │ ├── screen_photobook.xml │ ├── screen_poster.xml │ ├── screen_product_creation.xml │ ├── screen_product_overview.xml │ ├── screen_product_selection.xml │ ├── screen_review_and_edit.xml │ ├── screen_shipping.xml │ ├── sdk_keepme_placeholder_layout.xml │ └── spinner_item_simple.xml │ ├── menu │ ├── add_image_popup.xml │ ├── address_book.xml │ ├── address_edit.xml │ ├── calendar_action_mode.xml │ ├── choose_product.xml │ ├── choose_product_group.xml │ ├── edit_border_text_image.xml │ ├── edit_image.xml │ ├── end_customer_session.xml │ ├── phone_case.xml │ ├── photobook_action_mode.xml │ ├── product_overview.xml │ └── sdk_keepme_placeholder_menu.xml │ ├── values-cs │ └── strings.xml │ ├── values-da │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-es │ └── strings.xml │ ├── values-fi │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-hu │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-land │ ├── dimens.xml │ └── integers.xml │ ├── values-large-land │ └── dimens.xml │ ├── values-large │ ├── dimens.xml │ └── inset_layout.xml │ ├── values-nb │ └── strings.xml │ ├── values-nl │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt │ └── strings.xml │ ├── values-sk │ └── strings.xml │ ├── values-small │ └── inset_layout.xml │ ├── values-sv │ └── strings.xml │ ├── values-v21 │ └── styles.xml │ ├── values-xlarge │ └── inset_layout.xml │ └── values │ ├── aspect_ratio_enforcer.xml │ ├── bools.xml │ ├── colours.xml │ ├── custom_typeface_widget.xml │ ├── dimens.xml │ ├── ids.xml │ ├── image_container_frame.xml │ ├── inset_layout.xml │ ├── integers.xml │ ├── labelled_image_view.xml │ ├── overlay_label.xml │ ├── prompt_text_frame.xml │ ├── sliding_overlay_frame.xml │ ├── strings.xml │ └── styles.xml ├── LICENSE ├── MAVEN_PUSH ├── README.md ├── SampleApp ├── .gitignore ├── build.gradle ├── fabric.properties ├── proguard-rules.pro └── src │ └── main │ ├── .classpath │ ├── .project │ ├── AndroidManifest.xml │ ├── java │ └── ly │ │ └── kite │ │ └── sample │ │ ├── GCMListenerService.java │ │ ├── MainActivity.java │ │ ├── SampleAppApplication.java │ │ └── SampleSDKCustomiser.java │ ├── project.properties │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ ├── ic_launcher.png │ └── instagram1.jpg │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ ├── ic_launcher.png │ ├── menu_instagram.png │ └── menu_uservoice.png │ ├── layout-land │ └── screen_main.xml │ ├── layout │ └── screen_main.xml │ ├── values-land │ └── dimens.xml │ ├── values-large │ └── dimens.xml │ └── values │ ├── .gitignore │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── circle.yml ├── codecov.yml ├── docs ├── analytics.md ├── create_print_order.md ├── custom_image_picker.md ├── eclipse_install.md ├── google_pay.jpg ├── google_pay.md ├── kite.png ├── managed_checkout.md ├── payment.md ├── push_notifications.md ├── push_notifications_files │ └── kite_dashboard_gcm_key.png ├── sdk_customisation.md └── shipping.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .idea 3 | *.iml 4 | /local.properties 5 | .DS_Store 6 | /.idea/libraries 7 | /build 8 | 9 | # Built application files 10 | *.apk 11 | *.ap_ 12 | 13 | # Files for the Dalvik VM 14 | *.dex 15 | 16 | # Java class files 17 | *.class 18 | 19 | # Generated files 20 | bin/ 21 | gen/ 22 | 23 | # Gradle files 24 | .gradle/ 25 | build/ 26 | 27 | # Local configuration file (sdk path, etc) 28 | local.properties 29 | 30 | # Proguard folder generated by Eclipse 31 | proguard/ 32 | -------------------------------------------------------------------------------- /DevicePhotoPicker/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /DevicePhotoPicker/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | google() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.1.2' 8 | } 9 | } 10 | 11 | apply plugin: 'com.android.library' 12 | 13 | android { 14 | compileSdkVersion 27 15 | buildToolsVersion '27.0.3' 16 | 17 | defaultConfig { 18 | minSdkVersion 14 19 | targetSdkVersion 27 20 | versionCode 1 21 | versionName "1.0" 22 | } 23 | 24 | buildTypes { 25 | release { 26 | minifyEnabled false 27 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 28 | } 29 | } 30 | } 31 | 32 | dependencies { 33 | implementation fileTree(dir: 'libs', include: ['*.jar']) 34 | 35 | // implementation project(':ImagePicker') 36 | implementation 'ly.kite:image-picker:5.8.9' 37 | } 38 | 39 | // Uncomment before uploading archives 40 | //apply from: 'https://raw.github.com/shamanland/gradle-mvn-push/cc18d56549cdea03f744b6fff27911569394073e/gradle-mvn-push.gradle' -------------------------------------------------------------------------------- /DevicePhotoPicker/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=Device Photo Picker 2 | POM_ARTIFACT_ID=device-photo-picker 3 | POM_DESCRIPTION=An Android photo picker that allows users to select photos from their device. -------------------------------------------------------------------------------- /DevicePhotoPicker/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /data/Development/Android/android-sdk-linux/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/drawable-xxhdpi/checkbox_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/DevicePhotoPicker/src/main/res/drawable-xxhdpi/checkbox_off.png -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/drawable-xxhdpi/checkbox_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/DevicePhotoPicker/src/main/res/drawable-xxhdpi/checkbox_on.png -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Knihovna" 5 | 6 | Fotoaparát 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-da/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fotovælger 5 | 6 | Kamera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Foto Picker 5 | 6 | Kamera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-es/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Seleccionador de fotos 5 | 6 | Cámara 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-fi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Kirjasto" 5 | 6 | Kamera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Parcourir les photos 5 | 6 | Appareil photo 7 | 8 | 9 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Könyvtár" 5 | 6 | Kamera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Scegli foto 5 | 6 | Fotocamera 7 | 8 | 9 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-nb/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Bibliotek" 5 | 6 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Bibliotheek" 5 | 6 | Camera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Biblioteka" 5 | 6 | Aparat 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-pt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Biblioteca" 5 | 6 | Câmara 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-sk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Knižnica" 5 | 6 | Fotoaparát 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values-sv/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Bibliotek" 5 | 6 | Kamera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Photo Picker 5 | 6 | Camera 7 | 8 | -------------------------------------------------------------------------------- /DevicePhotoPicker/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | google() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.1.2' 8 | } 9 | } 10 | 11 | apply plugin: 'com.android.library' 12 | 13 | android { 14 | compileSdkVersion 27 15 | buildToolsVersion '27.0.3' 16 | 17 | useLibrary 'org.apache.http.legacy' 18 | 19 | defaultConfig { 20 | minSdkVersion 14 21 | targetSdkVersion 27 22 | versionCode 1 23 | versionName "1.0" 24 | } 25 | } 26 | 27 | dependencies { 28 | implementation fileTree(dir: 'libs', include: ['*.jar']) 29 | 30 | // api project(':ImagePicker') 31 | api 'ly.kite:image-picker:5.8.9' 32 | } 33 | 34 | // Uncomment before uploading archives 35 | //apply from: 'https://raw.github.com/shamanland/gradle-mvn-push/cc18d56549cdea03f744b6fff27911569394073e/gradle-mvn-push.gradle' -------------------------------------------------------------------------------- /InstagramPhotoPicker/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_NAME=Instagram Photo Picker 2 | POM_ARTIFACT_ID=instagram-photo-picker 3 | POM_DESCRIPTION=An Android photo picker that allows users to log in a select photos from Instagram. -------------------------------------------------------------------------------- /InstagramPhotoPicker/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /data/Development/Android/android-sdk-linux/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/drawable-hdpi/ic_exit_to_app_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/InstagramPhotoPicker/src/main/res/drawable-hdpi/ic_exit_to_app_black.png -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/drawable-mdpi/ic_exit_to_app_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/InstagramPhotoPicker/src/main/res/drawable-mdpi/ic_exit_to_app_black.png -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/drawable-xhdpi/ic_exit_to_app_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/InstagramPhotoPicker/src/main/res/drawable-xhdpi/ic_exit_to_app_black.png -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/drawable-xxhdpi/checkbox_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/InstagramPhotoPicker/src/main/res/drawable-xxhdpi/checkbox_off.png -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/drawable-xxhdpi/checkbox_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/InstagramPhotoPicker/src/main/res/drawable-xxhdpi/checkbox_on.png -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/drawable-xxhdpi/ic_exit_to_app_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/InstagramPhotoPicker/src/main/res/drawable-xxhdpi/ic_exit_to_app_black.png -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/layout/screen_instagram_login.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/menu/action_bar_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Přihlášení" 6 | 7 | "Jejda" 8 | "Něco se pokazilo. Zkuste to prosím znovu:\n%1$s" 9 | 10 | "Zkusit znovu" 11 | "Storno" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-da/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Instagram fotovælger 5 | Log på 6 | 7 | Instagram fejl 8 | Der opstod en fejl ved indlæsningen af dine Instagram billeder:\n%1$s 9 | 10 | Prøv igen 11 | Annuler 12 | 13 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Instagram Foto Picker 5 | Einloggen 6 | 7 | Instagram error 8 | Es gab ein Problem beim Laden Deiner Instagram Photos:\n%1$s 9 | 10 | Versuche es noch einmal 11 | Abbrechen 12 | 13 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-es/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Seleccionador de fotos de Instagram 5 | Iniciar sesión 6 | 7 | Error de Instagram 8 | Se ha producido un problema al cargar tus fotos de Instagram:\n%1$s 9 | 10 | Rever 11 | Cancelar 12 | 13 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-fi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Kirjaudu sisään" 6 | 7 | "Hups" 8 | "Jokin meni vikaan. Yritä uudelleen:\n%1$s" 9 | 10 | "Yritä uudelleen" 11 | "Peruuta" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Parcourir les photos Instagram 5 | S\'identifier 6 | 7 | Erreur Instagram 8 | Un problème est survenu lors du téléchargement de vos photos Instagram:\n%1$s 9 | 10 | Réessayer 11 | Annuler 12 | 13 | 14 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Bejelentkezés" 6 | 7 | "Hoppá" 8 | "Hiba történt. Próbáld meg újra:\n%1$s" 9 | 10 | "Újra" 11 | "Mégse" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Scegli foto Instagram 5 | Accesso 6 | 7 | Errore Instagram 8 | C\'è stato un problema durante il caricamento foto Instagram:\n%1$s 9 | 10 | Riprova 11 | Annulla 12 | 13 | 14 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-nb/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Logg på" 6 | 7 | "Ops" 8 | "Noe gikk galt. Prøv på nytt:\n%1$s" 9 | 10 | "Prøv på nytt" 11 | "Avbryt" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Aanmelden" 6 | 7 | "Oeps" 8 | "Er is iets misgegaan. Probeer het opnieuw:\n%1$s" 9 | 10 | "Opnieuw" 11 | "Annuleren" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Zaloguj się" 6 | 7 | "Ups" 8 | "Coś poszło nie tak. Spróbuj ponownie:\n%1$s" 9 | 10 | "Spróbuj ponownie" 11 | "Anuluj" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-pt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Iniciar sessão" 6 | 7 | "Ups" 8 | "Ocorreu um erro. Tente novamente:\n%1$s" 9 | 10 | "Tentar novamente" 11 | "Cancelar" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-sk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Prihlásiť sa" 6 | 7 | "Ospravedlňujeme sa" 8 | "Vyskytla sa chyba. Skúste to znova:\n%1$s" 9 | 10 | "Skúsiť znova" 11 | "Zrušiť" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values-sv/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "Instagram" 5 | "Logga in" 6 | 7 | "Hoppsan" 8 | "Något gick fel. Försök igen:\n%1$s" 9 | 10 | "Försök igen" 11 | "Avbryt" 12 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Instagram Photo Picker 5 | Log In 6 | 7 | Instagram Error 8 | There was a problem loading your Instagram photos:\n%1$s 9 | 10 | @string/kitesdk_instagram_error_title 11 | @string/kitesdk_instagram_error_message 12 | 13 | Retry 14 | Cancel 15 | 16 | -------------------------------------------------------------------------------- /InstagramPhotoPicker/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values-small/inset_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 16 | 17 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values-xlarge/inset_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/aspect_ratio_enforcer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | false 6 | false 7 | 8 | 9 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/custom_typeface_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/image_container_frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/inset_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 18 | 19 | 29 | 30 | 34 | 35 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 6 | 3 7 | 8 | 1 9 | 10 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/labelled_image_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/overlay_label.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/prompt_text_frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /KitePrintSDK/src/main/res/values/sliding_overlay_frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Modified MIT License 2 | 3 | Copyright (c) 2010-2015 Kite Tech Ltd. https://www.kite.ly 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The software MAY ONLY be used with the Kite Tech Ltd platform and MAY NOT be modified 13 | to be used with any competitor platforms. This means the software MAY NOT be modified 14 | to place orders with any competitors to Kite Tech Ltd, all orders MUST go through the 15 | Kite Tech Ltd platform servers. 16 | 17 | The above copyright notice and this permission notice shall be included in 18 | all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | -------------------------------------------------------------------------------- /SampleApp/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | google-services.json 3 | -------------------------------------------------------------------------------- /SampleApp/fabric.properties: -------------------------------------------------------------------------------- 1 | #Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public. 2 | #Fri Jul 10 14:43:24 BST 2015 3 | apiSecret=384b1f7dd3c438dc11f426be78d37c5401ec18e79a613399964ddafe7c24b828 4 | -------------------------------------------------------------------------------- /SampleApp/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /data/Development/Android/android-sdk-linux/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | -keep class android.support.** { *; } 20 | -keep interface android.support.** { *; } 21 | 22 | -keep class com.paypal.android.** { *; } 23 | -keep interface com.paypal.android.** { *; } 24 | 25 | -keep class com.google.android.gms.** { *; } 26 | -keep interface com.google.android.gms.** { *; } 27 | 28 | -keep class com.squareup.okhttp.** { *; } 29 | -keep interface com.squareup.okhttp.** { *; } 30 | 31 | -keepclassmembers class * implements javax.net.ssl.SSLSocketFactory { 32 | private javax.net.ssl.SSLSocketFactory delegate; 33 | } 34 | 35 | -keep class com.stripe.** { *; } 36 | -keep interface com.stripe.** { *; } 37 | 38 | -dontwarn com.squareup.picasso.** 39 | -dontwarn com.paypal.android.** 40 | -dontwarn okio.** -------------------------------------------------------------------------------- /SampleApp/src/main/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SampleApp/src/main/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Kite-Print-SDK-Sample-App 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /SampleApp/src/main/java/ly/kite/sample/SampleAppApplication.java: -------------------------------------------------------------------------------- 1 | package ly.kite.sample; 2 | 3 | import android.app.Application; 4 | 5 | //import com.squareup.leakcanary.LeakCanary; 6 | 7 | /** 8 | * Created by dbotha on 23/12/2015. 9 | */ 10 | public class SampleAppApplication extends Application 11 | { 12 | 13 | @Override 14 | public void onCreate() 15 | { 16 | super.onCreate(); 17 | 18 | //LeakCanary.install( this ); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /SampleApp/src/main/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | 11 | # Enable manifest merging - we want the various components in the SDK manifest 12 | # merged into the app manifest. 13 | manifestmerger.enabled=true 14 | 15 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 16 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 17 | 18 | # Project target. 19 | target=android-19 20 | android.library.reference.1=../../../KitePrintSDK/src/main 21 | -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-mdpi/instagram1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-mdpi/instagram1.jpg -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-xxhdpi/menu_instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-xxhdpi/menu_instagram.png -------------------------------------------------------------------------------- /SampleApp/src/main/res/drawable-xxhdpi/menu_uservoice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/SampleApp/src/main/res/drawable-xxhdpi/menu_uservoice.png -------------------------------------------------------------------------------- /SampleApp/src/main/res/values-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15dp 4 | 5 | 6 | -------------------------------------------------------------------------------- /SampleApp/src/main/res/values-large/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 50dp 4 | 5 | 6 | -------------------------------------------------------------------------------- /SampleApp/src/main/res/values/.gitignore: -------------------------------------------------------------------------------- 1 | facebook_resources.xml 2 | gcm_resources.xml 3 | -------------------------------------------------------------------------------- /SampleApp/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | 30dp 7 | 8 | 9 | -------------------------------------------------------------------------------- /SampleApp/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Kite.ly 5 | 6 | Sandbox 7 | Live 8 | 9 | Print Local Photos 10 | Print Pre-defined Photos 11 | Print Postcard 12 | Order History 13 | 14 | -------------------------------------------------------------------------------- /SampleApp/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | jcenter() 4 | maven { 5 | url 'https://maven.google.com' 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | jobs: 4 | build: 5 | working_directory: ~/code 6 | 7 | docker: 8 | - image: circleci/android:api-27-node8-alpha 9 | 10 | environment: 11 | JVM_OPTS: -Xmx3200m 12 | 13 | steps: 14 | - checkout 15 | - run: 16 | name: Download Dependencies 17 | command: ./gradlew androidDependencies 18 | - run: 19 | name: Setup emulator 20 | command: sdkmanager "system-images;android-22;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-22;default;armeabi-v7a" 21 | - run: 22 | name: Launch emulator 23 | command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator64-arm -avd test -noaudio -no-boot-anim -no-window -accel on 24 | background: true 25 | - run: 26 | name: Wait emulator 27 | command: | 28 | # wait for it to have booted 29 | circle-android wait-for-boot 30 | # unlock the emulator screen 31 | sleep 30 32 | adb shell input keyevent 82 33 | 34 | - run: 35 | name: Run UnitTests 36 | command: ./gradlew createDebugCoverageReport 37 | - run: 38 | name: CodeCov upload 39 | command: bash <(curl -s https://codecov.io/bash) 40 | - store_artifacts: 41 | path: app/build/reports 42 | destination: reports 43 | - store_test_results: 44 | path: app/build/test-results -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | codecov: 2 | notify: 3 | require_ci_to_pass: yes 4 | 5 | coverage: 6 | precision: 2 7 | round: down 8 | range: "50...75" 9 | 10 | status: 11 | project: 12 | default: 13 | enabled: yes 14 | 15 | patch: 16 | default: off 17 | 18 | changes: 19 | default: 20 | enabled: yes 21 | if_not_found: success 22 | 23 | parsers: 24 | gcov: 25 | branch_detection: 26 | conditional: yes 27 | loop: yes 28 | method: no 29 | macro: no 30 | 31 | comment: 32 | layout: "header, diff" 33 | behavior: default 34 | 35 | -------------------------------------------------------------------------------- /docs/google_pay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/docs/google_pay.jpg -------------------------------------------------------------------------------- /docs/kite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/docs/kite.png -------------------------------------------------------------------------------- /docs/push_notifications_files/kite_dashboard_gcm_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/docs/push_notifications_files/kite_dashboard_gcm_key.png -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | VERSION_NAME=5.8.9 2 | VERSION_CODE=111 3 | GROUP=ly.kite 4 | POM_PACKAGING=aar 5 | POM_URL=https://github.com/OceanLabs/Android-Print-SDK 6 | POM_SCM_URL=https://github.com/OceanLabs/Android-Print-SDK 7 | POM_SCM_CONNECTION=scm:git@github.com:OceanLabs/Android-Print-SDK.git 8 | POM_SCM_DEV_CONNECTION=scm:git@github.com:OceanLabs/Android-Print-SDK.git 9 | POM_LICENCE_NAME=Modified MIT License (MIT) 10 | POM_LICENCE_URL=https://github.com/OceanLabs/Android-Print-SDK/blob/master/LICENSE 11 | POM_LICENCE_DIST=repo 12 | POM_DEVELOPER_ID=dbotha 13 | POM_DEVELOPER_NAME=Deon Botha 14 | POM_DEVELOPER_EMAIL=deon@kite.ly 15 | org.gradle.jvmargs=-XX:MaxPermSize=512m -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OceanLabs/Android-Print-SDK/ae91bd8a69b26d15a883106487f9c0c95cfd53f1/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Apr 26 10:58:39 BST 2018 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.4-all.zip 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include 'SampleApp' 2 | include 'ImagePicker' 3 | include 'DevicePhotoPicker' 4 | include 'InstagramPhotoPicker' 5 | include 'FacebookPhotoPicker' 6 | include 'KitePrintSDK' 7 | include 'KitePrintSDK-GCM' 8 | --------------------------------------------------------------------------------