A Kotlin Android library for content provider queries with reactive streams and coroutines.

Overview

Release  API  Awesome Kotlin Badge

Pickpocket

An Android library for content provider queries with reactive streams and coroutines.

  • Calendar
  • Contacts
  • SMS
  • MMS
  • Files/Media
  • Call Log
  • Bookmarks
  • Browser History
  • Settings
  • Device Info
  • Installed Apps
  • GPS Location
  • Accounts
  • Dictionary

User Instructions

  1. Add the maven repository to your project's build.gradle file
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  1. Add the dependency to your app's build.gradle file
dependencies {
    implementation 'com.github.evilthreads669966:pickpocket:0.2.1'
}
  1. Use a pickpocket coroutine builder function to retrieve a collection of the data types you want
//flow
calendarFlow().collect { calendarEvent ->
    Log.d("PICKPOCKET", "${calendarEvent.title} - ${calendarEvent.startDate}")
}

//async
//takes android context as argument
val events = calendarAsync(this)
Log.d("ASYNC PICKPOCKET","${events.await().size}")

//producer channel
//takes android context as argument
calendarProducer(this).consumeEach { event -> Log.d("PICKPOCKET PRODUCER", event.toString()) }

//launch
calendarLaunch(this@MyService).forEach { event -> Log.d("PICKPOCKET LAUNCH", event.toString()) }

Ask a Question?

Reporting issues

Found a bug on a specific feature? Open an issue on Github issues

Contributing

SMS Backdoor is released under the Apache 2.0 license. If you would like to contribute something, or simply want to hack then this document should help you get started.

Code of Conduct

  • Please refrain from using any profanity
  • Please be respectful on GitHub Issues
  • Have fun

Pull Requests

  • Please create a branch prefixed with what you're working on.
    • FEATURE_ADDING_SOMETHING
    • BUG_FIXING_SOMETHING
    • REFACTOR_CHANGING_SOMETHING
  • Once you're done with your commits to this branch hit a pull request off and I'll look at it and most likely accept it if it looks good.

Using GitHub Issues

We use GitHub issues to track bugs and enhancements.

  • If you find a bug please fill out an issue report. Provide as much information as possible.
  • If you think of a great idea please fill out an issue as a proposal for your idea.

Code Conventions

None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge.

  • We use idiomatic kotlin conventions
  • Add yourself as an @author to the .kt files that you modify or create.
  • Add some comments
  • A few unit tests would help a lot as well -- someone has to do it.
  • If you are able to provide a unit test then do.
    • Because of the types of libraries I develop often times it is hard to test.

Working with the code

If you don't have an IDE preference we would recommend that you use Android Studio

Contributors

This project exists thanks to all the people who contribute.

Talking about Pickpocket

Articles

  • No articles have been written yet

License

Copyright 2019 Chris Basinger

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.
You might also like...
Library to use Kotlin Coroutines from Swift code in KMP apps

KMP-NativeCoroutines A library to use Kotlin Coroutines from Swift code in KMP apps. Flows Kotlin Create an extension property to expose the Flow as a

Android News Reader app. Kotlin Coroutines, Retrofit and Realm
Android News Reader app. Kotlin Coroutines, Retrofit and Realm

News Reader Android News Reader app Code that follows Packt Publishing Kotlin in Practice Video Course Example of Kotlin Coroutine usage, with Realm a

A simple, classic Kotlin MVI implementation based on coroutines with Android support, clean DSL and easy to understand logic

A simple, classic Kotlin MVI implementation based on coroutines with Android support, clean DSL and easy to understand logic

Architecture With MVI using Kotlin, Coroutines, Retrofit and Unit test
Architecture With MVI using Kotlin, Coroutines, Retrofit and Unit test

Architecture With MVI using Kotlin, Coroutines, Retrofit and Unit test MVI (Model-View-Intent) streamlines the process of creating and developing appl

Android To-Do MVVM Architecture App written in Kotlin.(ViewModel, ROOM, Livedata, Coroutines)

MVVM-To-Do-App A To-Do application written in kotlin using Android Architectural components What's new? Room + Coroutines - Upgraded Room to v2.1. Roo

async/await for Android built upon coroutines introduced in Kotlin 1.1

Async/Await A Kotlin library for Android to write asynchronous code in a simpler and more reliable way using async/await approach, like: async { pr

Image loading for Android backed by Kotlin Coroutines.

An image loading library for Android backed by Kotlin Coroutines. Coil is: Fast: Coil performs a number of optimizations including memory and disk cac

Extension functions over Android's callback-based APIs which allows writing them in a sequential way within coroutines or observe multiple callbacks through kotlin flow.

callback-ktx A lightweight Android library that wraps Android's callback-based APIs into suspending extension functions which allow writing them in a

🍭 GithubSearchKMM - Github Repos Search - Android - iOS - Kotlin Multiplatform Mobile using Jetpack Compose, SwiftUI, FlowRedux, Coroutines Flow, Dagger Hilt, Koin Dependency Injection, shared KMP ViewModel, Clean Architecture
🍭 GithubSearchKMM - Github Repos Search - Android - iOS - Kotlin Multiplatform Mobile using Jetpack Compose, SwiftUI, FlowRedux, Coroutines Flow, Dagger Hilt, Koin Dependency Injection, shared KMP ViewModel, Clean Architecture

GithubSearchKMM Github Repos Search - Kotlin Multiplatform Mobile using Jetpack Compose, SwiftUI, FlowRedux, Coroutines Flow, Dagger Hilt, Koin Depend

Comments
  • KotlinX Serializable PocketData

    KotlinX Serializable PocketData

    • annotate all derived pocketdata objects with @Serializable for kotlinx.serializer
      • add serialization plugin and libraries for kotlinx
    • update bootlaces for LifecycleBootService in demo app
      • pass pickpocket query functions as payload to bootService
    • Clean up dependencies in build.gradle
    opened by evilthreads669966 0
  • Flow does not notify when data changes

    Flow does not notify when data changes

    In my case, I'm using calendarFlow() and observing for calendar events. If I insert new event from calendar, it does not notify new changes.

    How can I solve it?

    opened by raheemadamboev 9
Releases(0.2.1)
Owner
Chris Basinger
Chris Basinger
A basic application demonstrating IPFS for collaborative data analysis, from the perspective of a Data Analysis Provider.

Spacebox A basic application demonstrating IPFS for collaborative data analysis, from the perspective of a Data Analysis Provider. Description This pr

null 0 Jan 15, 2022
A Kotlin library for reactive and boilerplate-free SharedPreferences in Android

KPreferences A Kotlin library for reactive and boilerplate-free Shared Preferences in Android. With KPreferences you can use Kotlin's marvelous delega

Mohamad Amin Mohamadi 19 Dec 16, 2020
Clean Code and Reactive Programming PlayGround for Bangkit 2021

Clean Code and Reactive Programming PlayGround for Bangkit 2021 Hello! This repo contains the IntelliJ project that I use to present my talk, "Clean A

raditya gumay 3 May 16, 2021
Ivy FRP is a Functional Reactive Programming framework for declarative-style programming for Android

FRP (Functional Reactive Programming) framework for declarative-style programming for Andorid. :rocket: (compatible with Jetpack Compose)

null 8 Nov 24, 2022
Recycler-coroutines - RecyclerView Auto Add Data Using Coroutines

Sample RecyclerView Auto Add With Coroutine Colaborator Very open to anyone, I'l

Faisal Amir 8 Dec 1, 2022
Just an app with lame dad jokes content to fill up your day.

Just an app with lame dad jokes content to fill up your day. MVP This MVP version features: Feed walks you through the latest dad jokes, Browse back s

null 240 Dec 20, 2022
A tiny Kotlin multiplatform library that assists in saving and restoring objects to and from disk using kotlinx.coroutines, kotlinx.serialisation and okio

Store A tiny Kotlin multiplatform library that assists in saving and restoring objects to and from disk using kotlinx.coroutines, kotlinx.serialisatio

Isuru Rajapakse 98 Jan 3, 2023
Server Sent Events (SSE) client multiplatform library made with Kotlin and backed by coroutines

OkSSE OkSSE is an client for Server Sent events protocol written in Kotlin Multiplatform. The implementation is written according to W3C Recommendatio

BioWink GmbH 39 Nov 4, 2022
Opinionated Redux-like implementation backed by Kotlin Coroutines and Kotlin Multiplatform Mobile

CoRed CoRed is Redux-like implementation that maintains the benefits of Redux's core idea without the boilerplate. No more action types, action creato

Kittinun Vantasin 28 Dec 10, 2022
Android Library for requesting Permissions with Kotlin Coroutines or AndroidX LiveData

PEKO PErmissions with KOtlin Android Permissions with Kotlin Coroutines or LiveData No more callbacks, builders, listeners or verbose code for request

Marko Devcic 133 Dec 14, 2022