More formats support (#161)

* Added support for ODT and FODT file formats.

* Improved `OdtParser` to support enhanced document formatting and external assets

* Added support for viewing CSV, TSV, JSON, XML, logs, and source code files by dynamically converting them to HTML.
This commit is contained in:
Aryan 2026-04-10 17:35:31 +05:30 committed by GitHub
parent 6a60aec0ef
commit 291504fd90
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 652 additions and 76 deletions

View file

@ -109,25 +109,6 @@
<data android:mimeType="application/octet-stream" />
</intent-filter>
<!-- pathPattern fallback for file:// URIs -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.azw3" />
<data android:pathPattern=".*\\..*\\.azw3" />
<data android:pathPattern=".*\\..*\\..*\\.azw3" />
<data android:pathPattern=".*\\.fb2" />
<data android:pathPattern=".*\\..*\\.fb2" />
<data android:pathPattern=".*\\..*\\..*\\.fb2" />
<data android:pathPattern=".*\\.mobi" />
<data android:pathPattern=".*\\..*\\.mobi" />
<data android:pathPattern=".*\\..*\\..*\\.mobi" />
</intent-filter>
<!-- Markdown/Text -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@ -182,50 +163,15 @@
<data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
</intent-filter>
<!-- ODT & FODT -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.docx" />
<data android:pathPattern=".*\\..*\\.docx" />
<data android:pathPattern=".*\\..*\\..*\\.docx" />
</intent-filter>
<!-- pathPattern fallback for file:// URIs (comic books) -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.cbz" />
<data android:pathPattern=".*\\..*\\.cbz" />
<data android:pathPattern=".*\\..*\\..*\\.cbz" />
<data android:pathPattern=".*\\.cbr" />
<data android:pathPattern=".*\\..*\\.cbr" />
<data android:pathPattern=".*\\..*\\..*\\.cbr" />
<data android:pathPattern=".*\\.cb7" />
<data android:pathPattern=".*\\..*\\.cb7" />
<data android:pathPattern=".*\\..*\\..*\\.cb7" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.md" />
<data android:pathPattern=".*\\..*\\.md" />
<data android:pathPattern=".*\\..*\\..*\\.md" />
<data android:pathPattern=".*\\.markdown" />
<data android:pathPattern=".*\\..*\\.markdown" />
<data android:pathPattern=".*\\..*\\..*\\.markdown" />
<data android:mimeType="application/vnd.oasis.opendocument.text" />
<data android:mimeType="application/x-vnd.oasis.opendocument.text-flat-xml" />
</intent-filter>
<intent-filter>
@ -234,19 +180,43 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.md" />
<data android:pathPattern=".*\\.markdown" />
<data android:mimeType="text/csv" />
<data android:mimeType="text/comma-separated-values" />
<data android:mimeType="text/tab-separated-values" />
</intent-filter>
<!-- Structured Data (JSON / XML) -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:mimeType="application/octet-stream" />
<data android:scheme="file" />
<data android:mimeType="application/json" />
<data android:mimeType="application/xml" />
<data android:mimeType="text/xml" />
</intent-filter>
<!-- Source Code & Logs -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:mimeType="text/x-java-source" />
<data android:mimeType="text/x-python" />
<data android:mimeType="text/x-kotlin" />
<data android:mimeType="text/javascript" />
<data android:mimeType="application/javascript" />
<data android:mimeType="text/x-c" />
<data android:mimeType="text/x-c++" />
<data android:mimeType="text/x-csharp" />
<data android:mimeType="text/x-ruby" />
<data android:mimeType="text/x-go" />
<data android:mimeType="text/x-log" />
</intent-filter>
</activity>
<service