Android Native Kotlin Jetpack Compose

Caller Privacy Lock App for Android

About this project

Caller Privacy Lock is a security-focused Android call management app that protects incoming caller details from lock-screen eavesdropping and shoulder surfing. Name, number, and photo stay masked behind a privacy shield until the user authenticates with the device’s own fingerprint, face unlock, or PIN/pattern/password. It integrates with Android’s Telecom framework, has a modern Material 3 dark UI built with Jetpack Compose, and works 100% offline with no third-party SDKs.

Objectives

Incoming caller details are visible on the lock screen to anyone nearby. The goal was to mask caller identity and reveal it only after the owner authenticates, using the security the phone already has.

Key Features

  • Lock-screen privacy shield that masks caller name, number, and photo
  • Reveal with the device's BiometricPrompt, with PIN/pattern/password fallback
  • Auto re-mask after a timeout or when the phone is laid face-down
  • Telecom InCallService and CallScreeningService integration
  • Audio routing (earpiece, speaker, Bluetooth), mic mute, and instant ringer silence
  • Obsidian and CyberCyan dark Material 3 UI with edge-to-edge layout

Development Process

  1. Used AI for the architecture and base code
  2. Reviewed and tested it myself
  3. Fixed and polished the final result by hand

Challenges & Solutions

  • Hiding identity until authenticated: Caller data stays masked in the call UI until BiometricPrompt or device credentials succeed
  • Audio routing across Android versions: The Communication Device API is used on Android 12+, with a legacy fallback for older versions
  • Privacy that resets itself: Caller identity is re-masked automatically after a timeout or when the device is laid face-down.

Technologies & Frameworks

Jetpack ComposeMaterial 3Android Telecom APIBiometricPromptNavigation ComposeCoroutines

Integrations & APIs

Android Telecom APIInCallServiceCallScreeningServiceAudioManagerAndroidX Biometric

Architecture & Libraries

Clean architecture with unidirectional data flow (UDF), ViewModel, StateFlow, Navigation Compose, Core Splashscreen.

Backend & Database

  • No backend: fully offline, no telemetry
  • DataStore and Encrypted SharedPreferences for settings and security preferences
  • Android Keystore for protected data

Outcomes & Results

  • Working dialer with authenticated caller reveal and native call management
  • Fully offline, with no trackers, ads, or third-party SDKs
  • Open-source on GitHub

Need something similar?

Farhan Saeed · Available for new projects