- 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
- 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
- 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
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.