Skip to content

BoardPandas/notification-hub

Repository files navigation

Notification Hub

An Android app that captures and preserves all your phone notifications, even after you dismiss them. Built for sideloading on OnePlus 15 (OxygenOS 16.0.2).

Download

Download Notification Hub v1.0.2 (Release APK)

Install via ADB:

adb install notification-hub-release.apk

Screenshots

Dark mode    Light mode

What It Does

  • Captures every notification your phone receives in real-time
  • Stores notifications locally for 7 days
  • Organizes notifications by day (Today, Yesterday, older dates)
  • Persists dismissed notifications so you can always go back and check
  • Supports light and dark mode with a custom color theme
  • Auto-cleans notifications older than 7 days

Tech Stack

  • Language: Kotlin
  • UI: Jetpack Compose + Material Design 3
  • Database: Room (SQLite)
  • Architecture: ViewModel + Flow
  • Min SDK: 29 (Android 10)
  • Target SDK: 36 (Android 16)

How It Works

The app uses Android's NotificationListenerService to capture all notifications as they arrive. Each notification is saved to a local Room database with the app name, title, text, and timestamp. The UI reads from the database using Kotlin Flows, so the list updates in real-time. A cleanup task removes entries older than 7 days.

Setup

Prerequisites

  • Android Studio (latest stable)
  • JDK 17+
  • Android SDK 35

Build & Install

# Clone the repo
git clone <repo-url>
cd notification-hub

# Open in Android Studio and sync Gradle
# Or build from command line:
./gradlew assembleDebug

# Install on connected device
adb install app/build/outputs/apk/debug/app-debug.apk

First Launch

  1. Open Notification Hub on your phone
  2. Tap "Open Settings" to grant notification access
  3. Find "Notification Hub" in the list and enable it
  4. Return to the app - notifications will start appearing as they arrive

Project Structure

app/src/main/java/com/notificationhub/
├── NotificationHubApp.kt          # Application class (database init)
├── MainActivity.kt                # Entry point, permission check
├── data/
│   ├── NotificationEntity.kt      # Room entity (DB schema)
│   ├── NotificationDao.kt         # Database queries
│   └── NotificationDatabase.kt    # Room database singleton
├── service/
│   └── NotificationCaptureService.kt  # NotificationListenerService
├── ui/
│   ├── theme/
│   │   ├── Color.kt               # Brand color palette
│   │   ├── Theme.kt               # Light/dark theme config
│   │   └── Type.kt                # Typography
│   ├── screens/
│   │   └── NotificationListScreen.kt  # Main screen
│   └── components/
│       └── NotificationCard.kt    # Individual notification card
└── viewmodel/
    └── NotificationViewModel.kt   # Data layer for UI

Color Palette

Color Hex Usage
Punch Red #E63946 Accents, errors, tertiary
Honeydew #F1FAEE Light background
Frosted Blue #A8DADC Secondary, dark primary
Cerulean #457B9D Light primary
Oxford Navy #1D3557 Dark background, light text

Key Commands

# Build debug APK
./gradlew assembleDebug

# Build release APK
./gradlew assembleRelease

# Run unit tests
./gradlew test

# Run instrumented tests
./gradlew connectedAndroidTest

# Lint check
./gradlew lint

Claude Code

This project includes a .claude/ folder with skills, agents, and settings for Claude Code.

Slash commands: /build-and-fix, /code-review, /security-scan, /performance-review, /dependency-audit, /test-scaffold, /doc-sync, /dev-docs, /init-repo, /update-practices

Agents: architect, reviewer, security, performance, build-error-resolver, code-architecture-reviewer, production-principles-enforcer, strategic-plan-architect

See instructions.md for full usage details.

License

MIT

About

Android App for Notification History

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages