Repository navigation
Binot v1.1.8
Obinot v1.1.8 — Changelog
Version: 1.1.8 (versionCode 20)
For Everyone
✨ Highlights
- The app is now called Obinot (a fork of Binot) so it can coexist with the original on the same device. Existing notes, audio, and backups are 100% compatible.
- 7 color palette styles to theme the whole app (Tonal Spot, Vibrant, Expressive, Fruit Salad, Neutral, Fidelity, Monochrome).
- Colored labels — assign a color to each label so you can spot them at a glance in History and the reader.
- Auto Compression — long recordings get shrunk automatically before being sent to AI providers that have a size limit.
- Unified file picker (BETA) — one sheet that lists both device audio files and exported
.binotnotes. - Drag & drop import — drag audio files or
.binotnotes into the app from a file manager.
🆕 New Features
- Rebranded to Obinot across the app, notifications, exports, and share messages.
- Color palette selector in Settings, powered by MaterialKolor.
- Label colors with a swatch picker (including a "Dynamic" option that follows the theme).
- Auto Compression with three levels: Off, Balanced (24 MB target), Max (15 MB target).
- Live Transcript toggle (BETA) — in Accurate mode you can now choose whether the phone’s recognizer runs alongside the recorder. Off by default because it fails on many devices.
- Native Audio Picker (BETA) — Settings toggle to use Obinot’s own picker instead of the system file picker.
- Unified picker with two tabs: Audio and
.binotNotes, plus a "Browse files" fallback. - Drag & drop in both the Record and History screens, with a visual “Drop to import” overlay.
- Enhanced Markdown reader — tables, code blocks, blockquotes, links, KaTeX, and Mermaid diagrams all render properly.
- Per-task AI models — lighter models for titles/explanations, heavier models for transcription/processing.
- Better background-recording notification with a native chronometer and no flicker.
- Dynamic mode — the old “Mix” mode has been renamed for clarity (same feature).
🐛 Bug Fixes
- Fixed color palette styles being ignored when the device supported wallpaper colors.
- Fixed Fruit Salad/Rainbow behavior: the label now maps to a genuinely colorful palette.
- Fixed Audio Compressor hanging on long recordings; rewritten to be reliable and to report progress.
- Fixed compression stalls being reported as “Unknown error”; now they fail fast with a clear message.
- Fixed buttons sometimes not bouncy on very quick taps; the squish is now forced when needed.
- Fixed FAB shadow glitch while scrolling in History.
- Fixed drag & drop rejecting valid files whose MIME type wasn’t
audio/*. - Fixed labels rendering gray instead of using the theme color when no color was assigned.
- Fixed Audio picker showing “no files” because the storage permission was never requested.
- Fixed live transcript caption saying “disabled” even when it was running.
- Fixed Markdown losing KaTeX/Mermaid renders while scrolling (no more “blank until re-render”).
- Fixed several Material 3 Expressive build issues (DropdownMenu, AnimatedVisibility, ButtonGroup).
- Fixed notification updating every second during background recording.
For Developers
- Rebrand:
app_name,Theme.Obinot,ObinotFilePickerSheet, share MIME text, and export filenames updated. DB schema and.binotformat unchanged for compatibility. - New data layer:
LabelEntity,LabelDao,LabelRepository; DB bumped to v7 withMIGRATION_6_7for thelabelstable. - Theme: integrated MaterialKolor (
DynamicMaterialExpressiveTheme);ColorStyleenum (7 values) mapped toPaletteStyle; wallpaper color now used only as seed. - AudioCompressor: rewritten from sync
dequeue*Bufferloop to asyncMediaCodec.Callbackwith dedicatedHandlerThreads, a boundedLinkedBlockingQueuefor backpressure, stall detection, and hard timeout. - Live Transcript: new
LIVE_TRANSCRIPT_KEYinSettingsRepository;AudioRecorderManager.startRecording(...)takesliveTranscriptEnabled; default OFF. - Native picker toggle:
NATIVE_PICKER_KEY;ObinotFilePickerSheetreplacesAudioFilePickerSheet(kept as alias). - Drag & drop wired via
Modifier.dragAndDropTargetinRecordScreenandHistoryScreen; usesclipDataonly for URIs. - MarkdownText: migrated from
LazyColumntoColumn + verticalScrollto preserve WebView state; accepts optionalSnapshotStateMap<Int, Int>for scroll-to-line. - Bouncy components: unified
observeBouncyPress(...)helper; extracted from everyBouncy*composable. - Model routing:
GeminiModels/GroqModelsconstants; per-task model selection; Dynamic mode routes by size/context with quota balancing. - Settings refactor: reusable
SettingsSelectorRow+SettingsSelectionSheet+BetaBadge. - Manifest:
READ_MEDIA_AUDIO(33+) andREAD_EXTERNAL_STORAGE(≤32) added for the native picker. - Version:
1.1.8/20.