Skip to content

Releases

LINEA v2.8.0 — Universal Contact Import/Export, Material 3 Expressive & Sovereign Merge

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 07 Nov 16:40

LiNEA v2.8.0

Overview

LiNEA v2.8.0 delivers universal sovereign contact import and export, in-place dialed number cursor editing, the Material 3 Expressive motion and animation suite, an offline multi-tier contact merge and cleanup engine, and an independent side-by-side Beta release variant.


Key Highlights

  • Universal Contact Import & Export: Full on-device support for vCard 3.0 (.vcf), CSV (.csv), and structured sovereign JSON (.json) with configurable duplicate resolution policies (Merge Existing, Skip Duplicates, Keep Both) via the Android Storage Access Framework.
  • In-Place Dialpad Cursor Editing: Direct tap-to-position and horizontal drag-to-scrub cursor positioning across dialed digits, enabling rapid typo corrections without clearing numbers.
  • Material 3 Expressive Design: Integrated dynamic scalloped brand badging, key squash-and-stretch elastic press physics, living breathing call button animations, and expressive navigation indicators.
  • Sovereign Contact Merge & Cleanup: Deterministic multi-tier duplicate detection, candidate grouping, live merge previews with selectable surviving display names, and full atomic rollback ledger.
  • Side-by-Side Beta Variant: Introduces LINEA Beta (com.ryanshelby.linea.beta), enabling risk-free evaluation of pre-release builds alongside stable installations on the same device.
  • Tactical Caller ID & Shortcodes: On-device caller ID recognition for carrier care helplines (e.g. 121, 611) and emergency numbers (911, 112, 999), resolving false-positive foreign timezone alerts.
  • Private Vault Security Hardening: Upgraded to Argon2id (RFC 9106) memory-hard key derivation for vault PIN and recovery verification with progressive anti-brute-force lockout.

Release Metadata

  • Version: 2.8.0 (versionCode 14)
  • Target SDK: Android 17 (API 37) | Minimum SDK: Android 13 (API 33)
  • Privacy Architecture: 100% Offline • Zero Telemetry • AES-256-GCM Vault

Assets

File Package Name Size
LiNEA-v2.8.0-release.apk com.ryanshelby.linea 31.42 MB
LiNEA-v2.8.0-beta.apk com.ryanshelby.linea.beta 31.42 MB

LiNEA v2.7.0 — Crystal Design & Easter Egg

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 28 Oct 19:53

🚀 LiNEA v2.7.0 — Release Notes

Overview

LiNEA v2.7.0 introduces the Crystal Design System — an optional, switchable liquid-glass aesthetic featuring live background refraction, dimensional surfaces, and fluid spring physics — alongside an instant Call Button Easter Egg, streamlined long-press actions, elevation of the platform baseline to Android 13 (API 33), and complete resolution of 15 Android Telecom and telephony lint issues.


What's New in v2.7.0

💎 Crystal Design System (Liquid-Glass Aesthetic)

  • Selectable Design Theme: Switch seamlessly between Classic (Tactile Neumorphism) and Crystal (Liquid Glass) under Settings → Appearance → Design. The saved design is independent of Light, Dark, OLED, and System color modes.
  • Live GPU Glass Renderer: Built on AGSL (RuntimeShader) for Android 13+ and GPU GraphicsLayer backdrop capture (CrystalBackdropCapture), dynamically displacing source pixels using signed distance and edge normal math with specular highlights and RenderEffect backdrop blur. No heavy third-party rendering dependencies, screenshot readbacks, or idle animation loops.
  • Full-Screen Cohesive UI:
    • Crystal Dialpad: Stable glass keypad with responsive tactile compression and tilt physics on keypress (CrystalDialpadLayout, CrystalCallButton), with a scrollable upper region for suggestions and setup banners on compact viewports.
    • Floating Glass Dock: Frosted glass navigation bar (CrystalNavBar) with live background refraction, diffusing content scrolling beneath it with a spring-animated tab lens.
    • Contacts & Profiles: Portrait-focused favorites strip, expanded contact cards, and alphabet scrubber rail with proper dock clearance.
    • In-Call & Incoming Screens: Dynamic CallScene sampling the caller's poster, crisp action typography, and contrasting foregrounds across all color modes.
    • Optics Modes: Configurable optics profiles (Performance, Balanced, Full Optics) to tailor GPU refraction effects to device hardware capabilities.

🔮 Call Button Easter Egg

  • Instant Alternate Skin Reveal: Press and hold the call button on the dialpad to reveal its alternate skin in a single intuitive gesture with tactile spring feedback, without invoking an accidental outgoing call.

Key Improvements & Fixes in v2.7.0

⚡ Telecom, Telephony & Platform Quality

  • Streamlined Dialpad Interactions: Removed legacy orbital speed dial options when pressing and holding the call button, dedicating the gesture to the easter egg. Standard number-key speed dial (press and hold 1–9) and "hold 0 for +" remain fully functional.
  • Android 13 Baseline: Raised the minimum supported platform version to Android 13 (API 33), targeting Android 17 (API 37), enabling native AGSL runtime shaders, per-app language settings, and modern Telecom security APIs.
  • Zero Android Lint Issues: Resolved all 15 previously reported Android lint warnings and errors across Telecom authorization checks, subscription access, window key event dispatch (CallKeyEventInterceptor), notification permission guards (CallNotificationManager), and telephony hardware declarations (android.hardware.telephony marked optional for tablet and Wi-Fi device compatibility).

Release Metadata

  • versionCode: 12
  • versionName: 2.7.0
  • Min SDK: Android 13 (API 33)
  • Target SDK: Android 17 (API 37)

Assets

Asset Name SHA-256 Digest Size
LiNEA-v2.7.0-release.apk 480b2970339c0dcd698c3816792ff925ce2098f57dcee2654dab92447394bd7b 30.00 MiB

LiNEA v2.6.1 — Dual-SIM Identification & Telephony Resolution

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 19 Oct 10:18

🚀 LiNEA v2.6.1 — Release Notes

Overview

LiNEA v2.6.1 delivers critical correctness fixes for Dual-SIM Identification & Telephony Resolution, implementing a deterministic 5-tier resolution chain across Android's Telecom framework, eradicating phantom SIM 2 fallbacks, enforcing single-SIM UI cleanliness, and ensuring seamless call log synchronization.


Key Fixes & Optimizations in v2.6.1

📶 Dual-SIM Identification & Telephony Resolution Chain

  • Deterministic SIM Slot Resolution: Implemented a robust 5-tier resolution chain in SimAccountResolver mapping Call / CallLog → PhoneAccountHandle → SubscriptionInfo → physical/logical 0-based SIM slot index (0 for SIM 1, 1 for SIM 2) → display label. Replaced fragile default-SIM assumptions, arbitrary ID sorting, and last-dialed guesswork with verified subscription mappings.
  • Elimination of Speculative Fallbacks & Phantom SIM 2: Completely eradicated speculative callCapablePhoneAccounts fallback loops that erroneously synthesized phantom "SIM 2" indicators on single-SIM devices and emulators. Active multi-SIM detection is now strictly bound to hardware-verified SubscriptionManager.activeSubscriptionInfoList.
  • Clean Single-SIM Interface Degradation: Enforced a zero-clutter rule for single-SIM devices across the entire UI. SIM selector pills, badges, and labels are fully hidden across the dialpad, recent calls history, call detail sheets, incoming call overlay, active call screen, and missed call notifications when only one SIM is present.
  • Persistent In-Call SIM Indicators: Added spring-animated glassmorphic SIM indicator pills ("SIM 1" / "SIM 2") under caller identity during incoming calls, outgoing dialing, and connected calls. The indicator cleanly persists across in-call state changes including Hold, Mute, Speakerphone, and Bluetooth routing without shifting action controls.
  • System Call Log & Historical Record Attribution: Enhanced CallLogRepository to query system PHONE_ACCOUNT_ID and PHONE_ACCOUNT_COMPONENT_NAME. Integrated multi-tier fallback parsing to resolve historical calls and OEM-specific call log account handles (matching ICCID substrings and numeric subscription IDs).
  • Dynamic Subscription & Hot-Swap Monitoring: Integrated SubscriptionManager.OnSubscriptionsChangedListener and ACTION_SIM_STATE_CHANGED broadcast receivers to instantly update multi-SIM state, active slots, and UI visibility when physical SIMs or eSIM profiles are added, removed, or toggled at runtime.
  • Missed Call Notification Attribution: Formatted missed call notifications with " • SIM X" attribution badges exclusively on dual-SIM devices, preventing notification clutter on single-SIM setups.
  • Unit Test Coverage: Added comprehensive test suite in SimAccountResolverTest verifying slot index resolution, single-SIM hiding, dual-SIM attribution, eSIM + physical SIM setups, call log ICCID/subId parsing, emergency calls, and hot swaps.

Release Metadata

  • versionCode: 11
  • versionName: 2.6.1
  • Min SDK: Android 11 (API 30)
  • Target SDK: Android 17 (API 37)

Assets

Asset Name SHA-256 Digest Size
LiNEA-v2.6.1-release.apk 0872a677e831eab4ec7003bd60abd024d0fb823322de45b802228081690c79e3 30.11 MiB

LiNEA v2.6.0

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 18 Oct 20:54

🚀 LiNEA v2.6.0 — Release Notes

Overview

LiNEA v2.6.0 introduces the Navbar Customization System — allowing full visual, dimensional, and animation control over the bottom navigation bar — alongside critical Incoming Call Ringtone Resilience enhancements, AAC-LC asset transcoding, and extended Telecom startup grace periods.


What's New in v2.6.0

🧭 Navbar Customization System

  • Style Selector: Choose between:
    • Floating Circle (Default): A minimalist, floating circular glass button with 1-tap expansion, 5-second automatic collapse, and direct 4-way gesture flick navigation.
    • Expanded Pill Bar: A persistent, full-width frosted glass pill bar with instant direct one-tap tab switches.
  • Dynamic Circle Sizing: Customize the physical diameter and thumb touch footprint of the collapsed floating button across 4 distinct sizes:
    • Compact: 48 dp (minimal visual footprint, ideal for small screens).
    • Standard: 56 dp (default balanced ergonomic sizing).
    • Comfortable: 64 dp (generous touch targets for easy reach).
    • Large: 72 dp (maximum accessibility and thumb reachability).
  • Animation & Motion Dynamics: Configure morphing and stretch spring dynamics with selectable physics profiles:
    • Bouncy Spring (Default): Playful spring bounce with high damping ratio.
    • Smooth Fluid: Silky smooth motion with low stiffness and critical damping.
    • Snappy Quick: High-stiffness instant transitions with minimal bounce.
    • Minimal Fade: Clean, subtle crossfades for low-distraction navigation.
  • Interactive Live Sandbox: An embedded live preview inside Settings allowing users to interact with, expand, and flick the actual navbar while tweaking styles, sizes, and physics in real time.
  • Gesture Quick-Reference Guide: Interactive visual guide detailing Tap expansion, 4-Way Gesture Flick (jump directly to tabs without expanding), and Triple-Tap persistence toggle.
  • Settings Integration & Search Engine: Dedicated entry under Appearance & Motion with dynamic status subtitles, mode badges, and instant discovery via the Settings search engine.

Key Fixes & Optimizations in v2.6.0

🔊 Ringtone Resilience & Codec Transcoding

  • Standard AAC-LC Transcoding: Re-encoded embedded ringtones (ring_glass.m4a, ring_minimal.m4a) to standard AAC-LC / 44.1kHz stereo format, eliminating playback stalls and decoding failures on strict hardware media decoders.
  • 3-Tier Ringer Fallback Chain: Built resilient fallback architecture in IncomingCallActivity attempting custom raw resource → system ringtone URI stream → default notification alert sound, guaranteeing an incoming call is never silent even if a custom sound resource fails to load.
  • Telecom Silence Grace Period Extension: Extended startup silence grace period from 600ms to 2000ms upon initial Telecom connection to eliminate ringer startup race conditions and prevent spurious volume key events from silencing the incoming call ringtone.

Release Metadata

  • versionCode: 10
  • versionName: 2.6.0
  • Min SDK: Android 11 (API 30)
  • Target SDK: Android 17 (API 37)

Assets

Asset Name SHA-256 Digest Size
LiNEA-v2.6.0-release.apk 314acccb4f82ef64ee2378d80c9efdb776454c86ae2d0e39f6c818e79c3c1958 30.08 MiB

LiNEA v2.5.0

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 15 Oct 22:54

🚀 LiNEA v2.5.0 — Release Notes

Overview

LiNEA v2.5.0 is a major stable release introducing the Country-Based Call Blocking System, an overhaul of the incoming call audio pipeline and telecom logging, battery drain optimizations, native default dialer power exemption support, and missed call notification deduplication.


What's New in v2.5.0

🌍 Country-Based Call Blocking System

  • Comprehensive Country Filter: Blacklist or whitelist international callers by country with strict "Whitelist Only" and "Blacklist Only" filtering modes.
  • High-Precision Country Detection: Powered by Google libphonenumber to accurately identify caller countries from E.164 and localized numbers, seamlessly disambiguating shared country codes (e.g., USA vs. Canada under +1, Russia vs. Kazakhstan under +7).
  • Granular Exemptions: Specific countries under a shared dialing code can be allowed even if the code itself is blocked.
  • Domestic & Contact Bypass: Contacts and calls originating from the device's domestic SIM country bypass blocking automatically to ensure critical calls are never missed.
  • Management UI: Dedicated settings interface with flag-based selectors, search integration, and a status dashboard on the main Blocking Screen.

Key Fixes & Optimizations in v2.5.0

🔊 Incoming Call Audio Pipeline & Ringer

  • Audio Attributes & Stream: Configured ringtone playback strictly with USAGE_NOTIFICATION_RINGTONE and STREAM_RING, properly requesting transient audio focus with ducking.
  • Eliminated Silent Ringing: Resolved volume key silencing race conditions and state desynchronization that previously caused incoming calls to ring silently.
  • Vibration Synchronization: Ensured vibration patterns synchronize cleanly with ringtone playback and immediately halt upon call answer, reject, or disconnect.

🔋 Battery Drain Elimination & Power Exemption

  • Native Default Dialer Exemption: Fully integrated Android's native ROLE_DIALER unrestricted battery usage exemption (PowerExemptionManager.REASON_ROLE_DIALER), eliminating redundant "Background Execution ATTENTION" setup warnings.
  • NFC Radio Transmitter Scoping: Removed continuous background reader mode polling from MainActivity.onResume(). Scoped NFC hardware polling strictly to LineaBeamSheet via DisposableEffect, eliminating continuous 2–3Hz radio transmitter pulsing.
  • Sensor Hardware Leak Prevention: Synchronously cancelled pending startup coroutines upon stopListening() in CallGestureManager, ensuring accelerometer and proximity sensors never remain active in the background after quick call termination.
  • Proximity Sensor Power Rail Release: Changed proximity wake lock release to drop immediately (release(0)) upon call disconnect, preventing the physical proximity sensor rail from holding power for up to 2 hours when placed face-down or pocketed.
  • Worker Constraints: Added setRequiresDeviceIdle(true) and setRequiresBatteryNotLow(true) to periodic call history maintenance work.

🔔 Missed Call Notification Deduplication

  • Phone Number Digit Normalization: Normalized digits so raw telecom handles and formatted numbers map to identical notification IDs.
  • Suppression Window: Added a 15-second deduplication suppression window in CallNotificationManager to prevent duplicate alerts.
  • Broadcast Coordination: Updated MissedCallReceiver to suppress redundant platform ACTION_SHOW_MISSED_CALLS_NOTIFICATION broadcasts when InCallService has already posted, while maintaining asynchronous contact lookup fallback.

📋 Telecom Logging & Call History

  • Accurate Duration Tracking: Computed call duration using elapsed monotonic connect time rather than wall-clock differences, preventing duration errors during screen-off sleep.
  • Direction Classification: Fixed direction assignment on call removal to ensure missed, incoming, and outgoing calls are categorized and persisted to Room without dropped records.

Release Metadata

  • versionCode: 9
  • versionName: 2.5.0
  • Min SDK: Android 11 (API 30)
  • Target SDK: Android 17 (API 37)

v2.5.0-beta

v2.5.0-beta Pre-release
Pre-release

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 10 Oct 21:17

LiNEA v2.5.0-beta Release Notes

Added

  • Country-Based Call Blocking System:
    • Country Blacklist / Whitelist: Added a comprehensive country-based call filter with strict "Whitelist Only" and "Blacklist Only" modes.
    • High-Precision Country Detection: Integrated Google's libphonenumber to accurately identify caller countries from incoming E.164 and localized numbers. Disambiguates shared calling codes seamlessly (e.g., distinguishing between USA and Canada under +1, or Russia and Kazakhstan under +7).
    • Granular Controls: Specific countries under a shared dialing code can be whitelisted even if the entire code is blacklisted.
    • Contact & Domestic Exemptions: Saved contacts and calls originating from the user's domestic SIM country bypass blocking automatically to ensure critical calls are never missed.
    • Management UI: New dedicated "Country Call Blocking" settings interface with interactive flag-based selectors, search integration, and a status dashboard on the main Blocking Screen.
    • Safe Edge Case Handling: Private, unknown, and withheld caller IDs bypass country checks to avoid false classifications, delegating to the existing unknown caller filter rules.

Note: If you find any errors or bugs, please let us know at ryn@disr.it

LiNEA v2.4.1

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 29 Sep 19:15

🚀 LiNEA v2.4.1 — Release Notes

Overview

LiNEA v2.4.1 is a critical patch release fixing the QR code scanner crash on physical devices, adding reliable hardware button call controls (volume/power silencing and power double-press to end call), and resolving 30+ application-wide bugs across telecom stability, security, and UI/UX.


What's Fixed in v2.4.1

📸 QR Code Scanner — Physical Device Camera Crash & Blank Screen

  • R8 / ProGuard Fix: Added -keep rules for Google ML Kit component discovery, CameraX, and ZXing classes in proguard-rules.pro. Release builds with R8 minification were stripping ML Kit reflection, causing a NullPointerException crash when opening the QR scanner on physical devices.
  • Real-Time Offline ZXing Fallback: If ML Kit fails to initialize (stripped by R8, missing Google Play Services, or device-specific issues), the scanner seamlessly falls back to offline ZXing Y-plane luminance decoding — zero external service dependencies.
  • OEM Lifecycle Fix: Resolved blank camera frames on Samsung OneUI, Xiaomi HyperOS, and ColorOS caused by synthetic dialog window lifecycles by resolving the hosting ComponentActivity directly.
  • 3-Tier Camera Resolution Strategy: Automatic fallback from 720p → CDD default → Preview-only to prevent IllegalArgumentException crashes across all camera hardware levels (LEGACY, LIMITED, FULL).
  • Interactive Error UI: Camera failures now show "Retry Camera" and "Scan Photo" buttons instead of a blank screen.

📞 Incoming Call Hardware Button Behavior

  • Volume Up/Down → Silence: Pressing either volume button during an incoming call immediately silences the ringtone. Grace period reduced from 2000ms to 600ms for near-instant responsiveness.
  • Power Button → Silence: A single power button press reliably silences the ringtone. Removed the proximity sensor gate that was blocking power button behavior when the phone was near the user's face or in a pocket.
  • Power Button ×2 → End Call: Two rapid power button presses (within 1 second) reject/terminate the call — works for incoming, outgoing, and active calls. Implemented via ACTION_SCREEN_OFF + ACTION_SCREEN_ON broadcast detection.

🔧 Full Application Audit & Multi-Phase Bug Fixes

  • Telecom & In-Call: Fixed double-dispose crash on rejected calls, audio route desync, SIM selection race condition, duration timer drift, and missing FOREGROUND_SERVICE_PHONE_CALL on Android 14+.
  • Security & Vault: Hardened biometric re-authentication, constant-time PIN comparison, and orphaned contact cleanup on deletion.
  • UI/UX: Eliminated scroll jank on Recent calls, fixed DTMF overlap, search highlight desync, corrupt backup/restore handling, and light theme contrast issues.

What's New in v2.4.1

  • Closed-app NFC mutual beam processing, tag detection diagnostics, and retry workflows.
  • "Always Share" mode and persistent digital card profile synchronization.
  • Dynamic app version display in Settings footer.

⚠️ NFC Beaming is currently in the testing phase. If you encounter any bugs or issues with NFC contact sharing, please report them to ryn@disr.it.


Release Metadata

  • versionCode: 7
  • versionName: 2.4.1
  • Min SDK: Android 11 (API 30)
  • Target SDK: Android 17 (API 37)

LiNEA v2.3.0 — Bespoke Liquid QR Contact Sharing & Compact Quick-Copy

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 20 Sep 18:54

🚀 LiNEA v2.3.0 — Release Notes

Overview

LiNEA v2.3.0 introduces bespoke liquid-capsule QR code contact sharing, an ultra-fast Google ML Kit scanner strictly filtered for LiNEA codes, one-tap number copying, and a compact 1-second hold-to-copy sheet for Recent call history.


What's New in v2.3.0

📷 Bespoke Liquid-Capsule QR Code Contact Sharing

  • Organic Liquid Matrix: Designed an organic capsule matrix renderer where adjacent data modules fuse into continuous rounded capsules ($R = \text{moduleSize} \times 0.42$), eliminating harsh pixel squares.
  • Squircle Finder Eyes & Monogram Badge: Precision squircle finder eyes with vibrant gradient centers and a central contact initial badge protected by QR Level Q error correction (25% data recovery).
  • 5 Tactile Color Palettes: Seamless transparent in-app previews and high-res export formats in Titanium Cyan, Emerald Mint, Cyber Amber, Neon Orchid, and Pure White.
  • Fast Access: One-tap QR generator directly accessible from the Contacts list, Contact Profile Dashboard, and Recent Call Details.

🔍 Strict LiNEA QR Code Scanner & Multi-Code Prioritization

  • Strict LiNEA Filtering: Camera preview and gallery photo import engine strictly decode authentic LiNEA QR codes (linea://contact and linea://), ignoring random QR codes (websites, Wi-Fi setups, generic barcodes, plain text).
  • Multi-Code Prioritization: When multiple QR codes are simultaneously visible in the camera frame or imported photo, the scanner isolates and detects only the LiNEA QR code.
  • Informative Validation: Imported photos without valid LiNEA QR codes provide clear feedback without crashing or false-triggering.
  • Hardware Controls: Tap-to-focus, flashlight torch toggle, and gallery photo picker with dual-pass ZXing fallback.

📋 Instant One-Tap Number Copying

  • Decoded QR Card Copy Badge: Added a prominent, frosted-glass [ Copy ] button to the decoded QR contact card alongside "Scan Again".
  • Per-Row Tap-to-Copy: Tapping any phone number row in the decoded card copies it immediately to the clipboard with haptic feedback and a toast notification.

⏱️ Recent Call Log 1-Second Hold-to-Copy Sheet

  • 1-Second Touch & Hold: Holding any call log entry on the Recent page (both Feed and Session modes) for 1 second triggers an ultra-compact bottom sheet.
  • Ultra-Compact Footprint: Minimalist layout featuring the contact avatar and name horizontally aligned, followed by a sleek frosted-glass card displaying PHONE NUMBER, the full number, and a [ ⎘ Copy ] pill badge.
  • Direct Clipboard Action: Tapping anywhere on the card or badge copies the number to the clipboard and smoothly dismisses the sheet.
  • Touch-Slop Safety: Cancels hold detection if user is scrolling the list vertically or swiping horizontally for call-back / quick-action trays.

Release Metadata

  • versionCode: 5
  • versionName: 2.3.0
  • Min SDK: Android 11 (API 30)
  • Target SDK: Android 17 (API 37)

LiNEA v2.2.0 — Dual-SIM Architecture, Smart History Filters & Fiery Magma Easter Egg

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 13 Sep 23:27

🚀 LiNEA v2.2.0 — Release Notes

Overview

LiNEA v2.2.0 brings enhanced dual-SIM management, smart call history filtering, critical telephony audio fixes, and a secret cinematic Easter Egg.


What's New in v2.2.0

📱 Configurable SIM Selector Position (Middle vs Bottom)

  • Floating Middle Dialog (Default): The "Select Calling SIM" overlay now floats gracefully in the center of the screen within a translucent frosted glass neumorphic card with backdrop blur and tap-outside dismissal.
  • Traditional Bottom Sheet Option: Users preferring a sliding sheet from the bottom can toggle it with a single tap in Settings → Dual SIM Management.
  • Unified Across App: Both the Cellular Dial Pad and Recent History call-backs honor this position preference reactively.

🔍 Recent Call History Smart Filters (Incoming & Outgoing)

  • Added dedicated Incoming and Outgoing filter chips to the Recent screen filter bar alongside All and Missed.
  • Filter logs instantly across daily grouped feeds and aggregated contact sessions without re-querying the database.

🔢 Dial Pad "Always Ask" Symbol & Settings Affinity

  • Always Ask Symbol (?): Added a clean ? icon in the dial pad top-bar SIM pill when "Always Ask" mode is enabled in Settings, preserving neumorphic layout integrity.
  • Settings Affinity: The dial pad strictly honors the user's configured default SIM ("SIM 1 Only", "SIM 2 Only", or "Always Ask") upon opening. In-dialer SIM switching is temporary and never inadvertently overwrites permanent settings.

📲 Dynamic Single-SIM UX Optimization

  • Devices with only one active SIM slot automatically hide the static "SIM 2" row under Dual SIM settings.
  • The dial pad SIM selector pill is omitted on single-SIM setups, cleanly routing calls through the active SIM.

🛡️ Telephony Audio & UI Fixes

  • Bottom Sheet Dome Clipping: Corrected LineaShapes.extraLarge from CircleShape to RoundedCornerShape(28.dp), eliminating severe 50% dome clipping on sheet headers and buttons across SimSelectSheet, AddBlockSheet, AddEditCallRuleSheet, and CallbackReminderSheet.
  • Incoming Call Ringer Silencing: Prevented Telecom's internal onSilenceRinger() setup invocation and early VOLUME_CHANGED_ACTION broadcasts from prematurely silencing the incoming ringtone before playback starts.
  • History Call-Back Dual-SIM Selection: Integrated SimSelectSheet prompt when initiating call-backs from Recent call logs with dual SIM and "Always Ask" enabled.
  • Dial Pad SIM 2 Only Default: Resolved an issue where selecting "SIM 2 Only" in Settings still caused the dial pad to default to SIM 1.

🔥 Secret Easter Egg: Animated Fiery Magma Call Button

  • 3-Second Hold Trigger: Tap and hold the main Call button on the Cellular Dial Pad for 3 seconds to detonate an explosive slow-motion blast with fire shockwaves, embers, and shattered button shards.
  • Slow-Motion Healing / Rearranging: Following peak dispersion, shards magnetically rewind and reassemble into a permanent Fiery Magma Style.
  • Custom-Designed Animated Flame Icon: Hand-crafted fire handset featuring 3-layered roaring flame plumes, dragon-wing spine crests, rocket exhaust jets, and an incandescent white-gold core line with real-time fluttering flame tips (flameWobble) and floating ember sparks.
  • Reversible & Persistent: Saved in DataStore across app restarts; holding for 3 seconds again reverses the button back to default Titanium Blue.
  • Zero In-App Mentions: Kept entirely secret; normal short taps (<400ms) continue to place calls immediately.

Release Metadata

  • versionCode: 4
  • versionName: 2.2.0
  • Min SDK: Android 11 (API 30)
  • Target SDK: Android 17 (API 37)

LiNEA v2.1.0 — Tactile Neumorphism (Soft UI) & Hardware Controls

Choose a tag to compare

@MdSagorMunshi MdSagorMunshi released this 11 Sep 14:13

🚀 LiNEA v2.1.0 — Tactile Neumorphism (Soft UI) & Hardware Controls

What's New in v2.1.0

🎛️ Tactile Neumorphism (Soft UI) Architecture

• Replaced legacy UI styling with an architectural Soft UI Neumorphic design system.
• Engineered dual-shadow lighting engine (Modifier.neumorphic(), NeumorphicCard, NeumorphicWell, NeumorphicButton, NeumorphicIconButton) utilizing opposing top-left specular highlight and bottom-right ambient drop shadows via Android native canvas Paint.setShadowLayer.
• Dialpad digit keys depress physically into sunken wells on tap with tactile spring dynamics (ScaleCompressSpring) and micro-haptic confirmation.
• In-call controls depress into illuminated debossed wells with active status rings, balanced in an ergonomic 3x2 grid positioned in the bottom thumb zone.
• Transparent in-call keypad overlay with tap-outside dismiss gesture.
• Replaced floating navigation bar with extruded pill container and sunken debossed active tab well.
• Restyled search bars, filter chips, call history tiles, contact cards, and bottom sheets to physical tactile surfaces.

🔘 Hardware Button Call Control & Silencing

• Volume Up / Down Silencing: Pressing either Volume Up or Volume Down once during an incoming call immediately silences the ringtone and vibration without rejecting or ending the call, allowing it to continue ringing normally.
• Double-Press Power Button to End Calls: Rapidly pressing the hardware Power button twice terminates the current call across all states: incoming ringing (rejects), outgoing dialing (disconnects), and active/received conversations (disconnects), confirmed with a crisp haptic pulse.
• Protected with hardware debounce filtering (120ms threshold) and active call lifecycle binding.

📋 Call History Quick-Action Swipe Drawer

• Swipe left on any call log entry to smoothly reveal a stationary action drawer featuring Call, SMS, Add/View Contact, and Block action buttons with friction damping and tap-outside dismiss.
• Automatic call log deduplication by phone number, call type, and timestamp clustering with instant state synchronization.
• High-visibility red badge and red text indicators for the most recent unreturned missed call entries.

📇 Native Contact Sheet & Reactive Add-Contact Drawer

• Seamlessly integrates Android's native ContactsContract view and insert intents.
• Unknown callers in history can be saved immediately through a native bottom drawer without leaving the dialer.

🛡️ Sovereign Telephony & Cleanup

• Completely removed call recording, auto-record triggers, and accessibility services due to AOSP AudioPolicyService audio stream isolation on Android 10+.
• Removed real-time audio waving visualizer and background level polling to optimize in-call UI performance and eliminate mic contention.
• Resolved Compose nested column measurement expansion bug that caused the About screen hero card to balloon vertically.
• Fixed phone number sanitization and E.164 normalization across contact lookups, dialer actions, and system intent launches.


Installation

Download LiNEA-v2.1.0.apk and sideload it on your Android 11+ device.
Enable "Install from unknown sources" in Settings → Security if required.


versionCode: 3 | versionName: 2.1.0 | Min SDK: Android 11 (API 30) | Target SDK: Android 17 (API 37)