All Projects → lovoo → android-pickpic

lovoo / android-pickpic

Licence: Apache-2.0 License
Ready to use library that allows people to select pictures from their device and Facebook account.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to android-pickpic

Lassi-Android
All in 1 picker library for android.
Stars: ✭ 108 (+800%)
Mutual labels:  camera, images, picker
Contentmanager
Android library for getting photo or video from a device gallery, cloud or camera. Working with samsung devices. Made by Stfalcon
Stars: ✭ 108 (+800%)
Mutual labels:  camera, images, picker
Ypimagepicker
📸 Instagram-like image picker & filters for iOS
Stars: ✭ 3,661 (+30408.33%)
Mutual labels:  camera, picker
Belvedere
An image picker library for Android
Stars: ✭ 122 (+916.67%)
Mutual labels:  images, picker
Picker
Picker - A CameraX based WhatsApp Style Image-Video Picker
Stars: ✭ 69 (+475%)
Mutual labels:  camera, picker
Mediapicker
Media Picker is an Android Libary that lets you to select multiple images or video
Stars: ✭ 254 (+2016.67%)
Mutual labels:  images, picker
Flutter wechat camera picker
A camera picker in WeChat style.
Stars: ✭ 95 (+691.67%)
Mutual labels:  camera, picker
Rxpaparazzo
RxJava extension for Android to take images using camera and gallery and pick files up
Stars: ✭ 467 (+3791.67%)
Mutual labels:  camera, picker
Chat app
A flutter chat app built with firestore. It is clone of messenger.User can create stories,chat and search in real time.
Stars: ✭ 493 (+4008.33%)
Mutual labels:  facebook, camera
Facebookimagepicker
FacebookImagePicker is Facebook album photo picker written in Swift.
Stars: ✭ 220 (+1733.33%)
Mutual labels:  facebook, picker
XGImagePickerController
iOS相册图片/视频选择器
Stars: ✭ 32 (+166.67%)
Mutual labels:  camera, picker
ProPicker
ProPicker is a file picker (image, video, file) library for Android. It helps you to pick any file and return the result in a convenient way
Stars: ✭ 25 (+108.33%)
Mutual labels:  camera, picker
fl-image-resize
A library to quickly resize images with Azure Functions
Stars: ✭ 15 (+25%)
Mutual labels:  images
facebook-send-api-emulator
Facebook Messenger Emulator & Facebook Send API Emulator functionality allowing you to test web hooks on developer's machine.
Stars: ✭ 24 (+100%)
Mutual labels:  facebook
Cracker-Tool
All in One CRACKER911181's Tool. This Tool For Hacking and Pentesting. 🎭
Stars: ✭ 181 (+1408.33%)
Mutual labels:  facebook
desktop
Free and open source streaming software built on OBS and Electron.
Stars: ✭ 3,684 (+30600%)
Mutual labels:  facebook
android-tutorial-bubbles
A little ui framework that displays a styled tutorial bubble, which positions and scales itself based on a given anchor view.
Stars: ✭ 20 (+66.67%)
Mutual labels:  lovoo
scrapy facebooker
Collection of scrapy spiders which can scrape posts, images, and so on from public Facebook Pages.
Stars: ✭ 22 (+83.33%)
Mutual labels:  facebook
oneshellcrack
a very very fast brute force webshell password tool
Stars: ✭ 42 (+250%)
Mutual labels:  facebook
nuxt-facebook-pixel-module
Inject Facebook pixel code
Stars: ✭ 82 (+583.33%)
Mutual labels:  facebook

android-pickpic (Pick a Picture)

Description

Ready to use library that allows people to select pictures from their device and Facebook account. It's designed to unify multiple picture sources in one flow. PickPic can be configured for different use cases:

  • select one profile picture

  • select multiple pictures as attachment

  • select a minimum of 2 pictures to finish an onboarding

  • ...

It is also possible to configure title, subtitle and the call to action (text or icon). If you want to communicate a rule set for your guidelines you can pass an FAQ url.

PickPic will handle all permissions for storage, camera and Facebook.

What PickPic will not handle are animated pictures and videos.

Screenshot

Screenshot

Screenshot

Import

We have to find a new host. Since Bintray shuts down we do not deploy to any repository since 1.4.0. We are sorry and try to find time to setup a new repository as host soon.

PickPic was hosted on Jcenter. Add this to your project's build.gradle.

repositories {
    jcenter()
}

Then add this to your app's build.gradle and replace <tag> with the version you want to use:

pickpic_version = "<tag>"

dependencies {
    implementation "com.lovoo.android:pickapp:$pickpic_version"
}
pickpic_version = "<tag>"

dependencies {
    implementation ("com.lovoo.android:pickapp:$pickpic_version") {
        exclude group: 'com.lovoo.android', module: 'pickfacebook'
        exclude group: 'com.lovoo.android', module: 'pickcam'
    }
}

Depending on the function you need you could also leave out some modules like com.lovoo.android:pickfacebook (see chapter Modules).

Usage

Start the PickPicActivity for result and pass a PickPicConfig that fits your needs.

    private fun startPicker() {
        val config = PickPicConfig(
            style = R.style.AppTheme_NoActionbar,           // your app theme
            minCount = 2,                                   // button will be active when 2 pictures are selected
            maxCount = 10,                                  // limit selection count to 10
            sendIcon = R.drawable.ic_upload,                // provide icon for the button
            header = "Please choose 2 or more pictures",    // provide text for the title
            title = "My Activity Title",
            faqUrl = "https://www.myDomain.com/myPictureGuidelines"
        )

        Intent(this, PickPicActivity::class.java).let {
            PickPicActivity.applyConfig(it, config)
            startActivityForResult(it, 101)
        }
    }

Wait and handle the Activity result to fetch the selected pictures

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        if (requestCode == 101) {
            val result = PickPicActivity.getResult(data)
            
            // handle the selected Uri's for your use case
            
            return
        }

        super.onActivityResult(requestCode, resultCode, data)
    }

You are free to call the provided PickPickActivity or do your own implementation and use the Fragments and Adapter that are provided by the modules.

Facebook implementation

You have to set up your app as described in Facebook docs. Overwrite these strings with your own Facebook app id and protocol scheme:

    <string name="facebook_app_id">your_app_id</string>
    <string name="fb_login_protocol_scheme">your_protocol_scheme</string>

Do not forget to apply your APK for Facebook review to unlock picture permission.

Customization

Design can be changed easily by overwriting the style attributes and resources. It's also possible to overwrite whole layouts, but keep in mind that some view ids and classes may be mandatory. So please don't change an AndroidX RecyclerView to a SupportRecyclerView or worse GridLayout :) When changing the style attributes, please keep in mind that you need to copy the whole theme

Example: styles.xml

Or extend your app theme from PickPic <style name="ExampleAppTheme" parent="PickPicAppTheme">

PickPic provides only English as translation, so that you can decide which languages you offer on top. To localize PickPic in your languages just provide translations for all PickPic strings.

Example: strings.xml

Modules

PickPick is divided in different modules:

Module Description Dependency Path External Dependencies Documentation
PickCore The base of PickPick com.lovoo.android:pickcore:$pickpic_version androidx.exifinterface:exifinterface
androidx.appcompat:appcompat
androidx.recyclerview:recyclerview
androidx.lifecycle:lifecycle-livedata
link
PickUI The basic UI implementation com.lovoo.android:pickui:$pickpic_version pickcore
androidx.vectordrawable:vectordrawable
androidx.constraintlayout:constraintlayout
link
PickCam The camera capture implementation com.lovoo.android:pickcam:$pickpic_version pickcore
androidx.appcompat:appcompat
androidx.constraintlayout:constraintlayout
android.arch.work:work-runtime
android.arch.work:work-runtime-ktx
android.arch.work:work-rxjava2
link
PickFacebook Facebook module for PickPic com.lovoo.android:pickfacebook:$pickpic_version pickui
com.google.code.gson:gson
com.facebook.android:facebook-android-sdk
link
PickApp A ready to use PickPicActivity that can be configured com.lovoo.android:pickapp:$pickpic_version pickfacebook (alternative pickui)
pickcam (optional)
com.google.android.material:material
io.reactivex.rxjava2:rxjava
io.reactivex.rxjava2:rxandroid
com.github.bumptech.glide:compiler
androidx.lifecycle:lifecycle-compiler
link

For PickApp: The Facebook Tab will only appear if PickFacebook is packed within your dependencies. For PickApp: The Camera Capture will only appear if PickCam is packed within your dependencies.

Permissions, such as storage and camera, are handled by PickPic. Camera permission will be only requested when using the camera functionality and when your manifest declares this permission.

License

Copyright 2018 LOVOO GmbH

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.`
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].