Modernization and CameraX Migration#2
Open
dandinu wants to merge 21 commits intoDanielBarnett714:masterfrom
Open
Modernization and CameraX Migration#2dandinu wants to merge 21 commits intoDanielBarnett714:masterfrom
dandinu wants to merge 21 commits intoDanielBarnett714:masterfrom
Conversation
…d adjust exported attributes for activities and receivers
…imely upload of recordings
…e, and improve formatting
…ITE_EXTERNAL_STORAGE permission check
- Created `fragment_dashboard.xml` for the dashboard layout including tracking status, Nextcloud status, quick stats, and recent activity sections. - Created `fragment_history.xml` for the history layout with filter chips and a RecyclerView for displaying tracking history. - Added `item_history_event.xml` and `item_tracking_event.xml` for individual event item layouts in the history and tracking sections respectively. - Introduced a bottom navigation menu in `bottom_nav_menu.xml` for easy navigation between Dashboard, History, and Settings. - Defined navigation graph in `nav_graph.xml` to manage fragment transitions. - Updated color resources in `colors.xml` to align with Material Design 3 dark theme. - Expanded string resources in `strings.xml` for new UI elements and navigation. - Established new styles in `themes.xml` for the application theme based on Material Design 3. - Created `preferences_root.xml` for app settings, including tracking and Nextcloud preferences.
New features in this release: - Photo browsing feature with developer tools access - Screenshot capture feature with MediaProjection support - Real-time tracking duration display - Screenshot capture toggle in preferences 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Introduced DataBrowserActivity to browse all captured data types (photos, locations, recordings). - Implemented CaptureAdapter to manage the display of various data types in a unified timeline. - Created CaptureItem class to represent different data types with appropriate metadata. - Added layout files for DataBrowserActivity and item views for locations and recordings. - Updated AndroidManifest.xml to declare the new DataBrowserActivity. - Modified SettingsFragment to link to the new Data Browser instead of the old Photo Browser. - Added drawable resources for icons used in the Data Browser. - Enhanced string resources for better user experience in the Data Browser. - Updated file paths for sharing recordings.
…onLocationChanged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR modernizes the Bloodhound codebase from its original 2017 implementation to work with modern Android versions, with a focus on migrating from the deprecated Camera API to CameraX.
Major Changes
🎥 CameraX Migration (Primary Focus)
Replaced deprecated
android.hardware.CameraAPI with CameraXSurfaceViewoverlay workaroundServiceCameraLifecycleOwnerCameraXCaptureManagerfor camera operationsTechnical Implementation
LifecycleOwnerfor service context (CameraX requires lifecycle support)Camera,SurfaceView,SurfaceHolder, andWindowManagercode fromBloodhoundService📱 Android SDK Updates
minSdkVersionfrom 22 → 24 (Android 7.0+)appcompat→ 1.6.1material→ 1.10.0recyclerview→ 1.3.2constraintlayout→ 2.1.4🔧 Build System Modernization
🛠️ Code Quality & Compatibility
android.support.testimports withandroidx.test📚 Documentation
Updated README.md with:
Created comprehensive CLAUDE.md for AI assistant guidance
Testing Recommendations
Manual Testing Required
Camera Capture Sequence
Pictures/directoryadb logcat | grep CameraXCaptureManagerNextcloud Integration
Permissions
Automated Testing
Breaking Changes
None - this PR maintains backward compatibility with existing functionality while modernizing the implementation.
Known Limitations (Unchanged)
Migration Benefits
Files Changed
New Files:
Modified Files:
Acknowledgments
This modernization effort preserves the original 2017 design and intent while making the codebase compatible with current Android standards and best practices.