Commit Graph

1377 Commits

Author SHA1 Message Date
Trevor 6fa97a21f6 merge master 2025-10-01 13:34:16 -05:00
Trevor b71d1d3cd6 Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay 2025-10-01 13:27:51 -05:00
Trevor 3ab38c7e4e changed from global to coroutine 2025-10-01 13:14:25 -05:00
Trevor 1abcc92a3b addressing pr comments 2025-10-01 13:11:59 -05:00
Kelvin 642d218c54 Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay 2025-09-29 18:45:56 +02:00
Kelvin 26b5470200 Fix crash fix on async promise handling 2025-09-29 18:45:42 +02:00
Koen J 547fe7bc13 Updated target SDK. 2025-09-29 15:46:45 +02:00
Koen J 678305e366 Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay 2025-09-29 15:28:31 +02:00
Koen J 9f07673d85 Updated compile SDK. 2025-09-29 15:27:51 +02:00
Kelvin 19429263a9 Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay 2025-09-29 15:01:19 +02:00
Kelvin 986652adab Refs 2025-09-29 15:01:04 +02:00
Koen J 4d93a58d5d Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay 2025-09-29 13:15:58 +02:00
Koen J 817c90f3af Translation fix. 2025-09-29 13:15:06 +02:00
Kelvin 77348b3787 Refs 2025-09-29 13:06:42 +02:00
Kelvin 1ef566ab16 Async fixes, local file playback support 2025-09-29 12:31:17 +02:00
Koen J 7597f5136c Fix Android getting stuck. 2025-09-26 13:46:43 +02:00
Marcus Hanestad 4fc33411fd Experimental casting backend 2025-09-10 15:26:16 +00:00
Kelvin a9bb900994 Change when plugins are disabled on reload and listing reloads 2025-09-08 19:00:41 +02:00
Koen J 8c1a18d8b4 Build fixes. 2025-08-27 09:58:54 +02:00
Koen J 14ae5f1572 Fixed translations to align. 2025-08-26 21:32:13 +02:00
koen-futo ed40994600 Merge pull request #2357 from 0xrxL/master
Italian localization
2025-08-26 21:14:14 +02:00
koen-futo 90e8c35b19 Merge pull request #2096 from alpqn/master
Added Turkish Translations
2025-08-26 21:13:47 +02:00
Kelvin 4d017ad357 Refs 2025-08-24 21:41:07 +02:00
Kelvin 2ca2a9db23 Workaround for global lifetime scope unavailable 2025-08-24 19:35:15 +02:00
Kelvin 713d46c781 Refs 2025-08-21 22:23:07 +02:00
Kelvin 0429665173 Fix title for relay server 2025-08-21 22:18:00 +02:00
Kelvin ac05edca77 Setting to disable short filling 2025-08-21 22:14:30 +02:00
Kelvin ad3dacf68f Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay 2025-08-21 22:07:15 +02:00
Kelvin 91a8996c11 Shorts fix video size scaling for some aspect ratios, long press support for tags, home plugin filters now support long press to only select that one 2025-08-21 22:06:52 +02:00
Kelvin 40c4a51a2b Dialog input support, configurable relay server, radio views select/deselect all long press 2025-08-21 20:41:18 +02:00
zvonimir ad97b5a406 fix: login prompt looping on search video 2025-08-21 17:59:08 +02:00
Trevor 25ab7aff92 Improve QR code error text styling to match app design
- Add proper margins (20dp start/end) for better spacing
- Center the text alignment for better visual balance
- Use full width (0dp) with constraints for consistent layout
- Match the styling patterns used elsewhere in the app
- Improves readability and visual consistency when QR code is too large
2025-08-20 11:01:30 -05:00
Trevor d8a0781d10 Fix export dialog to close instead of auto-sharing when clicked outside
- Change default close action from 0 (share) to -1 (no action)
- This prevents the dialog from automatically sharing when users click outside
- Users must now explicitly choose Share or Save to Device to proceed
- Improves user experience by preventing accidental sharing
2025-08-20 10:59:22 -05:00
Trevor 42040e5f3d Center the export dialog buttons
- Add center: true parameter to both Share and Save to Device Action constructors
- This centers the buttons horizontally in the dialog layout
- Buttons are now both equal size and properly centered for better visual balance
- Improves the overall UI appearance and user experience
2025-08-20 10:52:28 -05:00
Trevor f00e71522f Make export dialog buttons equal size
- Change both Share and Save to Device buttons to use ActionStyle.NONE
- This creates two equal-sized buttons side by side instead of primary/secondary styling
- Improves UI consistency and makes both options equally prominent
- Users can now easily choose between sharing or saving without visual hierarchy bias
2025-08-20 10:49:22 -05:00
Trevor 8916fd35ab Add save to device option for Polycentric profile export
- Add dialog with two options: Share or Save to Device
- Implement saveToDevice method using MediaStore API to save to Downloads folder
- Add necessary string resources for the new UI elements
- Use UIDialogs.showDialog with Action and ActionStyle for proper dialog handling
- Add ContentValues and MediaStore imports for file saving functionality

Users can now choose to either share the exported profile file or save it directly to their device's Downloads folder for later use.
2025-08-20 10:34:14 -05:00
Kai b1fce443e9 fix pause and play buttons not working correctly in PiP
Changelog: changed
2025-08-20 08:39:12 -04:00
Trevor cfb030f59b Remove debug logging from file sharing implementation
- Remove all debug logging added during troubleshooting
- Keep the essential fix for EXTRA_STREAM Parcelable handling
- Clean up the code while maintaining the working functionality
- Remove verbose logging from handleIntent, handleUrlAll, handleContent, and handleUnknownText

The file sharing functionality is now working correctly and the code is clean.
2025-08-19 11:59:08 -05:00
Trevor 71f626e8e0 Fix file sharing to properly handle EXTRA_STREAM Parcelable
- Add support for EXTRA_STREAM as Parcelable URI instead of just String
- Check for streamParcelable first, then fall back to string extras
- Add logging to show both String and Parcelable EXTRA_STREAM values
- This should fix the issue where file sharing was receiving description text
instead of actual file content

The logs showed that EXTRA_STREAM was null as String but the file content
should be available as a Parcelable URI.
2025-08-19 11:56:30 -05:00
Trevor 6f4d7fd6b9 Add comprehensive debugging for file sharing intent handling
- Add logging for all intent details (action, data, type, extras)
- Add detailed logging for ACTION_SEND intent processing
- Add logging for targetData processing and handleUrlAll calls
- Add logging for URI scheme detection
- This will help identify where the file sharing process is failing

The logs will show the complete flow from intent reception to processing.
2025-08-19 11:54:29 -05:00
Trevor f207ef9954 Add debugging logs for Polycentric file import
- Add logging to handleContent method to show file path and MIME type
- Add logging to show file content length and first 100 characters
- Add logging to handleUnknownText method to show received text content
- Add warning log when text format is not recognized
- This will help debug why Polycentric profile file import isn't working

The logs will show exactly what content is being received when sharing
Polycentric profile files to Grayjay.
2025-08-19 11:51:21 -05:00
Trevor 1ad3b7ae8f Fix Polycentric profile file import in MainActivity
- Update handleUnknownText method to detect Polycentric profile data
- Check for 'polycentric://' prefix in shared text files
- Launch PolycentricImportProfileActivity when Polycentric profile is detected
- Add logging for Polycentric profile detection
- Fixes 'unknown url format' error when sharing Polycentric profile files to Grayjay

This completes the file sharing workflow: users can now export Polycentric
profiles to files and share them to Grayjay, which will automatically
detect and import the profile data.
2025-08-19 11:48:18 -05:00
Trevor 217d738dd1 Add file import functionality to PolycentricImportProfileActivity
- Add 'Import from File' button to the import profile UI
- Add file picker launcher using ActivityResultContracts.GetContent()
- Support importing Polycentric profiles from text files
- Read file content and pass it to the existing import method
- Add string resource for 'Import from File' button text
- Update layout to include file import button between QR scan and manual entry

This allows users to import Polycentric profiles from files exported by
the backup functionality, completing the export/import workflow.
2025-08-19 11:44:01 -05:00
Trevor 799dad8875 Fix FileProvider authority to use package name directly
- Change FileProvider authority from string resource to use packageName directly
- Update AndroidManifest.xml to use ${applicationId}.fileprovider instead of @string/authority
- This ensures the authority matches the actual package name for each build variant
- Fixes the 'Couldn\'t find meta-data for provider' error in debug builds

The issue was that different build flavors have different package names
(com.futo.platformplayer.d for debug, com.futo.platformplayer for stable, etc.)
but the string resource wasn\'t being resolved correctly for all variants.
2025-08-19 11:36:53 -05:00
Trevor dc91987e88 updated file export 2025-08-19 11:23:56 -05:00
Trevor 8f5d90a1c8 Fix UninitializedPropertyAccessException in PolycentricBackupActivity
- Move export bundle creation before try-catch block to ensure _exportBundle is initialized
- Fix crash when accessing _exportBundle in error logging before it's been set
- Use local bundle variable in catch block instead of accessing uninitialized _exportBundle
- Ensure _exportBundle is always available for UI operations and error handling

This resolves the crash that occurred when QR code generation failed and the app
tried to access the uninitialized _exportBundle property.
2025-08-19 11:21:34 -05:00
Trevor 6e58107a5e Fix QR code size validation to use byte count instead of character count
- Replace character-based limit with byte-based limit using UTF-8 encoding
- QR codes are limited by bytes, not characters (1 char can be 1-4 bytes in UTF-8)
- Set limit to 2300 bytes (QR Code Version 40 with Error Correction Level M can hold ~2331 bytes)
- Update error logging to show both character count and byte size for debugging
- Apply fix to both PolycentricBackupActivity and QRCodeFullscreenActivity

This should now correctly handle strings with multi-byte characters and provide
accurate size validation for QR code generation.
2025-08-19 11:19:11 -05:00
Trevor 79f478e421 Fix QR code size limits and add better error logging
- Correct QR code capacity limits for Error Correction Level M (15%)
- Update limit from 2900 to 2300 characters (actual M level capacity is ~2334)
- Add detailed error logging to show bundle length when QR generation fails
- Fix FileProvider authority to use dynamic string resource instead of hardcoded value
- Ensure consistent limits across both PolycentricBackupActivity and QRCodeFullscreenActivity

The previous limit was based on Error Correction Level L (7%) but we use Level M (15%),
which has a lower capacity but better error recovery.
2025-08-19 11:13:45 -05:00
Trevor a20ebd49a4 Add proactive QR code size validation and checks
- Add isContentSuitableForQRCode() helper function with 2900 character limit
- Check QR code size before attempting generation in both activities
- Prevent fullscreen QR viewer from launching when data is too large
- Use conservative 2900 character limit (vs theoretical 2953 max)
- Add size validation in both PolycentricBackupActivity and QRCodeFullscreenActivity
- Improve user experience by failing fast with clear error messages

This ensures QR codes are only generated when they have a reasonable
chance of success, and prevents unnecessary attempts to generate
QR codes that are too large for reliable scanning.
2025-08-19 10:59:16 -05:00
Kelvin 66f8711055 Fix login warnings working on redirects 2025-08-19 17:52:14 +02:00