XCall is a modern Android app for blocking spam and unwanted calls. Built with Kotlin, MVVM, Room, and Hilt, it provides a robust, extensible foundation for call management and privacy.
To provide users with a powerful, privacy-focused Android app to block spam calls, manage blacklists/whitelists, and keep track of blocked call logs with a clean, modern UI and scalable architecture.
- Block calls from blacklisted numbers
- Allow calls from whitelisted numbers
- Log and view blocked calls
- Import/export blacklist and whitelist
- Customizable settings
- Modern, reactive UI
- Built with best practices (MVVM, DI, Room)
app/src/main/java/com/loading/xcall
├── data
│ ├── BlacklistEntry.kt, WhitelistEntry.kt, BlockedCallLogEntry.kt
│ ├── BlacklistDao.kt, WhitelistDao.kt, BlockedCallLogDao.kt
│ ├── BlacklistRepository.kt, WhitelistRepository.kt, BlockedCallLogRepository.kt
│ ├── AppDatabase.kt
│ ├── DatabaseModule.kt, RepositoryModule.kt (Hilt DI)
│ └── lookup/ (import/export, settings, number lookup)
├── ui
│ ├── whitelist/ (Fragment, Adapter, ViewModel)
│ ├── blacklist/ (Fragment, Adapter, Dialog, ViewModel)
│ ├── blockedlog/ (Fragment, Adapter, ViewModel)
│ ├── calllogs/ (Fragment, ViewModel)
│ └── settings/ (Fragment, ViewModel)
├── util
│ ├── NotificationHelper.kt, PermissionManager.kt
├── XCallApp.kt (Application class)
├── MainActivity.kt
└── CallBlockingService.kt
- MVVM Pattern: Clean separation of UI, business logic, and data
- Room Database: Persistent storage for blacklists, whitelists, and blocked call logs
- Repository Pattern: Abstracts data access and business logic
- Hilt: Dependency injection for scalable, testable code
- StateFlow/LiveData: Reactive UI updates
- Clone the repo:
git clone https://github.com/Loading617/XCall.git cd XCall - Open in Android Studio (Arctic Fox or newer)
- Build & Run on an Android device or emulator (API 24+)
- Add numbers to the blacklist to block them
- Add numbers to the whitelist to always allow
- View blocked call logs in the Blocked Log tab
- Adjust settings as needed
Contributions are welcome! Please open issues or submit pull requests for improvements, bug fixes, or new features.
- Modularization (core/data/feature modules)
- Cloud sync (Firebase/Google Drive)
- Community spam list integration
- Advanced analytics and reporting
- Custom block rules (pattern/time/region-based)
- Accessibility improvements
- Comprehensive testing (unit/UI)
App Icon Color Inspired by JetBrains Amazing Programming Language Kotlin!
