-
-
Notifications
You must be signed in to change notification settings - Fork 89
Feat/fadrec screen recorder #192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
anonfaded
wants to merge
64
commits into
master
Choose a base branch
from
feat/fadrec-screen-recorder
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
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
- Introduced constants for screen recording actions, preferences, and settings in Constants.java. - Implemented SharedPreferencesManager methods for managing screen recording preferences (audio source, watermark, and in-progress state). - Created ScreenRecordingState enum to represent the state of screen recording. - Developed ScreenRecordingService to handle screen recording functionality using MediaProjection API, including start, stop, pause, and resume actions. - Added notification management for screen recording status updates. - Implemented file output creation for recorded videos in a dedicated directory. - Integrated wake lock management to keep the device awake during recording. - Broadcast intents for recording state changes (started, stopped, paused, resumed).
- Added MediaProjectionHelper class to manage screen capture permission requests and recording state. - Introduced FadRecHomeFragment to handle UI and functionality for screen recording. - Updated SharedPreferencesManager to store and retrieve current recording mode. - Enhanced ScreenRecordingService to handle MediaProjection results and manage recording lifecycle. - Modified ViewPagerAdapter to switch between FadCam and FadRec modes based on user selection. - Updated ModeSwitcherComponent to reflect current recording mode and handle mode changes. - Implemented broadcast receivers in FadRecHomeFragment to update UI based on recording state changes. - Added necessary strings for screen recording notifications and UI elements. - Refactored RecordsFragment to scan and display recordings from both FadCam and FadRec directories.
…e calculation, and UI improvements
… and enhanced animation handling
- Added a new PNG drawable for the screen recording icon. - Replaced the TextView for the screen recording icon with an ImageView in fadrec_screen_icon.xml. - Refactored fragment_home.xml to improve layout structure and readability, including: - Streamlined LinearLayouts and CardViews. - Updated UI elements for better consistency and alignment. - Removed unnecessary comments and cleaned up the code.
…ents, and new background bubble shape
…nd adjusted icon sizes
…ons and background
- Added SYSTEM_ALERT_WINDOW permission in AndroidManifest.xml for overlay functionality. - Implemented FloatingControlsService to manage floating controls overlay. - Created UI for floating controls including start, pause, resume, and stop buttons. - Integrated floating controls toggle in FadRecHomeFragment with SharedPreferences support. - Added necessary string resources for floating controls and permissions. - Introduced drawable resources for floating button and menu backgrounds. - Updated layout files for floating controls button and quick menu.
…ew recording controls
…ols, enhance UI elements
…rawing and controls - Added AnnotationService to manage drawing on screen during recording. - Created AnnotationView for custom drawing functionality. - Updated FloatingControlsService to include annotation toggle. - Designed annotation toolbar layout with tools for pen, eraser, color selection, and stroke width. - Added drawable resources for annotation tools and colors. - Updated strings.xml for new annotation feature.
…for enhanced drawing capabilities
… feedback - Implemented PageTabBarOverlay class to display horizontal tabs for annotation pages. - Added functionality to add, delete, and select pages with corresponding UI updates. - Created layout files for overlay and individual page tabs. - Enhanced AnnotationPage class with methods to retrieve undo/redo stack sizes. feat: Introduce LayerManagementBottomSheet for layer management - Created LayerManagementBottomSheet class to manage layers in the current annotation page. - Added functionality to toggle visibility, lock/unlock layers, adjust opacity, and reorder layers. - Implemented layout for layer management with RecyclerView for layer items. feat: Add PageManagementBottomSheet for managing annotation pages - Developed PageManagementBottomSheet class to handle page operations such as adding, deleting, and renaming pages. - Integrated RecyclerView for displaying pages with corresponding actions. style: Update UI elements for better user experience - Added drawable resources for selected layers and pages. - Modified annotation toolbar layout to include undo/redo counters. - Created new layout files for layer and page management bottom sheets, including item layouts for layers and pages. fix: Ensure proper visibility and interaction for layer and page items - Implemented visibility toggles and delete buttons for layers and pages. - Enhanced item layouts to provide clear information and actions for users.
- Simplified the XML structure of the annotation toolbar for better readability. - Added a new dialog layout for shape selection with various shape options. - Introduced a dialog layout for text editing, including font size and color options. - Enhanced the user interface elements for better accessibility and usability.
- Added long-press detection for quick dragging of selected objects in AnnotationView. - Implemented Telegram/Instagram-style selection handles for scaling and rotation. - Introduced SelectionHandlesView to manage the display and interaction of selection handles. - Updated AnnotationObject to support scaling with a new scale property. - Enhanced TextObject to dynamically calculate bounds for hit testing and rendering. - Integrated persistent project management in ProjectFileManager with current project tracking. - Improved TextEditorDialog to allow editing of existing text with initial values.
…nView and adjust TextObject bounds for consistent transformations
…ionView with user-configurable guides
…ap guides functionality
- Created dialog_annotation_close_confirm.xml for confirming actions related to annotation overlays, including options to hide the overlay, stop the service, or cancel. - Created dialog_project_management.xml for managing annotation projects, featuring a list of projects and options to create a new project or close the dialog. - Updated item_annotation_layer.xml and item_layer_row.xml to streamline layout definitions and improve readability, while maintaining functionality for layer management controls.
…or enhanced color selection
…e snapping behavior
…date layout structure for button
…nitized name preview and improved UI elements
- Improved project loading logic to prevent overwriting current project state with stale data. - Moved project scanning to a background thread to avoid UI lag during initialization. - Added Material loading dialog to provide feedback during annotation service startup. - Updated UI elements in the annotation toolbar for better accessibility and consistency. - Introduced new drawable resources for tool buttons and backgrounds to maintain a cohesive design. - Enhanced layer panel overlay with improved visibility and lock controls. - Updated color resources for better contrast and visual hierarchy in the annotation interface.
- Added drag handle with a toast message indicating upcoming feature. - Implemented rename functionality with a broadcast intent for page renaming. feat: Introduce AddLayerCommand and DeleteLayerCommand for layer management - Created AddLayerCommand to facilitate layer addition with undo/redo support. - Implemented DeleteLayerCommand to enable layer deletion with undo/redo capabilities. refactor: Update AnnotationPage for improved undo/redo management - Enhanced undo/redo stack management with saved counts for UI persistence. - Added reconstruction of undo history from drawable objects for seamless editing after reload. style: Revise drawable resources for improved UI consistency - Updated background drawables for selected layers and pages. - Introduced a universal active state drawable for buttons. - Adjusted settings home row background for better visual appeal. fix: Modify layout files for better user experience - Updated item_layer_row and item_page_tab layouts to include drag handles and rename buttons. - Enhanced overlay_layer_panel layout for better scrolling and usability. chore: Update colors.xml for better visibility and consistency - Adjusted border colors for improved contrast and visibility across the application.
…lity and responsiveness
…nd error handling
… pages with visual feedback
…ay for safer UI updates
…for improved user experience
…ctionality for improved user interaction
…ures for layers and pages
…xpand/minimize functionality
- Refactor AddLayerCommand to support soft-deletion of layers instead of removal. - Update AddPathCommand to handle soft-deletion of drawing paths/objects. - Modify AnnotationLayer to include a deleted flag for version control. - Enhance AnnotationPage with methods to retrieve visible layers and manage soft-deleted pages. - Implement ClearAllLayersCommand and ClearLayerCommand to soft-delete objects instead of clearing them. - Introduce DeleteLayerCommand to soft-delete layers while preserving data for undo/redo. - Update DrawingCommand interface to include command type and JSON serialization methods. - Adjust AnnotationObject to support soft-deletion with a deleted flag. - Ensure all commands are fully serializable for command history persistence.
…ration and layer visibility handling
…rmission requests without bringing app to foreground
- Added BaseEditorOverlay class as an abstract base for overlay editors. - Created InlineTextEditor class for editing text annotations with features like color picker, font size slider, and text alignment options. - Introduced various drawable resources for UI elements including color buttons, option buttons, and dashed borders for text input. - Designed layout for InlineTextEditor with dimmed background, text input area, and controls for text editing. - Implemented real-time text preview and editing capabilities with callbacks for content confirmation and deletion.
…e AnnotationService - Added onTextAutoSaved callback in AnnotationService to handle auto-saving of text without closing the editor. - Introduced a debounce mechanism for auto-saving text in InlineTextEditor with a 500ms delay. - Updated UI components to support auto-save, including color picker and font size adjustments. - Refactored layout files to improve structure and added a ScrollView for better keyboard handling. - Created a new drawable for circular color buttons with a white border for dark colors.
…ved user experience
- Added BaseTransparentEditorActivity to manage transparent fullscreen editing overlays with proper keyboard handling and lifecycle management. - Created TextEditorActivity extending BaseTransparentEditorActivity for text editing functionalities, including color selection, font size adjustment, and text alignment. - Developed UI layout for TextEditorActivity with dynamic editing area and action buttons. - Updated InlineTextEditor to improve keyboard visibility handling and layout adjustments. - Introduced new styles for transparent editor theme to enhance visual consistency. - Added XML layout files for TextEditorActivity and updated existing overlay layout for better usability.
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.
hello world!