575 Commits
Author SHA1 Message Date
fossifybot[bot] 9ae4b70ae6 chore(release): v1.6.3 (15) (#511)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-10-24 19:18:29 +05:30
dependabot[bot] ef7524c013 chore(deps): bump fastlane from 2.240.1 to 2.241.1 (#512)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.240.1 to 2.241.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.240.1...2.241.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.241.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-20 05:08:05 +05:30
Fjuro 5a1027caa1 chore(l10n): update Czech translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/cs/
Via: Weblate
2026-10-14 07:09:13 +05:30
dependabot[bot] 68e06aab8e chore(deps): bump gradle-wrapper from 9.8.0 to 9.8.1 (#509)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.8.0 to 9.8.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.8.0...v9.8.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-13 22:01:08 +05:30
fossifybot[bot] aef9f9566e chore(deps): bump org.fossify.commons from 7.1.2 to 7.1.3 (#506)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-10-11 10:00:32 +05:30
fossifybot[bot] 82b3c98c9a chore(release): v1.6.2 (14) (#444)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-10-10 21:10:33 +05:30
fossifybot[bot] 6bfcd8d1ea chore(deps): bump org.fossify.commons from 7.1.1 to 7.1.2 (#504)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-10-10 02:52:33 +05:30
fossifybot[bot] 7a90732f96 chore(deps): bump org.fossify.commons from 7.1.0 to 7.1.1 (#503)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-10-08 17:20:28 +05:30
fossifybot[bot] e299956da2 fix: migrate to commons 7.1.0 2026-10-08 09:11:21 +05:30
dependabot[bot] a5d92c7f76 chore(deps): update Gradle to 9.8.0 2026-10-08 07:05:59 +05:30
Dan 7844f4b85a chore(l10n): update Ukrainian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/uk/
Via: Weblate
2026-10-07 07:07:39 +05:30
winver 95548acecc chore(l10n): update Ukrainian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/uk/
Via: Weblate
2026-10-05 07:13:37 +05:30
fossifybot[bot] 9c29ef68a8 chore: update lint baselines (#500)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-10-02 16:33:32 +05:30
Naveen Singh 3fdb6cd380 chore(l10n): update Persian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fa/
Via: Weblate
2026-10-02 07:27:54 +05:30
dependabot[bot] 0856c68e2a chore(deps): bump com.android.application from 9.4.0 to 9.4.1 (#496)
Bumps com.android.application from 9.4.0 to 9.4.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-24 16:55:27 +05:30
dependabot[bot] 4080ea9b06 chore(deps): bump fastlane from 2.238.0 to 2.240.1 (#495)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.238.0 to 2.240.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.238.0...fastlane/2.240.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.240.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-24 16:23:42 +05:30
카츠 ef41411d5b chore(l10n): update Korean translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ko/
Via: Weblate
2026-09-24 07:43:44 +05:30
dependabot[bot] f79e8b5ebd chore(deps): bump com.android.application from 9.3.2 to 9.4.0 (#489)
Bumps com.android.application from 9.3.2 to 9.4.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-11 09:58:55 +05:30
fossifybot[bot] a2eeb40309 chore: update lint baselines (#483)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-09-01 14:25:24 +05:30
dependabot[bot] a4390a22b0 chore(deps): bump fastlane from 2.237.0 to 2.238.0 (#479)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.237.0 to 2.238.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.237.0...fastlane/2.238.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.238.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 03:28:15 +05:30
dependabot[bot] 6591c26758 chore(deps): bump gradle-wrapper from 9.7.0 to 9.7.1 (#481)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.7.0 to 9.7.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.7.0...v9.7.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 03:27:45 +05:30
dependabot[bot] 577f510c61 chore(deps): bump com.android.application from 9.3.1 to 9.3.2 (#482)
Bumps com.android.application from 9.3.1 to 9.3.2.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 03:27:18 +05:30
Fredrik Lynghaug 0e22535a06 chore(l10n): update Norwegian Nynorsk translations
Currently translated at 9.0% (4 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nn/
Via: Weblate
2026-08-31 07:30:29 +05:30
தமிழ்நேரம் 77e6f4fb9e chore(l10n): update Tamil translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ta/
Via: Weblate
2026-08-31 07:30:29 +05:30
Sketch6580 c1253e1de2 chore(l10n): update Chinese (Simplified Han script) translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hans/
Via: Weblate
2026-08-31 07:30:29 +05:30
dependabot[bot] ab8989ad92 chore(deps): bump gradle-wrapper from 9.6.1 to 9.7.0 (#478)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.6.1 to 9.7.0.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.6.1...v9.7.0)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 04:49:36 +05:30
dependabot[bot] bfe06e62c6 chore(deps): bump json from 2.20.0 to 2.21.2 (#477)
Bumps [json](https://github.com/ruby/json) from 2.20.0 to 2.21.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.20.0...v2.21.2)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.21.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 19:32:06 +05:30
fossifybot[bot] fea0394118 chore: update lint baselines (#470)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-08-01 10:20:27 +05:30
dependabot[bot] d7636f9d4a chore(deps): bump com.android.application from 9.3.0 to 9.3.1 (#467)
Bumps com.android.application from 9.3.0 to 9.3.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-28 05:12:34 +05:30
mae 02c508d4e1 chore(l10n): update Spanish (Latin America) translations
Currently translated at 2.2% (1 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/es_419/
Via: Weblate
2026-07-23 07:32:44 +05:30
dependabot[bot] 328a0a8f3c chore(deps): bump com.android.application from 9.2.1 to 9.3.0 (#464)
Bumps com.android.application from 9.2.1 to 9.3.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 03:33:22 +05:30
Sepehr a5d0f3cf1b chore(l10n): update Persian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fa/
Via: Weblate
2026-07-17 07:08:03 +05:30
dependabot[bot] 87b1dabca3 chore(deps): bump fastlane from 2.236.1 to 2.237.0 (#461)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.236.1 to 2.237.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.236.1...fastlane/2.237.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.237.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 23:36:08 +05:30
fossifybot[bot] aabfcde47b chore: update lint baselines (#456)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-07-03 15:15:45 +05:30
dependabot[bot] 77b2611dc9 chore(deps): bump faraday from 1.10.5 to 1.10.6 (#455)
Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.5 to 1.10.6.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v1.10.5...v1.10.6)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 1.10.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 21:06:25 +05:30
dependabot[bot] 99f13929e3 chore(deps): bump gradle-wrapper from 9.6.0 to 9.6.1 (#453)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.6.0 to 9.6.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.6.0...v9.6.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 08:10:59 +05:30
dependabot[bot] 6cf1bfe5c5 chore(deps): bump gradle-wrapper from 9.5.1 to 9.6.0 (#450)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.5.1 to 9.6.0.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.5.1...v9.6.0)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-23 20:02:34 +05:30
dependabot[bot] f53f84677c chore(deps): bump fastlane from 2.235.0 to 2.236.1 (#449)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.235.0 to 2.236.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.235.0...fastlane/2.236.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.236.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 19:09:26 +05:30
Sandyran 7493541725 chore(l10n): update Norwegian Nynorsk translations
Currently translated at 6.8% (3 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nn/
Via: Weblate
2026-06-14 07:03:46 +05:30
jbaali 5e316369df fix: preserve timestamps when decompressing folders (#422)
Refs: https://github.com/FossifyOrg/File-Manager/issues/190
2026-06-01 14:51:51 +05:30
fossifybot[bot] 878fa50963 chore: update lint baselines (#443)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-06-01 09:59:45 +05:30
fossifybot[bot] 893526efa0 chore: update lint baselines (#430)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-05-31 22:29:14 +05:30
dependabot[bot] 2d3cb1a555 chore(deps): bump jwt from 2.10.2 to 3.2.0 (#442)
Bumps [jwt](https://github.com/jwt/ruby-jwt) from 2.10.2 to 3.2.0.
- [Release notes](https://github.com/jwt/ruby-jwt/releases)
- [Changelog](https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jwt/ruby-jwt/compare/v2.10.2...v3.2.0)

---
updated-dependencies:
- dependency-name: jwt
  dependency-version: 3.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-28 10:08:57 +05:30
dependabot[bot] 5b4a82615e chore(deps): bump com.android.application from 9.2.0 to 9.2.1 (#436)
Bumps com.android.application from 9.2.0 to 9.2.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 19:00:36 +05:30
dependabot[bot] a660857cc6 chore(deps): bump fastlane from 2.233.0 to 2.234.0 (#437)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.233.0 to 2.234.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.233.0...fastlane/2.234.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.234.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 19:00:23 +05:30
dependabot[bot] d8bef198cd chore(deps): bump gradle-wrapper from 9.4.1 to 9.5.1 (#438)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.4.1 to 9.5.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.4.1...v9.5.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-26 19:00:11 +05:30
H Tamás 3a3ccfe959 chore(l10n): update Hungarian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hu/
Via: Weblate
2026-05-09 07:05:04 +05:30
H Tamás 60c6fbc304 chore(l10n): update Hungarian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hu/
Via: Weblate
2026-05-03 07:04:14 +05:30
dependabot[bot] 3f0f9e2df8 chore(deps): bump com.android.application from 9.1.0 to 9.2.0 (#428)
Bumps com.android.application from 9.1.0 to 9.2.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-28 15:38:57 +05:30
dependabot[bot] 74b34e8fb0 chore(deps): bump fastlane from 2.232.2 to 2.233.0 (#427)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.232.2 to 2.233.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.232.2...fastlane/2.233.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.233.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 04:25:49 +05:30
Andi Chandler 06db3c88b4 chore(l10n): update English (United Kingdom) translations
Currently translated at 13.6% (6 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/en_GB/
Via: Weblate
2026-04-18 07:03:44 +05:30
dependabot[bot] d6987db37f chore(deps): bump addressable from 2.8.9 to 2.9.0 (#420)
Bumps [addressable](https://github.com/sporkmonger/addressable) from 2.8.9 to 2.9.0.
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sporkmonger/addressable/compare/addressable-2.8.9...addressable-2.9.0)

---
updated-dependencies:
- dependency-name: addressable
  dependency-version: 2.9.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:29:25 +05:30
fossifybot[bot] d98e78eda1 chore: update lint baselines (#418)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-04-05 10:27:49 +05:30
fossifybot[bot] 1fbfc978ca chore: update lint baselines (#403)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-03-30 00:47:44 +05:30
dependabot[bot] c9b998f4a7 chore(deps): bump json from 2.18.1 to 2.19.2 (#414)
Bumps [json](https://github.com/ruby/json) from 2.18.1 to 2.19.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.18.1...v2.19.2)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 19:06:13 +05:30
dependabot[bot] 2258a58a2d chore(deps): bump gradle-wrapper from 9.4.0 to 9.4.1 (#415)
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.4.0 to 9.4.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.4.0...v9.4.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-29 19:02:49 +05:30
Daniel Nylander eb95cb540d chore(l10n): update Swedish translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/sv/
Via: Weblate
2026-03-28 07:06:39 +05:30
Omer I.S. 8f74c493e0 chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2026-03-25 07:05:06 +05:30
Hosted Weblate user 143456 a2d6e4d7c2 chore(l10n): update Thai translations
Currently translated at 6.8% (3 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/th/
Via: Weblate
2026-03-16 07:07:05 +05:30
Hosted Weblate user 143456 1480831b15 chore(l10n): update Thai translations
Currently translated at 4.5% (2 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/th/
Via: Weblate
2026-03-16 07:07:05 +05:30
fossifybot[bot] 0211111a34 chore(deps): bump org.fossify.commons from 6.1.5 to 6.1.6 (#401)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-03-15 20:47:09 +05:30
dependabot[bot] 64032a3082 chore(deps): bump gradle-wrapper from 9.3.1 to 9.4.0 (#408)
Bumps gradle-wrapper from 9.3.1 to 9.4.0.

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-15 01:12:49 +05:30
dependabot[bot] 463d016d68 chore(deps): bump com.android.application from 9.0.1 to 9.1.0 (#407)
Bumps com.android.application from 9.0.1 to 9.1.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 23:51:50 +05:30
dependabot[bot] 4346de59d2 chore(deps): bump fastlane from 2.232.1 to 2.232.2 (#405)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.232.1 to 2.232.2.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.232.1...fastlane/2.232.2)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.232.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 20:48:21 +05:30
jonnysemon 9f5b41d6fa chore(l10n): update Arabic translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ar/
Via: Weblate
2026-03-01 07:02:41 +05:30
fossifybot[bot] 6879b7871a chore(release): v1.6.1 (13) (#393)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-02-17 08:00:29 +05:30
fossifybot[bot] efcc213ed6 chore(deps): bump org.fossify.commons from 6.1.3 to 6.1.5 (#396)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-02-17 01:14:17 +05:30
dependabot[bot] 432c9bf929 chore(deps): bump net.lingala.zip4j:zip4j from 2.11.5 to 2.11.6 (#397)
Bumps [net.lingala.zip4j:zip4j](https://github.com/srikanth-lingala/zip4j) from 2.11.5 to 2.11.6.
- [Release notes](https://github.com/srikanth-lingala/zip4j/releases)
- [Commits](https://github.com/srikanth-lingala/zip4j/compare/v2.11.5...v2.11.6)

---
updated-dependencies:
- dependency-name: net.lingala.zip4j:zip4j
  dependency-version: 2.11.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 20:21:07 +05:30
dependabot[bot] 900d9c197b chore(deps): bump com.android.application from 9.0.0 to 9.0.1 (#399)
Bumps com.android.application from 9.0.0 to 9.0.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 20:14:50 +05:30
dependabot[bot] b09e037e61 chore(deps): bump fastlane from 2.232.0 to 2.232.1 (#398)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.232.0 to 2.232.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.232.0...fastlane/2.232.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.232.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 19:48:42 +05:30
dependabot[bot] ddb8afdfc6 chore(deps): bump faraday from 1.10.4 to 1.10.5 (#395)
Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.4 to 1.10.5.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v1.10.4...v1.10.5)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 1.10.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 15:03:58 +05:30
dependabot[bot] 4cfc92b0fe chore(deps): bump fastlane from 2.231.1 to 2.232.0 (#394)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.231.1 to 2.232.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.231.1...fastlane/2.232.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.232.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 08:58:29 +05:30
Naveen Singh a1f06bfcbc fix: use commons extension for size calculation (#392)
* docs(changelog): add entry regarding file size calculation change

* refactor: remove empty line

* refactor: reformat code
2026-02-08 17:47:20 +05:30
fossifybot[bot] be63034b1c chore(deps): bump org.fossify.commons from 6.1.0 to 6.1.3 (#385)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-02-08 17:46:15 +05:30
dependabot[bot]andNaveen Singh 8a8b9b9da8 chore(deps): bump com.android.application from 8.11.1 to 9.0.0 (#391)
* chore(deps): bump com.android.application from 8.11.1 to 9.0.0

Bumps com.android.application from 8.11.1 to 9.0.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build: remove 'org.jetbrains.kotlin.android'

* build: use directories set instead of srcDirs

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2026-02-08 00:59:09 +05:30
dependabot[bot]andNaveen Singh c76a56061b chore(deps): bump gradle-wrapper from 8.13 to 9.3.1 (#382)
* chore(deps): bump gradle-wrapper from 8.13 to 9.3.1

Bumps gradle-wrapper from 8.13 to 9.3.1.

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.3.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build: update archive name definition

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2026-02-07 19:14:41 +05:30
dependabot[bot] 23f0e848c4 chore(deps): bump org.jetbrains.kotlin.android from 2.3.0 to 2.3.10 (#390)
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.3.0 to 2.3.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.3.0...v2.3.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.3.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 17:10:56 +05:30
Naveen Singh 65ebbf059a ci(dependabot): ignore org.fossify:commons dependency (#388) 2026-02-03 18:08:55 +05:30
fossifybot[bot] 8887b510ca chore: update lint baselines (#384)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-02-01 12:34:08 +05:30
Naveen Singh 1f8efdf9fe ci: remove path filters for PR checks (#383) 2026-02-01 01:57:04 +05:30
fossifybot[bot] 7b6e49111a chore(release): v1.6.0 (12) (#375)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-01-31 02:10:54 +05:30
Bruce Cowan 60f30bca73 chore(l10n): update English (United Kingdom) translations
Currently translated at 6.8% (3 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/en_GB/
Via: Weblate
2026-01-30 23:56:20 +05:30
fossifybot[bot]andNaveen Singh d056d6d57b chore(deps): bump org.fossify.commons from 6.0.0 to 6.1.0 (#381)
* chore(deps): bump org.fossify.commons from 6.0.0 to 6.1.0

* build: update all jitpack url

---------

Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2026-01-30 23:16:21 +05:30
fossifybot[bot] 1e64ef351c chore(deps): bump org.fossify.commons from 5.14.0 to 6.0.0 (#379)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-01-28 15:18:29 +05:30
dependabot[bot] 1b6241aaff chore(deps): bump fastlane from 2.231.0 to 2.231.1 (#377)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.231.0 to 2.231.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.231.0...fastlane/2.231.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.231.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 21:56:14 +05:30
fossifybot[bot] dd6f701f39 chore(deps): bump org.fossify.commons from 5.13.1 to 5.14.0 (#376)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-01-26 16:39:15 +05:30
Naveen Singh 16e51ca4f5 feat: add font customization (#374)
* fix: use AndroidX AppCompat PopupMenu

* feat: add font customization
2026-01-26 00:07:43 +05:30
Rasti K5 0dea8e0576 chore(l10n): update Kurdish (Central) translations
Currently translated at 59.0% (26 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ckb/
Via: Weblate
2026-01-23 12:17:05 +05:30
Ethan Grobin 323c882128 chore(l10n): update English (United Kingdom) translations
Currently translated at 4.5% (2 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/en_GB/
Via: Weblate
2026-01-23 12:17:05 +05:30
Alexander Gabilondo 1476234289 chore(l10n): update Basque translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/eu/
Via: Weblate
2026-01-23 12:17:05 +05:30
Sketch6580 b96aee5a2d chore(l10n): update Chinese (Simplified Han script) translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hans/
Via: Weblate
2026-01-23 12:17:05 +05:30
Hồ Nhất Duy e25bd7750f chore(l10n): update Vietnamese translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/vi/
Via: Weblate
2026-01-23 12:17:05 +05:30
Hồ Nhất Duy ae8ca6b2e8 chore(l10n): update Vietnamese translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/vi/
Via: Weblate
2026-01-23 12:17:05 +05:30
mahdi155000 07fb062a0d chore(l10n): update Persian translations
Currently translated at 6.8% (3 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fa/
Via: Weblate
2026-01-23 12:17:05 +05:30
dependabot[bot] 75c5d3c5ec chore(deps): bump fastlane from 2.230.0 to 2.231.0 (#372)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.230.0 to 2.231.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.230.0...fastlane/2.231.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.231.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 07:45:30 +05:30
dependabot[bot] 8e5ccc05ba chore(deps): bump com.alexvasilkov:gesture-views from 2.8.3 to 2.9.0 (#369)
Bumps [com.alexvasilkov:gesture-views](https://github.com/alexvasilkov/GestureViews) from 2.8.3 to 2.9.0.
- [Release notes](https://github.com/alexvasilkov/GestureViews/releases)
- [Commits](https://github.com/alexvasilkov/GestureViews/commits)

---
updated-dependencies:
- dependency-name: com.alexvasilkov:gesture-views
  dependency-version: 2.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-06 00:04:24 +05:30
fossifybot[bot] 26fc5f1c22 chore: update lint baselines (#367)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-01-01 08:16:05 +05:30
Naveen Singh 86e79e5e0b ci: prevent unnecessary workflow runs on minor changes (#366) 2026-01-01 01:46:41 +05:30
fossifybot[bot] 42ba12b1ce chore(deps): bump org.fossify.commons from 5.12.0 to 5.13.1 (#364)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2026-01-01 01:11:48 +05:30
Naveen Singh 2a36e87588 ci: prevent unnecessary workflow runs on minor changes (#365) 2026-01-01 00:57:04 +05:30
dependabot[bot] a155339348 chore(deps): bump org.jetbrains.kotlin.android from 2.2.21 to 2.3.0 (#359)
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.2.21 to 2.3.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-29 22:57:01 +05:30
dependabot[bot] 24eb4ad3cd chore(deps): bump fastlane from 2.229.1 to 2.230.0 (#358)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.229.1 to 2.230.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.229.1...fastlane/2.230.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.230.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-22 23:31:56 +05:30
dependabot[bot] 0d36078e70 chore(deps): bump aws-sdk-s3 from 1.206.0 to 1.208.0 (#352)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.206.0 to 1.208.0.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.208.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 19:42:37 +00:00
fossifybot[bot] 67d77b3431 chore(release): v1.5.0 (11) (#343)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-12-16 06:43:13 +05:30
fossifybot[bot] d9ef0f78b3 chore(deps): bump org.fossify.commons from 5.11.0 to 5.12.0 (#346)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-12-16 06:37:02 +05:30
Naveen Singh f57e492c16 feat(l10n): remove Valencian translations
Translations for Valencian have been removed from Fossify/File-Manager.

Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca@valencia/
Via: Weblate
2025-12-16 06:11:02 +05:30
fran secs 5f7b12e736 chore(l10n): update Catalan translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca/
Via: Weblate
2025-12-16 06:11:02 +05:30
Josep M. Ferrer 40091ff02b chore(l10n): update Catalan translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ca/
Via: Weblate
2025-12-16 06:11:02 +05:30
fran secs 8231505848 chore(l10n): update Valencian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca@valencia/
Via: Weblate
2025-12-16 06:11:02 +05:30
fran secs 3b8eb29e28 chore(l10n): update Catalan translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca/
Via: Weblate
2025-12-16 06:11:02 +05:30
fran secs baaf7ffa80 chore(l10n): update Valencian translations
Currently translated at 20.4% (9 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca@valencia/
Via: Weblate
2025-12-16 06:11:02 +05:30
fran secs 046c2c1bc0 feat(l10n): add Valencian translations
Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca@valencia/
Via: Weblate
2025-12-16 06:11:02 +05:30
Naveen Singh 2237f84971 feat(l10n): remove Valencian translations
Translations for Valencian have been removed from Fossify/File-Manager.

Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca@valencia/
Via: Weblate
2025-12-16 06:11:02 +05:30
fran secs 4cc0ce941c feat(l10n): add Valencian translations
Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca@valencia/
Via: Weblate
2025-12-16 06:11:02 +05:30
Vasilis K. ff35055f8f chore(l10n): update Greek translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/el/
Via: Weblate
2025-12-16 06:11:02 +05:30
Naveen Singh 8eea02c2aa docs: move incorrectly placed changelog entry (#342) 2025-12-12 19:00:21 +05:30
Jan c0d7f64551 fix: save as new file when file already exists (#332)
Refs: #131
2025-12-12 18:54:52 +05:30
fossifybot[bot] 749c398aa6 chore: update lint baselines (#339)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-12-10 23:56:32 +05:30
fossifybot[bot] 8812e0ba58 chore(deps): bump org.fossify.commons from 5.10.0 to 5.11.0 (#338)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-12-10 23:23:55 +05:30
Naveen Singh 6a30697c16 ci: add workflow to update commons lib (#337) 2025-12-10 23:07:46 +05:30
dependabot[bot] 146ad3b129 chore(deps): bump androidx.swiperefreshlayout:swiperefreshlayout (#334)
Bumps androidx.swiperefreshlayout:swiperefreshlayout from 1.1.0 to 1.2.0.

---
updated-dependencies:
- dependency-name: androidx.swiperefreshlayout:swiperefreshlayout
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 18:58:08 +05:30
dependabot[bot] b3fc8c7e6f chore(deps): bump org.fossify:commons from 5.7.3 to 5.10.0 (#333)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 5.7.3 to 5.10.0.
- [Commits](https://github.com/FossifyOrg/commons/compare/5.7.3...5.10.0)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 5.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 18:56:15 +05:30
dependabot[bot] 599b2cad0b chore(deps): bump fastlane from 2.229.0 to 2.229.1 (#335)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.229.0 to 2.229.1.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.229.0...fastlane/2.229.1)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.229.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 18:56:06 +05:30
Naveen Singh f0631e274a ci: pass secrets to testing build workflow (#331) 2025-12-01 18:02:45 +05:30
fossifybot[bot] 90741e28ea chore: update lint baselines (#329)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-12-01 08:04:04 +05:30
Amadɣas d1ed44688e chore(l10n): update Kabyle translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
ButterflyOfFire eb75e8bafc chore(l10n): update Kabyle translations
Currently translated at 72.7% (32 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
Amadɣas 8c723eb004 chore(l10n): update Kabyle translations
Currently translated at 72.7% (32 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
Amadɣas 4ed2868456 chore(l10n): update Kabyle translations
Currently translated at 59.0% (26 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
Amadɣas 547bf5421e chore(l10n): update Kabyle translations
Currently translated at 56.8% (25 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
Amadɣas c97940a3d9 chore(l10n): update Kabyle translations
Currently translated at 50.0% (22 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
ButterflyOfFire 2889538bf7 chore(l10n): update Kabyle translations
Currently translated at 50.0% (22 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
ButterflyOfFire d911299f2f feat(l10n): add Kabyle translations
Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/kab/
Via: Weblate
2025-12-01 02:21:46 +05:30
dependabot[bot] e8ca000dce chore(deps): bump io.nlopez.compose.rules:detekt from 0.4.27 to 0.4.28 (#326)
Bumps [io.nlopez.compose.rules:detekt](https://github.com/mrmans0n/compose-rules) from 0.4.27 to 0.4.28.
- [Release notes](https://github.com/mrmans0n/compose-rules/releases)
- [Commits](https://github.com/mrmans0n/compose-rules/compare/v0.4.27...v0.4.28)

---
updated-dependencies:
- dependency-name: io.nlopez.compose.rules:detekt
  dependency-version: 0.4.28
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 21:47:36 +05:30
dependabot[bot] b098f3dc99 chore(deps): bump fastlane from 2.228.0 to 2.229.0 (#325)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.228.0 to 2.229.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.228.0...fastlane/2.229.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.229.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 19:35:10 +05:30
dependabot[bot] f820b6e617 chore(deps): bump org.fossify:commons from 5.7.2 to 5.7.3 (#316)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 5.7.2 to 5.7.3.
- [Commits](https://github.com/FossifyOrg/commons/compare/5.7.2...5.7.3)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 5.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 15:40:16 +00:00
dependabot[bot] a0bbc177d7 chore(deps): bump org.fossify:commons from 5.7.1 to 5.7.2 (#314)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 5.7.1 to 5.7.2.
- [Commits](https://github.com/FossifyOrg/commons/compare/5.7.1...5.7.2)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 5.7.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 13:34:49 +00:00
fossifybot[bot] 0a0590cab6 chore: update lint baselines (#313)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-11-01 12:30:14 +05:30
fossifybot[bot] 7a4adb8783 chore(release): v1.4.0 (10) (#297)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-10-30 00:27:07 +05:30
Naveen Singh 044ac49a9c fix: pad IME insets in MIME types activity (#304) 2025-10-29 23:23:36 +05:30
Naveen Singh 5921c27328 chore(deps): bump org.fossify.commons to 5.7.1 (#303) 2025-10-29 20:17:49 +05:30
Naveen Singh c12d1d7631 fix: clear files list before populating them again (#301)
Refs: https://github.com/FossifyOrg/File-Manager/issues/76
2025-10-28 14:06:03 +05:30
dependabot[bot] 0c9892a9e5 chore(deps): bump org.jetbrains.kotlin.android from 2.2.20 to 2.2.21 (#300)
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.2.20 to 2.2.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.20...v2.2.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.2.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 20:23:30 +05:30
Naveen Singh 57fbcea742 feat: bump org.fossify.commons to 5.7.0 (#298)
* feat: bump org.fossify.commons to 5.6.0

* feat: bump org.fossify.commons to 5.7.0
2025-10-27 20:18:52 +05:30
hosêyň abāspanā 7ae71a5d22 chore(l10n): update Luri (Bakhtiari) translations
Currently translated at 43.1% (19 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-26 23:17:10 +05:30
hosêyň abāspanā 00b21b8b0f chore(l10n): update Luri (Bakhtiari) translations
Currently translated at 40.9% (18 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-26 23:17:10 +05:30
hosêyň abāspanā 18ae5f3229 chore(l10n): update Luri (Bakhtiari) translations
Currently translated at 36.3% (16 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-26 23:17:10 +05:30
hosêyň abāspanā b1b1599cc5 chore(l10n): update Luri (Bakhtiari) translations
Currently translated at 11.3% (5 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-26 23:17:10 +05:30
hosêyň abāspanā 97791feaed chore(l10n): update Luri (Bakhtiari) translations
Currently translated at 9.0% (4 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-26 23:17:10 +05:30
Naveen Singh a4c8da6c31 chore: bump target SDK version to 35 (#241)
* chore: bump target SDK version to 35

* fix: address nullability issues

* chore: bump target SDK version to 36

* refactor: update edge-to-edge implementation

* refactor: update edge-to-edge implementation

* refactor: update edge-to-edge implementation

* refactor: migrate away from deprecated onBackPressed()

* chore(deps): update org.fossify.commons to 5.5.0

* docs: update changelog

* build: bump detekt return count limit

* chore: update lint baselines
2025-10-26 22:58:02 +05:30
Naveen Singh e6c465d9d0 revert: remove ACTION_OPEN_DOCUMENT handling (#291)
* Revert "feat: handle `ACTION_OPEN_DOCUMENT` intent (#229)"

This reverts commit 986d7d5215.

* style: shorten line

* style: shorten line
2025-10-21 00:51:33 +05:30
dependabot[bot] ee20fa406f chore(deps): bump org.fossify:commons from 5.3.0 to 5.4.0 (#292)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 5.3.0 to 5.4.0.
- [Commits](https://github.com/FossifyOrg/commons/compare/5.3.0...5.4.0)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 14:15:21 +00:00
fossifybot[bot] c55d685022 chore(release): v1.3.1 (9) (#284)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-10-09 22:05:39 +05:30
Naveen Singh 1e2e304f70 chore(deps): bump org.fossify.commons to 5.3.0 (#288) 2025-10-09 21:29:59 +05:30
cat e0b1e884ce chore(l10n): update Danish translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/da/
Via: Weblate
2025-10-09 21:26:14 +05:30
hosêyň abāspanā dfd73bddd0 chore(l10n): update Luri (Bakhtiari) translations
Currently translated at 6.8% (3 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-09 21:26:14 +05:30
cat a88355c9ad chore(l10n): update Danish translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/da/
Via: Weblate
2025-10-09 21:26:14 +05:30
Dan e6593a5c6b chore(l10n): update Ukrainian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/uk/
Via: Weblate
2025-10-09 21:26:14 +05:30
hosêyň abāspanā 880f383e76 feat(l10n): add Luri (Bakhtiari) translations
Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bqi/
Via: Weblate
2025-10-09 21:26:14 +05:30
Naveen Singh ab31c828a1 fix: filter out files from hidden folders in storage (#283)
Refs: https://github.com/FossifyOrg/File-Manager/issues/217, https://github.com/FossifyOrg/File-Manager/issues/33
2025-10-02 12:10:47 +05:30
fossifybot[bot] f71a4b7f55 chore: update lint baselines (#282)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-10-01 09:13:51 +05:30
fossifybot[bot] c2482ee5dc chore(release): v1.3.0 (8) (#269) 2025-09-30 15:14:23 +05:30
alanfox2000software de5b6da9d5 chore(l10n): update Chinese (Traditional Han script, Hong Kong) translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hant_HK/
Via: Weblate
2025-09-30 15:02:49 +05:30
alanfox2000software 4812bc8d4b chore(l10n): update Chinese (Traditional Han script) translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hant/
Via: Weblate
2025-09-30 15:02:49 +05:30
alanfox2000software 3ec4591b58 chore(l10n): update Chinese (Traditional Han script) translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hant/
Via: Weblate
2025-09-30 15:02:49 +05:30
alanfox2000software d11a710106 chore(l10n): update Chinese (Traditional Han script, Hong Kong) translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hant_HK/
Via: Weblate
2025-09-30 15:02:49 +05:30
alanfox2000software 2cf0fdf7d1 chore(l10n): update Chinese (Traditional Han script) translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hant/
Via: Weblate
2025-09-30 15:02:49 +05:30
ovl-1 25fe232c27 chore(l10n): update Norwegian Bokmål translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nb_NO/
Via: Weblate
2025-09-30 15:02:49 +05:30
IgorTrp f733553ff3 chore(l10n): update Serbian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/sr/
Via: Weblate
2025-09-30 15:02:49 +05:30
JanandJan Guegel 5b278f6e4a fix: filter out files from hidden folders in recents (#279)
* fix catch files in hidden folders in recent tab

Signed-off-by: Jan Guegel <jan@guegel.eu>

* adjust changelog

Signed-off-by: Jan Guegel <jan@guegel.eu>

* include getDoesFilePathExist check, just to be sure

Signed-off-by: Jan Guegel <jan@guegel.eu>

* apply Code Review suggestions

---------

Signed-off-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Jan Guegel <jan@guegel.eu>

Refs: https://github.com/FossifyOrg/File-Manager/issues/217
2025-09-30 14:58:54 +05:30
fec28af74f fix: search now ignores accents and diacritics (#274)
* compare normalized search and items to ignore accents and diacritics

* Update CHANGELOG.md

* compare normalized search and items to ignore accents and diacritics

* Update CHANGELOG.md

* fix change print enconding to base64 #104

Signed-off-by: Jan Guegel <jan@guegel.eu>

* ops.. wrong branch..

Signed-off-by: Jan Guegel <jan@guegel.eu>

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* use normalizeString() from commons libs

Signed-off-by: Jan Guegel <jan@guegel.eu>

* use normalizeString() from commons libs also for recentsfragmen

Signed-off-by: Jan Guegel <jan@guegel.eu>

* Apply suggestions from code review

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* use normalizeString() for StorageFragment

Signed-off-by: Jan Guegel <jan@guegel.eu>

* fix last usage of contains() without normalizeString in search context
fix missing expection toast

Signed-off-by: Jan Guegel <jan@guegel.eu>

* remove Toast from loop

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

---------

Signed-off-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

Refs: https://github.com/FossifyOrg/File-Manager/issues/95
2025-09-30 14:53:51 +05:30
dependabot[bot] eb4d38d25a chore(deps): bump org.fossify:commons from 5.1.1 to 5.2.0 (#278)
Bumps org.fossify:commons from 5.1.1 to 5.2.0.

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 10:14:04 +05:30
JanandJan Guegel 8647071c66 feat: add save as in menu in text editor (#277)
* add save as in menu
rename saveText to saveAsText()
add new save() without confirmation

Signed-off-by: Jan Guegel <jan@guegel.eu>

* fix icon of new menuItem to ic_save_vector

Signed-off-by: Jan Guegel <jan@guegel.eu>

* apply CodeReview input
getFilePath to updateFilePath
menuItem SaveAs never displayed with icon
backButtonPressed now uses Save without confirmation

Signed-off-by: Jan Guegel <jan@guegel.eu>

* fix catch filePath.isEmpty() by opening SaveAs Dialog

Signed-off-by: Jan Guegel <jan@guegel.eu>

---------

Signed-off-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Jan Guegel <jan@guegel.eu>

Refs: https://github.com/FossifyOrg/File-Manager/issues/224
2025-09-29 21:14:02 +05:30
630d7b2cea fix: avoid truncated prints (#275)
* fix change print enconding to base64 #104

Signed-off-by: Jan Guegel <jan@guegel.eu>

* Update CHANGELOG.md

* Update CHANGELOG.md

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* use ensureBackgroundThread to avoid ANR on large files

Signed-off-by: Jan Guegel <jan@guegel.eu>

---------

Signed-off-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
2025-09-28 13:17:40 +05:30
223e644f36 fix: request permission in SaveAsActivity on first-run (#271)
* Fix "Replace characters on save as function, FileNotFoundException" #250

* Update CHANGELOG.md

update changelog

* Update app/src/main/kotlin/org/fossify/filemanager/activities/SaveAsActivity.kt

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* Merge branch 'FossifyOrg:main' into main

Signed-off-by: Jan Guegel <jan@guegel.eu>

* Update CHANGELOG.md

* fix PR Feedback

Signed-off-by: Jan Guegel <jan@guegel.eu>

* fix duplicated code by moving it to SimpleActivity.kt

Signed-off-by: Jan Guegel <jan@guegel.eu>

* moved handleStoragePermissions() to SimpleActivity.kt from MainActivity.kt
introduced tryInitFileManager() to SaveAsActivity.kt
removed const MANAGE_STORAGE_RC from MainActivity.kt

Signed-off-by: Jan Guegel <jan@guegel.eu>

* adjusted toast in try catch in storage permission action

Signed-off-by: Jan Guegel <jan@guegel.eu>

* catch ActivityNotFoundException with fallback of SecurityException

Signed-off-by: Jan Guegel <jan@guegel.eu>

* Apply suggestions from code review

thanks for the feedback!

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* remove indent

Signed-off-by: Jan Guegel <jan@guegel.eu>

* adjust changelog

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

---------

Signed-off-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

Refs: https://github.com/FossifyOrg/File-Manager/issues/85
2025-09-27 13:15:56 +05:30
055bfbd3b8 fix: sanitize filenames before saving (#270)
* Fix "Replace characters on save as function, FileNotFoundException" #250

* Update CHANGELOG.md

update changelog

* Update app/src/main/kotlin/org/fossify/filemanager/activities/SaveAsActivity.kt

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

---------

Co-authored-by: Jan Guegel <jan@guegel.eu>
Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

Refs: https://github.com/FossifyOrg/File-Manager/issues/250
2025-09-26 12:28:58 +05:30
Naveen Singh ceb7a5f2a2 fix: update changelog and commons (#268)
* fix: update changelog

* chore(deps): bump org.fossify:commons to 5.1.0

* chore(deps): update commons again
2025-09-25 20:50:02 +05:30
dependabot[bot] 20aee9162d chore(deps): bump rexml from 3.4.1 to 3.4.2 (#264)
Bumps [rexml](https://github.com/ruby/rexml) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/rexml/compare/v3.4.1...v3.4.2)

---
updated-dependencies:
- dependency-name: rexml
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-18 10:31:36 +05:30
fossifybot[bot]andNaveen Singh 7a5f797a2a chore(release): v1.2.3 (7) (#262)
* chore(release): v1.2.3 (7)

* docs: remove translations entry

Removed outdated changelog entries and clarified fixes.

* docs: remove translations entry

---------

Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
2025-09-17 10:38:43 +05:30
dependabot[bot] 10a83a18b1 chore(deps): bump org.jetbrains.kotlin.android from 2.2.10 to 2.2.20 (#263)
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.2.10 to 2.2.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.10...v2.2.20)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.2.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-16 16:04:46 +05:30
Naveen Singh fb3384fb08 fix: trust the system to check whether a file is a directory (#261)
Condition was originally introduced in 12b96e159d

Refs: https://github.com/FossifyOrg/File-Manager/issues/80
2025-09-15 10:33:51 +05:30
Naveen Singh 666c8d8c53 docs: fix broken discussion links in issue templates (#260) 2025-09-11 18:37:27 +05:30
Naveen Singh 8c711104ed chore(release): v1.2.2 (6) (#259) 2025-09-01 20:07:22 +05:30
fossifybot[bot] e7186a9c79 chore(release): v1.2.1 (5) (#254)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-09-01 13:45:22 +00:00
dependabot[bot] 55eff8a6ae chore(deps): bump org.fossify:commons from 5.0.0 to 5.0.2 (#258)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 5.0.0 to 5.0.2.
- [Commits](https://github.com/FossifyOrg/commons/compare/5.0.0...5.0.2)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 5.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 19:11:16 +05:30
Matheus Campos 8b76e7f28a chore(l10n): update Spanish (American) translations
Currently translated at 6.8% (3 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/es_US/
Via: Weblate
2025-09-01 19:04:31 +05:30
GaucovyAero 0bee809420 chore(l10n): update Slovak translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/sk/
Via: Weblate
2025-09-01 19:04:31 +05:30
Kfir Pshititsky 2b51c3f2fa chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2025-09-01 19:04:31 +05:30
Kfir Pshititsky 1b03d62494 chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2025-09-01 19:04:31 +05:30
fossifybot[bot] e9ecfe53a4 chore: update lint baselines (#256)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-09-01 10:01:03 +05:30
Naveen Singh da8202ee2d fix: set progress after computing total size (#253)
Refs: https://github.com/FossifyOrg/File-Manager/issues/251
2025-08-26 02:26:13 +05:30
Naveen Singh 31d4fdbf4f refactor(settings): remove color customization lock and add thank you button (#252) 2025-08-25 04:02:37 +05:30
Naveen Singh f68fe061e0 chore(deps): downgrade com.android.application from 8.12.0 to 8.11.1 (#249) 2025-08-22 04:57:19 +05:30
Naveen Singh f24a8089d2 docs: redirect questions to general discussions (#247) 2025-08-20 16:16:40 +05:30
dependabot[bot] 1571214647 chore(deps): bump org.jetbrains.kotlin.android from 2.2.0 to 2.2.10 (#246)
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.2.0 to 2.2.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.2.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.2.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 22:39:18 +05:30
dependabot[bot] 5da4a63e8d chore(deps): bump org.fossify:commons from 4.3.0 to 4.4.2 (#243)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 4.3.0 to 4.4.2.
- [Commits](https://github.com/FossifyOrg/commons/compare/4.3.0...4.4.2)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 4.4.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-09 22:57:58 +05:30
dependabot[bot] aeb8977a77 chore(deps): bump io.nlopez.compose.rules:detekt from 0.4.25 to 0.4.27 (#244)
Bumps [io.nlopez.compose.rules:detekt](https://github.com/mrmans0n/compose-rules) from 0.4.25 to 0.4.27.
- [Release notes](https://github.com/mrmans0n/compose-rules/releases)
- [Commits](https://github.com/mrmans0n/compose-rules/compare/v0.4.25...v0.4.27)

---
updated-dependencies:
- dependency-name: io.nlopez.compose.rules:detekt
  dependency-version: 0.4.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-09 22:55:05 +05:30
dependabot[bot] 0b93fcbb3e chore(deps): bump com.android.application from 8.11.1 to 8.12.0 (#245)
Bumps com.android.application from 8.11.1 to 8.12.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-09 22:51:12 +05:30
fossifybot[bot] 39f9b00f6a chore: update lint baselines (#242)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-08-01 09:16:47 +05:30
dependabot[bot] cfc1a89300 chore(deps): bump io.nlopez.compose.rules:detekt from 0.4.22 to 0.4.25 (#238)
Bumps [io.nlopez.compose.rules:detekt](https://github.com/mrmans0n/compose-rules) from 0.4.22 to 0.4.25.
- [Release notes](https://github.com/mrmans0n/compose-rules/releases)
- [Commits](https://github.com/mrmans0n/compose-rules/compare/v0.4.22...v0.4.25)

---
updated-dependencies:
- dependency-name: io.nlopez.compose.rules:detekt
  dependency-version: 0.4.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 22:42:18 +05:30
dependabot[bot] 5e8cd437d2 chore(deps): bump org.fossify:commons from 4.2.0 to 4.3.0 (#234)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 4.2.0 to 4.3.0.
- [Commits](https://github.com/FossifyOrg/commons/compare/4.2.0...4.3.0)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:44:40 +05:30
dependabot[bot] 3832e9db5d chore(deps): bump com.android.application from 8.11.0 to 8.11.1 (#233)
Bumps com.android.application from 8.11.0 to 8.11.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 22:45:52 +05:30
fossifybot[bot] 1f61e17fd3 chore(release): v1.2.0 (4) (#210)
Co-authored-by: fossifybot[bot] <212866877+fossifybot[bot]@users.noreply.github.com>
2025-07-12 16:56:47 +05:30
Quentin PAGÈS 259d185b95 chore(l10n): update Occitan translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/oc/
Via: Weblate
2025-07-12 16:12:30 +05:30
Quentin PAGÈS c69d10b8fe chore(l10n): update French translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fr/
Via: Weblate
2025-07-12 16:12:30 +05:30
Quentin PAGÈS 21637a6d8a chore(l10n): update Occitan translations
Currently translated at 81.8% (36 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/oc/
Via: Weblate
2025-07-12 16:12:30 +05:30
Ismail Choudhury ac4be152ed chore(l10n): update English (United Kingdom) translations
Currently translated at 2.2% (1 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/en_GB/
Via: Weblate
2025-07-12 16:12:30 +05:30
Quentin PAGÈS e52a9bc776 feat(l10n): add Occitan translations
Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/oc/
Via: Weblate
2025-07-12 16:12:30 +05:30
jonnysemon 1066344336 chore(l10n): update Arabic translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ar/
Via: Weblate
2025-07-12 16:12:30 +05:30
jonnysemon d8500c0c2a chore(l10n): update Arabic translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ar/
Via: Weblate
2025-07-12 16:12:30 +05:30
AND 81276fe6c0 chore(l10n): update Macedonian translations
Currently translated at 4.5% (2 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/mk/
Via: Weblate
2025-07-12 16:12:30 +05:30
Naveen Singh 70ad7a07bc chore(l10n): update Portuguese (Brazil) translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
Via: Weblate
2025-07-12 16:12:30 +05:30
Petri Hämäläinen ec0f0f7893 chore(l10n): update Finnish translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fi/
Via: Weblate
2025-07-12 16:12:30 +05:30
Oasis Tri c2953276e2 chore(l10n): update French translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/fr/
Via: Weblate
2025-07-12 16:12:30 +05:30
elid 0b208bf63b chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2025-07-12 16:12:30 +05:30
Naveen Singh 141010a523 fix: save timestamp when compressing items (#232)
* fix: save timestamp when compressing items

See: https://github.com/FossifyOrg/File-Manager/issues/189

* style: reformat code

* chore: update baselines

* docs: update changelog
2025-07-12 15:58:50 +05:30
dependabot[bot]andNaveen Singh 8d2a67dc50 chore(deps): bump com.android.application from 8.10.1 to 8.11.0 (#223)
* chore(deps): bump com.android.application from 8.10.1 to 8.11.0

Bumps com.android.application from 8.10.1 to 8.11.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): update gradle wrapper

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2025-07-07 20:11:36 +05:30
dependabot[bot] 0172a2517b chore(deps): bump org.fossify:commons from 4.1.0 to 4.2.0 (#230)
Bumps org.fossify:commons from 4.1.0 to 4.2.0.

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-04 21:19:27 +05:30
Naveen Singh 986d7d5215 feat: handle ACTION_OPEN_DOCUMENT intent (#229)
See: https://github.com/FossifyOrg/File-Manager/issues/213
2025-07-04 20:36:50 +05:30
Naveen Singh 769c0dbb6a chore: ignore extra translations and update detekt rules
* chore: ignore extra translations in lint

Extra translations are removed automatically by Weblate

* chore: update detekt rules

More compose-friendly

* chore: update lint baselines
2025-07-03 21:16:27 +05:30
dependabot[bot] 7d1f4c5eed chore(deps): bump org.fossify:commons from 4.0.0 to 4.1.0 (#222)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 4.0.0 to 4.1.0.
- [Commits](https://github.com/FossifyOrg/commons/compare/4.0.0...4.1.0)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 17:26:22 +05:30
Naveen Singh 1d16ff7505 chore(deps): bump RootTools to 965c154e20 (#227) 2025-07-01 17:17:20 +05:30
Naveen Singh e2b73dd6e7 chore(deps): switch to naveensingh/RootShell (#226)
Just another ancient relic that needed resurrection.
2025-07-01 16:56:57 +05:30
dependabot[bot]andNaveen Singh 24122e36f8 chore(deps): bump org.fossify:commons from 3.0.5 to 4.0.0 (#215)
* chore(deps): bump org.fossify:commons from 3.0.5 to 4.0.0

Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 3.0.5 to 4.0.0.
- [Commits](https://github.com/FossifyOrg/commons/compare/3.0.5...4.0.0)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(i18n): generate locale config automatically

One can be maintained in-app if missing translations become a problem.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2025-06-25 15:45:35 +05:30
dependabot[bot] 9ad80710e8 chore(deps): bump org.jetbrains.kotlin.android from 2.1.21 to 2.2.0 (#216)
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.1.21 to 2.2.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v2.2.0/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.21...v2.2.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-24 16:35:58 +05:30
Naveen Singh 6c87991332 chore: update lint rules and baselines (#218) 2025-06-24 16:08:05 +05:30
dependabot[bot] 467021f8c1 chore(deps): bump org.fossify:commons from 3.0.3 to 3.0.5 (#212)
Bumps [org.fossify:commons](https://github.com/FossifyOrg/commons) from 3.0.3 to 3.0.5.
- [Commits](https://github.com/FossifyOrg/commons/compare/3.0.3...3.0.5)

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 3.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-17 19:07:39 +05:30
dependabot[bot] 96c6e28800 chore(deps): bump fastlane from 2.227.2 to 2.228.0 (#211)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.227.2 to 2.228.0.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.227.2...fastlane/2.228.0)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.228.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 20:46:38 +05:30
Naveen Singh 21e2ab1510 docs(changelog): add translations entry (#209) 2025-06-09 20:08:15 +05:30
Naveen Singh 9ffeb94a35 ci: add fastlane metadata validation and update release trigger
* ci: auto trigger release pull requests when on changelog update

* chore: add code owners

* ci: add fastlane metadata validation
2025-06-09 14:48:47 +05:30
dependabot[bot] 5738639e97 chore(deps): bump org.fossify:commons from 3.0.0 to 3.0.3 (#204)
Bumps org.fossify:commons from 3.0.0 to 3.0.3.

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-07 15:18:28 +05:30
Naveen Singh 32aeae6b38 ci: update release workflows 2025-06-06 20:43:23 +05:30
elid 416cf9675a chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2025-06-06 18:43:17 +05:30
mastoduy 4e0b5ba7b6 chore(l10n): update Vietnamese translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/vi/
Via: Weblate
2025-06-06 18:43:17 +05:30
mastoduy d3fe0f8bc4 chore(l10n): update Vietnamese translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/vi/
Via: Weblate
2025-06-06 18:43:17 +05:30
Vaclovas Intas 8151b2dd00 chore(l10n): update Lithuanian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/lt/
Via: Weblate
2025-06-06 18:43:17 +05:30
elid f9f37718de chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2025-06-06 18:43:17 +05:30
Bora Atıcı ba605b59e3 chore(l10n): update Turkish translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/tr/
Via: Weblate
2025-06-06 18:43:17 +05:30
abdelbasset jabrane bd7d2204ee chore(l10n): update Arabic translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ar/
Via: Weblate
2025-06-06 18:43:17 +05:30
dependabot[bot] d8720bb355 chore(deps): bump org.fossify:commons from 2.0.1 to 3.0.0 (#203)
Bumps org.fossify:commons from 2.0.1 to 3.0.0.

---
updated-dependencies:
- dependency-name: org.fossify:commons
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 19:42:12 +05:30
dependabot[bot] f23a4925a7 chore(deps): bump com.android.application from 8.10.0 to 8.10.1 (#198)
Bumps com.android.application from 8.10.0 to 8.10.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-29 12:42:09 +05:30
Naveen Singh 30dd2397a2 ci(dependabot): add jitpack registry for gradle 2025-05-29 11:47:39 +05:30
Flavio F. M 9dad0da353 chore(l10n): update Portuguese (Brazil) translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
Via: Weblate
2025-05-26 15:15:51 +05:30
109247019824 6f96f85d1a chore(l10n): update Bulgarian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bg/
Via: Weblate
2025-05-26 15:15:51 +05:30
Yurt Page 27acc647d8 chore(l10n): update Russian translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ru/
Via: Weblate
2025-05-26 15:15:51 +05:30
Yurt Page f3c01f4846 chore(l10n): update Russian translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ru/
Via: Weblate
2025-05-26 15:15:51 +05:30
elid 33b783bf3c chore(l10n): update Hebrew translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/he/
Via: Weblate
2025-05-26 15:15:51 +05:30
elid 45f9b5c261 chore(l10n): update Hebrew translations
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
Via: Weblate
2025-05-26 15:15:51 +05:30
Naveen Singh ea082d2dd1 build: move app version to gradle.properties (#193) 2025-05-26 14:16:19 +05:30
Timur Erofeev ef23996ced fix: preserve timestamps when decompressing ZIP files
* Preserve modified date when unzip files.

* Preserve modified date when unzip files via actions menu

- Additionally handle the case with 0 last modified time.
2025-05-25 07:50:35 +05:30
Naveen Singh 68aec3ac61 ci: use fossifybot github app token 2025-05-22 19:34:56 +05:30
dependabot[bot] 93893ce919 chore(deps): bump io.gitlab.arturbosch.detekt from 1.23.3 to 1.23.8 (#161)
Bumps [io.gitlab.arturbosch.detekt](https://github.com/detekt/detekt) from 1.23.3 to 1.23.8.
- [Release notes](https://github.com/detekt/detekt/releases)
- [Commits](https://github.com/detekt/detekt/compare/v1.23.3...v1.23.8)

---
updated-dependencies:
- dependency-name: io.gitlab.arturbosch.detekt
  dependency-version: 1.23.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-22 09:21:38 +05:30
dependabot[bot]andNaveen Singh 222995b4b6 chore(deps): bump org.jetbrains.kotlin.android from 1.9.25 to 2.1.21 (#175)
* chore(deps): bump org.jetbrains.kotlin.android from 1.9.25 to 2.1.21

Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 1.9.25 to 2.1.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.25...v2.1.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.1.21
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build: update archives name property to use archivesBaseName

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2025-05-22 09:21:20 +05:30
Naveen Singh 626497acc5 chore(release): remove invalid metadata (#183) 2025-05-21 14:38:09 +05:30
Naveen Singh cb1cd83f50 chore(release): bump app version to 1.1.0 (3) (#182) 2025-05-21 14:24:42 +05:30
elid 0548e07f21 chore(l10n): update Hebrew translations
Currently translated at 50.0% (1 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/he/
Via: Weblate
2025-05-21 14:18:47 +05:30
Naveen Singh 94924bd19c chore(deps): bump org.fossify.commons to 2.0.1 (#181) 2025-05-21 14:02:25 +05:30
19f0a2ad35 fix: resolve proper filename when saving a shared file (#86)
* Fix filename when saving a shared file

Previously, the code used the last path component of the content URI,
but that isn't necessarily the filename -- it can be a numeric ID.

Switch to the helper function getFilenameFromContentUri(), which uses
ContentResolver to read the DISPLAY_NAME column. (If that fails, we
fall back to the last component of the content URI as before, because
we don't have anything better to use.)

Also improve the way the MIME type is determined. Previously it was
just based on the file extension. Switch to first query the
ContentResolver, then try the type of the Intent (which is supposed to
be set to the MIME type of the data for ACTION_SEND, but may be set to
"*/*" if the type is unknown), and only then fall back to using the
file extension.

Fixes #37.

* style: shorten lines

---------

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2025-05-21 12:03:10 +05:30
97dcf30b47 fix: save state when rotating screen (#111)
* Fixed Text File Editor losing unsaved changes when rotating screen

* style: replace state variable with constant

---------

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2025-05-21 11:45:09 +05:30
Agnieszka CandNaveen Singh 5dae7f82f5 fix: allow editing JSON files (#105)
Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
2025-05-21 10:50:54 +05:30
dependabot[bot] b302495c30 chore(deps): bump com.alexvasilkov:gesture-views from 2.5.2 to 2.8.3 (#159)
Bumps [com.alexvasilkov:gesture-views](https://github.com/alexvasilkov/GestureViews) from 2.5.2 to 2.8.3.
- [Release notes](https://github.com/alexvasilkov/GestureViews/releases)
- [Commits](https://github.com/alexvasilkov/GestureViews/compare/v2.5.2...v2.8.3)

---
updated-dependencies:
- dependency-name: com.alexvasilkov:gesture-views
  dependency-version: 2.8.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 19:21:24 +05:30
dependabot[bot] 747d4b5b43 chore(deps): bump androidx.documentfile:documentfile from 1.0.1 to 1.1.0 (#166)
Bumps androidx.documentfile:documentfile from 1.0.1 to 1.1.0.

---
updated-dependencies:
- dependency-name: androidx.documentfile:documentfile
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 19:04:53 +05:30
dependabot[bot] 1f8f779ed1 chore(deps): bump com.android.application from 8.9.2 to 8.10.0 (#164)
Bumps com.android.application from 8.9.2 to 8.10.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 19:04:27 +05:30
68c00dc3c0 fix(ui): prevent SwipeRefreshLayout from intercepting child touch events (#173)
* Fix accidental rendering of swipe refresh indicator.

* Fix scroll up in Files tab.

* Update app/src/main/kotlin/org/fossify/filemanager/views/MySwipeRefreshLayout.kt

Fix grammar after copy paste.

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>

* docs(changelog): add links

---------

Co-authored-by: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
Co-authored-by: Naveen Singh <snaveen935@gmail.com>
2025-05-20 19:02:15 +05:30
Naveen Singh 2fe8b22fd4 fix: enable pull-to-refresh based on preference (#177)
See: https://github.com/FossifyOrg/File-Manager/issues/136
2025-05-20 09:27:29 +05:30
Naveen Singh 2c0e31cdcf docs(templates): remove local PR template 2025-05-15 00:49:02 +05:30
Agnieszka C 8df0412e11 fix: use zip file name when decompressing directory (#120) 2025-05-14 23:22:18 +05:30
Agnieszka C 25cfd43655 fix: restore temporarilyShowHidden flag on startup (#169) 2025-05-14 23:12:48 +05:30
Naveen Singh 73e9080b67 feat(ui): replace checkboxes with material switches (#170)
* feat(ui): replace checkboxes with material switches

See: https://github.com/orgs/FossifyOrg/discussions/78

* docs(changelog): replace checkboxes with switches
2025-05-14 16:55:46 +05:30
Naveen Singh 581d56ffdc ci: add release commenter and pr labeler workflows 2025-05-13 18:01:05 +05:30
dependabot[bot] c1f7169332 chore(deps): bump fastlane-plugin-fossify from 1.0.0 to 1.0.2 (#167)
Bumps fastlane-plugin-fossify from 1.0.0 to 1.0.2.

---
updated-dependencies:
- dependency-name: fastlane-plugin-fossify
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 19:44:15 +05:30
Naveen Singh 482cfeda68 ci: update dependabot config to handle github actions 2025-05-07 18:17:23 +05:30
Naveen Singh d76a33730f ci: update dependabot config to handle github actions (#163) 2025-05-07 17:49:51 +05:30
abdelbasset jabrane 6e97c28536 Translated using Weblate (Arabic)
Currently translated at 79.5% (35 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ar/
2025-05-07 08:42:15 +05:30
LucasMZ 699e3ec836 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
2025-05-07 08:42:15 +05:30
solokot 31e7920991 Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ru/
2025-05-07 08:42:15 +05:30
Romeostar 991a99a46e Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ru/
2025-05-07 08:42:15 +05:30
Roman 72cd81e24c Translated using Weblate (Russian)
Currently translated at 50.0% (1 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ru/
2025-05-07 08:42:15 +05:30
Roman bdc8d9c6ab Translated using Weblate (Russian)
Currently translated at 50.0% (1 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ru/
2025-05-07 08:42:15 +05:30
cat 6a786d5f25 Translated using Weblate (Danish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/da/
2025-05-07 08:42:15 +05:30
LaKato e1ca6d77f4 Translated using Weblate (Esperanto)
Currently translated at 50.0% (1 of 2 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/eo/
2025-05-07 08:42:15 +05:30
dependabot[bot] 97db302e2e chore(deps): bump fastlane from 2.227.1 to 2.227.2 (#160)
Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.227.1 to 2.227.2.
- [Release notes](https://github.com/fastlane/fastlane/releases)
- [Changelog](https://github.com/fastlane/fastlane/blob/master/CHANGELOG.latest.md)
- [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.227.1...fastlane/2.227.2)

---
updated-dependencies:
- dependency-name: fastlane
  dependency-version: 2.227.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 05:26:14 -04:00
dependabot[bot] ea767df3c0 chore(deps): bump com.android.application from 8.9.0 to 8.9.2 (#162)
Bumps com.android.application from 8.9.0 to 8.9.2.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 05:25:53 -04:00
Naveen Singh d0f7e96a84 ci: add dependabot config 2025-05-05 19:45:16 +05:30
Naveen Singh 5bbe0b59e0 build: allow builds without signing configuration 2025-05-05 19:45:16 +05:30
Naveen Singh 00dd6f4500 ci: setup release workflow 2025-05-05 19:45:16 +05:30
Naveen Singh 9f81ce77c2 style: reformat changelogs as per Keep a Changelog 2025-05-05 19:45:16 +05:30
Naveen Singh 742d63af2b build: use env variables for release signing fallback 2025-05-05 19:45:16 +05:30
Naveen Singh df9249f989 refactor(build): rename prepaid product flavor to gplay 2025-05-05 19:45:16 +05:30
Naveen Singh 0490de7627 chore: setup fastlane 2025-05-05 19:45:16 +05:30
Naveen Singh a0c87edc3e Merge pull request #152 from papjul/open_data_obb_system_app
Open data/obb folder in system app on Android 14+
2025-04-06 17:56:40 +05:30
Naveen Singh 127a820c25 Merge branch 'master' into open_data_obb_system_app 2025-04-06 17:38:24 +05:30
Julien Papasian be63e6f9a8 Open data/obb folder in system app on Android 14+ 2025-04-06 13:47:36 +02:00
Naveen Singh 55cc3bb441 Use workflow templates for minimizer and no-response 2025-04-04 01:54:54 +05:30
Naveen Singh 8daff3f0db Escape apostrophe properly (again) 2025-03-30 17:25:12 +05:30
Naveen Singh 3aef65fa37 Escape apostrophe properly 2025-03-30 17:04:17 +05:30
Naveen Singh 645d5d1943 Remove invalid short description translations 2025-03-25 21:10:52 +05:30
Naveen Singh 3fe891a821 Remove title and changelog translations 2025-03-25 20:58:17 +05:30
Naveen Singh 80793f1a0e Merge pull request #147 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2025-03-25 20:43:28 +05:30
Gwenn M d856a9cebd Translated using Weblate (Breton)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/br/
2025-03-24 17:07:28 +01:00
elid 2fce420cd1 Translated using Weblate (Hebrew)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/he/
2025-03-16 10:47:10 +01:00
Guillaume 447769190b Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nl/
2025-03-13 23:38:16 +01:00
Naveen Singh e89e5b3a17 Merge pull request #109 from Stephan-P/patch-1
Update strings.xml
2025-03-12 19:29:50 +05:30
Naveen Singh fcdf530ffa Merge pull request #137 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2025-03-12 19:29:43 +05:30
LaKato ba339261f7 Translated using Weblate (Esperanto)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/eo/
2025-03-12 11:57:34 +01:00
LaKato 11c7a6dd5a Translated using Weblate (Esperanto)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/eo/
2025-03-12 11:57:33 +01:00
AP 1d9404f7fa Translated using Weblate (Breton)
Currently translated at 56.8% (25 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/br/
2025-03-12 11:57:32 +01:00
Sketch6580 a91f7a2df8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hans/
2025-03-12 11:57:31 +01:00
Alioc 0332a63ee4 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hans/
2025-03-12 11:57:30 +01:00
Roman 20b9776364 Translated using Weblate (Russian)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ru/
2025-03-12 11:57:29 +01:00
P.O 47849e1d07 Translated using Weblate (Swedish)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/sv/
2025-03-12 11:57:28 +01:00
LaKato e4ee20c5fb Translated using Weblate (Esperanto)
Currently translated at 52.2% (23 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/eo/
2025-03-12 11:57:27 +01:00
Nicola Bortoletto 88ed94ddae Translated using Weblate (Italian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/it/
2025-03-12 11:57:26 +01:00
gfbdrgng 827cd9114a Translated using Weblate (Russian)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ru/
2025-03-12 11:57:25 +01:00
FLVAL 6fd361eb14 Translated using Weblate (French)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/fr/
2025-03-12 11:57:24 +01:00
VfBFan f153ffa8e1 Translated using Weblate (German)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/de/
2025-03-12 11:57:23 +01:00
Naveen Singh 1383a26ef7 Merge pull request #146 from FossifyOrg/update_deps
Update AGP and dependencies
2025-03-12 16:27:10 +05:30
Naveen Singh 4f92ddbc1c Update ancient gradle scripts 2025-03-12 16:13:59 +05:30
Naveen Singh 4d5720d2d1 Update AGP to 8.9.0 2025-03-12 15:07:06 +05:30
Naveen Singh f0925f7945 Update kotlin 2025-03-12 14:58:23 +05:30
Naveen Singh 0e7f0b40a1 Remove unused pdf viewer menu 2025-03-12 14:58:23 +05:30
Naveen Singh 8b6fc1cc46 Move actions back into the option menu 2025-03-12 14:58:23 +05:30
Naveen Singh 1cbeab42ea Disable language splits
See https://github.com/FossifyOrg/General-Discussion/issues/242
2025-03-12 14:58:23 +05:30
Naveen Singh 69f29435c3 Update prepaid flavor config 2025-03-12 14:58:22 +05:30
Naveen Singh b5e8d10af2 Remove support for Android and older versions
See https://github.com/orgs/FossifyOrg/discussions/241
2025-03-12 14:16:10 +05:30
Naveen Singh 395b183b77 Setup full screen app lock 2025-03-12 14:09:11 +05:30
Naveen Singh 3722501aea Update commons 2025-03-12 13:23:01 +05:30
Naveen Singh 1500f45593 Update AGP 2025-03-12 13:18:58 +05:30
Naveen Singh 0aa27861e7 Switch to forked RootTools library
Closes https://github.com/FossifyOrg/File-Manager/issues/143
2025-03-12 03:58:32 +05:30
Naveen Singh 98383895c5 Remove optional donation checklist item 2025-01-22 00:30:44 +05:30
Naveen Singh a1bb523e8d Fix typo in CONTRIBUTING.md 2025-01-21 14:00:23 +05:30
Naveen Singh cd6db6d71a Fix typos in issue templates 2025-01-17 17:57:15 +05:30
Naveen Singh 42a34f3d1c Merge pull request #129 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-12-25 23:09:17 +05:30
Peter Dave Hello 2c6b98e22e Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 60.0% (3 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hant/
2024-12-22 11:06:30 +01:00
eduver badf7ccd21 Translated using Weblate (Interlingua)
Currently translated at 65.9% (29 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ia/
2024-12-17 07:03:01 +01:00
mastoduy 67788e7d4b Translated using Weblate (Vietnamese)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/vi/
2024-12-08 11:00:24 +00:00
mastoduy b118080dc9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/vi/
2024-12-08 11:00:22 +00:00
Alexander Gabilondo 1c049561fb Translated using Weblate (Basque)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/eu/
2024-12-06 10:15:15 +01:00
109247019824 cb29636dd0 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bg/
2024-12-02 10:09:25 +01:00
109247019824 2b7246bbf4 Translated using Weblate (Bulgarian)
Currently translated at 40.0% (2 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/bg/
2024-12-01 16:00:28 +01:00
Aindriú Mac Giolla Eoin e156413e42 Translated using Weblate (Irish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ga/
2024-11-24 16:00:48 +00:00
Aindriú Mac Giolla Eoin 7268af9d6c Added translation using Weblate (Irish) 2024-11-23 16:22:48 +01:00
Thiago Carmona 08dd3dc171 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
2024-11-23 16:22:36 +01:00
Naveen Singh 1ef3d26025 Update no-response.yml 2024-11-18 12:21:37 +05:30
Naveen Singh a35fb3e847 Merge pull request #112 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-11-18 00:03:42 +05:30
Dan 074700bf77 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/uk/
2024-11-17 19:16:03 +01:00
Alberto d850827ce7 Translated using Weblate (Italian)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/it/
2024-11-17 19:16:01 +01:00
Sergio Marques 61c3e8884b Translated using Weblate (Portuguese)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt/
2024-11-17 19:16:01 +01:00
Fjuro f0fa5a87ae Translated using Weblate (Czech)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/cs/
2024-11-17 19:15:59 +01:00
josé m c240674079 Translated using Weblate (Galician)
Currently translated at 60.0% (3 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/gl/
2024-11-17 19:15:58 +01:00
Yeasin Hossain cbd8d60ff6 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 20.0% (1 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/bn_BD/
2024-11-17 19:15:57 +01:00
Dan 34aa03a7e0 Translated using Weblate (Ukrainian)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/uk/
2024-11-17 19:15:56 +01:00
Suguru Hirahara dc34c03368 Translated using Weblate (Japanese)
Currently translated at 40.0% (2 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ja/
2024-11-17 19:15:55 +01:00
Suguru Hirahara b55a9df5ab Translated using Weblate (Japanese)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ja/
2024-11-17 19:15:53 +01:00
Sketch6580 8219d1f56f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hans/
2024-11-17 19:15:52 +01:00
Sérgio Marques ae15e123fe Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_PT/
2024-11-17 19:15:51 +01:00
Jeff Huang a6e14aa641 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hant/
2024-11-17 19:15:50 +01:00
Sketch6580 4c930e0944 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/zh_Hans/
2024-11-17 19:15:48 +01:00
Andrea Andre 8651f32b72 Translated using Weblate (Romanian)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ro/
2024-11-17 19:15:47 +01:00
Pander c9fb0f523d Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nl/
2024-11-17 19:15:46 +01:00
Naveen Singh bcc92b1483 Update no-response.yml 2024-11-17 23:44:48 +05:30
Naveen Singh 901f3bb877 Update image minimizer 2024-11-17 23:35:09 +05:30
Naveen Singh 36f5af651a Update image minimizer 2024-11-17 23:19:40 +05:30
Naveen Singh 6751fda69f Update image minimizer 2024-11-17 22:42:38 +05:30
Naveen Singh bf322c6ad8 Update no-response.yml 2024-11-15 16:56:57 +05:30
Naveen Singh 591d693ae6 Reduce no-response duration to 14 days 2024-10-26 03:53:08 +05:30
Naveen Singh 8ea493739e Update image-minimizer.js 2024-10-01 20:12:27 +05:30
Naveen Singh 0722176c87 Merge pull request #121 from esensar/ci
Add reusable workflows for PRs and testing builds
2024-09-28 16:31:03 +05:30
Ensar Sarajčić a19efbda60 Add reusable workflows for PRs and testing builds 2024-09-28 12:40:20 +02:00
Naveen Singh 4ed7c97044 Bump GH actions 2024-07-24 16:11:54 +05:30
Naveen Singh cec9ee04df Merge pull request #69 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-07-18 12:56:21 -04:00
Ricky From Hong Kong 1effc571e5 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 2.2% (1 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hant_HK/
2024-07-12 10:09:19 +02:00
Andrea Andre a6d53c8207 Translated using Weblate (Romanian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ro/
2024-07-10 21:09:11 +02:00
Andrea Andre e70f6305d2 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/it/
2024-07-10 21:09:11 +02:00
Alexander Gabilondo 0ca9a84b5d Translated using Weblate (Basque)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/eu/
2024-07-09 17:09:15 +02:00
김수빈 506a60fad6 Translated using Weblate (Korean)
Currently translated at 97.7% (43 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ko/
2024-06-23 15:09:10 +02:00
김수빈 f9103a602d Translated using Weblate (Korean)
Currently translated at 56.8% (25 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ko/
2024-06-22 06:09:11 +00:00
Stephan Paternotte 0cddc4a903 Update strings.xml
Two corrections: Tap 'back' twice doesn't exit the app, but rather closes it.
2024-06-15 14:38:23 +02:00
josé m f5b3f0f461 Translated using Weblate (Galician)
Currently translated at 60.0% (3 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/gl/
2024-05-25 05:09:16 +02:00
josé m caec5063bf Translated using Weblate (Galician)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/gl/
2024-05-25 05:09:14 +02:00
Dan bad5451789 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/uk/
2024-05-22 23:02:07 +02:00
Alexander Gabilondo 0ba8d43538 Translated using Weblate (Basque)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/eu/
2024-05-19 19:01:50 +00:00
Alexander Gabilondo 47e4ef1ff0 Translated using Weblate (Basque)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/eu/
2024-05-19 19:01:48 +00:00
Umut Solmz e59e396f8d Translated using Weblate (Turkish)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/tr/
2024-05-14 16:01:50 +02:00
Umut Solmz f445fe4c9d Translated using Weblate (Turkish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/tr/
2024-05-14 16:01:48 +02:00
Jeroen 541f5eff81 Translated using Weblate (Dutch)
Currently translated at 60.0% (3 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/nl/
2024-05-10 12:23:57 +02:00
Guillaume e4f6317a79 Translated using Weblate (Dutch)
Currently translated at 60.0% (3 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/nl/
2024-05-10 12:23:56 +02:00
Alexander Gabilondo 38e22d4b86 Translated using Weblate (Basque)
Currently translated at 20.0% (1 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/eu/
2024-05-10 12:23:55 +02:00
Guillaume 3aa6d20005 Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nl/
2024-05-10 12:23:54 +02:00
Jeroen 3e92e44e52 Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nl/
2024-05-10 12:23:53 +02:00
Koshan Othman 4b0c8adfdc Translated using Weblate (Kurdish (Central))
Currently translated at 2.2% (1 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ckb/
2024-05-05 22:07:09 +02:00
Tyson Tan 0f682cc286 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hans/
2024-04-24 05:07:09 +02:00
Azizov Aga afd13dd28f Translated using Weblate (Azerbaijani)
Currently translated at 20.0% (1 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/az/
2024-04-13 23:01:51 +02:00
lucasmz 9f3a16e1b5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.7% (43 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
2024-04-13 23:01:50 +02:00
GuitarBilly 7552c26f20 Translated using Weblate (Dutch)
Currently translated at 60.0% (3 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/nl/
2024-04-09 16:14:30 +02:00
BT-7274 005aa67f40 Translated using Weblate (Chinese (Traditional))
Currently translated at 86.3% (38 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/zh_Hant/
2024-04-04 18:35:04 +02:00
Priit Jõerüüt aebc59facd Translated using Weblate (Estonian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/et/
2024-04-02 13:01:49 +02:00
Макар Разин 1179d0fa00 Translated using Weblate (Belarusian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/be/
2024-04-01 01:23:56 +02:00
OuHaich Cubensis 439b5faaf9 Translated using Weblate (French)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/fr/
2024-03-28 18:02:05 +01:00
Josep M. Ferrer 4da76fb249 Translated using Weblate (Catalan)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca/
2024-03-27 14:02:00 +01:00
antodc b739866d05 Translated using Weblate (Italian)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/it/
2024-03-23 11:52:41 +01:00
Argo Carpathians b11df5fe5f Translated using Weblate (Indonesian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/id/
2024-03-21 00:16:27 +01:00
P.O 31e0f90f75 Translated using Weblate (Swedish)
Currently translated at 80.0% (4 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/sv/
2024-03-19 16:02:52 +01:00
Guillaume 4c6d009373 Translated using Weblate (Dutch)
Currently translated at 40.0% (2 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/nl/
2024-03-19 00:58:29 +01:00
Fjuro db9f44d189 Translated using Weblate (Czech)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/cs/
2024-03-18 10:51:43 +01:00
VfBFan 0261280eff Translated using Weblate (German)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/de/
2024-03-18 10:51:43 +01:00
gallegonovato 302af120f5 Translated using Weblate (Spanish)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/es/
2024-03-18 09:49:39 +01:00
Scrambled777 117c07c231 Translated using Weblate (Hindi)
Currently translated at 100.0% (5 of 5 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/hi/
2024-03-18 09:49:39 +01:00
Naveen 666bfb6b5c Exclude dependency info from APKs
Because this info is encrypted and only readable by Google. It serves no purpose in foss releases.

See FossifyOrg/Phone#43 for more info. Also: https://github.com/FossifyOrg/File-Manager/discussions/71
2024-03-18 14:19:25 +05:30
Naveen 007a481aa3 Delete empty files 2024-03-18 02:24:36 +05:30
Naveen d96a148404 Remove short descriptions longer than 80 characters
Short descriptions should be limited to 80 characters: https://github.com/FossifyOrg/Calendar/discussions/177
2024-03-18 02:17:26 +05:30
Naveen 985568ea2d Update changelog 2024-03-17 06:37:41 +05:30
Naveen 2da2f05fdb Update version to 1.0.1 (2) 2024-03-17 06:36:25 +05:30
Naveen 9cd08ea053 Remove duplicated strings 2024-03-17 06:36:19 +05:30
Naveen 3b8fdbefa8 Merge remote-tracking branch 'origin/master' 2024-03-17 06:23:04 +05:30
Naveen Singh 37f41d4bbb Merge pull request #46 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-03-17 06:22:38 +05:30
Naveen 1561e27674 Update AGP and commons 2024-03-17 06:22:10 +05:30
Balázs Meskó ec770f54b2 Translated using Weblate (Hungarian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hu/
2024-03-15 23:18:40 +01:00
Software In Interlingua 73cce5535a Translated using Weblate (Interlingua)
Currently translated at 65.9% (29 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ia/
2024-03-15 23:18:40 +01:00
fin-w 43b979c1f8 Translated using Weblate (Welsh)
Currently translated at 72.7% (32 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/cy/
2024-03-15 23:18:40 +01:00
Salif Mehmed 3c262e5d93 Translated using Weblate (Bulgarian)
Currently translated at 25.0% (1 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/bg/
2024-03-15 23:18:40 +01:00
VfBFan af48fdd2c2 Translated using Weblate (German)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/de/
2024-03-15 23:18:40 +01:00
Omnipresent Reader 8aa8913620 Translated using Weblate (Romanian)
Currently translated at 50.0% (2 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ro/
2024-03-15 23:18:40 +01:00
Agnieszka C 0274fd4992 Translated using Weblate (Polish)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/pl/
2024-03-15 23:18:40 +01:00
Flavio F. M b9773efa5f Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.7% (43 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
2024-03-15 23:18:40 +01:00
mimvahedi 272f99479b Translated using Weblate (Persian)
Currently translated at 4.5% (2 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fa/
2024-03-15 23:18:40 +01:00
lianergoist 95e127a5d2 Translated using Weblate (Danish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/da/
2024-03-15 23:18:40 +01:00
Nitin Khalia f13353427c Translated using Weblate (Hindi)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/hi/
2024-03-15 23:18:40 +01:00
Nitin Khalia 1a29d085b3 Translated using Weblate (Hindi)
Currently translated at 100.0% (44 of 44 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hi/
2024-03-15 23:18:40 +01:00
Nitin Khalia 1f8ebbfe9e Translated using Weblate (Hindi)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hi/
2024-03-15 23:18:40 +01:00
Daniel 3b7182c4d0 Translated using Weblate (Romanian)
Currently translated at 50.0% (2 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ro/
2024-03-15 23:18:40 +01:00
Daniel a405cbd58d Translated using Weblate (Romanian)
Currently translated at 97.7% (44 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ro/
2024-03-15 23:18:40 +01:00
Scrambled777 87db8da87b Translated using Weblate (Hindi)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hi/
2024-03-15 23:18:40 +01:00
ChronosXYZ e9c1b1f9de Translated using Weblate (Russian)
Currently translated at 25.0% (1 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ru/
2024-03-15 23:18:40 +01:00
pt22 f4f0152f66 Translated using Weblate (Portuguese (Portugal))
Currently translated at 64.4% (29 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_PT/
2024-03-15 23:18:40 +01:00
Dan 9ddbf27fa1 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/uk/
2024-03-15 23:18:40 +01:00
Josep M. Ferrer dfe9ef2f35 Translated using Weblate (Catalan)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ca/
2024-03-15 23:18:40 +01:00
Naveen 19668088a8 Disable manual storage scanning
Closes https://github.com/FossifyOrg/File-Manager/issues/28

When there are more than a few files on the SD Card, this can lead to a busy media scanner situation where any further calls to scan a file are scheduled to be executed after the initial scan is complete. As a result, simple actions like rename (which trigger a rescan) can take a long time to complete.

Originally added in https://github.com/SimpleMobileTools/Simple-File-Manager/commit/4cca280de7bdae5c2a2d20d6c93ead2047c6df67 to fix issues related to stale SD Card stats but it doesn't seem necessary as per my testing.
2024-03-16 03:48:33 +05:30
Naveen Singh 1a422ae262 Merge pull request #68 from Aga-C/fix-sort-by
Fixed sort by in the mime types menu (#67)
2024-03-16 03:33:44 +05:30
Naveen Singh 706da693a7 Merge pull request #66 from FossifyOrg/fix_various_anrs
Fix various ANRs
2024-03-15 05:18:51 +05:30
Naveen 3c93a2d2da Avoid blocking the main thread for too long
It can happen when there are a lot of selected items.
2024-03-15 05:16:50 +05:30
Agnieszka C b5c2c6a7f5 Fixed sort by in the mime types menu (#67) 2024-03-14 09:11:34 +01:00
Naveen aea5b034c3 Minor code improvement 2024-03-13 19:51:00 +05:30
Naveen 3712f9fb26 Move IO operation to background thread
This was causing ANRs when zip files contained more than a few entries.
2024-03-13 19:40:50 +05:30
Naveen cb3e393eb8 Use primary color for folders 2024-03-13 19:19:51 +05:30
Naveen Singh d78f7cb507 Merge pull request #40 from tom93/fix-search-leading-spaces
Fix search pos on file with leading whitespace
2024-03-13 18:29:49 +05:30
Naveen Singh 3c87b4ad4d Merge pull request #49 from lianergoist/patch-1
Update danish strings.xml
2024-02-29 23:58:09 +05:30
Naveen 3e54e5666d Use primary color for folders 2024-02-29 23:50:49 +05:30
Naveen Singh cb40349aaf Merge pull request #54 from Vsnmrn/patch-1
Remove the unused string "compress_pro"
2024-02-11 20:55:09 +05:30
Vsnmrn 74b231a422 Remove compress_pro string (values/strings.xml) 2024-02-11 12:36:32 +01:00
Vsnmrn 0ecde5324a Remove compress_pro string (values-zh-rTW) 2024-02-11 12:35:15 +01:00
Vsnmrn 7488a447cc Remove compress_pro string (values-zh-rCN) 2024-02-11 12:34:31 +01:00
Vsnmrn c3d867daf7 Remove compress_pro string (values-vi) 2024-02-11 12:33:46 +01:00
Vsnmrn ba8ceb3f17 Remove compress_pro string (values-uk) 2024-02-11 12:33:01 +01:00
Vsnmrn 28767b1574 Remove compress_pro string (values-tr) 2024-02-11 12:32:26 +01:00
Vsnmrn 42505ca035 Remove compress_pro string (values-ta) 2024-02-11 12:31:38 +01:00
Vsnmrn daed9558b9 Remove compress_pro string (values-sv) 2024-02-11 12:31:07 +01:00
Vsnmrn 34b2cf30cb Remove compress_pro string (values-sr) 2024-02-11 12:30:30 +01:00
Vsnmrn 702f147071 Remove compress_pro string (values-sl) 2024-02-11 12:29:39 +01:00
Vsnmrn b61eb28bf8 Remove compress_pro string (values-sk) 2024-02-11 12:28:52 +01:00
Vsnmrn 6d07e38e8a Remove compress_pro string (values-ru) 2024-02-11 12:27:57 +01:00
Vsnmrn 6d1d7181fa Remove compress_pro string (values-ro) 2024-02-11 12:26:25 +01:00
Vsnmrn 227e8c198f Remove compress_pro string (values-pt) 2024-02-11 12:25:54 +01:00
Vsnmrn 5f5aa2cbeb Remove compress_pro string (values-pt-rBR) 2024-02-11 12:25:06 +01:00
Vsnmrn 7a88f5102a Remove compress_pro string (values-pl) 2024-02-11 12:24:24 +01:00
Vsnmrn 140915ee4a Remove compress_pro string (values-pa-rPK) 2024-02-11 12:23:44 +01:00
Vsnmrn 41500fc620 Remove compress_pro string (values-nl) 2024-02-11 12:22:31 +01:00
Vsnmrn db4b12698c Remove compress_pro string (values-nb-rNO) 2024-02-11 12:21:50 +01:00
Vsnmrn 63ff11b561 Remove compress_pro string (values-my) 2024-02-11 12:20:52 +01:00
Vsnmrn b83cdc3e5d Remove compress_pro string (values-lt) 2024-02-11 12:19:36 +01:00
Vsnmrn 4ce7da70d5 Remove compress_pro string (values-ko-rKR) 2024-02-11 12:18:41 +01:00
Vsnmrn 0419bc54ed Remove compress_pro string (values-ja) 2024-02-11 12:17:44 +01:00
Vsnmrn b5f43bd391 Remove compress_pro string (values-iw) 2024-02-11 12:17:03 +01:00
Vsnmrn 8c9e7ee9ff Remove compress_pro string (values-it) 2024-02-11 12:15:42 +01:00
Vsnmrn f4bb5bcc95 Remove compress_pro string (values-is) 2024-02-11 12:15:06 +01:00
Vsnmrn 0df6e2293a Remove compress_pro string (values-in) 2024-02-11 12:14:35 +01:00
Vsnmrn 116adb1d60 Remove compress_pro string (values-hu) 2024-02-11 12:13:34 +01:00
Vsnmrn 80fd1da440 Remove compress_pro string (values-hr) 2024-02-11 12:12:56 +01:00
Vsnmrn 59ae8905da Remove compress_pro string (values-hi) 2024-02-11 12:12:21 +01:00
Vsnmrn f05c8f87d5 Remove compress_pro string (values-gl) 2024-02-11 12:11:39 +01:00
Vsnmrn d263c18c7c Remove compress_pro string (values-fr) 2024-02-11 12:10:56 +01:00
Vsnmrn 20442d4375 Remove compress_pro string (values-fi) 2024-02-11 12:10:16 +01:00
Vsnmrn 89fd8f6e43 Remove compress_pro string (values-eu) 2024-02-11 12:08:54 +01:00
Vsnmrn 96bec842b3 Remove compress_pro string (values-et) 2024-02-11 12:08:14 +01:00
Vsnmrn 8295fb90e5 Remove compress_pro string (values-es) 2024-02-11 12:07:33 +01:00
Vsnmrn 1b26eaf1dc Remove compress_pro string (values-eo) 2024-02-11 12:06:47 +01:00
Vsnmrn 625322c5a3 Remove compress_pro string (values-el) 2024-02-11 12:05:45 +01:00
Vsnmrn 375e539d61 Remove compress_pro string (values-de) 2024-02-11 12:05:08 +01:00
Vsnmrn 0aaae215ed Remove compress_pro string (values-da) 2024-02-11 12:04:29 +01:00
Vsnmrn 6ca9f343a0 Remove compress_pro string (values-cy) 2024-02-11 12:03:52 +01:00
Vsnmrn 2cb36d2b8c Remove compress_pro string (values-cs) 2024-02-11 12:03:10 +01:00
Vsnmrn b673c1d409 Remove compress_pro string (values-ca) 2024-02-11 12:02:01 +01:00
Vsnmrn 18afb99575 Remove compress_pro string (values-bg) 2024-02-11 12:00:41 +01:00
Vsnmrn 923bb1dbdf Remove compress_pro string (values-be) 2024-02-11 12:00:06 +01:00
Vsnmrn d138d51224 Remove compress_pro string (values-az) 2024-02-11 11:59:27 +01:00
Vsnmrn 1d555b8372 Remove compress_pro string (values-ar) 2024-02-11 11:58:37 +01:00
lianergoist a7c096ae59 Update danish strings.xml 2024-01-31 22:26:09 +01:00
Naveen Singh dc63e32359 Merge pull request #43 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-01-28 21:28:42 +05:30
Milo Ivir 86687aed95 Translated using Weblate (Croatian)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/hr/
2024-01-28 13:01:48 +01:00
Milo Ivir 58c71f6822 Translated using Weblate (Croatian)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/hr/
2024-01-28 13:01:46 +01:00
Giovanni Donisi 5b999c495b Translated using Weblate (Italian)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/it/
2024-01-26 23:38:54 +01:00
iBabu007 18dc9580eb Translated using Weblate (Bengali)
Currently translated at 4.4% (2 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bn/
2024-01-26 23:38:54 +01:00
Naveen f6408a166e Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/ta/
2024-01-26 23:38:54 +01:00
Kakaeo 760f591d51 Translated using Weblate (Persian)
Currently translated at 2.2% (1 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fa/
2024-01-26 23:38:54 +01:00
Naveen Singh fa23c78b6b Merge pull request #42 from Aga-C/patch-1
Update README.md
2024-01-27 04:08:51 +05:30
Agnieszka C a3cd7a7dc2 Update README.md 2024-01-26 23:31:09 +01:00
Naveen Singh 33b2ceb60d Update README.md 2024-01-27 04:00:38 +05:30
Naveen 115b96837a Move image minimizer to .github/workflows 2024-01-27 01:02:52 +05:30
Naveen 6d72259968 Reduce GitHub image minimizer height 2024-01-27 00:39:46 +05:30
Naveen ff067d6b67 Add Github image minimizer 2024-01-27 00:01:27 +05:30
Tom Levy 1babb14ab0 Fix search pos on file with leading whitespace
The extension property EditText.value trims leading/trailing
whitespace, so using it to calculate the locations of the search
matches produces incorrect indices if the file has leading whitespace.

(This affects the cursor position when going to the next/prev match.
It does not affect the highlighting of matches.)
2024-01-26 15:50:20 +00:00
Naveen Singh d3c717d9ba Merge pull request #25 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-01-25 08:17:52 +05:30
Salif Mehmed bc76ee41de Translated using Weblate (Bulgarian)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/bg/
2024-01-24 22:46:40 +01:00
josé m cd9596a6a0 Translated using Weblate (Galician)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/gl/
2024-01-24 22:46:39 +01:00
Software In Interlingua 7b13773c84 Translated using Weblate (Interlingua)
Currently translated at 42.2% (19 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/ia/
2024-01-24 22:46:38 +01:00
josé m 700ed089ad Translated using Weblate (Galician)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/gl/
2024-01-24 22:46:37 +01:00
teemue 7017d1f842 Translated using Weblate (Finnish)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fi/
2024-01-24 22:46:36 +01:00
Fjuro 97bf72ebfe Translated using Weblate (Czech)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/cs/
2024-01-24 22:46:35 +01:00
Guillaume f563215a9b Translated using Weblate (Dutch)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nl/
2024-01-24 22:46:34 +01:00
Giovanni Donisi 90337832a8 Translated using Weblate (Italian)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/it/
2024-01-24 22:46:33 +01:00
@MTP 8a8312b75e Translated using Weblate (French)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fr/
2024-01-24 22:46:32 +01:00
Priit Jõerüüt c8b839ae14 Translated using Weblate (Estonian)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/et/
2024-01-24 22:46:31 +01:00
Priit Jõerüüt 0595d328bd Translated using Weblate (Estonian)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/et/
2024-01-24 22:46:30 +01:00
Remy f6f854e239 Translated using Weblate (French)
Currently translated at 93.3% (42 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/fr/
2024-01-24 22:46:29 +01:00
Remy 726a44002d Translated using Weblate (French)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/fr/
2024-01-24 22:46:28 +01:00
Priit Jõerüüt bd60c866a2 Translated using Weblate (Estonian)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/et/
2024-01-24 22:46:27 +01:00
Aanarcho cc1e900263 Translated using Weblate (Portuguese)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/pt/
2024-01-24 22:46:26 +01:00
Alexander Gabilondo 942e20b990 Translated using Weblate (Basque)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/eu/
2024-01-24 22:46:25 +01:00
Alexander Gabilondo 138980d15e Translated using Weblate (Basque)
Currently translated at 4.4% (2 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/eu/
2024-01-24 22:46:24 +01:00
P.O a2946dc480 Translated using Weblate (Swedish)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/sv/
2024-01-24 22:46:23 +01:00
Vision Miremont c2e9fc4be0 Translated using Weblate (French)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/fr/
2024-01-24 22:46:22 +01:00
Fjuro bd7c3653a6 Translated using Weblate (Czech)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/cs/
2024-01-24 22:46:21 +01:00
VfBFan c53aa13c13 Translated using Weblate (German)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/de/
2024-01-24 22:46:20 +01:00
Oğuz Ersen 093149b9dd Translated using Weblate (Turkish)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/tr/
2024-01-24 22:46:19 +01:00
Flavio F. M 4ba6ec38bb Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.7% (44 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pt_BR/
2024-01-24 22:46:18 +01:00
Fjuro 123e44bc54 Translated using Weblate (Czech)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/cs/
2024-01-24 22:46:17 +01:00
Software In Interlingua b361ac312f Added translation using Weblate (Interlingua) 2024-01-24 22:46:16 +01:00
gallegonovato d03216b9e8 Translated using Weblate (Spanish)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/es/
2024-01-24 22:46:15 +01:00
VfBFan 480a7b35ea Translated using Weblate (German)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/de/
2024-01-24 22:46:14 +01:00
Agnieszka C 155dd96f36 Translated using Weblate (Polish)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pl/
2024-01-24 22:46:13 +01:00
Guillaume 0b74135051 Translated using Weblate (Dutch)
Currently translated at 95.5% (43 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/nl/
2024-01-24 22:46:12 +01:00
gallegonovato 3a2dbcb7c0 Translated using Weblate (Spanish)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/es/
2024-01-24 22:46:11 +01:00
Naveen f96c7ad73b Fix contribution guidelines link 2024-01-25 03:14:40 +05:30
Naveen e240bc2852 Create pull request template 2024-01-25 02:20:13 +05:30
Naveen af3c141612 Update feature request template 2024-01-24 23:49:13 +05:30
Naveen 3566e43ff9 Update bug report template 2024-01-24 23:00:19 +05:30
Naveen de6cb71a80 Update bug report template 2024-01-24 22:51:40 +05:30
Naveen Singh 70ba322ed5 Merge pull request #35 from Aga-C/patch-1
Update README.md
2024-01-21 06:49:09 +05:30
Agnieszka C cfa3267eee Update README.md 2024-01-20 19:34:23 +01:00
Naveen d08a671ef7 Setup auto-close for stale issues 2024-01-20 02:02:12 +05:30
Naveen Singh 5acc808d70 Merge pull request #29 from Aga-C/patch-2
Update README.md
2024-01-16 18:01:50 +05:30
Agnieszka C 369525bdb3 Update README.md 2024-01-16 11:38:40 +01:00
Naveen Singh 84a8616294 Merge pull request #24 from Aga-C/patch-1
Update README.md
2024-01-09 22:33:26 +05:30
Agnieszka C e5b3ffed62 Update README.md 2024-01-09 18:01:58 +01:00
Naveen c9f72a4c3c Resolve conflicts 2024-01-09 01:41:36 +05:30
Naveen Singh 67a0c0be73 Merge pull request #23 from Vsnmrn/patch-1
Clarify the issue template (File Manager)
2024-01-09 00:44:50 +05:30
gallegonovato 27a217f344 Translated using Weblate (Spanish)
Currently translated at 50.0% (2 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/es/
2024-01-08 20:05:05 +01:00
VfBFan 1f758c6633 Translated using Weblate (German)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/de/
2024-01-08 20:05:05 +01:00
Naveen 5bf9f19f81 Autoremove non-translated files 2024-01-09 00:33:21 +05:30
Vsnmrn 0a7d3e5cd3 Update bug_report.md
Replaced "Version" by "App version"
2024-01-08 18:25:46 +01:00
Naveen Singh 2e97e1a714 Merge pull request #22 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-01-08 21:01:00 +05:30
Agnieszka C 113963a365 Translated using Weblate (Polish)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/pl/
2024-01-08 16:23:24 +01:00
gallegonovato d62bf4da81 Translated using Weblate (Spanish)
Currently translated at 100.0% (45 of 45 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/es/
2024-01-08 16:23:24 +01:00
Naveen Singh f8488baf7a Merge pull request #18 from inson1/patch-1
Add line breaking
2024-01-08 19:34:52 +05:30
Naveen Singh 1bd9bee52b Merge pull request #15 from weblate/weblate-fossify-file-manager
Translations update from Hosted Weblate
2024-01-08 18:12:37 +05:30
VfBFan 46ada0cd26 Translated using Weblate (German)
Currently translated at 100.0% (4 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/de/
2024-01-08 12:00:19 +00:00
Agnieszka C 0e28e07c15 Translated using Weblate (Polish)
Currently translated at 75.0% (3 of 4 strings)

Translation: Fossify/File-Manager metadata
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager-metadata/pl/
2024-01-08 12:00:18 +00:00
Hosted Weblate 97b4311f6d Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/
2024-01-08 12:00:17 +00:00
minh b82e0818b0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (46 of 46 strings)

Translation: Fossify/File-Manager
Translate-URL: https://hosted.weblate.org/projects/fossify/file-manager/vi/
2024-01-08 12:00:17 +00:00
Naveen eef000cb14 Remove .gitignore 2024-01-08 17:27:14 +05:30
Naveen d2964d33a3 Autoremove non-translated strings 2024-01-08 17:20:16 +05:30
Naveen Singh b7d7908548 Merge pull request #21 from Aga-C/remove-non-translated-strings
Removed non-translated strings
2024-01-08 16:52:50 +05:30
Agnieszka C d3934af132 Removed non-translated strings 2024-01-08 12:07:33 +01:00
inson1 29611317a4 Add line breaking 2024-01-08 02:59:08 +01:00
Naveen 4752535504 Remove FUNDING.yml 2024-01-07 02:51:20 +05:30
205 changed files with 5367 additions and 1881 deletions

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
# Auto-generated file. DO NOT EDIT.
1.6.3 (15)
-4
View File
@@ -1,4 +0,0 @@
github: [naveensingh]
patreon: naveen3singh
liberapay: naveensingh
custom: [https://paypal.me/naveen3singh]
-40
View File
@@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug, needs triage
assignees: ''
---
**Checklist**
- [ ] I can reproduce the bug with the latest version.
- [ ] I made sure that there are no existing issues - open or closed - to which I could contribute my information to.
- [ ] I have read the FAQ and my problem isn't listed.
- [ ] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
- [ ] This issue contains only one bug.
- [ ] I have read and understood the [contribution guidelines.](https://github.com/FossifyOrg/General-Discussion?tab=readme-ov-file#faq)
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Device info (please complete the following information):**
- Model: [e.g. Pixel 7]
- OS: [e.g. Android 14]
- Version [e.g. 6.28.1]
**Additional context**
Add any other context about the problem here.
+126
View File
@@ -0,0 +1,126 @@
name: Bug report
description: Create a bug report to help us improve
labels: [ "bug", "needs triage" ]
body:
- type: markdown
attributes:
value: |
## Hi there 👋
Thanks for helping us improve Fossify File-Manager by reporting a bug!
Please fill in as much information as possible about your bug to avoid unnecessary and time-consuming back-and-forth communication.
- type: checkboxes
id: checklist
attributes:
label: "Checklist"
options:
- label: "I can reproduce the bug with the latest version given [here](https://github.com/FossifyOrg/File-Manager/releases/latest)."
required: true
- label: "I made sure that there are **no existing issues** - [open](https://github.com/FossifyOrg/File-Manager/issues) or [closed](https://github.com/FossifyOrg/File-Manager/issues?q=is%3Aissue+is%3Aclosed) - to which I could contribute my information."
required: true
- label: "I made sure that there are **no existing discussions** - [open](https://github.com/orgs/FossifyOrg/discussions?discussions_q=is:open+label:filemanager) or [closed](https://github.com/orgs/FossifyOrg/discussions?discussions_q=is:closed+label:filemanager) - to which I could contribute my information."
required: true
- label: "I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed."
required: true
- label: "**I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.**"
required: true
- label: "This issue contains only one bug."
required: true
- label: "I have read and understood the [contribution guidelines](https://github.com/FossifyOrg/File-Manager/blob/master/CONTRIBUTING.md)."
required: true
- type: input
id: app-version
attributes:
label: Affected app version
description: "Which app version were you using when you found the bug?"
placeholder: "x.x.x - Go to App Main Menu > About > Version."
validations:
required: true
- type: input
id: device-os-info
attributes:
label: Affected Android/Custom ROM version
description: |
What operating system and version were you using when you encounter the bug?
placeholder: "Example: Android 12 / LineageOS 18.1"
validations:
required: true
- type: input
id: device-model-info
attributes:
label: Affected device model
description: |
What device model were you using when you encountered the bug?
placeholder: "Example: Pixel 8 Pro / Samsung Galaxy S20"
validations:
required: true
- type: dropdown
id: download
attributes:
label: How did you install the app?
options:
- F-Droid / IzzyOnDroid
- Google Play Store
- GitHub releases
- Built from source
- Third-party website
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to reproduce the bug
description: |
What did you do for the bug to show up?
If you can't cause the bug to show up again reliably (and hence don't have a proper set of steps to give us), please still try to give as many details as possible on how you think you encountered the bug.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: |
Tell us what you expect to happen.
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: Actual behavior
description: |
Tell us what happens with the steps given above.
validations:
required: true
- type: textarea
id: screen-media
attributes:
label: Screenshots/Screen recordings
description: |
A picture or video is worth a thousand words.
If applicable, drag and drop screenshots or a screen recording to help explain your problem. If your file is too big for Github to accept, try to compress it (ZIP file), or feel free to paste a link to an image/video instead.
- type: textarea
id: additional-information
attributes:
label: Additional information
description: |
Please provide any additional information or context that may be relevant, for example:
* any file or media that led to this bug
* any crash logs (if you know how to get one)
* the affected device is rooted, a foldable or a TV
* you have disabled all animations on your device
* your rabbit chewed your network cable
* ...
+1 -1
View File
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Questions
url: https://github.com/FossifyOrg/File-Manager/discussions
url: https://github.com/orgs/FossifyOrg/discussions
about: Please ask and answer questions here.
-27
View File
@@ -1,27 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature request, needs triage
assignees: ''
---
**Checklist**
- [ ] I made sure that there are no existing issues - open or closed - to which I could contribute my information.
- [ ] I have read the FAQ and my problem isn't listed.
- [ ] I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise.
- [ ] This issue contains only one feature request.
- [ ] I have read and understood the [contribution guidelines.](https://github.com/FossifyOrg/General-Discussion?tab=readme-ov-file#faq)
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
@@ -0,0 +1,52 @@
name: Feature request
description: Suggest an idea for this project
labels: [ "feature request", "needs triage" ]
body:
- type: markdown
attributes:
value: |
## Hi there 👋
Thanks for helping us improve Fossify File-Manager by suggesting a feature!
Please fill in as much information as possible about your feature request to avoid unnecessary and time-consuming back-and-forth communication.
- type: checkboxes
id: checklist
attributes:
label: "Checklist"
options:
- label: "I made sure that there are **no existing issues** - [open](https://github.com/FossifyOrg/File-Manager/issues) or [closed](https://github.com/FossifyOrg/File-Manager/issues?q=is%3Aissue+is%3Aclosed) - to which I could contribute my information."
required: true
- label: "I made sure that there are **no existing discussions** - [open](https://github.com/orgs/FossifyOrg/discussions?discussions_q=is:open+label:filemanager) or [closed](https://github.com/orgs/FossifyOrg/discussions?discussions_q=is:closed+label:filemanager) - to which I could contribute my information."
required: true
- label: "I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed."
required: true
- label: "**I have taken the time to fill in all the required details. I understand that the request will be dismissed otherwise.**"
required: true
- label: "This issue contains only one feature request."
required: true
- label: "I have read and understood the [contribution guidelines](https://github.com/FossifyOrg/File-Manager/blob/master/CONTRIBUTING.md)."
required: true
- type: textarea
id: feature-description
attributes:
label: Feature description
description: |
Explain how you want the app's look or behavior to change to suit your needs.
validations:
required: true
- type: textarea
id: why-is-the-feature-requested
attributes:
label: Why do you want this feature?
description: |
Describe any problem or limitation you come across while using the app which would be solved by this feature.
validations:
required: true
- type: textarea
id: additional-information
attributes:
label: Additional information
description: Any other information you'd like to include, for instance sketches, mockups, pictures of rabbits, etc.
+48
View File
@@ -0,0 +1,48 @@
version: 2
registries:
maven-google:
type: maven-repository
url: "https://dl.google.com/dl/android/maven2/"
maven-central:
type: maven-repository
url: "https://repo.maven.apache.org/maven2"
jitpack:
type: maven-repository
url: "https://www.jitpack.io"
updates:
- package-ecosystem: "bundler"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore"
prefix-development: "chore"
include: "scope"
- package-ecosystem: "gradle"
directory: "/"
registries:
- maven-central
- maven-google
- jitpack
schedule:
interval: "weekly"
commit-message:
prefix: "chore"
prefix-development: "chore"
include: "scope"
ignore:
- dependency-name: "org.fossify:commons"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore"
prefix-development: "chore"
include: "scope"
+14
View File
@@ -0,0 +1,14 @@
name: Image Minimizer
on:
issue_comment:
types: [created, edited]
issues:
types: [opened, edited]
pull_request_target:
types: [opened, edited]
jobs:
call-image-minimizer-workflow:
uses: FossifyOrg/.github/.github/workflows/image-minimizer.yml@main
secrets: inherit
+11
View File
@@ -0,0 +1,11 @@
name: No Response
on:
schedule:
- cron: "0 12 * * *" # Runs daily at noon
workflow_dispatch:
jobs:
call-no-response-workflow:
uses: FossifyOrg/.github/.github/workflows/no-response.yml@main
secrets: inherit
+10
View File
@@ -0,0 +1,10 @@
name: PR Labeler
on:
pull_request_target:
types: [opened]
jobs:
call-pr-labeler-workflow:
uses: FossifyOrg/.github/.github/workflows/pr-labeler.yml@main
secrets: inherit
+13
View File
@@ -0,0 +1,13 @@
name: PR
on:
pull_request:
branches: [main]
permissions:
contents: read
pull-requests: read
jobs:
call-pr-workflow:
uses: FossifyOrg/.github/.github/workflows/pr.yml@main
+15
View File
@@ -0,0 +1,15 @@
name: Prepare Release PR
on:
repository_dispatch:
types: [prepare-release]
workflow_dispatch:
push:
branches: [main]
paths:
- "CHANGELOG.md"
jobs:
call-release-pr:
uses: FossifyOrg/.github/.github/workflows/prepare-release-pr.yml@main
secrets: inherit
+17
View File
@@ -0,0 +1,17 @@
name: Release
on:
push:
branches: [ main ]
paths:
- ".fossify/release-marker.txt"
jobs:
call-release-workflow:
name: Release
uses: FossifyOrg/.github/.github/workflows/release.yml@main
with:
track: ${{ vars.GPLAY_TRACK || 'beta' }}
rollout: ${{ vars.GPLAY_ROLLOUT || '0.05' }}
validate_only: ${{ vars.GPLAY_DRY_RUN == 'true' }}
secrets: inherit
+18
View File
@@ -0,0 +1,18 @@
name: Testing build (on PR)
on:
pull_request:
branches: [main]
types: [labeled, opened, synchronize, reopened]
paths-ignore:
- ".github/**"
- "CHANGELOG.md"
- "docs/**"
- "fastlane/**"
- "LICENSE"
- "README.md"
jobs:
call-testing-build-workflow:
uses: FossifyOrg/.github/.github/workflows/testing-build.yml@main
secrets: inherit
+13
View File
@@ -0,0 +1,13 @@
name: Update Fossify Commons
on:
repository_dispatch:
types: [update-commons]
workflow_dispatch:
schedule:
- cron: "0 6 * * 0"
jobs:
update-commons:
uses: FossifyOrg/.github/.github/workflows/update-commons.yml@main
secrets: inherit
@@ -0,0 +1,13 @@
name: Update lint baselines
on:
repository_dispatch:
types: [update-lint-baselines]
workflow_dispatch:
schedule:
- cron: "0 0 1 * *"
jobs:
update-lint-baselines:
uses: FossifyOrg/.github/.github/workflows/update-lint-baselines.yml@main
secrets: inherit
@@ -0,0 +1,15 @@
name: Fastlane metadata validation
on:
push:
branches: [main]
paths:
- "fastlane/**"
pull_request:
branches: [main]
paths:
- "fastlane/**"
jobs:
validate:
uses: FossifyOrg/.github/.github/workflows/validate-fastlane-metadata.yml@main
+2 -2
View File
@@ -9,5 +9,5 @@
keystore.jks
keystore.properties
fastlane/fastlane.json
Gemfile
Gemfile.lock
fastlane/report.xml
.kotlin/
+161 -5
View File
@@ -1,7 +1,163 @@
Changelog
==========
# Changelog
All notable changes to this project will be documented in this file.
Version 1.0.0 *(2024-01-07)*
----------------------------
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* Initial release
## [Unreleased]
## [1.6.3] - 2026-10-20
### Changed
- Updated translations
## [1.6.2] - 2026-10-10
### Changed
- Updated translations
### Fixed
- Fixed the modification of the original timestamp when decompressing folders ([#190])
## [1.6.1] - 2026-02-14
### Changed
- Updated translations
### Fixed
- Fixed file size calculations to use SI decimal units (divide by 1000)
## [1.6.0] - 2026-01-30
### Added
- Added support for custom fonts
### Changed
- Updated translations
## [1.5.0] - 2025-12-16
### Changed
- Updated translations
### Fixed
- Fixed an issue where existing files were overwritten when saving new files ([#131])
## [1.4.0] - 2025-10-29
### Changed
- Compatibility updates for Android 15 & 16
- Updated translations
### Fixed
- Fixed duplicated entries when viewing protected ZIP files ([#76])
## [1.3.1] - 2025-10-02
### Changed
- Updated translations
### Fixed
- Fixed files from hidden folders showing up in storage tab browser ([#217])
- Fixed an issue where existing files were overwritten when saving new files ([#131])
## [1.3.0] - 2025-09-30
### Added
- Added a separate "Save as" option in the text editor ([#224])
### Changed
- Save button now overwrites files directly in the text editor ([#224])
- Search now ignores accents and diacritics ([#95])
- Updated translations
### Fixed
- Fixed folders showing up incorrectly as files in copy/move dialog ([#267])
- Fixed error when saving files with unsupported characters ([#250])
- Fixed missing permission prompt on initial "Save as" launch ([#85])
- Fixed printing text files containing a "#" ([#104])
- Fixed files in hidden folders showing up in recent tab ([#217])
## [1.2.3] - 2025-09-15
### Fixed
- Fixed folders showing up incorrectly as files in some cases ([#80])
## [1.2.2] - 2025-09-01
### Changed
- Updated translations
### Fixed
- Fixed empty storage usage bars on initial load ([#251])
## [1.2.0] - 2025-07-12
### Changed
- Updated translations
### Fixed
- File modification time is now preserved when compressing/decompressing files ([#176])
## [1.1.0] - 2025-05-21
### Added
- Added SHA-1 and SHA-256 hashes to file properties ([#149])
### Changed
- Replaced checkboxes with switches
- Updated translations
### Removed
- Dropped support for Android 7 and older versions
### Fixed
- Files saved via `Save As` option are now named properly ([#37])
- Decompressed folders are now named properly ([#120])
- Text editor no longer resets on device rotation ([#106])
- JSON files can now be edited in-app ([#105])
- Fixed accidental rendering of pull-to-refresh indicator ([#27])
- Pull-to-refresh setting is now applied as expected ([#136])
- Fixed invisible content when using app lock ([#150])
## [1.0.1] - 2024-03-17
### Changed
- Folders now use primary/accent color.
- Enhanced search performance in the text editor.
- Added some translations.
### Fixed
- Addressed unnecessary delays when renaming files.
- Fixed unresponsive behavior when viewing contents of a zip file.
- Disabled the use of invalid characters such as `/` for batch file renaming.
- Fixed invisible sort menu when viewing storage summary.
## [1.0.0] - 2024-01-07
### Added
- Initial release
[#27]: https://github.com/FossifyOrg/File-Manager/issues/27
[#37]: https://github.com/FossifyOrg/File-Manager/issues/37
[#76]: https://github.com/FossifyOrg/File-Manager/issues/76
[#80]: https://github.com/FossifyOrg/File-Manager/issues/80
[#85]: https://github.com/FossifyOrg/File-Manager/issues/85
[#95]: https://github.com/FossifyOrg/File-Manager/issues/95
[#104]: https://github.com/FossifyOrg/File-Manager/issues/104
[#105]: https://github.com/FossifyOrg/File-Manager/issues/105
[#106]: https://github.com/FossifyOrg/File-Manager/issues/106
[#120]: https://github.com/FossifyOrg/File-Manager/issues/120
[#131]: https://github.com/FossifyOrg/File-Manager/issues/131
[#136]: https://github.com/FossifyOrg/File-Manager/issues/136
[#149]: https://github.com/FossifyOrg/File-Manager/issues/149
[#150]: https://github.com/FossifyOrg/File-Manager/issues/150
[#176]: https://github.com/FossifyOrg/File-Manager/issues/176
[#190]: https://github.com/FossifyOrg/File-Manager/issues/190
[#217]: https://github.com/FossifyOrg/File-Manager/issues/217
[#224]: https://github.com/FossifyOrg/File-Manager/issues/224
[#250]: https://github.com/FossifyOrg/File-Manager/issues/250
[#251]: https://github.com/FossifyOrg/File-Manager/issues/251
[#267]: https://github.com/FossifyOrg/File-Manager/issues/267
[Unreleased]: https://github.com/FossifyOrg/File-Manager/compare/1.6.3...HEAD
[1.6.3]: https://github.com/FossifyOrg/File-Manager/compare/1.6.2...1.6.3
[1.6.2]: https://github.com/FossifyOrg/File-Manager/compare/1.6.1...1.6.2
[1.6.1]: https://github.com/FossifyOrg/File-Manager/compare/1.6.0...1.6.1
[1.6.0]: https://github.com/FossifyOrg/File-Manager/compare/1.5.0...1.6.0
[1.5.0]: https://github.com/FossifyOrg/File-Manager/compare/1.4.0...1.5.0
[1.4.0]: https://github.com/FossifyOrg/File-Manager/compare/1.3.1...1.4.0
[1.3.1]: https://github.com/FossifyOrg/File-Manager/compare/1.3.0...1.3.1
[1.3.0]: https://github.com/FossifyOrg/File-Manager/compare/1.2.3...1.3.0
[1.2.3]: https://github.com/FossifyOrg/File-Manager/compare/1.2.2...1.2.3
[1.2.2]: https://github.com/FossifyOrg/File-Manager/compare/1.2.0...1.2.2
[1.2.0]: https://github.com/FossifyOrg/File-Manager/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/FossifyOrg/File-Manager/compare/1.0.1...1.1.0
[1.0.1]: https://github.com/FossifyOrg/File-Manager/compare/1.0.0...1.0.1
[1.0.0]: https://github.com/FossifyOrg/File-Manager/releases/tag/1.0.0
+1
View File
@@ -0,0 +1 @@
* @naveensingh
+1 -1
View File
@@ -2,7 +2,7 @@
Before you report something, read the reporting rules [here](https://github.com/FossifyOrg/General-Discussion#how-do-i-suggest-an-improvement-ask-a-question-or-report-an-issue) please.
### Contributing as a developer
Some instructions about code style and everything that has to be done to increase the change of your code getting accepted can be found at the [General Discussion](https://github.com/FossifyOrg/General-Discussion#contribution-rules-for-developers) section.
Some instructions about code style and everything that has to be done to increase the chance of your code getting accepted can be found at the [General Discussion](https://github.com/FossifyOrg/General-Discussion#contribution-rules-for-developers) section.
### Contributing as a non developer
In case you just want to for example improve a translation, you can find the way of doing it [here](https://github.com/FossifyOrg/General-Discussion#how-can-i-suggest-an-edit-to-a-file).
+4
View File
@@ -0,0 +1,4 @@
source "https://rubygems.org"
gem "fastlane"
gem "fastlane-plugin-fossify", "~> 1.0"
+271
View File
@@ -0,0 +1,271 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.8)
abbrev (0.1.2)
addressable (2.9.0)
public_suffix (>= 2.0.2, < 8.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.4.0)
aws-partitions (1.1296.0)
aws-sdk-core (3.257.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
logger
rexml (~> 3.4, >= 3.4.2)
aws-sdk-kms (1.132.0)
aws-sdk-core (~> 3, >= 3.256.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.233.2)
aws-sdk-core (~> 3, >= 3.256.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.3.0)
benchmark (0.5.0)
bigdecimal (4.1.3)
cgi (0.5.2)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
csv (3.3.6)
declarative (0.0.20)
digest-crc (0.7.0)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.7.20261007)
dotenv (2.8.1)
emoji_regex (3.2.3)
erb (6.0.7)
excon (1.7.3)
logger
faraday (2.15.0)
faraday-net_http (>= 2.0, < 3.6)
json
logger
faraday-cookie_jar (0.0.8)
faraday (>= 0.8.0)
http-cookie (>= 1.0.0)
faraday-follow_redirects (0.5.0)
faraday (>= 1, < 3)
faraday-multipart (1.2.0)
multipart-post (~> 2.0)
faraday-net_http (3.5.0)
net-http (~> 0.5)
faraday-retry (2.4.0)
faraday (~> 2.0)
fastimage (2.4.1)
fastlane (2.241.1)
CFPropertyList (>= 2.3, < 5.0.0)
abbrev (~> 0.1)
addressable (>= 2.9.0, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.197)
babosa (>= 1.0.3, < 2.0.0)
base64 (~> 0.2)
benchmark (>= 0.1.0)
bundler (>= 2.4.0, < 5.0.0)
cgi (~> 0.4)
colored (~> 1.2)
commander (~> 4.6)
csv (~> 3.3)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
erb (>= 4.0, < 7.0)
excon (>= 1.0.0, < 2.0.0)
faraday (~> 2.7)
faraday-cookie_jar (~> 0.0.8)
faraday-follow_redirects (~> 0.3)
faraday-multipart (~> 1.0)
faraday-retry (~> 2.0)
fastimage (>= 2.1.0, < 3.0.0)
fastlane-sirp (>= 1.1.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.99)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.5.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
irb (>= 1.8)
json (< 3.0.0)
jwt (>= 2.10.3, < 4)
logger (>= 1.6, < 2.0)
mini_magick (>= 4.9.4, < 5.0.0)
multi_json (~> 1.12)
multipart-post (>= 2.0.0, < 3.0.0)
mutex_m (~> 0.3)
naturally (~> 2.2)
nkf (~> 0.2)
optparse (>= 0.1.1, < 1.0.0)
ostruct (>= 0.1.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 3.4.0, < 4.0.0)
security (~> 0.3)
simctl (~> 1.6.3)
terminal-notifier (>= 3.1.0, < 4.0.0)
terminal-table (~> 4)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.4.1)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-fossify (1.0.2)
abbrev
fastlane-sirp (1.1.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.109.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-core (1.3.1)
addressable (~> 2.9)
faraday (~> 2.13)
faraday-follow_redirects (~> 0.3)
googleauth (~> 1.14)
mini_mime (~> 1.1)
multi_json (~> 1.11)
representable (~> 3.0)
retriable (>= 3.1, < 5.0)
google-apis-iamcredentials_v1 (0.28.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-playcustomapp_v1 (0.18.0)
google-apis-core (>= 0.15.0, < 2.a)
google-apis-storage_v1 (0.69.0)
google-apis-core (>= 0.15.0, < 2.a)
google-cloud-core (1.9.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (2.4.1)
base64 (~> 0.2)
faraday (>= 1.0, < 3.a)
google-cloud-errors (1.7.0)
google-cloud-storage (1.62.1)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-core (>= 0.18, < 2)
google-apis-iamcredentials_v1 (~> 0.18)
google-apis-storage_v1 (>= 0.42)
google-cloud-core (~> 1.6)
googleauth (~> 1.9)
mini_mime (~> 1.0)
google-logging-utils (0.2.1)
googleauth (1.17.5)
faraday (>= 1.0, < 3.a)
google-cloud-env (~> 2.2)
google-logging-utils (~> 0.1)
jwt (>= 1.4, < 4.0)
os (>= 0.9, < 2.0)
pstore (~> 0.1)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.1.6)
domain_name (~> 0.5)
io-console (0.9.4)
irb (1.18.0)
pp (>= 0.6.0)
prism (>= 1.3.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jmespath (1.6.2)
json (2.21.2)
jwt (3.3.0)
base64
logger (1.7.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.21.2)
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
naturally (2.3.0)
net-http (0.10.0)
net-protocol (>= 0.3.0)
uri (>= 0.11.1)
net-protocol (0.4.0)
timeout
nkf (0.3.0)
optparse (0.8.1)
os (1.1.4)
ostruct (0.6.3)
plist (3.7.2)
pp (0.6.4)
prettyprint
prettyprint (0.2.1)
prism (1.9.0)
pstore (0.2.1)
public_suffix (7.0.5)
rake (13.4.2)
rbs (4.2.0)
logger
prism (>= 1.6.0)
tsort
rdoc (8.1.0)
erb
prism (>= 1.6.0)
rbs (>= 4.0.0)
tsort
reline (0.7.0)
io-console (~> 0.5)
representable (3.3.1)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (4.2.0)
rexml (3.4.4)
rouge (3.28.0)
rubyzip (3.7.0)
security (0.3.0)
signet (0.22.1)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 4.0)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (3.1.0)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
timeout (0.6.1)
trailblazer-option (0.1.2)
tsort (0.2.0)
tty-cursor (0.7.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unicode-display_width (3.3.0)
unicode-emoji (~> 4.3)
unicode-emoji (4.3.0)
uri (1.1.2)
word_wrap (1.0.0)
xcodeproj (1.28.1)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
base64
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
nkf
rexml (>= 3.3.6, < 4.0)
xcpretty (0.4.1)
rouge (~> 3.28.0)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
fastlane
fastlane-plugin-fossify (~> 1.0)
BUNDLED WITH
2.6.8
+7 -5
View File
@@ -2,6 +2,8 @@
<img alt="Logo" src="graphics/icon.webp" width="120" />
<a href='https://play.google.com/store/apps/details?id=org.fossify.filemanager'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' height=80/></a> <a href="https://f-droid.org/packages/org.fossify.filemanager/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on-en.svg" alt="Get it on F-Droid" height=80/></a> <a href="https://apt.izzysoft.de/fdroid/index/apk/org.fossify.filemanager"><img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height=80/></a>
Tired of file managers that slow you down and invade your privacy? Unlock a lightning-fast, secure, and completely customizable experience with Fossify File Manager. ⚡
**🚀 DOMINATE YOUR DIGITAL WORLD WITH BLAZING-FAST NAVIGATION:**
@@ -28,12 +30,12 @@ Tired of file managers that slow you down and invade your privacy? Unlock a ligh
Ditch the bloated, privacy-invading file managers and experience true freedom with Fossify File Manager. Download now and take back control of your digital life!
Explore more apps by Fossify: https://www.fossify.org
Source Code: https://www.github.com/FossifyOrg
Join the community on Reddit: https://www.reddit.com/r/Fossify
Connect on Telegram: https://t.me/Fossify
➡️ Explore more Fossify apps: https://www.fossify.org<br>
➡️ Open-Source Code: https://www.github.com/FossifyOrg<br>
➡️ Join the community on Reddit: https://www.reddit.com/r/Fossify<br>
➡️ Connect on Telegram: https://t.me/Fossify
<div style="display:flex;">
<div align="center">
<img alt="App image" src="fastlane/metadata/android/en-US/images/phoneScreenshots/1_en-US.png" width="30%">
<img alt="App image" src="fastlane/metadata/android/en-US/images/phoneScreenshots/3_en-US.png" width="30%">
<img alt="App image" src="fastlane/metadata/android/en-US/images/phoneScreenshots/4_en-US.png" width="30%">
+2
View File
@@ -1 +1,3 @@
/build
/foss/
/gplay/
+61 -14
View File
@@ -1,11 +1,11 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.konan.properties.Properties
import java.io.FileInputStream
plugins {
alias(libs.plugins.android)
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.detekt)
}
val keystorePropertiesFile: File = rootProject.file("keystore.properties")
@@ -14,16 +14,27 @@ if (keystorePropertiesFile.exists()) {
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}
fun hasSigningVars(): Boolean {
return providers.environmentVariable("SIGNING_KEY_ALIAS").orNull != null
&& providers.environmentVariable("SIGNING_KEY_PASSWORD").orNull != null
&& providers.environmentVariable("SIGNING_STORE_FILE").orNull != null
&& providers.environmentVariable("SIGNING_STORE_PASSWORD").orNull != null
}
base {
val versionCode = project.property("VERSION_CODE").toString().toInt()
archivesName = "file-manager-$versionCode"
}
android {
compileSdk = project.libs.versions.app.build.compileSDKVersion.get().toInt()
defaultConfig {
applicationId = libs.versions.app.version.appId.get()
applicationId = project.property("APP_ID").toString()
minSdk = project.libs.versions.app.build.minimumSDK.get().toInt()
targetSdk = project.libs.versions.app.build.targetSDK.get().toInt()
versionName = project.libs.versions.app.version.versionName.get()
versionCode = project.libs.versions.app.version.versionCode.get().toInt()
archivesName.set("file-manager-$versionCode")
versionName = project.property("VERSION_NAME").toString()
versionCode = project.property("VERSION_CODE").toString().toInt()
multiDexEnabled = true
vectorDrawables.useSupportLibrary = true
}
@@ -36,6 +47,15 @@ android {
storeFile = file(keystoreProperties.getProperty("storeFile"))
storePassword = keystoreProperties.getProperty("storePassword")
}
} else if (hasSigningVars()) {
register("release") {
keyAlias = providers.environmentVariable("SIGNING_KEY_ALIAS").get()
keyPassword = providers.environmentVariable("SIGNING_KEY_PASSWORD").get()
storeFile = file(providers.environmentVariable("SIGNING_STORE_FILE").get())
storePassword = providers.environmentVariable("SIGNING_STORE_PASSWORD").get()
}
} else {
logger.warn("Warning: No signing config found. Build will be unsigned.")
}
}
@@ -54,7 +74,7 @@ android {
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
if (keystorePropertiesFile.exists()) {
if (keystorePropertiesFile.exists() || hasSigningVars()) {
signingConfig = signingConfigs.getByName("release")
}
}
@@ -62,13 +82,12 @@ android {
flavorDimensions.add("variants")
productFlavors {
register("core")
register("foss")
register("prepaid")
register("gplay")
}
sourceSets {
getByName("main").java.srcDirs("src/main/kotlin")
getByName("main").java.directories.add("src/main/kotlin")
}
compileOptions {
@@ -77,16 +96,43 @@ android {
targetCompatibility = currentJavaVersionFromLibs
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = project.libs.versions.app.build.kotlinJVMTarget.get()
dependenciesInfo {
includeInApk = false
}
namespace = libs.versions.app.version.appId.get()
androidResources {
@Suppress("UnstableApiUsage")
generateLocaleConfig = true
}
tasks.withType<KotlinCompile> {
compilerOptions.jvmTarget.set(
JvmTarget.fromTarget(project.libs.versions.app.build.kotlinJVMTarget.get())
)
}
namespace = project.property("APP_ID").toString()
lint {
checkReleaseBuilds = false
abortOnError = false
abortOnError = true
warningsAsErrors = false
baseline = file("lint-baseline.xml")
lintConfig = rootProject.file("lint.xml")
}
bundle {
language {
enableSplit = false
}
}
}
detekt {
baseline = file("detekt-baseline.xml")
config.setFrom("$rootDir/detekt.yml")
buildUponDefaultConfig = true
allRules = false
}
dependencies {
@@ -98,4 +144,5 @@ dependencies {
implementation(libs.gestureviews)
implementation(libs.autofittextview)
implementation(libs.zip4j)
detektPlugins(libs.compose.detekt)
}
+154
View File
@@ -0,0 +1,154 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>ComplexCondition:Activity.kt$(hide &amp;&amp; filename.startsWith('.')) || (!hide &amp;&amp; !filename.startsWith('.'))</ID>
<ID>ComplexCondition:ItemsAdapter.kt$ItemsAdapter$activity.getDoesFilePathExist(source) &amp;&amp; activity.getIsPathDirectory(source) &amp;&amp; sourceFile.list()?.isEmpty() == true &amp;&amp; sourceFile.getProperSize(true) == 0L &amp;&amp; sourceFile.getFileCount(true) == 0</ID>
<ID>ComplexCondition:ItemsAdapter.kt$ItemsAdapter$hasOTGConnected &amp;&amp; itemToLoad is String &amp;&amp; activity.isPathOnOTG(itemToLoad) &amp;&amp; baseConfig.OTGTreeUri.isNotEmpty() &amp;&amp; baseConfig.OTGPartition.isNotEmpty()</ID>
<ID>ComplexCondition:MainActivity.kt$MainActivity$!config.wasOTGHandled &amp;&amp; hasPermission(PERMISSION_WRITE_STORAGE) &amp;&amp; hasOTGConnected() &amp;&amp; config.OTGPath.isEmpty()</ID>
<ID>ComplexCondition:MimeTypesActivity.kt$MimeTypesActivity$mimetype != "image" &amp;&amp; mimetype != "video" &amp;&amp; mimetype != "audio" &amp;&amp; mimetype != "text" &amp;&amp; !extraAudioMimeTypes.contains(fullMimetype) &amp;&amp; !extraDocumentMimeTypes.contains(fullMimetype) &amp;&amp; !archiveMimeTypes.contains(fullMimetype)</ID>
<ID>ComplexCondition:ReadTextActivity.kt$ReadTextActivity$requestCode == SELECT_SAVE_FILE_INTENT &amp;&amp; resultCode == Activity.RESULT_OK &amp;&amp; resultData != null &amp;&amp; resultData.data != null</ID>
<ID>CyclomaticComplexMethod:DecompressActivity.kt$DecompressActivity$private fun decompressTo(destination: String)</ID>
<ID>CyclomaticComplexMethod:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths( sourcePaths: List&lt;String&gt;, targetPath: String, password: String? = null ): Boolean</ID>
<ID>CyclomaticComplexMethod:ItemsAdapter.kt$ItemsAdapter$override fun actionItemPressed(id: Int)</ID>
<ID>CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun setupOptionsMenu()</ID>
<ID>CyclomaticComplexMethod:MimeTypesActivity.kt$MimeTypesActivity$private fun getProperFileDirItems(callback: (ArrayList&lt;FileDirItem&gt;) -&gt; Unit)</ID>
<ID>CyclomaticComplexMethod:StorageFragment.kt$StorageFragment$private fun getSizesByMimeType(volumeName: String): HashMap&lt;String, Long&gt;</ID>
<ID>EmptyCatchBlock:MimeTypesActivity.kt$MimeTypesActivity${ }</ID>
<ID>EmptyCatchBlock:StorageFragment.kt$StorageFragment${ }</ID>
<ID>EmptyFunctionBlock:DecompressItemsAdapter.kt$DecompressItemsAdapter${}</ID>
<ID>EmptyFunctionBlock:MainActivity.kt$MainActivity.&lt;no name provided&gt;${}</ID>
<ID>EmptyFunctionBlock:ManageFavoritesAdapter.kt$ManageFavoritesAdapter${}</ID>
<ID>EmptyFunctionBlock:MimeTypesActivity.kt$MimeTypesActivity${}</ID>
<ID>EmptyFunctionBlock:StorageFragment.kt$StorageFragment${}</ID>
<ID>LargeClass:ItemsAdapter.kt$ItemsAdapter : MyRecyclerViewAdapterOnPopupTextUpdate</ID>
<ID>LoopWithTooManyJumpStatements:DecompressActivity.kt$DecompressActivity$while</ID>
<ID>LoopWithTooManyJumpStatements:StorageFragment.kt$StorageFragment$do</ID>
<ID>MagicNumber:Config.kt$Config$1.2f</ID>
<ID>MagicNumber:Config.kt$Config$4</ID>
<ID>MagicNumber:Config.kt$Config$8</ID>
<ID>MagicNumber:DecompressActivity.kt$DecompressActivity$1024</ID>
<ID>MagicNumber:DecompressItemsAdapter.kt$DecompressItemsAdapter$0.8f</ID>
<ID>MagicNumber:DecompressItemsAdapter.kt$DecompressItemsAdapter$180</ID>
<ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$0.8f</ID>
<ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$10</ID>
<ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$180</ID>
<ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$4</ID>
<ID>MagicNumber:ItemsFragment.kt$ItemsFragment$3</ID>
<ID>MagicNumber:ReadTextActivity.kt$ReadTextActivity$250</ID>
<ID>MagicNumber:ReadTextActivity.kt$ReadTextActivity$50</ID>
<ID>MagicNumber:RecentsFragment.kt$RecentsFragment$3</ID>
<ID>MagicNumber:RecentsFragment.kt$RecentsFragment$50</ID>
<ID>MagicNumber:RootHelpers.kt$RootHelpers.&lt;no name provided&gt;$5</ID>
<ID>MagicNumber:StorageFragment.kt$StorageFragment$100000</ID>
<ID>MagicNumber:StorageFragment.kt$StorageFragment$2000</ID>
<ID>MagicNumber:StorageFragment.kt$StorageFragment$3</ID>
<ID>MagicNumber:StorageFragment.kt$StorageFragment$4096L</ID>
<ID>MaxLineLength:Activity.kt$fun</ID>
<ID>MaxLineLength:ChangeViewTypeDialog.kt$ChangeViewTypeDialog$class</ID>
<ID>MaxLineLength:ChangeViewTypeDialog.kt$ChangeViewTypeDialog$val</ID>
<ID>MaxLineLength:CompressAsDialog.kt$CompressAsDialog$FilePickerDialog</ID>
<ID>MaxLineLength:CompressAsDialog.kt$CompressAsDialog$class</ID>
<ID>MaxLineLength:CompressAsDialog.kt$CompressAsDialog$val indexOfDot = if (filename.contains('.') &amp;&amp; !activity.getIsPathDirectory(path)) filename.lastIndexOf(".") else filename.length</ID>
<ID>MaxLineLength:Config.kt$Config$set(wasStorageAnalysisTabAdded) = prefs.edit().putBoolean(WAS_STORAGE_ANALYSIS_TAB_ADDED, wasStorageAnalysisTabAdded).apply()</ID>
<ID>MaxLineLength:Context.kt$fun Context.isPathOnRoot(path: String)</ID>
<ID>MaxLineLength:DecompressItemsAdapter.kt$DecompressItemsAdapter$class</ID>
<ID>MaxLineLength:DecompressItemsAdapter.kt$DecompressItemsAdapter$val drawable = fileDrawables.getOrElse(fileName.substringAfterLast(".").lowercase(Locale.getDefault()), { fileDrawable })</ID>
<ID>MaxLineLength:FavoritesActivity.kt$FavoritesActivity$FilePickerDialog</ID>
<ID>MaxLineLength:FavoritesActivity.kt$FavoritesActivity$ManageFavoritesAdapter(this@FavoritesActivity, favorites, this@FavoritesActivity, manageFavoritesList) { }</ID>
<ID>MaxLineLength:ItemsAdapter.kt$ItemsAdapter$}</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$ItemsAdapter</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$class</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$context</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$if</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$private</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$val sectionTitle = ListItem(it.path, context!!.humanizePath(it.path), true, 0, 0, 0, true, false)</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$val sectionTitle = ListItem(parent, context!!.humanizePath(parent), false, 0, 0, 0, true, false)</ID>
<ID>MaxLineLength:ItemsFragment.kt$ItemsFragment.&lt;no name provided&gt;$return</ID>
<ID>MaxLineLength:ListItem.kt$ListItem$val mPath: String</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$// used at apps that have no file access at all, but need to work with files. For example Simple Calendar uses this at exporting events into a file</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.add_favorite).isVisible = currentFragment is ItemsFragment &amp;&amp; !favorites.contains(currentFragment.currentPath)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.column_count).isVisible = currentViewType == VIEW_TYPE_GRID &amp;&amp; currentFragment !is StorageFragment</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.go_home).isVisible = currentFragment is ItemsFragment &amp;&amp; currentFragment.currentPath != config.homeFolder</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.remove_favorite).isVisible = currentFragment is ItemsFragment &amp;&amp; favorites.contains(currentFragment.currentPath)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.set_as_home).isVisible = currentFragment is ItemsFragment &amp;&amp; currentFragment.currentPath != config.homeFolder</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.stop_showing_hidden).isVisible = config.temporarilyShowHidden &amp;&amp; currentFragment !is StorageFragment</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.temporarily_show_hidden).isVisible = !config.shouldShowHidden() &amp;&amp; currentFragment !is StorageFragment</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.toggle_filename).isVisible = currentViewType == VIEW_TYPE_GRID &amp;&amp; currentFragment !is StorageFragment</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$getStorageDirectories().firstOrNull { it.trimEnd('/') != internalStoragePath &amp;&amp; it.trimEnd('/') != sdCardPath }</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$if</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$private fun getInactiveTabIndexes(activeIndex: Int)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$resultIntent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$val licenses = LICENSE_GLIDE or LICENSE_PATTERN or LICENSE_REPRINT or LICENSE_GESTURE_VIEWS or LICENSE_AUTOFITTEXTVIEW or LICENSE_ZIP4J</ID>
<ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$!extraAudioMimeTypes.contains(fullMimetype)</ID>
<ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$if</ID>
<ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$val fullMimetype = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault()) ?: return@queryCursor</ID>
<ID>MaxLineLength:MyViewPagerFragment.kt$MyViewPagerFragment$abstract</ID>
<ID>MaxLineLength:MyViewPagerFragment.kt$MyViewPagerFragment$val fabIcon = context.resources.getColoredDrawableWithColor(iconId, context.getProperPrimaryColor().getContrastColor())</ID>
<ID>MaxLineLength:ReadTextActivity.kt$ReadTextActivity$if</ID>
<ID>MaxLineLength:ReadTextActivity.kt$ReadTextActivity$private</ID>
<ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$ItemsAdapter</ID>
<ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$binding.recentsSwipeRefresh.isEnabled = lastSearchedText.isEmpty() &amp;&amp; activity?.config?.enablePullToRefresh != false</ID>
<ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$class</ID>
<ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$if</ID>
<ID>MaxLineLength:RootHelpers.kt$RootHelpers$fun</ID>
<ID>MaxLineLength:RootHelpers.kt$RootHelpers$private</ID>
<ID>MaxLineLength:SaveAsActivity.kt$SaveAsActivity$FilePickerDialog</ID>
<ID>MaxLineLength:SaveAsDialog.kt$SaveAsDialog$val title = String.format(activity.getString(R.string.file_already_exists_overwrite), newFilename)</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") &amp;&amp; !isTiramisuPlus())</ID>
<ID>NestedBlockDepth:DecompressActivity.kt$DecompressActivity$private fun decompressTo(destination: String)</ID>
<ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths( sourcePaths: List&lt;String&gt;, targetPath: String, password: String? = null ): Boolean</ID>
<ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$private fun decompressPaths( paths: List&lt;String&gt;, conflictResolutions: LinkedHashMap&lt;String, Int&gt;, callback: (success: Boolean) -&gt; Unit )</ID>
<ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$private fun setupView(binding: ItemViewBinding, listItem: ListItem)</ID>
<ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$private fun tryDecompressingPaths( sourcePaths: List&lt;String&gt;, callback: (success: Boolean) -&gt; Unit )</ID>
<ID>NestedBlockDepth:ItemsFragment.kt$ItemsFragment$private fun getRegularItemsOf(path: String, callback: (originalPath: String, items: ArrayList&lt;ListItem&gt;) -&gt; Unit)</ID>
<ID>NestedBlockDepth:ItemsFragment.kt$ItemsFragment$private fun searchFiles(text: String, path: String): ArrayList&lt;ListItem&gt;</ID>
<ID>NestedBlockDepth:RecentsFragment.kt$RecentsFragment$private fun getRecents(callback: (recents: ArrayList&lt;ListItem&gt;) -&gt; Unit)</ID>
<ID>NestedBlockDepth:StorageFragment.kt$StorageFragment$override fun setupFragment(activity: SimpleActivity)</ID>
<ID>NestedBlockDepth:StorageFragment.kt$StorageFragment$private fun getAllFiles(volumeName: String): ArrayList&lt;FileDirItem&gt;</ID>
<ID>ReturnCount:MainActivity.kt$MainActivity$override fun onBackPressedCompat(): Boolean</ID>
<ID>SwallowedException:ItemsAdapter.kt$ItemsAdapter$e: Exception</ID>
<ID>SwallowedException:MimeTypesActivity.kt$MimeTypesActivity$e: Exception</ID>
<ID>SwallowedException:StorageFragment.kt$StorageFragment$e: Exception</ID>
<ID>TooGenericExceptionCaught:DecompressActivity.kt$DecompressActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:ItemsAdapter.kt$ItemsAdapter$e: Exception</ID>
<ID>TooGenericExceptionCaught:ItemsAdapter.kt$ItemsAdapter$exception: Exception</ID>
<ID>TooGenericExceptionCaught:MimeTypesActivity.kt$MimeTypesActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:ReadTextActivity.kt$ReadTextActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:RecentsFragment.kt$RecentsFragment$e: Exception</ID>
<ID>TooGenericExceptionCaught:RootHelpers.kt$RootHelpers$e: Exception</ID>
<ID>TooGenericExceptionCaught:RootHelpers.kt$RootHelpers$exception: Exception</ID>
<ID>TooGenericExceptionCaught:SaveAsActivity.kt$SaveAsActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:StorageFragment.kt$StorageFragment$e: Exception</ID>
<ID>TooManyFunctions:DecompressActivity.kt$DecompressActivity : SimpleActivity</ID>
<ID>TooManyFunctions:DecompressItemsAdapter.kt$DecompressItemsAdapter : MyRecyclerViewAdapter</ID>
<ID>TooManyFunctions:ItemsAdapter.kt$ItemsAdapter : MyRecyclerViewAdapterOnPopupTextUpdate</ID>
<ID>TooManyFunctions:ItemsFragment.kt$ItemsFragment : MyViewPagerFragmentItemOperationsListenerBreadcrumbsListener</ID>
<ID>TooManyFunctions:MainActivity.kt$MainActivity : SimpleActivity</ID>
<ID>TooManyFunctions:ManageFavoritesAdapter.kt$ManageFavoritesAdapter : MyRecyclerViewAdapter</ID>
<ID>TooManyFunctions:MimeTypesActivity.kt$MimeTypesActivity : SimpleActivityItemOperationsListener</ID>
<ID>TooManyFunctions:ReadTextActivity.kt$ReadTextActivity : SimpleActivity</ID>
<ID>TooManyFunctions:RecentsFragment.kt$RecentsFragment : MyViewPagerFragmentItemOperationsListener</ID>
<ID>TooManyFunctions:RootHelpers.kt$RootHelpers</ID>
<ID>TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity</ID>
<ID>TooManyFunctions:StorageFragment.kt$StorageFragment : MyViewPagerFragmentItemOperationsListener</ID>
<ID>VariableNaming:ItemsAdapter.kt$ItemsAdapter$val SAFPath = getFirstSelectedItemPath()</ID>
<ID>VariableNaming:RecentsFragment.kt$RecentsFragment$private val RECENTS_LIMIT = 50</ID>
<ID>VariableNaming:StorageFragment.kt$StorageFragment$private val SIZE_DIVIDER = 100000</ID>
<ID>WildcardImport:ChangeSortingDialog.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:CompressAsDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:CreateNewItemDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:InsertFilenameDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ItemsFragment.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ItemsFragment.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:ManageFavoritesAdapter.kt$import android.view.*</ID>
<ID>WildcardImport:MimeTypesActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:MimeTypesActivity.kt$import org.fossify.filemanager.helpers.*</ID>
<ID>WildcardImport:MyViewPagerFragment.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ReadTextActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SaveAsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SaveAsDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.*</ID>
</CurrentIssues>
</SmellBaseline>
File diff suppressed because it is too large. Load diff
+1 -2
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="show_donate_in_about">true</bool>
<bool name="hide_google_relations">true</bool>
<bool name="pretend_thank_you_installed">true</bool>
<bool name="is_google_play_build">false</bool>
</resources>
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="show_donate_in_about">false</bool>
<bool name="hide_google_relations">true</bool>
<bool name="hide_all_external_links">true</bool>
<bool name="is_google_play_build">true</bool>
</resources>
+1 -1
View File
@@ -22,7 +22,6 @@
android:appCategory="productivity"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_launcher_name"
android:localeConfig="@xml/locale_config"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
@@ -97,6 +96,7 @@
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
<data android:mimeType="application/json" />
</intent-filter>
</activity>
@@ -1,13 +1,13 @@
package org.fossify.filemanager
import android.app.Application
import com.github.ajalt.reprint.core.Reprint
import org.fossify.commons.extensions.checkUseEnglish
import org.fossify.commons.FossifyApp
class App : FossifyApp() {
override val isAppLockFeatureAvailable = true
class App : Application() {
override fun onCreate() {
super.onCreate()
checkUseEnglish()
Reprint.initialize(this)
}
}
@@ -1,6 +1,5 @@
package org.fossify.filemanager.activities
import android.annotation.SuppressLint
import android.net.Uri
import android.os.Bundle
import net.lingala.zip4j.exception.ZipException
@@ -9,14 +8,25 @@ import net.lingala.zip4j.io.inputstream.ZipInputStream
import net.lingala.zip4j.model.LocalFileHeader
import org.fossify.commons.dialogs.EnterPasswordDialog
import org.fossify.commons.dialogs.FilePickerDialog
import org.fossify.commons.extensions.*
import org.fossify.commons.extensions.createDirectorySync
import org.fossify.commons.extensions.getDoesFilePathExist
import org.fossify.commons.extensions.getFileOutputStreamSync
import org.fossify.commons.extensions.getFilenameFromPath
import org.fossify.commons.extensions.getMimeType
import org.fossify.commons.extensions.getParentPath
import org.fossify.commons.extensions.getRealPathFromURI
import org.fossify.commons.extensions.internalStoragePath
import org.fossify.commons.extensions.isGone
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toast
import org.fossify.commons.extensions.viewBinding
import org.fossify.commons.helpers.NavigationIcon
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.helpers.isOreoPlus
import org.fossify.filemanager.R
import org.fossify.filemanager.adapters.DecompressItemsAdapter
import org.fossify.filemanager.databinding.ActivityDecompressBinding
import org.fossify.filemanager.extensions.config
import org.fossify.filemanager.extensions.setLastModified
import org.fossify.filemanager.models.ListItem
import java.io.BufferedInputStream
import java.io.File
@@ -32,15 +42,15 @@ class DecompressActivity : SimpleActivity() {
private var uri: Uri? = null
private var password: String? = null
private var passwordDialog: EnterPasswordDialog? = null
private var filename = ""
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
setupOptionsMenu()
binding.apply {
updateMaterialActivityViews(decompressCoordinator, decompressList, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(decompressList, decompressToolbar)
setupEdgeToEdge(padBottomSystem = listOf(decompressList))
setupMaterialScrollListener(binding.decompressList, binding.decompressAppbar)
}
uri = intent.data
@@ -52,13 +62,14 @@ class DecompressActivity : SimpleActivity() {
password = savedInstanceState?.getString(PASSWORD, null)
val realPath = getRealPathFromURI(uri!!)
binding.decompressToolbar.title = realPath?.getFilenameFromPath() ?: Uri.decode(uri.toString().getFilenameFromPath())
filename = realPath?.getFilenameFromPath() ?: Uri.decode(uri.toString().getFilenameFromPath())
binding.decompressToolbar.title = filename
setupFilesList()
}
override fun onResume() {
super.onResume()
setupToolbar(binding.decompressToolbar, NavigationIcon.Arrow)
setupTopAppBar(binding.decompressAppbar, NavigationIcon.Arrow)
}
override fun onSaveInstanceState(outState: Bundle) {
@@ -76,17 +87,20 @@ class DecompressActivity : SimpleActivity() {
}
}
private fun setupFilesList() {
fillAllListItems(uri!!)
updateCurrentPath("")
}
override fun onBackPressed() {
if (currentPath.isEmpty()) {
super.onBackPressed()
override fun onBackPressedCompat(): Boolean {
return if (currentPath.isEmpty()) {
false
} else {
val newPath = if (currentPath.contains("/")) currentPath.getParentPath() else ""
updateCurrentPath(newPath)
true
}
}
private fun setupFilesList() {
allFiles.clear()
fillAllListItems(uri!!) {
updateCurrentPath("")
}
}
@@ -94,6 +108,14 @@ class DecompressActivity : SimpleActivity() {
currentPath = path
try {
val listItems = getFolderItems(currentPath)
updateAdapter(listItems = listItems)
} catch (e: Exception) {
showErrorToast(e)
}
}
private fun updateAdapter(listItems: MutableList<ListItem>) {
runOnUiThread {
DecompressItemsAdapter(this, listItems, binding.decompressList) {
if ((it as ListItem).isDirectory) {
updateCurrentPath(it.path)
@@ -101,14 +123,20 @@ class DecompressActivity : SimpleActivity() {
}.apply {
binding.decompressList.adapter = this
}
} catch (e: Exception) {
showErrorToast(e)
}
}
private fun decompressFiles() {
val defaultFolder = getRealPathFromURI(uri!!) ?: internalStoragePath
FilePickerDialog(this, defaultFolder, false, config.showHidden, true, true, showFavoritesButton = true) { destination ->
FilePickerDialog(
activity = this,
currPath = defaultFolder,
pickFile = false,
showHidden = config.showHidden,
showFAB = true,
canAddShowHiddenButton = true,
showFavoritesButton = true
) { destination ->
handleSAFDialog(destination) {
if (it) {
ensureBackgroundThread {
@@ -127,26 +155,34 @@ class DecompressActivity : SimpleActivity() {
zipInputStream.setPassword(password?.toCharArray())
}
val buffer = ByteArray(1024)
val foldersTimestamp = mutableListOf<Pair<File, LocalFileHeader>>()
zipInputStream.use {
while (true) {
val entry = zipInputStream.nextEntry ?: break
val filename = title.toString().substringBeforeLast(".")
val filename = filename.substringBeforeLast(".")
val parent = "$destination/$filename"
val newPath = "$parent/${entry.fileName.trimEnd('/')}"
if (!getDoesFilePathExist(parent)) {
if (!createDirectorySync(parent)) {
continue
}
}
if (entry.isDirectory) {
val outputFile = File(newPath)
val isVulnerableForZipPathTraversal = !outputFile.canonicalPath.startsWith(parent)
if (isVulnerableForZipPathTraversal) {
continue
}
val isVulnerableForZipPathTraversal = !File(newPath).canonicalPath.startsWith(parent)
if (isVulnerableForZipPathTraversal) {
if (entry.isDirectory) {
if (!outputFile.exists()) {
outputFile.mkdirs()
}
foldersTimestamp.add(Pair(outputFile, entry))
continue
}
@@ -161,8 +197,11 @@ class DecompressActivity : SimpleActivity() {
fos!!.write(buffer, 0, count)
}
fos!!.close()
outputFile.setLastModified(entry)
}
for ((outputFile, entry) in foldersTimestamp.asReversed()) {
outputFile.setLastModified(entry)
}
toast(R.string.decompression_successful)
finish()
}
@@ -183,13 +222,12 @@ class DecompressActivity : SimpleActivity() {
}.sortedWith(compareBy({ !it.isDirectory }, { it.mName })).toMutableList() as ArrayList<ListItem>
}
@SuppressLint("NewApi")
private fun fillAllListItems(uri: Uri) {
private fun fillAllListItems(uri: Uri, callback: () -> Unit) = ensureBackgroundThread {
val inputStream = try {
contentResolver.openInputStream(uri)
} catch (e: Exception) {
showErrorToast(e)
return
return@ensureBackgroundThread
}
val zipInputStream = ZipInputStream(BufferedInputStream(inputStream))
@@ -206,9 +244,11 @@ class DecompressActivity : SimpleActivity() {
toast(getString(R.string.invalid_password))
passwordDialog?.clearPassword()
} else {
askForPassword()
runOnUiThread {
askForPassword()
}
}
return
return@ensureBackgroundThread
} else {
break
}
@@ -220,12 +260,39 @@ class DecompressActivity : SimpleActivity() {
break
}
val lastModified = if (isOreoPlus()) zipEntry.lastModifiedTime else 0
// Show progress bar only after password dialog is dismissed.
runOnUiThread {
if (binding.progressIndicator.isGone()) {
binding.progressIndicator.show()
}
}
if (passwordDialog != null) {
passwordDialog?.dismiss(notify = false)
passwordDialog = null
}
val lastModified = zipEntry.lastModifiedTime
val filename = zipEntry.fileName.removeSuffix("/")
val listItem = ListItem(filename, filename.getFilenameFromPath(), zipEntry.isDirectory, 0, 0L, lastModified, false, false)
allFiles.add(listItem)
allFiles.add(
ListItem(
mPath = filename,
mName = filename.getFilenameFromPath(),
mIsDirectory = zipEntry.isDirectory,
mChildren = 0,
mSize = 0L,
mModified = lastModified,
isSectionTitle = false,
isGridTypeDivider = false
)
)
}
passwordDialog?.dismiss(notify = false)
runOnUiThread {
binding.progressIndicator.hide()
}
callback()
}
private fun askForPassword() {
@@ -18,20 +18,19 @@ class FavoritesActivity : SimpleActivity(), RefreshRecyclerViewListener {
private val binding by viewBinding(ActivityFavoritesBinding::inflate)
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
setupOptionsMenu()
updateFavorites()
binding.apply {
updateMaterialActivityViews(manageFavoritesCoordinator, manageFavoritesList, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(manageFavoritesList, manageFavoritesToolbar)
setupEdgeToEdge(padBottomSystem = listOf(manageFavoritesList))
setupMaterialScrollListener(binding.manageFavoritesList, binding.manageFavoritesAppbar)
}
}
override fun onResume() {
super.onResume()
setupToolbar(binding.manageFavoritesToolbar, NavigationIcon.Arrow)
setupTopAppBar(binding.manageFavoritesAppbar, NavigationIcon.Arrow)
}
private fun setupOptionsMenu() {
@@ -1,25 +1,58 @@
package org.fossify.filemanager.activities
import android.annotation.SuppressLint
import android.app.Activity
import android.content.ClipData
import android.content.Intent
import android.graphics.drawable.Drawable
import android.media.RingtoneManager
import android.net.Uri
import android.os.Bundle
import android.os.Environment
import android.os.Handler
import android.provider.Settings
import android.widget.ImageView
import android.widget.TextView
import androidx.viewpager.widget.ViewPager
import com.stericson.RootTools.RootTools
import me.grantland.widget.AutofitHelper
import org.fossify.commons.dialogs.ConfirmationAdvancedDialog
import org.fossify.commons.dialogs.RadioGroupDialog
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.*
import org.fossify.commons.extensions.appLaunched
import org.fossify.commons.extensions.appLockManager
import org.fossify.commons.extensions.beGoneIf
import org.fossify.commons.extensions.checkWhatsNew
import org.fossify.commons.extensions.getBottomNavigationBackgroundColor
import org.fossify.commons.extensions.getColoredDrawableWithColor
import org.fossify.commons.extensions.getFilePublicUri
import org.fossify.commons.extensions.getMimeType
import org.fossify.commons.extensions.getProperBackgroundColor
import org.fossify.commons.extensions.getProperTextColor
import org.fossify.commons.extensions.getRealPathFromURI
import org.fossify.commons.extensions.getStorageDirectories
import org.fossify.commons.extensions.getTimeFormat
import org.fossify.commons.extensions.handleHiddenFolderPasswordProtection
import org.fossify.commons.extensions.hasOTGConnected
import org.fossify.commons.extensions.hasPermission
import org.fossify.commons.extensions.hideKeyboard
import org.fossify.commons.extensions.humanizePath
import org.fossify.commons.extensions.internalStoragePath
import org.fossify.commons.extensions.isPathOnOTG
import org.fossify.commons.extensions.isPathOnSD
import org.fossify.commons.extensions.launchMoreAppsFromUsIntent
import org.fossify.commons.extensions.onGlobalLayout
import org.fossify.commons.extensions.onTabSelectionChanged
import org.fossify.commons.extensions.sdCardPath
import org.fossify.commons.extensions.toast
import org.fossify.commons.extensions.updateBottomTabItemColors
import org.fossify.commons.extensions.viewBinding
import org.fossify.commons.helpers.LICENSE_AUTOFITTEXTVIEW
import org.fossify.commons.helpers.LICENSE_GESTURE_VIEWS
import org.fossify.commons.helpers.LICENSE_GLIDE
import org.fossify.commons.helpers.LICENSE_PATTERN
import org.fossify.commons.helpers.LICENSE_REPRINT
import org.fossify.commons.helpers.LICENSE_ZIP4J
import org.fossify.commons.helpers.PERMISSION_WRITE_STORAGE
import org.fossify.commons.helpers.TAB_FILES
import org.fossify.commons.helpers.TAB_RECENT_FILES
import org.fossify.commons.helpers.TAB_STORAGE_ANALYSIS
import org.fossify.commons.helpers.VIEW_TYPE_GRID
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.models.FAQItem
import org.fossify.commons.models.RadioItem
import org.fossify.commons.models.Release
@@ -42,17 +75,16 @@ import org.fossify.filemanager.interfaces.ItemOperationsListener
import java.io.File
class MainActivity : SimpleActivity() {
override var isSearchBarEnabled = true
companion object {
private const val BACK_PRESS_TIMEOUT = 5000
private const val MANAGE_STORAGE_RC = 201
private const val PICKED_PATH = "picked_path"
}
private val binding by viewBinding(ActivityMainBinding::inflate)
private var wasBackJustPressed = false
private var mIsPasswordProtectionPending = false
private var mWasProtectionHandled = false
private var mTabsToShow = ArrayList<Int>()
private var mStoredFontSize = 0
@@ -61,7 +93,6 @@ class MainActivity : SimpleActivity() {
private var mStoredShowTabs = 0
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
appLaunched(BuildConfig.APPLICATION_ID)
@@ -69,7 +100,7 @@ class MainActivity : SimpleActivity() {
refreshMenuItems()
mTabsToShow = getTabsList()
if (!config.wasStorageAnalysisTabAdded && isOreoPlus()) {
if (!config.wasStorageAnalysisTabAdded) {
config.wasStorageAnalysisTabAdded = true
if (config.showTabs and TAB_STORAGE_ANALYSIS == 0) {
config.showTabs += TAB_STORAGE_ANALYSIS
@@ -79,24 +110,15 @@ class MainActivity : SimpleActivity() {
storeStateVariables()
setupTabs()
updateMaterialActivityViews(binding.mainCoordinator, null, useTransparentNavigation = false, useTopSearchMenu = true)
mIsPasswordProtectionPending = config.isAppPasswordProtectionOn
setupEdgeToEdge(padBottomImeAndSystem = listOf(binding.mainTabsHolder))
if (savedInstanceState == null) {
handleAppPasswordProtection {
mWasProtectionHandled = it
if (it) {
initFragments()
mIsPasswordProtectionPending = false
tryInitFileManager()
checkWhatsNewDialog()
checkIfRootAvailable()
checkInvalidFavorites()
} else {
finish()
}
}
config.temporarilyShowHidden = false
initFragments()
tryInitFileManager()
checkWhatsNewDialog()
checkIfRootAvailable()
checkInvalidFavorites()
}
}
@@ -128,7 +150,7 @@ class MainActivity : SimpleActivity() {
}
}
if (binding.mainViewPager.adapter == null && mWasProtectionHandled) {
if (binding.mainViewPager.adapter == null) {
initFragments()
}
}
@@ -139,17 +161,13 @@ class MainActivity : SimpleActivity() {
config.lastUsedViewPagerPage = binding.mainViewPager.currentItem
}
override fun onDestroy() {
super.onDestroy()
config.temporarilyShowHidden = false
}
override fun onBackPressed() {
override fun onBackPressedCompat(): Boolean {
val currentFragment = getCurrentFragment()
if (binding.mainMenu.isSearchOpen) {
binding.mainMenu.closeSearch()
return true
} else if (currentFragment is RecentsFragment || currentFragment is StorageFragment) {
super.onBackPressed()
return false
} else if ((currentFragment as ItemsFragment).getBreadcrumbs().getItemCount() <= 1) {
if (!wasBackJustPressed && config.pressBackTwice) {
wasBackJustPressed = true
@@ -157,12 +175,16 @@ class MainActivity : SimpleActivity() {
Handler().postDelayed({
wasBackJustPressed = false
}, BACK_PRESS_TIMEOUT.toLong())
return true
} else {
appLockManager.lock()
finish()
return true
}
} else {
currentFragment.getBreadcrumbs().removeBreadcrumb()
openPath(currentFragment.getBreadcrumbs().getLastItem().path)
return true
}
}
@@ -172,7 +194,7 @@ class MainActivity : SimpleActivity() {
val currentViewType = config.getFolderViewType(currentFragment.currentPath)
val favorites = config.favorites
binding.mainMenu.getToolbar().menu.apply {
binding.mainMenu.requireToolbar().menu.apply {
findItem(R.id.sort).isVisible = currentFragment is ItemsFragment
findItem(R.id.change_view_type).isVisible = currentFragment !is StorageFragment
@@ -189,7 +211,7 @@ class MainActivity : SimpleActivity() {
findItem(R.id.column_count).isVisible = currentViewType == VIEW_TYPE_GRID && currentFragment !is StorageFragment
findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(R.bool.hide_google_relations)
findItem(R.id.more_apps_from_us).isVisible = resources.getBoolean(R.bool.is_google_play_build)
findItem(R.id.settings).isVisible = !isCreateDocumentIntent
findItem(R.id.about).isVisible = !isCreateDocumentIntent
}
@@ -197,7 +219,7 @@ class MainActivity : SimpleActivity() {
private fun setupOptionsMenu() {
binding.mainMenu.apply {
getToolbar().inflateMenu(R.menu.menu)
requireToolbar().inflateMenu(R.menu.menu)
toggleHideOnScroll(false)
setupMenu()
@@ -211,7 +233,7 @@ class MainActivity : SimpleActivity() {
getCurrentFragment()?.searchQueryChanged(text)
}
getToolbar().setOnMenuItemClickListener { menuItem ->
requireToolbar().setOnMenuItemClickListener { menuItem ->
if (getCurrentFragment() == null) {
return@setOnMenuItemClickListener true
}
@@ -241,42 +263,15 @@ class MainActivity : SimpleActivity() {
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString(PICKED_PATH, getItemsFragment()?.currentPath ?: "")
outState.putBoolean(WAS_PROTECTION_HANDLED, mWasProtectionHandled)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
mWasProtectionHandled = savedInstanceState.getBoolean(WAS_PROTECTION_HANDLED, false)
val path = savedInstanceState.getString(PICKED_PATH) ?: internalStoragePath
if (binding.mainViewPager.adapter == null) {
binding.mainViewPager.onGlobalLayout {
restorePath(path)
}
} else {
restorePath(path)
}
}
@SuppressLint("NewApi")
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
super.onActivityResult(requestCode, resultCode, resultData)
isAskingPermissions = false
if (requestCode == MANAGE_STORAGE_RC && isRPlus()) {
actionOnPermission?.invoke(Environment.isExternalStorageManager())
}
}
private fun restorePath(path: String) {
if (!mWasProtectionHandled) {
handleAppPasswordProtection {
mWasProtectionHandled = it
if (it) {
mIsPasswordProtectionPending = false
openPath(path, true)
} else {
finish()
}
openPath(path, true)
}
} else {
openPath(path, true)
@@ -284,7 +279,6 @@ class MainActivity : SimpleActivity() {
}
private fun updateMenuColors() {
updateStatusbarColor(getProperBackgroundColor())
binding.mainMenu.updateColors()
}
@@ -316,38 +310,6 @@ class MainActivity : SimpleActivity() {
}
}
@SuppressLint("InlinedApi")
private fun handleStoragePermission(callback: (granted: Boolean) -> Unit) {
actionOnPermission = null
if (hasStoragePermission()) {
callback(true)
} else {
if (isRPlus()) {
ConfirmationAdvancedDialog(this, "", R.string.access_storage_prompt, R.string.ok, 0, false) { success ->
if (success) {
isAskingPermissions = true
actionOnPermission = callback
try {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:$packageName")
startActivityForResult(intent, MANAGE_STORAGE_RC)
} catch (e: Exception) {
showErrorToast(e)
val intent = Intent()
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
startActivityForResult(intent, MANAGE_STORAGE_RC)
}
} else {
finish()
}
}
} else {
handlePermission(PERMISSION_WRITE_STORAGE, callback)
}
}
}
private fun initFileManager(refreshRecents: Boolean) {
if (intent.action == Intent.ACTION_VIEW && intent.data != null) {
val data = intent.data
@@ -404,7 +366,9 @@ class MainActivity : SimpleActivity() {
private fun setupTabs() {
binding.mainTabsHolder.removeAllTabs()
val action = intent.action
val isPickFileIntent = action == RingtoneManager.ACTION_RINGTONE_PICKER || action == Intent.ACTION_GET_CONTENT || action == Intent.ACTION_PICK
val isPickFileIntent = action == RingtoneManager.ACTION_RINGTONE_PICKER
|| action == Intent.ACTION_GET_CONTENT
|| action == Intent.ACTION_PICK
val isCreateDocumentIntent = action == Intent.ACTION_CREATE_DOCUMENT
if (isPickFileIntent) {
@@ -457,7 +421,6 @@ class MainActivity : SimpleActivity() {
}
val bottomBarColor = getBottomNavigationBackgroundColor()
updateNavigationBarColor(bottomBarColor)
mainTabsHolder.setBackgroundColor(bottomBarColor)
}
}
@@ -494,10 +457,6 @@ class MainActivity : SimpleActivity() {
}
private fun openPath(path: String, forceRefresh: Boolean = false) {
if (mIsPasswordProtectionPending && !mWasProtectionHandled) {
return
}
var newPath = path
val file = File(path)
if (config.OTGPath.isNotEmpty() && config.OTGPath == path.trimEnd('/')) {
@@ -625,7 +584,7 @@ class MainActivity : SimpleActivity() {
FAQItem(R.string.faq_9_title_commons, R.string.faq_9_text_commons)
)
if (!resources.getBoolean(R.bool.hide_google_relations)) {
if (resources.getBoolean(R.bool.is_google_play_build)) {
faqItems.add(FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons))
faqItems.add(FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons))
faqItems.add(FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons))
@@ -25,6 +25,7 @@ import org.fossify.filemanager.databinding.ActivityMimetypesBinding
import org.fossify.filemanager.dialogs.ChangeSortingDialog
import org.fossify.filemanager.dialogs.ChangeViewTypeDialog
import org.fossify.filemanager.extensions.config
import org.fossify.filemanager.extensions.isPathInHiddenFolder
import org.fossify.filemanager.extensions.tryOpenPathIntent
import org.fossify.filemanager.helpers.*
import org.fossify.filemanager.interfaces.ItemOperationsListener
@@ -43,14 +44,13 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
private var currentVolume = PRIMARY_VOLUME_NAME
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
setupOptionsMenu()
refreshMenuItems()
binding.apply {
updateMaterialActivityViews(mimetypesCoordinator, mimetypesList, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(mimetypesList, mimetypesToolbar)
setupEdgeToEdge(padBottomImeAndSystem = listOf(mimetypesList))
setupMaterialScrollListener(binding.mimetypesList, binding.mimetypesAppbar)
}
currentMimeType = intent.getStringExtra(SHOW_MIMETYPE) ?: return
@@ -84,7 +84,7 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
override fun onResume() {
super.onResume()
setupToolbar(binding.mimetypesToolbar, NavigationIcon.Arrow, searchMenuItem = searchMenuItem)
setupTopAppBar(binding.mimetypesAppbar, NavigationIcon.Arrow, searchMenuItem = searchMenuItem)
}
private fun refreshMenuItems() {
@@ -133,10 +133,11 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
override fun selectedPaths(paths: ArrayList<String>) {}
fun searchQueryChanged(text: String) {
val searchText = text.trim()
lastSearchedText = searchText
val normalizedText = text.normalizeString()
val searchNormalizedText = normalizedText.trim()
lastSearchedText = searchNormalizedText
when {
searchText.isEmpty() -> {
searchNormalizedText.isEmpty() -> {
binding.apply {
mimetypesFastscroller.beVisible()
getRecyclerAdapter()?.updateItems(storedItems)
@@ -145,7 +146,7 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
}
}
searchText.length == 1 -> {
searchNormalizedText.length == 1 -> {
binding.apply {
mimetypesFastscroller.beGone()
mimetypesPlaceholder.beVisible()
@@ -155,11 +156,13 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
else -> {
ensureBackgroundThread {
if (lastSearchedText != searchText) {
if (lastSearchedText != searchNormalizedText) {
return@ensureBackgroundThread
}
val listItems = storedItems.filter { it.name.contains(searchText, true) } as ArrayList<ListItem>
val listItems = storedItems.filter {
it.name.normalizeString().contains(searchNormalizedText, true)
} as ArrayList<ListItem>
runOnUiThread {
getRecyclerAdapter()?.updateItems(listItems, text)
@@ -285,7 +288,10 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
try {
val fullMimetype = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault()) ?: return@queryCursor
val name = cursor.getStringValue(MediaStore.Files.FileColumns.DISPLAY_NAME)
if (!showHidden && name.startsWith(".")) {
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
val isHiddenFile = name.startsWith(".")
if (!showHidden && (isHiddenFile || path.isPathInHiddenFolder())) {
return@queryCursor
}
@@ -294,7 +300,6 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
return@queryCursor
}
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
val lastModified = cursor.getLongValue(MediaStore.Files.FileColumns.DATE_MODIFIED) * 1000
val mimetype = fullMimetype.substringBefore("/")
@@ -7,6 +7,7 @@ import android.net.Uri
import android.os.Bundle
import android.print.PrintAttributes
import android.print.PrintManager
import android.util.Base64
import android.view.inputmethod.EditorInfo
import android.webkit.WebResourceRequest
import android.webkit.WebView
@@ -32,6 +33,7 @@ class ReadTextActivity : SimpleActivity() {
companion object {
private const val SELECT_SAVE_FILE_INTENT = 1
private const val SELECT_SAVE_FILE_AND_EXIT_INTENT = 2
private const val KEY_UNSAVED_TEXT = "KEY_UNSAVED_TEXT"
}
private val binding by viewBinding(ActivityReadTextBinding::inflate)
@@ -49,13 +51,12 @@ class ReadTextActivity : SimpleActivity() {
private lateinit var searchClearBtn: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
setupOptionsMenu()
binding.apply {
updateMaterialActivityViews(readTextCoordinator, readTextView, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(readTextHolder, readTextToolbar)
setupEdgeToEdge(padBottomImeAndSystem = listOf(readTextView))
setupMaterialScrollListener(binding.readTextHolder, binding.readTextAppbar)
}
searchQueryET = findViewById(R.id.search_query)
@@ -85,7 +86,7 @@ class ReadTextActivity : SimpleActivity() {
binding.readTextView.onGlobalLayout {
ensureBackgroundThread {
checkIntent(uri)
checkIntent(uri, savedInstanceState)
}
}
@@ -94,7 +95,14 @@ class ReadTextActivity : SimpleActivity() {
override fun onResume() {
super.onResume()
setupToolbar(binding.readTextToolbar, NavigationIcon.Arrow)
setupTopAppBar(binding.readTextAppbar, NavigationIcon.Arrow)
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
if (originalText != binding.readTextView.text.toString()) {
outState.putString(KEY_UNSAVED_TEXT, binding.readTextView.text.toString())
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
@@ -111,22 +119,26 @@ class ReadTextActivity : SimpleActivity() {
}
}
override fun onBackPressed() {
override fun onBackPressedCompat(): Boolean {
val hasUnsavedChanges = originalText != binding.readTextView.text.toString()
when {
isSearchActive -> closeSearch()
return when {
isSearchActive -> {
closeSearch()
true
}
hasUnsavedChanges && System.currentTimeMillis() - lastSavePromptTS > SAVE_DISCARD_PROMPT_INTERVAL -> {
lastSavePromptTS = System.currentTimeMillis()
ConfirmationAdvancedDialog(this, "", R.string.save_before_closing, R.string.save, R.string.discard) {
if (it) {
saveText(true)
} else {
super.onBackPressed()
performDefaultBack()
}
}
true
}
else -> super.onBackPressed()
else -> false
}
}
@@ -135,6 +147,7 @@ class ReadTextActivity : SimpleActivity() {
when (menuItem.itemId) {
R.id.menu_search -> openSearch()
R.id.menu_save -> saveText()
R.id.menu_save_as -> saveAsText()
R.id.menu_open_with -> openPath(intent.dataString!!, true)
R.id.menu_print -> printText()
else -> return@setOnMenuItemClickListener false
@@ -156,10 +169,14 @@ class ReadTextActivity : SimpleActivity() {
}, 250)
}
private fun saveText(shouldExitAfterSaving: Boolean = false) {
private fun updateFilePath() {
if (filePath.isEmpty()) {
filePath = getRealPathFromURI(intent.data!!) ?: ""
}
}
private fun saveAsText(shouldExitAfterSaving: Boolean = false) {
updateFilePath()
if (filePath.isEmpty()) {
SaveAsDialog(this, filePath, true) { _, filename ->
@@ -173,6 +190,7 @@ class ReadTextActivity : SimpleActivity() {
} else {
SELECT_SAVE_FILE_INTENT
}
@Suppress("DEPRECATION")
startActivityForResult(this, requestCode)
}
}
@@ -191,6 +209,21 @@ class ReadTextActivity : SimpleActivity() {
}
}
private fun saveText(shouldExitAfterSaving: Boolean = false) {
updateFilePath()
if (filePath.isEmpty()) {
saveAsText(shouldExitAfterSaving)
} else if (hasStoragePermission()) {
val file = File(filePath)
getFileOutputStream(file.toFileDirItem(this), true) {
saveTextContent(it, shouldExitAfterSaving, true)
}
} else {
toast(R.string.no_storage_permissions)
}
}
private fun saveTextContent(outputStream: OutputStream?, shouldExitAfterSaving: Boolean, shouldOverwriteOriginalText: Boolean) {
if (outputStream != null) {
val currentText = binding.readTextView.text.toString()
@@ -203,7 +236,7 @@ class ReadTextActivity : SimpleActivity() {
}
if (shouldExitAfterSaving) {
super.onBackPressed()
performDefaultBack()
}
} else {
toast(R.string.unknown_error_occurred)
@@ -221,7 +254,17 @@ class ReadTextActivity : SimpleActivity() {
}
}
webView.loadData(binding.readTextView.text.toString(), "text/plain", "UTF-8")
val text = binding.readTextView.text.toString()
ensureBackgroundThread {
try {
val base64 = Base64.encodeToString(text.toByteArray(), Base64.DEFAULT)
runOnUiThread {
webView.loadData(base64, "text/plain", "base64")
}
} catch (e: Exception) {
showErrorToast(e)
}
}
} catch (e: Exception) {
showErrorToast(e)
}
@@ -241,7 +284,7 @@ class ReadTextActivity : SimpleActivity() {
}
}
private fun checkIntent(uri: Uri) {
private fun checkIntent(uri: Uri, savedInstanceState: Bundle?) {
originalText = if (uri.scheme == "file") {
filePath = uri.path!!
val file = File(filePath)
@@ -270,7 +313,13 @@ class ReadTextActivity : SimpleActivity() {
}
runOnUiThread {
binding.readTextView.setText(originalText)
var textToSet = originalText
if (savedInstanceState != null) {
textToSet = savedInstanceState.getString(KEY_UNSAVED_TEXT, originalText)
}
binding.readTextView.setText(textToSet)
if (originalText.isNotEmpty()) {
hideKeyboard()
} else {
@@ -316,7 +365,7 @@ class ReadTextActivity : SimpleActivity() {
binding.readTextView.text?.clearBackgroundSpans()
if (text.isNotBlank() && text.length > 1) {
searchMatches = binding.readTextView.value.searchMatches(text)
searchMatches = binding.readTextView.text.toString().searchMatches(text)
binding.readTextView.highlightText(text, getProperPrimaryColor())
}
@@ -18,7 +18,21 @@ class SaveAsActivity : SimpleActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
tryInitFileManager()
}
private fun tryInitFileManager() {
handleStoragePermission { granted ->
if (granted) {
saveAsDialog()
} else {
toast(R.string.no_storage_permissions)
finish()
}
}
}
private fun saveAsDialog() {
if (intent.action == Intent.ACTION_SEND && intent.extras?.containsKey(Intent.EXTRA_STREAM) == true) {
FilePickerDialog(this, pickFile = false, showHidden = config.shouldShowHidden(), showFAB = true, showFavoritesButton = true) {
val destination = it
@@ -35,12 +49,16 @@ class SaveAsActivity : SimpleActivity() {
}
}
val source = intent.getParcelableExtra<Uri>(Intent.EXTRA_STREAM)
val mimeType = source!!.toString().getMimeType()
val source = intent.getParcelableExtra<Uri>(Intent.EXTRA_STREAM)!!
val originalFilename = getFilenameFromContentUri(source)
?: source.toString().getFilenameFromPath()
val filename = sanitizeFilename(originalFilename)
val mimeType = contentResolver.getType(source)
?: intent.type?.takeIf { it != "*/*" }
?: filename.getMimeType()
val inputStream = contentResolver.openInputStream(source)
val filename = source.toString().getFilenameFromPath()
val destinationPath = "$destination/$filename"
val destinationPath = getAvailablePath("$destination/$filename")
val outputStream = getFileOutputStreamSync(destinationPath, mimeType, null)!!
inputStream!!.copyTo(outputStream)
rescanPaths(arrayListOf(destinationPath))
@@ -61,6 +79,37 @@ class SaveAsActivity : SimpleActivity() {
override fun onResume() {
super.onResume()
setupToolbar(binding.activitySaveAsToolbar, NavigationIcon.Arrow)
setupTopAppBar(binding.activitySaveAsAppbar, NavigationIcon.Arrow)
}
private fun sanitizeFilename(filename: String): String {
return filename.replace("[/\\\\<>:\"|?*\u0000-\u001F]".toRegex(), "_")
.takeIf { it.isNotBlank() } ?: "unnamed_file"
}
private fun getAvailablePath(destinationPath: String): String {
if (!getDoesFilePathExist(destinationPath)) {
return destinationPath
}
val file = File(destinationPath)
return findAvailableName(file)
}
private fun findAvailableName(file: File): String {
val parent = file.parent ?: return file.absolutePath
val name = file.nameWithoutExtension
val ext = if (file.extension.isNotEmpty()) ".${file.extension}" else ""
var index = 1
var newPath: String
do {
newPath = "$parent/${name}_$index$ext"
index++
} while (getDoesFilePathExist(newPath))
return newPath
}
}
@@ -21,18 +21,17 @@ class SettingsActivity : SimpleActivity() {
private val binding by viewBinding(ActivitySettingsBinding::inflate)
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
binding.apply {
updateMaterialActivityViews(settingsCoordinator, settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)
setupMaterialScrollListener(settingsNestedScrollview, settingsToolbar)
setupEdgeToEdge(padBottomSystem = listOf(settingsNestedScrollview))
setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsAppbar)
}
}
override fun onResume() {
super.onResume()
setupToolbar(binding.settingsToolbar, NavigationIcon.Arrow)
setupTopAppBar(binding.settingsAppbar, NavigationIcon.Arrow)
setupCustomizeColors()
setupUseEnglish()
@@ -1,9 +1,15 @@
package org.fossify.filemanager.activities
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Environment
import android.provider.Settings
import org.fossify.commons.activities.BaseSimpleActivity
import org.fossify.commons.dialogs.ConfirmationAdvancedDialog
import org.fossify.commons.extensions.hasPermission
import android.net.Uri
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toast
import org.fossify.commons.helpers.PERMISSION_WRITE_STORAGE
import org.fossify.commons.helpers.isRPlus
import org.fossify.filemanager.R
@@ -31,8 +37,23 @@ open class SimpleActivity : BaseSimpleActivity() {
R.mipmap.ic_launcher_grey_black
)
companion object {
private const val MANAGE_STORAGE_RC = 201
}
override fun getAppLauncherName() = getString(R.string.app_launcher_name)
override fun getRepositoryName() = "File-Manager"
@SuppressLint("NewApi")
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
super.onActivityResult(requestCode, resultCode, resultData)
isAskingPermissions = false
if (requestCode == MANAGE_STORAGE_RC && isRPlus()) {
actionOnPermission?.invoke(Environment.isExternalStorageManager())
}
}
@SuppressLint("NewApi")
fun hasStoragePermission(): Boolean {
return if (isRPlus()) {
@@ -41,4 +62,39 @@ open class SimpleActivity : BaseSimpleActivity() {
hasPermission(PERMISSION_WRITE_STORAGE)
}
}
@SuppressLint("InlinedApi")
fun handleStoragePermission(callback: (granted: Boolean) -> Unit) {
actionOnPermission = null
if (hasStoragePermission()) {
callback(true)
} else {
if (isRPlus()) {
ConfirmationAdvancedDialog(this, "", R.string.access_storage_prompt, R.string.ok, 0, false) { success ->
if (success) {
isAskingPermissions = true
actionOnPermission = callback
try {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.addCategory("android.intent.category.DEFAULT")
intent.data = Uri.parse("package:$packageName")
startActivityForResult(intent, MANAGE_STORAGE_RC)
} catch (e: android.content.ActivityNotFoundException) {
showErrorToast(e)
val intent = Intent()
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
startActivityForResult(intent, MANAGE_STORAGE_RC)
} catch (e: SecurityException) {
showErrorToast(e)
finish()
}
} else {
finish()
}
}
} else {
handlePermission(PERMISSION_WRITE_STORAGE, callback)
}
}
}
}
@@ -117,8 +117,8 @@ class DecompressItemsAdapter(activity: SimpleActivity, var listItems: MutableLis
private fun getImagePathToLoad(path: String): Any {
return if (path.endsWith(".apk", true)) {
val packageInfo = activity.packageManager.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES)
if (packageInfo != null) {
val appInfo = packageInfo.applicationInfo
val appInfo = packageInfo?.applicationInfo
if (appInfo != null) {
appInfo.sourceDir = path
appInfo.publicSourceDir = path
appInfo.loadIcon(activity.packageManager)
@@ -131,7 +131,7 @@ class DecompressItemsAdapter(activity: SimpleActivity, var listItems: MutableLis
}
private fun initDrawables() {
folderDrawable = resources.getColoredDrawableWithColor(R.drawable.ic_folder_vector, textColor)
folderDrawable = resources.getColoredDrawableWithColor(R.drawable.ic_folder_vector, properPrimaryColor)
folderDrawable.alpha = 180
fileDrawable = resources.getDrawable(R.drawable.ic_file_generic)
fileDrawables = getFilePlaceholderDrawables(activity)
@@ -35,19 +35,82 @@ import net.lingala.zip4j.model.LocalFileHeader
import net.lingala.zip4j.model.ZipParameters
import net.lingala.zip4j.model.enums.EncryptionMethod
import org.fossify.commons.adapters.MyRecyclerViewAdapter
import org.fossify.commons.dialogs.*
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.*
import org.fossify.commons.dialogs.ConfirmationDialog
import org.fossify.commons.dialogs.FilePickerDialog
import org.fossify.commons.dialogs.PropertiesDialog
import org.fossify.commons.dialogs.RadioGroupDialog
import org.fossify.commons.dialogs.RenameDialog
import org.fossify.commons.dialogs.RenameItemDialog
import org.fossify.commons.dialogs.RenameItemsDialog
import org.fossify.commons.extensions.applyColorFilter
import org.fossify.commons.extensions.beGone
import org.fossify.commons.extensions.beVisible
import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.convertToBitmap
import org.fossify.commons.extensions.copyToClipboard
import org.fossify.commons.extensions.createDirectorySync
import org.fossify.commons.extensions.deleteFile
import org.fossify.commons.extensions.deleteFileBg
import org.fossify.commons.extensions.deleteFolderBg
import org.fossify.commons.extensions.formatDate
import org.fossify.commons.extensions.formatSize
import org.fossify.commons.extensions.getAndroidSAFFileItems
import org.fossify.commons.extensions.getAndroidSAFUri
import org.fossify.commons.extensions.getColoredDrawableWithColor
import org.fossify.commons.extensions.getDefaultCopyDestinationPath
import org.fossify.commons.extensions.getDocumentFile
import org.fossify.commons.extensions.getDoesFilePathExist
import org.fossify.commons.extensions.getFileCount
import org.fossify.commons.extensions.getFileInputStreamSync
import org.fossify.commons.extensions.getFileOutputStreamSync
import org.fossify.commons.extensions.getFilenameFromPath
import org.fossify.commons.extensions.getIsPathDirectory
import org.fossify.commons.extensions.getMimeType
import org.fossify.commons.extensions.getParentPath
import org.fossify.commons.extensions.getProperSize
import org.fossify.commons.extensions.getTextSize
import org.fossify.commons.extensions.getTimeFormat
import org.fossify.commons.extensions.handleDeletePasswordProtection
import org.fossify.commons.extensions.hasOTGConnected
import org.fossify.commons.extensions.highlightTextPart
import org.fossify.commons.extensions.isPathOnOTG
import org.fossify.commons.extensions.isRestrictedSAFOnlyRoot
import org.fossify.commons.extensions.relativizeWith
import org.fossify.commons.extensions.setupViewBackground
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toFileDirItem
import org.fossify.commons.extensions.toast
import org.fossify.commons.helpers.CONFLICT_OVERWRITE
import org.fossify.commons.helpers.CONFLICT_SKIP
import org.fossify.commons.helpers.VIEW_TYPE_LIST
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.helpers.getFilePlaceholderDrawables
import org.fossify.commons.models.FileDirItem
import org.fossify.commons.models.RadioItem
import org.fossify.commons.views.MyRecyclerView
import org.fossify.filemanager.R
import org.fossify.filemanager.activities.SimpleActivity
import org.fossify.filemanager.activities.SplashActivity
import org.fossify.filemanager.databinding.*
import org.fossify.filemanager.databinding.ItemDirGridBinding
import org.fossify.filemanager.databinding.ItemEmptyBinding
import org.fossify.filemanager.databinding.ItemFileDirListBinding
import org.fossify.filemanager.databinding.ItemFileGridBinding
import org.fossify.filemanager.databinding.ItemSectionBinding
import org.fossify.filemanager.dialogs.CompressAsDialog
import org.fossify.filemanager.extensions.*
import org.fossify.filemanager.helpers.*
import org.fossify.filemanager.extensions.config
import org.fossify.filemanager.extensions.isPathOnRoot
import org.fossify.filemanager.extensions.isZipFile
import org.fossify.filemanager.extensions.setAs
import org.fossify.filemanager.extensions.setLastModified
import org.fossify.filemanager.extensions.sharePaths
import org.fossify.filemanager.extensions.toggleItemVisibility
import org.fossify.filemanager.extensions.tryOpenPathIntent
import org.fossify.filemanager.helpers.OPEN_AS_AUDIO
import org.fossify.filemanager.helpers.OPEN_AS_IMAGE
import org.fossify.filemanager.helpers.OPEN_AS_OTHER
import org.fossify.filemanager.helpers.OPEN_AS_TEXT
import org.fossify.filemanager.helpers.OPEN_AS_VIDEO
import org.fossify.filemanager.helpers.RootHelpers
import org.fossify.filemanager.interfaces.ItemOperationsListener
import org.fossify.filemanager.models.ListItem
import java.io.BufferedInputStream
@@ -57,9 +120,16 @@ import java.util.LinkedList
import java.util.Locale
class ItemsAdapter(
activity: SimpleActivity, var listItems: MutableList<ListItem>, val listener: ItemOperationsListener?, recyclerView: MyRecyclerView,
val isPickMultipleIntent: Boolean, val swipeRefreshLayout: SwipeRefreshLayout?, canHaveIndividualViewType: Boolean = true, itemClick: (Any) -> Unit
) : MyRecyclerViewAdapter(activity, recyclerView, itemClick), RecyclerViewFastScroller.OnPopupTextUpdate {
activity: SimpleActivity,
var listItems: MutableList<ListItem>,
private val listener: ItemOperationsListener?,
recyclerView: MyRecyclerView,
private val isPickMultipleIntent: Boolean,
private val swipeRefreshLayout: SwipeRefreshLayout?,
canHaveIndividualViewType: Boolean = true,
itemClick: (Any) -> Unit,
) : MyRecyclerViewAdapter(activity, recyclerView, itemClick),
RecyclerViewFastScroller.OnPopupTextUpdate {
private lateinit var fileDrawable: Drawable
private lateinit var folderDrawable: Drawable
@@ -74,7 +144,9 @@ class ItemsAdapter(
private val config = activity.config
private val viewType = if (canHaveIndividualViewType) {
config.getFolderViewType(listItems.firstOrNull { !it.isSectionTitle }?.mPath?.getParentPath() ?: "")
config.getFolderViewType(
path = listItems.firstOrNull { !it.isSectionTitle }?.mPath?.getParentPath().orEmpty()
)
} else {
config.viewType
}
@@ -100,13 +172,14 @@ class ItemsAdapter(
override fun prepareActionMode(menu: Menu) {
menu.apply {
findItem(R.id.cab_decompress).isVisible = getSelectedFileDirItems().map { it.path }.any { it.isZipFile() }
findItem(R.id.cab_decompress).isVisible =
getSelectedFileDirItems().map { it.path }.any { it.isZipFile() }
findItem(R.id.cab_confirm_selection).isVisible = isPickMultipleIntent
findItem(R.id.cab_copy_path).isVisible = isOneItemSelected()
findItem(R.id.cab_open_with).isVisible = isOneFileSelected()
findItem(R.id.cab_open_as).isVisible = isOneFileSelected()
findItem(R.id.cab_set_as).isVisible = isOneFileSelected()
findItem(R.id.cab_create_shortcut).isVisible = isOreoPlus() && isOneItemSelected()
findItem(R.id.cab_create_shortcut).isVisible = isOneItemSelected()
checkHideBtnVisibility(this)
}
@@ -138,13 +211,21 @@ class ItemsAdapter(
}
}
override fun getSelectableItemCount() = listItems.filter { !it.isSectionTitle && !it.isGridTypeDivider }.size
override fun getSelectableItemCount(): Int {
return listItems.filter { !it.isSectionTitle && !it.isGridTypeDivider }.size
}
override fun getIsItemSelectable(position: Int) = !listItems[position].isSectionTitle && !listItems[position].isGridTypeDivider
override fun getIsItemSelectable(position: Int): Boolean {
return !listItems[position].isSectionTitle && !listItems[position].isGridTypeDivider
}
override fun getItemSelectionKey(position: Int) = listItems.getOrNull(position)?.path?.hashCode()
override fun getItemSelectionKey(position: Int): Int? {
return listItems.getOrNull(position)?.path?.hashCode()
}
override fun getItemKeyPosition(key: Int) = listItems.indexOfFirst { it.path.hashCode() == key }
override fun getItemKeyPosition(key: Int): Int {
return listItems.indexOfFirst { it.path.hashCode() == key }
}
override fun onActionModeCreated() {
swipeRefreshLayout?.isRefreshing = false
@@ -152,7 +233,7 @@ class ItemsAdapter(
}
override fun onActionModeDestroyed() {
swipeRefreshLayout?.isEnabled = true
swipeRefreshLayout?.isEnabled = config.enablePullToRefresh
}
override fun getItemViewType(position: Int): Int {
@@ -165,25 +246,37 @@ class ItemsAdapter(
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = Binding.getByItemViewType(viewType, isListViewType).inflate(layoutInflater, parent, false)
val binding = Binding.getByItemViewType(viewType, isListViewType)
.inflate(layoutInflater, parent, false)
return createViewHolder(binding.root)
}
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
val fileDirItem = listItems[position]
holder.bindView(fileDirItem, true, !fileDirItem.isSectionTitle) { itemView, layoutPosition ->
holder.bindView(
any = fileDirItem,
allowSingleClick = true,
allowLongClick = !fileDirItem.isSectionTitle
) { itemView, layoutPosition ->
val viewType = getItemViewType(position)
setupView(Binding.getByItemViewType(viewType, isListViewType).bind(itemView), fileDirItem)
setupView(
binding = Binding.getByItemViewType(viewType, isListViewType).bind(itemView),
listItem = fileDirItem
)
}
bindViewHolder(holder)
}
override fun getItemCount() = listItems.size
private fun getItemWithKey(key: Int): FileDirItem? = listItems.firstOrNull { it.path.hashCode() == key }
private fun getItemWithKey(key: Int): FileDirItem? {
return listItems.firstOrNull { it.path.hashCode() == key }
}
private fun isOneFileSelected() = isOneItemSelected() && getItemWithKey(selectedKeys.first())?.isDirectory == false
private fun isOneFileSelected(): Boolean {
return isOneItemSelected() && getItemWithKey(selectedKeys.first())?.isDirectory == false
}
private fun checkHideBtnVisibility(menu: Menu) {
var hiddenCnt = 0
@@ -202,7 +295,10 @@ class ItemsAdapter(
private fun confirmSelection() {
if (selectedKeys.isNotEmpty()) {
val paths = getSelectedFileDirItems().asSequence().filter { !it.isDirectory }.map { it.path }.toMutableList() as ArrayList<String>
val paths = getSelectedFileDirItems()
.asSequence()
.filter { !it.isDirectory }.map { it.path }
.toMutableList() as ArrayList<String>
if (paths.isEmpty()) {
finishActMode()
} else {
@@ -281,7 +377,11 @@ class ItemsAdapter(
getShortcutImage(path, drawable) {
val intent = Intent(activity, SplashActivity::class.java)
intent.action = Intent.ACTION_VIEW
intent.flags = intent.flags or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NO_HISTORY
intent.flags =
intent.flags or
Intent.FLAG_ACTIVITY_NEW_TASK or
Intent.FLAG_ACTIVITY_CLEAR_TASK or
Intent.FLAG_ACTIVITY_NO_HISTORY
intent.data = Uri.fromFile(File(path))
val shortcut = ShortcutInfo.Builder(activity, path)
@@ -297,7 +397,8 @@ class ItemsAdapter(
private fun getShortcutImage(path: String, drawable: Drawable, callback: () -> Unit) {
val appIconColor = baseConfig.appIconColor
(drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_folder_background).applyColorFilter(appIconColor)
(drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_folder_background)
.applyColorFilter(appIconColor)
if (activity.getIsPathDirectory(path)) {
callback()
} else {
@@ -318,10 +419,15 @@ class ItemsAdapter(
try {
val bitmap = builder.get()
drawable.findDrawableByLayerId(R.id.shortcut_folder_background).applyColorFilter(0)
drawable.findDrawableByLayerId(R.id.shortcut_folder_background)
.applyColorFilter(0)
drawable.setDrawableByLayerId(R.id.shortcut_folder_image, bitmap)
} catch (e: Exception) {
val fileIcon = fileDrawables.getOrElse(path.substringAfterLast(".").lowercase(Locale.getDefault()), { fileDrawable })
val fileIcon = fileDrawables
.getOrElse(
key = path.substringAfterLast(".").lowercase(Locale.getDefault()),
defaultValue = { fileDrawable }
)
drawable.setDrawableByLayerId(R.id.shortcut_folder_image, fileIcon)
}
@@ -346,15 +452,19 @@ class ItemsAdapter(
}
activity.isPathOnOTG(path) -> {
activity.getDocumentFile(path)?.listFiles()?.filter { if (shouldShowHidden) true else !it.name!!.startsWith(".") }?.forEach {
addFileUris(it.uri.toString(), paths)
}
activity.getDocumentFile(path)?.listFiles()
?.filter { if (shouldShowHidden) true else !it.name!!.startsWith(".") }
?.forEach {
addFileUris(it.uri.toString(), paths)
}
}
else -> {
File(path).listFiles()?.filter { if (shouldShowHidden) true else !it.name.startsWith('.') }?.forEach {
addFileUris(it.absolutePath, paths)
}
File(path).listFiles()
?.filter { if (shouldShowHidden) true else !it.name.startsWith('.') }
?.forEach {
addFileUris(it.absolutePath, paths)
}
}
}
} else {
@@ -401,23 +511,33 @@ class ItemsAdapter(
val firstFile = files[0]
val source = firstFile.getParentPath()
FilePickerDialog(
activity,
activity.getDefaultCopyDestinationPath(config.shouldShowHidden(), source),
false,
config.shouldShowHidden(),
true,
true,
activity = activity,
currPath = activity.getDefaultCopyDestinationPath(config.shouldShowHidden(), source),
pickFile = false,
showHidden = config.shouldShowHidden(),
showFAB = true,
canAddShowHiddenButton = true,
showFavoritesButton = true
) {
config.lastCopyPath = it
if (activity.isPathOnRoot(it) || activity.isPathOnRoot(firstFile.path)) {
copyMoveRootItems(files, it, isCopyOperation)
} else {
activity.copyMoveFilesTo(files, source, it, isCopyOperation, false, config.shouldShowHidden()) {
activity.copyMoveFilesTo(
fileDirItems = files,
source = source,
destination = it,
isCopyOperation = isCopyOperation,
copyPhotoVideoOnly = false,
copyHidden = config.shouldShowHidden()
) {
if (!isCopyOperation) {
files.forEach { sourceFileDir ->
val sourcePath = sourceFileDir.path
if (activity.isRestrictedSAFOnlyRoot(sourcePath) && activity.getDoesFilePathExist(sourcePath)) {
if (
activity.isRestrictedSAFOnlyRoot(sourcePath)
&& activity.getDoesFilePathExist(sourcePath)
) {
activity.deleteFile(sourceFileDir, true) {
listener?.refreshFragment()
activity.runOnUiThread {
@@ -426,8 +546,12 @@ class ItemsAdapter(
}
} else {
val sourceFile = File(sourcePath)
if (activity.getDoesFilePathExist(source) && activity.getIsPathDirectory(source) &&
sourceFile.list()?.isEmpty() == true && sourceFile.getProperSize(true) == 0L && sourceFile.getFileCount(true) == 0
if (
activity.getDoesFilePathExist(source)
&& activity.getIsPathDirectory(source)
&& sourceFile.list()?.isEmpty() == true
&& sourceFile.getProperSize(true) == 0L
&& sourceFile.getFileCount(true) == 0
) {
val sourceFolder = sourceFile.toFileDirItem(activity)
activity.deleteFile(sourceFolder, true) {
@@ -451,7 +575,11 @@ class ItemsAdapter(
}
}
private fun copyMoveRootItems(files: ArrayList<FileDirItem>, destinationPath: String, isCopyOperation: Boolean) {
private fun copyMoveRootItems(
files: ArrayList<FileDirItem>,
destinationPath: String,
isCopyOperation: Boolean
) {
activity.toast(R.string.copying)
ensureBackgroundThread {
val fileCnt = files.size
@@ -517,7 +645,11 @@ class ItemsAdapter(
return@handleSAFDialog
}
val paths = getSelectedFileDirItems().asSequence().map { it.path }.filter { it.isZipFile() }.toList()
val paths = getSelectedFileDirItems()
.asSequence()
.map { it.path }
.filter { it.isZipFile() }
.toList()
ensureBackgroundThread {
tryDecompressingPaths(paths) { success ->
activity.runOnUiThread {
@@ -534,15 +666,28 @@ class ItemsAdapter(
}
}
private fun tryDecompressingPaths(sourcePaths: List<String>, callback: (success: Boolean) -> Unit) {
private fun tryDecompressingPaths(
sourcePaths: List<String>,
callback: (success: Boolean) -> Unit
) {
sourcePaths.forEach { path ->
ZipInputStream(BufferedInputStream(activity.getFileInputStreamSync(path))).use { zipInputStream ->
try {
val fileDirItems = ArrayList<FileDirItem>()
var entry = zipInputStream.nextEntry
while (entry != null) {
val currPath = if (entry.isDirectory) path else "${path.getParentPath().trimEnd('/')}/${entry.fileName}"
val fileDirItem = FileDirItem(currPath, entry.fileName, entry.isDirectory, 0, entry.uncompressedSize)
val currPath = if (entry.isDirectory) {
path
} else {
"${path.getParentPath().trimEnd('/')}/${entry.fileName}"
}
val fileDirItem = FileDirItem(
path = currPath,
name = entry.fileName,
isDirectory = entry.isDirectory,
children = 0,
size = entry.uncompressedSize
)
fileDirItems.add(fileDirItem)
entry = zipInputStream.nextEntry
}
@@ -567,9 +712,16 @@ class ItemsAdapter(
}
}
private fun decompressPaths(paths: List<String>, conflictResolutions: LinkedHashMap<String, Int>, callback: (success: Boolean) -> Unit) {
private fun decompressPaths(
paths: List<String>,
conflictResolutions: LinkedHashMap<String, Int>,
callback: (success: Boolean) -> Unit
) {
paths.forEach { path ->
val zipInputStream = ZipInputStream(BufferedInputStream(activity.getFileInputStreamSync(path)))
val zipInputStream =
ZipInputStream(BufferedInputStream(activity.getFileInputStreamSync(path)))
val foldersTimestamp = mutableListOf<Pair<File, LocalFileHeader>>()
zipInputStream.use {
try {
var entry = zipInputStream.nextEntry
@@ -582,11 +734,15 @@ class ItemsAdapter(
val resolution = getConflictResolution(conflictResolutions, newPath)
val doesPathExist = activity.getDoesFilePathExist(newPath)
if (doesPathExist && resolution == CONFLICT_OVERWRITE) {
val fileDirItem = FileDirItem(newPath, newPath.getFilenameFromPath(), entry.isDirectory)
val fileDirItem = FileDirItem(
path = newPath,
name = newPath.getFilenameFromPath(),
isDirectory = entry.isDirectory
)
if (activity.getIsPathDirectory(path)) {
activity.deleteFolderBg(fileDirItem, false) {
if (it) {
extractEntry(newPath, entry, zipInputStream)
extractEntry(newPath, entry, zipInputStream, foldersTimestamp)
} else {
callback(false)
}
@@ -594,18 +750,21 @@ class ItemsAdapter(
} else {
activity.deleteFileBg(fileDirItem, false, false) {
if (it) {
extractEntry(newPath, entry, zipInputStream)
extractEntry(newPath, entry, zipInputStream, foldersTimestamp)
} else {
callback(false)
}
}
}
} else if (!doesPathExist) {
extractEntry(newPath, entry, zipInputStream)
extractEntry(newPath, entry, zipInputStream, foldersTimestamp)
}
entry = zipInputStream.nextEntry
}
for ((dir, header) in foldersTimestamp.asReversed()) {
dir.setLastModified(header)
}
callback(true)
} catch (e: Exception) {
activity.showErrorToast(e)
@@ -615,21 +774,33 @@ class ItemsAdapter(
}
}
private fun extractEntry(newPath: String, entry: LocalFileHeader, zipInputStream: ZipInputStream) {
private fun extractEntry(
newPath: String,
entry: LocalFileHeader,
zipInputStream: ZipInputStream,
foldersTimestamp: MutableList<Pair<File, LocalFileHeader>>
) {
if (entry.isDirectory) {
if (!activity.createDirectorySync(newPath) && !activity.getDoesFilePathExist(newPath)) {
val error = String.format(activity.getString(R.string.could_not_create_file), newPath)
val error =
String.format(activity.getString(R.string.could_not_create_file), newPath)
activity.showErrorToast(error)
} else {
foldersTimestamp.add(Pair(File(newPath), entry))
}
} else {
val fos = activity.getFileOutputStreamSync(newPath, newPath.getMimeType())
if (fos != null) {
zipInputStream.copyTo(fos)
File(newPath).setLastModified(entry)
}
}
}
private fun getConflictResolution(conflictResolutions: LinkedHashMap<String, Int>, path: String): Int {
private fun getConflictResolution(
conflictResolutions: LinkedHashMap<String, Int>,
path: String
): Int {
return if (conflictResolutions.size == 1 && conflictResolutions.containsKey("")) {
conflictResolutions[""]!!
} else if (conflictResolutions.containsKey(path)) {
@@ -640,15 +811,21 @@ class ItemsAdapter(
}
@SuppressLint("NewApi")
private fun compressPaths(sourcePaths: List<String>, targetPath: String, password: String? = null): Boolean {
private fun compressPaths(
sourcePaths: List<String>,
targetPath: String,
password: String? = null
): Boolean {
val queue = LinkedList<String>()
val fos = activity.getFileOutputStreamSync(targetPath, "application/zip") ?: return false
val zout = password?.let { ZipOutputStream(fos, password.toCharArray()) } ?: ZipOutputStream(fos)
val zout =
password?.let { ZipOutputStream(fos, password.toCharArray()) } ?: ZipOutputStream(fos)
var res: Closeable = fos
fun zipEntry(name: String) = ZipParameters().also {
fun zipEntry(name: String, lastModified: Long) = ZipParameters().also {
it.fileNameInZip = name
it.lastModifiedFileTime = lastModified
if (password != null) {
it.isEncryptFiles = true
it.encryptionMethod = EncryptionMethod.AES
@@ -664,9 +841,11 @@ class ItemsAdapter(
queue.push(mainFilePath)
if (activity.getIsPathDirectory(mainFilePath)) {
name = "${mainFilePath.getFilenameFromPath()}/"
val dirModified = File(mainFilePath).lastModified()
zout.putNextEntry(
ZipParameters().also {
it.fileNameInZip = name
it.lastModifiedFileTime = dirModified
}
)
}
@@ -681,9 +860,9 @@ class ItemsAdapter(
if (activity.getIsPathDirectory(file.path)) {
queue.push(file.path)
name = "${name.trimEnd('/')}/"
zout.putNextEntry(zipEntry(name))
zout.putNextEntry(zipEntry(name, file.modified))
} else {
zout.putNextEntry(zipEntry(name))
zout.putNextEntry(zipEntry(name, file.modified))
activity.getFileInputStreamSync(file.path)!!.copyTo(zout)
zout.closeEntry()
}
@@ -696,9 +875,9 @@ class ItemsAdapter(
if (activity.getIsPathDirectory(file.absolutePath)) {
queue.push(file.absolutePath)
name = "${name.trimEnd('/')}/"
zout.putNextEntry(zipEntry(name))
zout.putNextEntry(zipEntry(name, file.lastModified()))
} else {
zout.putNextEntry(zipEntry(name))
zout.putNextEntry(zipEntry(name, file.lastModified()))
activity.getFileInputStreamSync(file.path)!!.copyTo(zout)
zout.closeEntry()
}
@@ -706,8 +885,14 @@ class ItemsAdapter(
}
} else {
name = if (base == currentPath) currentPath.getFilenameFromPath() else mainFilePath.relativizeWith(base)
zout.putNextEntry(zipEntry(name))
name =
if (base == currentPath) {
currentPath.getFilenameFromPath()
} else {
mainFilePath.relativizeWith(base)
}
val fileModified = File(mainFilePath).lastModified()
zout.putNextEntry(zipEntry(name, fileModified))
activity.getFileInputStreamSync(mainFilePath)!!.copyTo(zout)
zout.closeEntry()
}
@@ -749,35 +934,43 @@ class ItemsAdapter(
return
}
activity.handleSAFDialog(SAFPath) {
if (!it) {
activity.handleSAFDialog(SAFPath) { granted ->
if (!granted) {
return@handleSAFDialog
}
val files = ArrayList<FileDirItem>(selectedKeys.size)
val positions = ArrayList<Int>()
selectedKeys.forEach {
config.removeFavorite(getItemWithKey(it)?.path ?: "")
val key = it
val position = listItems.indexOfFirst { it.path.hashCode() == key }
if (position != -1) {
positions.add(position)
files.add(listItems[position])
}
}
positions.sortDescending()
removeSelectedItems(positions)
listener?.deleteFiles(files)
positions.forEach {
listItems.removeAt(it)
ensureBackgroundThread {
selectedKeys.forEach { key ->
config.removeFavorite(getItemWithKey(key)?.path ?: "")
val position = listItems.indexOfFirst { it.path.hashCode() == key }
if (position != -1) {
positions.add(position)
files.add(listItems[position])
}
}
positions.sortDescending()
activity.runOnUiThread {
removeSelectedItems(positions)
listener?.deleteFiles(files)
positions.forEach {
listItems.removeAt(it)
}
}
}
}
}
private fun getFirstSelectedItemPath() = getSelectedFileDirItems().first().path
private fun getSelectedFileDirItems() = listItems.filter { selectedKeys.contains(it.path.hashCode()) } as ArrayList<FileDirItem>
private fun getSelectedFileDirItems(): ArrayList<FileDirItem> {
return listItems.filter {
selectedKeys.contains(it.path.hashCode())
} as ArrayList<FileDirItem>
}
fun updateItems(newItems: ArrayList<ListItem>, highlightText: String = "") {
if (newItems.hashCode() != currentItemsHash) {
@@ -823,7 +1016,8 @@ class ItemsAdapter(
override fun onViewRecycled(holder: ViewHolder) {
super.onViewRecycled(holder)
if (!activity.isDestroyed && !activity.isFinishing) {
val icon = Binding.getByItemViewType(holder.itemViewType, isListViewType).bind(holder.itemView).itemIcon
val icon = Binding.getByItemViewType(holder.itemViewType, isListViewType)
.bind(holder.itemView).itemIcon
if (icon != null) {
Glide.with(activity).clear(icon)
}
@@ -835,16 +1029,35 @@ class ItemsAdapter(
binding.apply {
if (listItem.isSectionTitle) {
itemIcon?.setImageDrawable(folderDrawable)
itemSection?.text = if (textToHighlight.isEmpty()) listItem.mName else listItem.mName.highlightTextPart(textToHighlight, properPrimaryColor)
itemSection?.text =
if (textToHighlight.isEmpty()) {
listItem.mName
} else {
listItem.mName.highlightTextPart(
textToHighlight = textToHighlight,
color = properPrimaryColor
)
}
itemSection?.setTextColor(textColor)
itemSection?.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
} else if (!listItem.isGridTypeDivider) {
root.setupViewBackground(activity)
itemFrame.isSelected = isSelected
val fileName = listItem.name
itemName?.text = if (textToHighlight.isEmpty()) fileName else fileName.highlightTextPart(textToHighlight, properPrimaryColor)
itemName?.text =
if (textToHighlight.isEmpty()) {
fileName
} else {
fileName.highlightTextPart(
textToHighlight = textToHighlight,
color = properPrimaryColor
)
}
itemName?.setTextColor(textColor)
itemName?.setTextSize(TypedValue.COMPLEX_UNIT_PX, if (isListViewType) fontSize else smallerFontSize)
itemName?.setTextSize(
TypedValue.COMPLEX_UNIT_PX,
if (isListViewType) fontSize else smallerFontSize
)
itemDetails?.setTextColor(textColor)
itemDetails?.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
@@ -873,7 +1086,10 @@ class ItemsAdapter(
itemDate?.beVisible()
itemDate?.text = listItem.modified.formatDate(activity, dateFormat, timeFormat)
val drawable = fileDrawables.getOrElse(fileName.substringAfterLast(".").lowercase(Locale.getDefault()), { fileDrawable })
val drawable = fileDrawables.getOrElse(
key = fileName.substringAfterLast(".").lowercase(Locale.getDefault()),
defaultValue = { fileDrawable }
)
val options = RequestOptions()
.signature(listItem.getKey())
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
@@ -898,14 +1114,18 @@ class ItemsAdapter(
return activity.resources.getQuantityString(R.plurals.items, children, children)
}
private fun getOTGPublicPath(itemToLoad: String) =
"${baseConfig.OTGTreeUri}/document/${baseConfig.OTGPartition}%3A${itemToLoad.substring(baseConfig.OTGPath.length).replace("/", "%2F")}"
private fun getOTGPublicPath(itemToLoad: String): String {
return "${baseConfig.OTGTreeUri}/document/${baseConfig.OTGPartition}%3A${
itemToLoad.substring(baseConfig.OTGPath.length).replace("/", "%2F")
}"
}
private fun getImagePathToLoad(path: String): Any {
var itemToLoad = if (path.endsWith(".apk", true)) {
val packageInfo = activity.packageManager.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES)
if (packageInfo != null) {
val appInfo = packageInfo.applicationInfo
val packageInfo =
activity.packageManager.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES)
val appInfo = packageInfo?.applicationInfo
if (appInfo != null) {
appInfo.sourceDir = path
appInfo.publicSourceDir = path
appInfo.loadIcon(activity.packageManager)
@@ -926,13 +1146,16 @@ class ItemsAdapter(
}
fun initDrawables() {
folderDrawable = resources.getColoredDrawableWithColor(R.drawable.ic_folder_vector, textColor)
folderDrawable =
resources.getColoredDrawableWithColor(R.drawable.ic_folder_vector, properPrimaryColor)
folderDrawable.alpha = 180
fileDrawable = resources.getDrawable(R.drawable.ic_file_generic)
fileDrawables = getFilePlaceholderDrawables(activity)
}
override fun onChange(position: Int) = listItems.getOrNull(position)?.getBubbleText(activity, dateFormat, timeFormat) ?: ""
override fun onChange(position: Int): String {
return listItems.getOrNull(position)?.getBubbleText(activity, dateFormat, timeFormat) ?: ""
}
private sealed interface Binding {
companion object {
@@ -953,12 +1176,23 @@ class ItemsAdapter(
}
}
fun inflate(layoutInflater: LayoutInflater, viewGroup: ViewGroup, attachToRoot: Boolean): ItemViewBinding
fun inflate(
layoutInflater: LayoutInflater,
viewGroup: ViewGroup,
attachToRoot: Boolean
): ItemViewBinding
fun bind(view: View): ItemViewBinding
data object ItemSection : Binding {
override fun inflate(layoutInflater: LayoutInflater, viewGroup: ViewGroup, attachToRoot: Boolean): ItemViewBinding {
return ItemSectionBindingAdapter(ItemSectionBinding.inflate(layoutInflater, viewGroup, attachToRoot))
override fun inflate(
layoutInflater: LayoutInflater,
viewGroup: ViewGroup,
attachToRoot: Boolean
): ItemViewBinding {
return ItemSectionBindingAdapter(
ItemSectionBinding.inflate(layoutInflater, viewGroup, attachToRoot)
)
}
override fun bind(view: View): ItemViewBinding {
@@ -967,8 +1201,14 @@ class ItemsAdapter(
}
data object ItemEmpty : Binding {
override fun inflate(layoutInflater: LayoutInflater, viewGroup: ViewGroup, attachToRoot: Boolean): ItemViewBinding {
return ItemEmptyBindingAdapter(ItemEmptyBinding.inflate(layoutInflater, viewGroup, attachToRoot))
override fun inflate(
layoutInflater: LayoutInflater,
viewGroup: ViewGroup,
attachToRoot: Boolean
): ItemViewBinding {
return ItemEmptyBindingAdapter(
ItemEmptyBinding.inflate(layoutInflater, viewGroup, attachToRoot)
)
}
override fun bind(view: View): ItemViewBinding {
@@ -977,8 +1217,14 @@ class ItemsAdapter(
}
data object ItemFileDirList : Binding {
override fun inflate(layoutInflater: LayoutInflater, viewGroup: ViewGroup, attachToRoot: Boolean): ItemViewBinding {
return ItemFileDirListBindingAdapter(ItemFileDirListBinding.inflate(layoutInflater, viewGroup, attachToRoot))
override fun inflate(
layoutInflater: LayoutInflater,
viewGroup: ViewGroup,
attachToRoot: Boolean
): ItemViewBinding {
return ItemFileDirListBindingAdapter(
ItemFileDirListBinding.inflate(layoutInflater, viewGroup, attachToRoot)
)
}
override fun bind(view: View): ItemViewBinding {
@@ -987,8 +1233,14 @@ class ItemsAdapter(
}
data object ItemDirGrid : Binding {
override fun inflate(layoutInflater: LayoutInflater, viewGroup: ViewGroup, attachToRoot: Boolean): ItemViewBinding {
return ItemDirGridBindingAdapter(ItemDirGridBinding.inflate(layoutInflater, viewGroup, attachToRoot))
override fun inflate(
layoutInflater: LayoutInflater,
viewGroup: ViewGroup,
attachToRoot: Boolean
): ItemViewBinding {
return ItemDirGridBindingAdapter(
ItemDirGridBinding.inflate(layoutInflater, viewGroup, attachToRoot)
)
}
override fun bind(view: View): ItemViewBinding {
@@ -997,8 +1249,14 @@ class ItemsAdapter(
}
data object ItemFileGrid : Binding {
override fun inflate(layoutInflater: LayoutInflater, viewGroup: ViewGroup, attachToRoot: Boolean): ItemViewBinding {
return ItemFileGridBindingAdapter(ItemFileGridBinding.inflate(layoutInflater, viewGroup, attachToRoot))
override fun inflate(
layoutInflater: LayoutInflater,
viewGroup: ViewGroup,
attachToRoot: Boolean
): ItemViewBinding {
return ItemFileGridBindingAdapter(
ItemFileGridBinding.inflate(layoutInflater, viewGroup, attachToRoot)
)
}
override fun bind(view: View): ItemViewBinding {
@@ -1040,7 +1298,9 @@ class ItemsAdapter(
override fun getRoot(): View = binding.root
}
private class ItemFileDirListBindingAdapter(val binding: ItemFileDirListBinding) : ItemViewBinding {
private class ItemFileDirListBindingAdapter(
val binding: ItemFileDirListBinding
) : ItemViewBinding {
override val itemFrame: FrameLayout = binding.itemFrame
override val itemName: TextView = binding.itemName
override val itemIcon: ImageView = binding.itemIcon
@@ -1,7 +1,7 @@
package org.fossify.filemanager.adapters
import android.view.*
import android.widget.PopupMenu
import androidx.appcompat.widget.PopupMenu
import org.fossify.commons.activities.BaseSimpleActivity
import org.fossify.commons.adapters.MyRecyclerViewAdapter
import org.fossify.commons.extensions.getPopupMenuTheme
@@ -22,7 +22,8 @@ class ViewPagerAdapter(val activity: SimpleActivity, val tabsToShow: ArrayList<I
(view as MyViewPagerFragment<*>).apply {
val isPickRingtoneIntent = activity.intent.action == RingtoneManager.ACTION_RINGTONE_PICKER
val isGetContentIntent = activity.intent.action == Intent.ACTION_GET_CONTENT || activity.intent.action == Intent.ACTION_PICK
val isGetContentIntent = activity.intent.action == Intent.ACTION_GET_CONTENT
|| activity.intent.action == Intent.ACTION_PICK
val isCreateDocumentIntent = activity.intent.action == Intent.ACTION_CREATE_DOCUMENT
val allowPickingMultipleIntent = activity.intent.getBooleanExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)
val getContentMimeType = if (isGetContentIntent) {
@@ -1,13 +1,11 @@
package org.fossify.filemanager.dialogs
import org.fossify.commons.activities.BaseSimpleActivity
import org.fossify.commons.extensions.beGone
import org.fossify.commons.extensions.getAlertDialogBuilder
import org.fossify.commons.extensions.setupDialogStuff
import org.fossify.commons.helpers.TAB_FILES
import org.fossify.commons.helpers.TAB_RECENT_FILES
import org.fossify.commons.helpers.TAB_STORAGE_ANALYSIS
import org.fossify.commons.helpers.isOreoPlus
import org.fossify.commons.views.MyAppCompatCheckbox
import org.fossify.filemanager.R
import org.fossify.filemanager.databinding.DialogManageVisibleTabsBinding
@@ -25,10 +23,6 @@ class ManageVisibleTabsDialog(val activity: BaseSimpleActivity) {
put(TAB_STORAGE_ANALYSIS, R.id.manage_visible_tabs_storage_analysis)
}
if (!isOreoPlus()) {
binding.manageVisibleTabsStorageAnalysis.beGone()
}
val showTabs = activity.config.showTabs
for ((key, value) in tabs) {
binding.root.findViewById<MyAppCompatCheckbox>(value).isChecked = showTabs and key != 0
@@ -2,15 +2,22 @@ package org.fossify.filemanager.extensions
import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.FileProvider
import org.fossify.commons.activities.BaseSimpleActivity
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.isNougatPlus
import org.fossify.commons.extensions.getFilenameFromPath
import org.fossify.commons.extensions.getMimeTypeFromUri
import org.fossify.commons.extensions.getParentPath
import org.fossify.commons.extensions.launchActivityIntent
import org.fossify.commons.extensions.openPathIntent
import org.fossify.commons.extensions.renameFile
import org.fossify.commons.extensions.setAsIntent
import org.fossify.commons.extensions.sharePathsIntent
import org.fossify.filemanager.BuildConfig
import org.fossify.filemanager.helpers.*
import org.fossify.filemanager.helpers.OPEN_AS_AUDIO
import org.fossify.filemanager.helpers.OPEN_AS_DEFAULT
import org.fossify.filemanager.helpers.OPEN_AS_IMAGE
import org.fossify.filemanager.helpers.OPEN_AS_TEXT
import org.fossify.filemanager.helpers.OPEN_AS_VIDEO
import java.io.File
fun Activity.sharePaths(paths: ArrayList<String>) {
@@ -19,11 +26,9 @@ fun Activity.sharePaths(paths: ArrayList<String>) {
fun Activity.tryOpenPathIntent(path: String, forceChooser: Boolean, openAsType: Int = OPEN_AS_DEFAULT, finishActivity: Boolean = false) {
if (!forceChooser && path.endsWith(".apk", true)) {
val uri = if (isNougatPlus()) {
FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", File(path))
} else {
Uri.fromFile(File(path))
}
val uri = FileProvider.getUriForFile(
this, "${BuildConfig.APPLICATION_ID}.provider", File(path)
)
Intent().apply {
action = Intent.ACTION_VIEW
@@ -78,27 +83,3 @@ fun BaseSimpleActivity.toggleItemVisibility(oldPath: String, hide: Boolean, call
}
}
}
fun AppCompatActivity.showSystemUI(toggleActionBarVisibility: Boolean) {
if (toggleActionBarVisibility) {
supportActionBar?.show()
}
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
}
fun AppCompatActivity.hideSystemUI(toggleActionBarVisibility: Boolean) {
if (toggleActionBarVisibility) {
supportActionBar?.hide()
}
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LOW_PROFILE or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_IMMERSIVE
}
@@ -4,7 +4,6 @@ import android.content.Context
import android.os.storage.StorageManager
import org.fossify.commons.extensions.isPathOnOTG
import org.fossify.commons.extensions.isPathOnSD
import org.fossify.commons.helpers.isNougatPlus
import org.fossify.filemanager.helpers.Config
import org.fossify.filemanager.helpers.PRIMARY_VOLUME_NAME
import java.util.Locale
@@ -15,15 +14,13 @@ fun Context.isPathOnRoot(path: String) = !(path.startsWith(config.internalStorag
fun Context.getAllVolumeNames(): List<String> {
val volumeNames = mutableListOf(PRIMARY_VOLUME_NAME)
if (isNougatPlus()) {
val storageManager = getSystemService(Context.STORAGE_SERVICE) as StorageManager
getExternalFilesDirs(null)
.mapNotNull { storageManager.getStorageVolume(it) }
.filterNot { it.isPrimary }
.mapNotNull { it.uuid?.lowercase(Locale.US) }
.forEach {
volumeNames.add(it)
}
}
val storageManager = getSystemService(Context.STORAGE_SERVICE) as StorageManager
getExternalFilesDirs(null)
.mapNotNull { storageManager.getStorageVolume(it) }
.filterNot { it.isPrimary }
.mapNotNull { it.uuid?.lowercase(Locale.US) }
.forEach {
volumeNames.add(it)
}
return volumeNames
}
@@ -1,14 +0,0 @@
package org.fossify.filemanager.extensions
import java.text.DecimalFormat
// use 1000 instead of 1024 at dividing
fun Long.formatSizeThousand(): String {
if (this <= 0) {
return "0 B"
}
val units = arrayOf("B", "kB", "MB", "GB", "TB")
val digitGroups = (Math.log10(toDouble()) / Math.log10(1000.0)).toInt()
return "${DecimalFormat("#,##0.#").format(this / Math.pow(1000.0, digitGroups.toDouble()))} ${units[digitGroups]}"
}
@@ -1,3 +1,15 @@
package org.fossify.filemanager.extensions
fun String.isZipFile() = endsWith(".zip", true)
fun String.isPathInHiddenFolder(): Boolean {
val parts = split("/")
for (i in 1 until parts.size - 1) {
val part = parts[i]
val isHidden = part.startsWith(".") && part != "." && part != ".." && part.isNotEmpty()
if (isHidden) {
return true
}
}
return false
}
@@ -0,0 +1,15 @@
package org.fossify.filemanager.extensions
import net.lingala.zip4j.model.LocalFileHeader
import java.io.File
fun File.setLastModified(localFileHeader: LocalFileHeader) {
setLastModified(localFileHeader.lastModifiedOrCurrentTimeMillis)
}
private val LocalFileHeader.lastModifiedOrCurrentTimeMillis
get() = if (lastModifiedTimeEpoch == 0L) {
System.currentTimeMillis()
} else {
lastModifiedTimeEpoch
}
@@ -186,7 +186,8 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
if (activity?.isDestroyed == false && activity?.isFinishing == false) {
val config = context!!.config
if (context.isRestrictedSAFOnlyRoot(path)) {
activity?.handleAndroidSAFDialog(path) {
activity?.runOnUiThread { hideProgressBar() }
activity?.handleAndroidSAFDialog(path, openInSystemAppAllowed = true) {
if (!it) {
activity?.toast(R.string.no_storage_permissions)
return@handleAndroidSAFDialog
@@ -256,7 +257,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
}
var lastModified = lastModifieds.remove(curPath)
val isDirectory = if (lastModified != null) false else file.isDirectory
val isDirectory = file.isDirectory
val children = if (isDirectory && getProperChildCount) file.getDirectChildrenCount(context, showHidden) else 0
val size = if (isDirectory) {
if (isSortingBySize) {
@@ -376,6 +377,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
return files
}
val normalizedText = text.normalizeString()
val sorting = context!!.config.getFolderSorting(path)
FileDirItem.sorting = context!!.config.getFolderSorting(currentPath)
val isSortingBySize = sorting and SORT_BY_SIZE != 0
@@ -385,7 +387,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
}
if (it.isDirectory) {
if (it.name.contains(text, true)) {
if (it.name.normalizeString().contains(normalizedText, true)) {
val fileDirItem = getListItemFromFile(it, isSortingBySize, HashMap(), false)
if (fileDirItem != null) {
files.add(fileDirItem)
@@ -394,7 +396,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
files.addAll(searchFiles(text, it.absolutePath))
} else {
if (it.name.contains(text, true)) {
if (it.name.normalizeString().contains(normalizedText, true)) {
val fileDirItem = getListItemFromFile(it, isSortingBySize, HashMap(), false)
if (fileDirItem != null) {
files.add(fileDirItem)
@@ -6,11 +6,17 @@ import android.provider.MediaStore.Files
import android.provider.MediaStore.Files.FileColumns
import android.util.AttributeSet
import androidx.core.os.bundleOf
import org.fossify.commons.extensions.*
import org.fossify.commons.extensions.areSystemAnimationsEnabled
import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.getDoesFilePathExist
import org.fossify.commons.extensions.getFilenameFromPath
import org.fossify.commons.extensions.getLongValue
import org.fossify.commons.extensions.getStringValue
import org.fossify.commons.extensions.normalizeString
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.helpers.VIEW_TYPE_GRID
import org.fossify.commons.helpers.VIEW_TYPE_LIST
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.helpers.isOreoPlus
import org.fossify.commons.models.FileDirItem
import org.fossify.commons.views.MyGridLayoutManager
import org.fossify.commons.views.MyRecyclerView
@@ -19,6 +25,7 @@ import org.fossify.filemanager.activities.SimpleActivity
import org.fossify.filemanager.adapters.ItemsAdapter
import org.fossify.filemanager.databinding.RecentsFragmentBinding
import org.fossify.filemanager.extensions.config
import org.fossify.filemanager.extensions.isPathInHiddenFolder
import org.fossify.filemanager.helpers.MAX_COLUMN_COUNT
import org.fossify.filemanager.interfaces.ItemOperationsListener
import org.fossify.filemanager.models.ListItem
@@ -156,17 +163,13 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
)
try {
if (isOreoPlus()) {
val queryArgs = bundleOf(
ContentResolver.QUERY_ARG_LIMIT to RECENTS_LIMIT,
ContentResolver.QUERY_ARG_SORT_COLUMNS to arrayOf(FileColumns.DATE_MODIFIED),
ContentResolver.QUERY_ARG_SORT_DIRECTION to ContentResolver.QUERY_SORT_DIRECTION_DESCENDING
)
context?.contentResolver?.query(uri, projection, queryArgs, null)
} else {
val sortOrder = "${FileColumns.DATE_MODIFIED} DESC LIMIT $RECENTS_LIMIT"
context?.contentResolver?.query(uri, projection, null, null, sortOrder)
}?.use { cursor ->
val queryArgs = bundleOf(
ContentResolver.QUERY_ARG_LIMIT to RECENTS_LIMIT,
ContentResolver.QUERY_ARG_SORT_COLUMNS to arrayOf(FileColumns.DATE_MODIFIED),
ContentResolver.QUERY_ARG_SORT_DIRECTION to ContentResolver.QUERY_SORT_DIRECTION_DESCENDING
)
context?.contentResolver?.query(uri, projection, queryArgs, null)?.use { cursor ->
if (cursor.moveToFirst()) {
do {
val path = cursor.getStringValue(FileColumns.DATA)
@@ -177,9 +180,11 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
val name = cursor.getStringValue(FileColumns.DISPLAY_NAME) ?: path.getFilenameFromPath()
val size = cursor.getLongValue(FileColumns.SIZE)
val modified = cursor.getLongValue(FileColumns.DATE_MODIFIED) * 1000
val fileDirItem = ListItem(path, name, false, 0, size, modified, false, false)
if ((showHidden || !name.startsWith(".")) && activity?.getDoesFilePathExist(path) == true) {
val isHiddenFile = name.startsWith(".")
val shouldShow = showHidden || (!isHiddenFile && !path.isPathInHiddenFolder())
if (shouldShow && activity?.getDoesFilePathExist(path) == true) {
if (wantedMimeTypes.any { isProperMimeType(it, path, false) }) {
val fileDirItem = ListItem(path, name, false, 0, size, modified, false, false)
listItems.add(fileDirItem)
}
}
@@ -241,7 +246,11 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
override fun searchQueryChanged(text: String) {
lastSearchedText = text
val filtered = filesIgnoringSearch.filter { it.mName.contains(text, true) }.toMutableList() as ArrayList<ListItem>
val normalizedText = text.normalizeString()
val filtered = filesIgnoringSearch.filter {
it.mName.normalizeString().contains(normalizedText, true)
}.toMutableList() as ArrayList<ListItem>
binding.apply {
(recentsList.adapter as? ItemsAdapter)?.updateItems(filtered, text)
recentsPlaceholder.beVisibleIf(filtered.isEmpty())
@@ -6,7 +6,6 @@ import android.app.usage.StorageStatsManager
import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.media.MediaScannerConnection
import android.os.Handler
import android.os.Looper
import android.os.storage.StorageManager
@@ -17,8 +16,27 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.os.bundleOf
import androidx.core.view.children
import androidx.core.view.isVisible
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.*
import org.fossify.commons.extensions.adjustAlpha
import org.fossify.commons.extensions.applyColorFilter
import org.fossify.commons.extensions.beGone
import org.fossify.commons.extensions.beVisible
import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.fadeIn
import org.fossify.commons.extensions.formatSize
import org.fossify.commons.extensions.getIsPathDirectory
import org.fossify.commons.extensions.getLongValue
import org.fossify.commons.extensions.getProperBackgroundColor
import org.fossify.commons.extensions.getProperPrimaryColor
import org.fossify.commons.extensions.getStringValue
import org.fossify.commons.extensions.normalizeString
import org.fossify.commons.extensions.queryCursor
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.updateTextColors
import org.fossify.commons.helpers.LOWER_ALPHA
import org.fossify.commons.helpers.SHORT_ANIMATION_DURATION
import org.fossify.commons.helpers.VIEW_TYPE_GRID
import org.fossify.commons.helpers.VIEW_TYPE_LIST
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.models.FileDirItem
import org.fossify.commons.views.MyGridLayoutManager
import org.fossify.filemanager.R
@@ -28,16 +46,28 @@ import org.fossify.filemanager.adapters.ItemsAdapter
import org.fossify.filemanager.databinding.ItemStorageVolumeBinding
import org.fossify.filemanager.databinding.StorageFragmentBinding
import org.fossify.filemanager.extensions.config
import org.fossify.filemanager.extensions.formatSizeThousand
import org.fossify.filemanager.extensions.getAllVolumeNames
import org.fossify.filemanager.helpers.*
import org.fossify.filemanager.helpers.ARCHIVES
import org.fossify.filemanager.helpers.AUDIO
import org.fossify.filemanager.helpers.DOCUMENTS
import org.fossify.filemanager.helpers.IMAGES
import org.fossify.filemanager.helpers.OTHERS
import org.fossify.filemanager.helpers.PRIMARY_VOLUME_NAME
import org.fossify.filemanager.helpers.SHOW_MIMETYPE
import org.fossify.filemanager.helpers.VIDEOS
import org.fossify.filemanager.helpers.VOLUME_NAME
import org.fossify.filemanager.helpers.archiveMimeTypes
import org.fossify.filemanager.helpers.extraAudioMimeTypes
import org.fossify.filemanager.helpers.extraDocumentMimeTypes
import org.fossify.filemanager.helpers.getListItemsFromFileDirItems
import org.fossify.filemanager.interfaces.ItemOperationsListener
import org.fossify.filemanager.models.ListItem
import java.io.File
import java.util.Locale
class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment<MyViewPagerFragment.StorageInnerBinding>(context, attributeSet),
ItemOperationsListener {
class StorageFragment(
context: Context,
attributeSet: AttributeSet
) : MyViewPagerFragment<MyViewPagerFragment.StorageInnerBinding>(context, attributeSet), ItemOperationsListener {
private val SIZE_DIVIDER = 100000
private var allDeviceListItems = ArrayList<ListItem>()
private var lastSearchedText = ""
@@ -67,7 +97,6 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
}
totalSpace.text = String.format(context.getString(R.string.total_storage), "…")
getSizes(volumeName)
if (volumeNames.size > 1) {
root.children.forEach { it.beGone() }
@@ -127,8 +156,7 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
val tealColor = context.resources.getColor(R.color.md_teal_700)
val pinkColor = context.resources.getColor(R.color.md_pink_700)
volumes.entries.forEach { (it, volumeBinding) ->
getSizes(it)
volumes.values.forEach { volumeBinding ->
volumeBinding.apply {
mainStorageUsageProgressbar.setIndicatorColor(properPrimaryColor)
mainStorageUsageProgressbar.trackColor = properPrimaryColor.adjustAlpha(LOWER_ALPHA)
@@ -175,10 +203,6 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
}
private fun getSizes(volumeName: String) {
if (!isOreoPlus()) {
return
}
ensureBackgroundThread {
val filesSize = getSizesByMimeType(volumeName)
val fileSizeImages = filesSize[IMAGES]!!
@@ -229,7 +253,8 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
try {
context.queryCursor(uri, projection) { cursor ->
try {
val mimeType = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault())
val mimeType =
cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault())
val size = cursor.getLongValue(MediaStore.Files.FileColumns.SIZE)
if (mimeType == null) {
if (size > 0 && size != 4096L) {
@@ -286,63 +311,47 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
if (storageVolume.isPrimary) {
// internal storage
volumeName = PRIMARY_VOLUME_NAME
if (isOreoPlus()) {
val storageStatsManager = context.getSystemService(AppCompatActivity.STORAGE_STATS_SERVICE) as StorageStatsManager
val uuid = StorageManager.UUID_DEFAULT
totalStorageSpace = storageStatsManager.getTotalBytes(uuid)
freeStorageSpace = storageStatsManager.getFreeBytes(uuid)
} else {
totalStorageSpace = file.totalSpace
freeStorageSpace = file.freeSpace
}
val storageStatsManager =
context.getSystemService(AppCompatActivity.STORAGE_STATS_SERVICE) as StorageStatsManager
val uuid = StorageManager.UUID_DEFAULT
totalStorageSpace = storageStatsManager.getTotalBytes(uuid)
freeStorageSpace = storageStatsManager.getFreeBytes(uuid)
} else {
volumeName = storageVolume.uuid!!.lowercase(Locale.US)
totalStorageSpace = file.totalSpace
freeStorageSpace = file.freeSpace
post {
ensureBackgroundThread {
scanVolume(volumeName, file)
}
}
}
post {
volumes[volumeName]?.apply {
arrayOf(
mainStorageUsageProgressbar, imagesProgressbar, videosProgressbar, audioProgressbar, documentsProgressbar,
archivesProgressbar, othersProgressbar
mainStorageUsageProgressbar,
imagesProgressbar,
videosProgressbar,
audioProgressbar,
documentsProgressbar,
archivesProgressbar,
othersProgressbar
).forEach {
it.max = (totalStorageSpace / SIZE_DIVIDER).toInt()
}
mainStorageUsageProgressbar.progress = ((totalStorageSpace - freeStorageSpace) / SIZE_DIVIDER).toInt()
mainStorageUsageProgressbar.progress =
((totalStorageSpace - freeStorageSpace) / SIZE_DIVIDER).toInt()
mainStorageUsageProgressbar.beVisible()
freeSpaceValue.text = freeStorageSpace.formatSizeThousand()
totalSpace.text = String.format(context.getString(R.string.total_storage), totalStorageSpace.formatSizeThousand())
freeSpaceValue.text = freeStorageSpace.formatSize()
totalSpace.text =
String.format(context.getString(R.string.total_storage), totalStorageSpace.formatSize())
freeSpaceLabel.beVisible()
getSizes(volumeName)
}
}
}
}
private fun scanVolume(volumeName: String, root: File) {
val paths = mutableListOf<String>()
if (context.isPathOnSD(root.path)) {
File(context.sdCardPath).walkBottomUp().forEach {
paths.add(it.path)
}
}
var callbackCount = 0
MediaScannerConnection.scanFile(context, paths.toTypedArray(), null) { _, _ ->
callbackCount++
if (callbackCount == paths.size) {
getSizes(volumeName)
}
}
}
override fun searchQueryChanged(text: String) {
val normalizedText = text.normalizeString()
lastSearchedText = text
binding.apply {
if (text.isNotEmpty()) {
@@ -367,8 +376,10 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
} else {
showProgressBar()
ensureBackgroundThread {
val start = System.currentTimeMillis()
val filtered = allDeviceListItems.filter { it.mName.contains(text, true) }.toMutableList() as ArrayList<ListItem>
val filtered = allDeviceListItems.filter {
it.mName.normalizeString().contains(normalizedText, true)
}.toMutableList() as ArrayList<ListItem>
if (lastSearchedText != text) {
return@ensureBackgroundThread
}
@@ -428,16 +439,12 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
)
try {
if (isOreoPlus()) {
val queryArgs = bundleOf(
ContentResolver.QUERY_ARG_SORT_COLUMNS to arrayOf(MediaStore.Files.FileColumns.DATE_MODIFIED),
ContentResolver.QUERY_ARG_SORT_DIRECTION to ContentResolver.QUERY_SORT_DIRECTION_DESCENDING
)
context?.contentResolver?.query(uri, projection, queryArgs, null)
} else {
val sortOrder = "${MediaStore.Files.FileColumns.DATE_MODIFIED} DESC"
context?.contentResolver?.query(uri, projection, null, null, sortOrder)
}?.use { cursor ->
val queryArgs = bundleOf(
ContentResolver.QUERY_ARG_SORT_COLUMNS to arrayOf(MediaStore.Files.FileColumns.DATE_MODIFIED),
ContentResolver.QUERY_ARG_SORT_DIRECTION to ContentResolver.QUERY_SORT_DIRECTION_DESCENDING
)
context?.contentResolver?.query(uri, projection, queryArgs, null)?.use { cursor ->
if (cursor.moveToFirst()) {
do {
try {
@@ -0,0 +1,46 @@
package org.fossify.filemanager.views
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.View
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller
class MySwipeRefreshLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
) : SwipeRefreshLayout(context, attrs) {
override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean {
// Setting "isEnabled = false" is recommended for users of this ViewGroup
// who who are not interested in the pull to refresh functionality
// Setting this easily avoids executing code needlessly before the check for "canChildScrollUp".
if (!isEnabled) {
return false
}
return super.onInterceptTouchEvent(ev)
}
override fun onStartNestedScroll(child: View, target: View, nestedScrollAxes: Int): Boolean {
// Ignoring nested scrolls from descendants.
// Allowing descendants to trigger nested scrolls would defeat the purpose of this class
// and result in pull to refresh to happen for all movements on the Y axis
// (even as part of scale/quick scale gestures) while also doubling the throbber with the overscroll shadow.
return if (isEnabled) {
return false
} else {
super.onStartNestedScroll(child, target, nestedScrollAxes)
}
}
override fun canChildScrollUp(): Boolean {
val directChild = getChildAt(0)
return when (directChild) {
is RecyclerViewFastScroller -> {
val innerRecyclerView = directChild.getChildAt(0)
innerRecyclerView?.canScrollVertically(-1) == true
}
else -> super.canChildScrollUp()
}
}
}
@@ -5,22 +5,29 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/decompress_toolbar"
<org.fossify.commons.views.MyAppBarLayout
android:id="@+id/decompress_appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_decompress"
app:title="@string/decompress"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/decompress_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_decompress"
app:title="@string/decompress"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</org.fossify.commons.views.MyAppBarLayout>
<RelativeLayout
android:id="@+id/decompress_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="none">
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<org.fossify.commons.views.MyRecyclerView
android:id="@+id/decompress_list"
@@ -32,4 +39,12 @@
app:layoutManager="org.fossify.commons.views.MyLinearLayoutManager" />
</RelativeLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
android:visibility="gone" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
+16 -9
View File
@@ -6,22 +6,29 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/manage_favorites_toolbar"
<org.fossify.commons.views.MyAppBarLayout
android:id="@+id/manage_favorites_appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_favorites"
app:title="@string/manage_favorites"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/manage_favorites_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_favorites"
app:title="@string/manage_favorites"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</org.fossify.commons.views.MyAppBarLayout>
<RelativeLayout
android:id="@+id/manage_favorites_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="none">
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<org.fossify.commons.views.MyRecyclerView
android:id="@+id/manage_favorites_list"
+1 -1
View File
@@ -14,7 +14,7 @@
android:id="@+id/main_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize">
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<org.fossify.commons.views.MyViewPager
android:id="@+id/main_view_pager"
+15 -8
View File
@@ -5,21 +5,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/mimetypes_toolbar"
<org.fossify.commons.views.MyAppBarLayout
android:id="@+id/mimetypes_appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_mimetypes"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/mimetypes_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_mimetypes"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</org.fossify.commons.views.MyAppBarLayout>
<RelativeLayout
android:id="@+id/mimetypes_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="none">
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<org.fossify.commons.views.MyTextView
android:id="@+id/mimetypes_placeholder"
+16 -9
View File
@@ -5,23 +5,30 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/read_text_toolbar"
<org.fossify.commons.views.MyAppBarLayout
android:id="@+id/read_text_appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_editor"
app:title="@string/file_editor"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/read_text_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:menu="@menu/menu_editor"
app:title="@string/file_editor"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</org.fossify.commons.views.MyAppBarLayout>
<LinearLayout
android:id="@+id/read_text_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:orientation="vertical"
android:scrollbars="none">
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<include
android:id="@+id/search_wrapper"
+14 -7
View File
@@ -5,18 +5,25 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/activity_save_as_toolbar"
<org.fossify.commons.views.MyAppBarLayout
android:id="@+id/activity_save_as_appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:title="@string/save_as"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/activity_save_as_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:title="@string/save_as"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</org.fossify.commons.views.MyAppBarLayout>
<RelativeLayout
android:id="@+id/activity_save_as_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize" />
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
+50 -38
View File
@@ -6,21 +6,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/settings_toolbar"
<org.fossify.commons.views.MyAppBarLayout
android:id="@+id/settings_appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:title="@string/settings"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
android:layout_height="wrap_content">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/settings_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/color_primary"
app:title="@string/settings"
app:titleTextAppearance="@style/AppTheme.ActionBar.TitleTextStyle" />
</org.fossify.commons.views.MyAppBarLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/settings_nested_scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fillViewport="true"
android:scrollbars="none">
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:id="@+id/settings_holder"
@@ -63,15 +70,20 @@
android:layout_height="wrap_content"
android:text="@string/general_settings" />
<org.fossify.commons.views.PurchaseThankYouItem
android:id="@+id/settings_purchase_thank_you_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:id="@+id/settings_use_english_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_use_english"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/use_english_language" />
@@ -171,13 +183,13 @@
<RelativeLayout
android:id="@+id/settings_press_back_twice_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_press_back_twice"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/press_back_twice" />
@@ -197,13 +209,13 @@
<RelativeLayout
android:id="@+id/settings_show_hidden_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_show_hidden"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_hidden_items" />
@@ -223,13 +235,13 @@
<RelativeLayout
android:id="@+id/settings_enable_pull_to_refresh_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_enable_pull_to_refresh"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/enable_pull_to_refresh" />
@@ -249,13 +261,13 @@
<RelativeLayout
android:id="@+id/settings_keep_last_modified_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_keep_last_modified"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/keep_last_modified" />
@@ -264,13 +276,13 @@
<RelativeLayout
android:id="@+id/settings_skip_delete_confirmation_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_skip_delete_confirmation"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/skip_delete_confirmation" />
@@ -290,13 +302,13 @@
<RelativeLayout
android:id="@+id/settings_password_protection_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_password_protection"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/password_protect_hidden_items" />
@@ -305,13 +317,13 @@
<RelativeLayout
android:id="@+id/settings_app_password_protection_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_app_password_protection"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/password_protect_whole_app" />
@@ -320,13 +332,13 @@
<RelativeLayout
android:id="@+id/settings_file_deletion_password_protection_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_file_deletion_password_protection"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/password_protect_file_deletion" />
@@ -335,13 +347,13 @@
<RelativeLayout
android:id="@+id/settings_enable_root_access_holder"
style="@style/SettingsHolderCheckboxStyle"
style="@style/SettingsHolderSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<org.fossify.commons.views.MyAppCompatCheckbox
<org.fossify.commons.views.MyMaterialSwitch
android:id="@+id/settings_enable_root_access"
style="@style/SettingsCheckboxStyle"
style="@style/SettingsSwitchStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/enable_root_access" />
+2 -2
View File
@@ -68,7 +68,7 @@
android:textStyle="italic"
android:visibility="gone" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
<org.fossify.filemanager.views.MySwipeRefreshLayout
android:id="@+id/items_swipe_refresh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -90,7 +90,7 @@
app:layoutManager="org.fossify.commons.views.MyGridLayoutManager" />
</com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</org.fossify.filemanager.views.MySwipeRefreshLayout>
</RelativeLayout>
<org.fossify.commons.views.MyFloatingActionButton
+2 -2
View File
@@ -22,7 +22,7 @@
android:visibility="gone"
tools:visibility="visible" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
<org.fossify.filemanager.views.MySwipeRefreshLayout
android:id="@+id/recents_swipe_refresh"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -37,5 +37,5 @@
android:scrollbars="none"
app:layoutManager="org.fossify.commons.views.MyGridLayoutManager" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</org.fossify.filemanager.views.MySwipeRefreshLayout>
</org.fossify.filemanager.fragments.RecentsFragment>
+3 -3
View File
@@ -62,14 +62,14 @@
android:id="@+id/settings"
android:icon="@drawable/ic_settings_cog_vector"
android:title="@string/settings"
app:showAsAction="ifRoom" />
app:showAsAction="never" />
<item
android:id="@+id/about"
android:icon="@drawable/ic_info_vector"
android:title="@string/about"
app:showAsAction="ifRoom" />
app:showAsAction="never" />
<item
android:id="@+id/more_apps_from_us"
android:title="@string/more_apps_from_us"
android:title="@string/more_fossify_apps"
app:showAsAction="never" />
</menu>
+7 -2
View File
@@ -11,13 +11,18 @@
<item
android:id="@+id/menu_save"
android:icon="@drawable/ic_save_vector"
android:title="@string/save_as"
android:title="@string/save"
app:showAsAction="always" />
<item
android:id="@+id/menu_save_as"
android:showAsAction="never"
android:title="@string/save_as"
app:showAsAction="never" />
<item
android:id="@+id/menu_print"
android:icon="@drawable/ic_print_vector"
android:title="@string/print"
app:showAsAction="always" />
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_open_with"
android:showAsAction="never"
+1 -1
View File
@@ -13,7 +13,7 @@
android:id="@+id/sort"
android:icon="@drawable/ic_sort_vector"
android:title="@string/sort_by"
app:showAsAction="ifRoom" />
app:showAsAction="always" />
<item
android:id="@+id/toggle_filename"
android:icon="@drawable/ic_label_vector"
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_print"
android:icon="@drawable/ic_print_vector"
android:title="@string/print"
app:showAsAction="always" />
</menu>
+1
View File
@@ -0,0 +1 @@
unqualifiedResLocale=en-US
+31 -42
View File
@@ -1,58 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">مدير الملفات</string>
<string name="press_back_again">اضغط مرة أخرى للخروج</string>
<string name="go_to_home_folder">الذهاب الى الرئيسية</string>
<string name="set_as_home_folder">تعيين كمجلد رئيسي</string>
<string name="home_folder_updated">تم تحديث المجلد الرئيسي</string>
<string name="copy_path">نسخ المسار الى الحافظة</string>
<string name="path_copied">تم نسخ المسار</string>
<string name="press_back_again">انقر مرة أخرى للخروج</string>
<string name="go_to_home_folder">اذهب إلى المجلد المنزل</string>
<string name="set_as_home_folder">عيّن كمجلد المنزل</string>
<string name="home_folder_updated">حُدِّث مجلد المنزل</string>
<string name="copy_path">انسخ المسار إلى الحافظة</string>
<string name="path_copied">نُسخ المسار</string>
<string name="select_audio_file">الرجاء تحديد ملف صوتي</string>
<string name="search_folder">مجلد البحث</string>
<string name="rooted_device_only">تعمل هذه العملية فقط على الأجهزة المتجذرة</string>
<string name="recents">الأحدث</string>
<string name="show_recents">إظهار الأحدث</string>
<string name="invert_colors">عكس الألوان</string>
<!-- Open as -->
<string name="open_as">Open as</string>
<string name="text_file">Text file</string>
<string name="image_file">Image file</string>
<string name="audio_file">Audio file</string>
<string name="video_file">Video file</string>
<string name="other_file">Other file</string>
<!-- Compression -->
<string name="compress">ضغط</string>
<string name="compress_pro">ضغط (Pro)</string>
<string name="show_recents">أظهر الأحدث</string>
<string name="invert_colors">اعكس الألوان</string>
<string name="compress">اضغط</string>
<string name="decompress">فك الضغط</string>
<string name="compress_as">ضغط كا</string>
<string name="compressing">ضغط…</string>
<string name="decompressing">فك الضغط…</string>
<string name="compress_as">اضغط كَ</string>
<string name="compressing">جار الضغط…</string>
<string name="decompressing">جارِ فك الضغط…</string>
<string name="compression_successful">نجح الضغط</string>
<string name="decompression_successful">نجح التفكيك</string>
<string name="compressing_failed">أخفق الضغط</string>
<string name="decompressing_failed">أخفق إلغاء الضغط</string>
<!-- Favorites -->
<string name="manage_favorites">إدارة المفضلة</string>
<string name="go_to_favorite">الذهاب الى المفضلة</string>
<string name="decompression_successful">نجح فك ضغط</string>
<string name="compressing_failed">فشل الضغط</string>
<string name="decompressing_failed">فشل فك الضغط</string>
<string name="manage_favorites">أدر المفضلة</string>
<string name="go_to_favorite">اذهب الى المفضلة</string>
<string name="favorites_activity_placeholder">يمكنك إضافة المجلدات المستخدمة بشكل متكرر إلى المفضلة لسهولة الوصول إليها من أي مكان.</string>
<!-- File Editor -->
<string name="file_editor">محرر الملفات</string>
<!-- Storage analysis -->
<string name="file_editor">محرّر الملفات</string>
<string name="storage_analysis">تحليل التخزين</string>
<string name="images">الصور</string>
<string name="videos">الفيديوهات</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">الأرشيف</string>
<string name="others">الاخرين</string>
<string name="storage_free">free</string>
<string name="others">الآخرين</string>
<string name="total_storage">إجمالي مساحة التخزين: %s</string>
<!-- Settings -->
<string name="enable_root_access">تفعيل الدخول الى مسار الروت</string>
<string name="press_back_twice">تتطلب الضغط على رجوع مرتين لمغادرة التطبيق</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="enable_root_access">فعّل وصول الجذر (root)</string>
<string name="press_back_twice">يتطلب النقر على رجوع مرتين لمغادرة التطبيق</string>
<string name="audio">صوت</string>
<string name="documents">المستندات</string>
<string name="downloads">التنزيلات</string>
<string name="storage_free">خالية</string>
<string name="open_as">افتح كـ</string>
<string name="image_file">ملف صورة</string>
<string name="text_file">ملف نصي</string>
<string name="audio_file">ملف صوتي</string>
<string name="video_file">ملف فيديو</string>
<string name="other_file">ملف آخر</string>
</resources>
-37
View File
@@ -10,21 +10,7 @@
<string name="select_audio_file">Xahiş olunur səs faylı seçin</string>
<string name="search_folder">Qovluq axtar</string>
<string name="rooted_device_only">Bu əməliyyat yalnız root\'lu cihazlarda işləyir</string>
<string name="recents">Recents</string>
<string name="show_recents">Show recents</string>
<string name="invert_colors">Invert colors</string>
<!-- Open as -->
<string name="open_as">Open as</string>
<string name="text_file">Text file</string>
<string name="image_file">Image file</string>
<string name="audio_file">Audio file</string>
<string name="video_file">Video file</string>
<string name="other_file">Other file</string>
<!-- Compression -->
<string name="compress">Sıxışdır</string>
<string name="compress_pro">Sıxışdır (Pro)</string>
<string name="decompress">Çıxar</string>
<string name="compress_as">Sıxışdır</string>
<string name="compressing">Sıxışdırılır…</string>
@@ -33,32 +19,9 @@
<string name="decompression_successful">Çıxarma uğurludur</string>
<string name="compressing_failed">Sıxışdırma alınmadı</string>
<string name="decompressing_failed">Çıxarma alınmadı</string>
<!-- Favorites -->
<string name="manage_favorites">Sevimliləri idarə et</string>
<string name="go_to_favorite">Sevimlilərə get</string>
<string name="favorites_activity_placeholder">Tez-tez istifadə olunan qovluqlara sürətli əlçatanlıq üçün sevimlilərə əlavə edə bilərsiniz.</string>
<!-- File Editor -->
<string name="file_editor">Fayl Redaktəsi</string>
<!-- Storage analysis -->
<string name="storage_analysis">Storage analysis</string>
<string name="images">Images</string>
<string name="videos">Videos</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">Archives</string>
<string name="others">Others</string>
<string name="storage_free">free</string>
<string name="total_storage">Total storage: %s</string>
<!-- Settings -->
<string name="enable_root_access">Root icazəsini aktivləşdir</string>
<string name="press_back_twice">Require pressing Back twice to leave the app</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
+3 -1
View File
@@ -1,2 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="audio">Audio</string>
</resources>
+7 -18
View File
@@ -3,26 +3,23 @@
<string name="app_launcher_name">Файлавы менеджар</string>
<string name="press_back_again">Націсніце назад яшчэ раз, каб выйсці</string>
<string name="go_to_home_folder">Перайдзіце ў хатнюю тэчку</string>
<string name="set_as_home_folder">Усталяваць у якасці хатняй тэчкі</string>
<string name="set_as_home_folder">Ўсталяваць ў якасці хатняй тэчкі</string>
<string name="home_folder_updated">Хатняя папка абноўлена</string>
<string name="copy_path">Капіяваць шлях у буфер абмену</string>
<string name="copy_path">Скапіяваць шлях ў буфер абмену</string>
<string name="path_copied">Шлях скапіяваны</string>
<string name="select_audio_file">Выберыце аўдыяфайл</string>
<string name="search_folder">Тэчка пошуку</string>
<string name="rooted_device_only">Гэтая аперацыя працуе толькі на каранёвых прыладах</string>
<string name="rooted_device_only">Гэтая каманда працуе толькі на прыладах з root-доступам</string>
<string name="recents">Апошнія</string>
<string name="show_recents">Паказаць апошнія</string>
<string name="invert_colors">Інвертаваць колеры</string>
<!-- Open as -->
<string name="open_as">Адкрыць як</string>
<string name="text_file">Тэкст</string>
<string name="text_file">Тэкставы файл</string>
<string name="image_file">Выява</string>
<string name="audio_file">Аўдыё</string>
<string name="video_file">Відэа</string>
<string name="other_file">Іншае</string>
<!-- Compression -->
<string name="compress">Сціснуць</string>
<string name="compress_pro">Сціснуць (Pro)</string>
<string name="decompress">Распакаваць</string>
<string name="compress_as">Сціснуць як</string>
<string name="compressing">Сцісканне…</string>
@@ -31,13 +28,10 @@
<string name="decompression_successful">Распакаванне паспяхова выканана</string>
<string name="compressing_failed">Не атрымалася сціснуць</string>
<string name="decompressing_failed">Не атрымалася распакаваць</string>
<!-- Favorites -->
<string name="manage_favorites">Кіраванне абранымі</string>
<string name="go_to_favorite">Перайсці да абранага</string>
<string name="favorites_activity_placeholder">Вы можаце дадаць часта выкарыстоўваюцца папкі ў абранае для лёгкага доступу з любога месца.</string>
<!-- File Editor -->
<string name="file_editor">Рэдактар файлаў</string>
<!-- Storage analysis -->
<string name="storage_analysis">Аналіз сховішча</string>
<string name="images">Выявы</string>
<string name="videos">Відэа</string>
@@ -46,13 +40,8 @@
<string name="downloads">Спампоўкі</string>
<string name="archives">Архівы</string>
<string name="others">Іншае</string>
<string name="storage_free">бясплатна</string>
<string name="storage_free">свабодна</string>
<string name="total_storage">Агульная памяць: %s</string>
<!-- Settings -->
<string name="enable_root_access">Уключыць каранёвы доступ</string>
<string name="enable_root_access">Ўключыць root-доступ</string>
<string name="press_back_twice">Патрабуецца двойчы націснуць \"Назад\", каб выйсці з праграмы</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>
+6 -17
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Файлов Мениджър</string>
<string name="app_launcher_name">Управление на файлове</string>
<string name="press_back_again">Натиснете назад отново, за да излезете</string>
<string name="go_to_home_folder">Към началната папка</string>
<string name="set_as_home_folder">Задаване като начална папка</string>
@@ -13,16 +13,13 @@
<string name="recents">Скорошни</string>
<string name="show_recents">Показване на скорошни</string>
<string name="invert_colors">Обръщане на цветове</string>
<!-- Open as -->
<string name="open_as">Отвори като</string>
<string name="text_file">Текстов файл</string>
<string name="image_file">Снимка</string>
<string name="audio_file">Аудио файл</string>
<string name="video_file">Видео файл</string>
<string name="other_file">Друг тип файл</string>
<!-- Compression -->
<string name="compress">Компресиране</string>
<string name="compress_pro">Компресиране (Pro)</string>
<string name="decompress">Декомпресиране</string>
<string name="compress_as">Компресиране като</string>
<string name="compressing">Компресира се…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Декомпресирането е успешно</string>
<string name="compressing_failed">Неуспешно компресиране</string>
<string name="decompressing_failed">Неуспешно декомпресиране</string>
<!-- Favorites -->
<string name="manage_favorites">Управление на любими</string>
<string name="go_to_favorite">Към любими</string>
<string name="favorites_activity_placeholder">Можете да добавяте често използвани папки към любими за лесен достъп от всякъде.</string>
<!-- File Editor -->
<string name="file_editor">Файлов редактор</string>
<!-- Storage analysis -->
<string name="storage_analysis">Анализ на съхранението</string>
<string name="images">Изображения</string>
<string name="videos">Видеа</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="videos">Видео</string>
<string name="archives">Архиви</string>
<string name="others">Други</string>
<string name="storage_free">free</string>
<string name="total_storage">Общо място за съхранение: %s</string>
<!-- Settings -->
<string name="enable_root_access">Активиране на root достъп</string>
<string name="press_back_twice">Натискане два пъти Назад за излизане от приложението</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="downloads">Изтегляния</string>
<string name="storage_free">свободно</string>
<string name="documents">Документи</string>
<string name="audio">Аудиофайлове</string>
</resources>
+4 -1
View File
@@ -1,2 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="images">ছবিসমূহ</string>
<string name="videos">ভিডিওসমূহ</string>
</resources>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="go_to_home_folder">راو و دوبلگه هووه</string>
<string name="set_as_home_folder">سامووݩ و عونوان دوبلگه هووه</string>
<string name="copy_path">لف گیری تور منه کیلیپ بورد</string>
<string name="app_launcher_name">دؽوۉداری فایل</string>
<string name="path_copied">تور لف گیری وابی</string>
<string name="select_audio_file">فایل آرنگی ن پسند کۊنین</string>
<string name="search_folder">پیتینیڌن دوبلگه</string>
<string name="recents">دیندا</string>
<string name="show_recents">نشووݩ داڌن مووردا دیندایی</string>
<string name="invert_colors">چواسه کردن رنگا</string>
<string name="open_as">گۊشیڌن و عونوان</string>
<string name="text_file">فایل هؽلی</string>
<string name="image_file">فایل شؽواتی</string>
<string name="audio_file">فایل آرنگی</string>
<string name="video_file">فایل ویدیویی</string>
<string name="other_file">فایل دیری</string>
<string name="press_back_again">سی و در زیڌن، ز نۊ دویمه وورگشتن ن بزنین</string>
<string name="home_folder_updated">دوبلگه هووه ورۊ رسۊوی وابی</string>
<string name="audio">دونگ</string>
</resources>
+46 -1
View File
@@ -1,2 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="invert_colors">Tuginañ al livioù</string>
<string name="open_as">Digeriñ evel</string>
<string name="text_file">Restr testenn</string>
<string name="image_file">Restr skeudenn</string>
<string name="audio_file">Rest aodio</string>
<string name="video_file">Restr video</string>
<string name="other_file">Restr all</string>
<string name="compress">Koazhañ</string>
<string name="compress_as">Koazhañ evel</string>
<string name="compressing">O koazhañ…</string>
<string name="decompressing">O tigoazhañ…</string>
<string name="decompress">Digoazhañ</string>
<string name="decompression_successful">Digoazhet gant berzh</string>
<string name="compression_successful">Koazhet gant berzh</string>
<string name="compressing_failed">C\'hwitadenn war ar c\'hoazhañ</string>
<string name="decompressing_failed">C\'hwitadenn war an digoazhañ</string>
<string name="favorites_activity_placeholder">Gallout a rit ouzhpennañ teuliadoù arveret alies d\'ho sinedoù evit gallout mont eno adalek n\'eus forzh pelec\'h.</string>
<string name="file_editor">Embanner restr</string>
<string name="manage_favorites">Ardeiñ ar sinedoù</string>
<string name="go_to_favorite">Mont d\'ar sined</string>
<string name="images">Skeudennoù</string>
<string name="audio">Aodio</string>
<string name="documents">Teulioù</string>
<string name="downloads">Pellgargadurioù</string>
<string name="storage_analysis">Dezrann ar c\'hadaviñ</string>
<string name="videos">Videoioù</string>
<string name="archives">Dielloù</string>
<string name="storage_free">dieub</string>
<string name="others">Re all</string>
<string name="total_storage">Kadaviñ hollek: %s</string>
<string name="enable_root_access">Gweredekaat an haeziñ \"root\"</string>
<string name="press_back_twice">Dav eo pouezañ War-gil div wech evit kuitaat an arload</string>
<string name="app_launcher_name">Ardoer restroù</string>
<string name="press_back_again">Pouezit war an afell War-gil en-dro evit kuitaat</string>
<string name="go_to_home_folder">Mont d\'an teuliad degemer</string>
<string name="copy_path">Eilañ an treug er golver</string>
<string name="path_copied">Treug eilet</string>
<string name="select_audio_file">Diuzit ur restr aodio</string>
<string name="recents">Nevesañ</string>
<string name="show_recents">Diskouez ar re nevesañ</string>
<string name="set_as_home_folder">Despizañ evel teuliad degemer</string>
<string name="home_folder_updated">Hizivaet eo bet an teuliad degemer</string>
<string name="search_folder">Klask en teuliad</string>
<string name="rooted_device_only">Mont a ra en-dro ar gwezhiadur-mañ war an trevnadoù rootet hepken</string>
</resources>
+6 -17
View File
@@ -1,28 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Gestor de fitxers</string>
<string name="press_back_again">Premeu enrere de nou per sortir</string>
<string name="press_back_again">Premeu enrere de nou per a sortir</string>
<string name="go_to_home_folder">Ves a la carpeta d\'inici</string>
<string name="set_as_home_folder">Estableix com a carpeta d\'inici</string>
<string name="home_folder_updated">S\'ha actualitzat la carpeta d\'inici</string>
<string name="copy_path">Copia el camí al porta-retalls</string>
<string name="path_copied">S\'ha copiat el camí</string>
<string name="path_copied">Ruta copiada</string>
<string name="select_audio_file">Seleccioneu un fitxer d\'àudio</string>
<string name="search_folder">Cerca carpeta</string>
<string name="rooted_device_only">Aquesta operació només funciona en dispositius amb «root»</string>
<string name="recents">Recents</string>
<string name="show_recents">Mostra els recents</string>
<string name="invert_colors">Inverteix els colors</string>
<!-- Open as -->
<string name="open_as">Obre com a</string>
<string name="text_file">Fitxer de text</string>
<string name="image_file">Fitxer d\'imatge</string>
<string name="audio_file">Fitxer d\'àudio</string>
<string name="video_file">Fitxer de vídeo</string>
<string name="other_file">Altres fitxers</string>
<!-- Compression -->
<string name="compress">Comprimeix</string>
<string name="compress_pro">Comprimeix (Pro)</string>
<string name="decompress">Descomprimeix</string>
<string name="compress_as">Comprimeix com a</string>
<string name="compressing">S\'està comprimint…</string>
@@ -31,28 +27,21 @@
<string name="decompression_successful">Descompressió correcta</string>
<string name="compressing_failed">Ha fallat la compressió</string>
<string name="decompressing_failed">Ha fallat la descompressió</string>
<!-- Favorites -->
<string name="manage_favorites">Gestiona els preferits</string>
<string name="go_to_favorite">Ves als preferits</string>
<string name="favorites_activity_placeholder">Podeu afegir carpetes que utilitzeu amb freqüència als preferits per accedir fàcilment des de qualsevol lloc.</string>
<!-- File Editor -->
<string name="favorites_activity_placeholder">Podeu afegir carpetes que utilitzeu amb freqüència als preferits per a accedir fàcilment des de qualsevol lloc.</string>
<string name="file_editor">Editor de fitxers</string>
<!-- Storage analysis -->
<string name="storage_analysis">Anàlisi d\'emmagatzematge</string>
<string name="images">Imatges</string>
<string name="videos">Vídeos</string>
<string name="audio">Àudio</string>
<string name="documents">Documents</string>
<string name="downloads">Baixades</string>
<string name="archives">Arxius</string>
<string name="others">Altres</string>
<string name="storage_free">lliure</string>
<string name="total_storage">Emmagatzematge total: %s</string>
<!-- Settings -->
<string name="enable_root_access">Habilita l\'accés «root»</string>
<string name="press_back_twice">Cal que premeu Enrere dues vegades per sortir de l\'aplicació</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="press_back_twice">Cal que premeu Enrere dues vegades per a sortir de l\'aplicació</string>
<string name="documents">Documents</string>
<string name="recents">Recents</string>
</resources>
+28 -1
View File
@@ -1,2 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_launcher_name">بەڕێوەبەری پەڕگە</string>
<string name="press_back_again">بۆ دەرچوون دووبارە گەڕانەوە داگرە</string>
<string name="recents">دوایین</string>
<string name="open_as">کردنەوە وەک</string>
<string name="text_file">پەڕگەی دەقی</string>
<string name="image_file">پەڕگەی وێنەیی</string>
<string name="audio_file">پەڕگەی دەنگی</string>
<string name="video_file">پەڕگەی ڤیدیۆیی</string>
<string name="other_file">پەڕگەی دیکە</string>
<string name="compress">پەستان</string>
<string name="decompress">شیتەڵکردنەوە</string>
<string name="compress_as">بیپەستە وەک</string>
<string name="compressing">دەیپەستێت…</string>
<string name="decompressing">شیتەڵی دەکاتەوە…</string>
<string name="compression_successful">پەستانەکە سەرکەوت</string>
<string name="decompression_successful">شیتەڵکردنەوەکە سەرکەوت</string>
<string name="file_editor">دەستکاریکەری پەڕگە</string>
<string name="images">وێنەکان</string>
<string name="videos">ڤیدیۆکان</string>
<string name="audio">دەنگ</string>
<string name="documents">بەڵگەنامەکان</string>
<string name="downloads">داگیراوەکان</string>
<string name="archives">ئەرشیفەکان</string>
<string name="others">ئیتکە</string>
<string name="storage_free">بەتاڵە</string>
<string name="total_storage">سەرجەمی بیرگە: %s</string>
</resources>
+2 -13
View File
@@ -13,16 +13,13 @@
<string name="recents">Nedávné</string>
<string name="show_recents">Ukázat nedávné</string>
<string name="invert_colors">Invertovat barvy</string>
<!-- Open as -->
<string name="open_as">Otevřít jako</string>
<string name="text_file">Textový soubor</string>
<string name="image_file">Obrázkový soubor</string>
<string name="audio_file">Zvukový soubor</string>
<string name="video_file">Video soubor</string>
<string name="other_file">Jiný soubor</string>
<!-- Compression -->
<string name="compress">Komprimovat</string>
<string name="compress_pro">Komprimovat (Pro)</string>
<string name="decompress">Rozbalit</string>
<string name="compress_as">Komprimovat jako</string>
<string name="compressing">Komprimuje se…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Rozbalení bylo úspěšné</string>
<string name="compressing_failed">Komprimace selhala</string>
<string name="decompressing_failed">Rozbalení selhalo</string>
<!-- Favorites -->
<string name="manage_favorites">Spravovat oblíbené</string>
<string name="go_to_favorite">Přejít na oblíbené</string>
<string name="favorites_activity_placeholder">Přidejte často používané složky mezi oblíbené pro jednoduchý přístup odkudkoli.</string>
<!-- File Editor -->
<string name="file_editor">Editor souborů</string>
<!-- Storage analysis -->
<string name="storage_analysis">Analýza úložiště</string>
<string name="images">Obrázky</string>
<string name="videos">Videa</string>
<string name="audio">Zvuky</string>
<string name="audio">Zvuk</string>
<string name="documents">Dokumenty</string>
<string name="downloads">Stažené</string>
<string name="downloads">Stahování</string>
<string name="archives">Archivy</string>
<string name="others">Ostatní</string>
<string name="storage_free">volné</string>
<string name="total_storage">Úložiště celkem: %s</string>
<!-- Settings -->
<string name="enable_root_access">Povolit přístup jako root</string>
<string name="press_back_twice">Pro opuštění aplikace vyžadovat stisknutí Zpět dvakrát</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
+3 -32
View File
@@ -10,21 +10,13 @@
<string name="select_audio_file">Dewisa ffeil sain</string>
<string name="search_folder">Chwilio\'r ffolder</string>
<string name="rooted_device_only">Dyw\'r weithred hon ond yn gweithio ar ddyfeisiau wedi\'u gwreddio</string>
<string name="recents">Recents</string>
<string name="show_recents">Show recents</string>
<string name="invert_colors">Invert colors</string>
<!-- Open as -->
<string name="open_as">Agor fel</string>
<string name="text_file">Ffeil testun</string>
<string name="image_file">Ffeil delwedd</string>
<string name="audio_file">Ffeil sain</string>
<string name="video_file">Ffeil fideo</string>
<string name="other_file">Ffeil arall</string>
<!-- Compression -->
<string name="compress">Cywasgu</string>
<string name="compress_pro">Cywasgu (Pro)</string>
<string name="decompress">Datgywasgu</string>
<string name="compress_as">Cywasgu fel</string>
<string name="compressing">Yn cywasgu…</string>
@@ -33,32 +25,11 @@
<string name="decompression_successful">Datgywasgwyd yn llwyddiannus</string>
<string name="compressing_failed">Methodd y cywasgu</string>
<string name="decompressing_failed">Methodd y datgywasgu</string>
<!-- Favorites -->
<string name="manage_favorites">Rheoli ffefrynnau</string>
<string name="go_to_favorite">Mynd at ffefryn</string>
<string name="favorites_activity_placeholder">Gellir ychwanegu ffolder a ddefnyddir yn aml at y ffefrynnau i gael atyn nhw\'n hawdd o unrhyw fan.</string>
<!-- File Editor -->
<string name="file_editor">Golygydd Ffeiliau</string>
<!-- Storage analysis -->
<string name="storage_analysis">Storage analysis</string>
<string name="images">Images</string>
<string name="videos">Videos</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">Archives</string>
<string name="others">Others</string>
<string name="storage_free">free</string>
<string name="total_storage">Total storage: %s</string>
<!-- Settings -->
<string name="enable_root_access">Galluogi mynediad craidd</string>
<string name="press_back_twice">Require pressing Back twice to leave the app</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
<string name="images">Delweddau</string>
<string name="videos">Fideos</string>
</resources>
+8 -19
View File
@@ -5,24 +5,21 @@
<string name="go_to_home_folder">Gå til hjemmemappen</string>
<string name="set_as_home_folder">Sæt som hjemmemappe</string>
<string name="home_folder_updated">Hjemmemappe opdateret</string>
<string name="copy_path">Kopier sti til udklipsholderen</string>
<string name="copy_path">Kopiér sti til udklipsholder</string>
<string name="path_copied">Sti kopieret</string>
<string name="select_audio_file">Vælg en lydfil</string>
<string name="search_folder">Søg i mappe</string>
<string name="rooted_device_only">Denne funktion virker kun på rootede enheder</string>
<string name="rooted_device_only">Denne handling virker kun på rootede enheder</string>
<string name="recents">Seneste</string>
<string name="show_recents">Vis seneste</string>
<string name="invert_colors">Invert colors</string>
<!-- Open as -->
<string name="invert_colors">Inverter farver</string>
<string name="open_as">Åbn som</string>
<string name="text_file">Tekstfil</string>
<string name="image_file">Billedfil</string>
<string name="audio_file">Lydfil</string>
<string name="video_file">Videofil</string>
<string name="other_file">Anden fil</string>
<!-- Compression -->
<string name="compress">Komprimer</string>
<string name="compress_pro">Komprimer (Pro)</string>
<string name="decompress">Dekomprimer</string>
<string name="compress_as">Komprimer som</string>
<string name="compressing">Komprimerer…</string>
@@ -31,14 +28,11 @@
<string name="decompression_successful">Dekomprimeret</string>
<string name="compressing_failed">Komprimering mislykkedes</string>
<string name="decompressing_failed">Dekomprimering mislykkedes</string>
<!-- Favorites -->
<string name="manage_favorites">Håndter favoritter</string>
<string name="manage_favorites">Administrer favoritter</string>
<string name="go_to_favorite">Gå til favorit</string>
<string name="favorites_activity_placeholder">Du kan tilføje ofte benyttede mapper til favoritter, så du hurtigt kan finde dem igen.</string>
<!-- File Editor -->
<string name="favorites_activity_placeholder">Du kan føje ofte brugte mapper til favoritter for nem adgang overalt.</string>
<string name="file_editor">Fileditor</string>
<!-- Storage analysis -->
<string name="storage_analysis">Lagersanalyse</string>
<string name="storage_analysis">Lagringsanalyse</string>
<string name="images">Billeder</string>
<string name="videos">Videoer</string>
<string name="audio">Lyd</string>
@@ -48,11 +42,6 @@
<string name="others">Andre</string>
<string name="storage_free">fri</string>
<string name="total_storage">Samlet lagerplads: %s</string>
<!-- Settings -->
<string name="enable_root_access">Aktiver root-adgang</string>
<string name="press_back_twice">Kræv to tryk på tilbage for at forlade appen</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="enable_root_access">Aktivér root-adgang</string>
<string name="press_back_twice">Dobbelttryk på Tilbage for at afslutte appen</string>
</resources>
+5 -16
View File
@@ -13,16 +13,13 @@
<string name="recents">Neueste</string>
<string name="show_recents">Neueste anzeigen</string>
<string name="invert_colors">Farben invertieren</string>
<!-- Open as -->
<string name="open_as">Öffnen als</string>
<string name="text_file">Textdatei</string>
<string name="image_file">Bilddatei</string>
<string name="audio_file">Audiodatei</string>
<string name="video_file">Videodatei</string>
<string name="other_file">Anderer Dateityp</string>
<!-- Compression -->
<string name="compress">Komprimieren</string>
<string name="compress_pro">Komprimieren (Pro)</string>
<string name="decompress">Entpacken</string>
<string name="compress_as">Komprimieren als</string>
<string name="compressing">Komprimieren …</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Entpacken erfolgreich</string>
<string name="compressing_failed">Komprimieren fehlgeschlagen</string>
<string name="decompressing_failed">Entpacken fehlgeschlagen</string>
<!-- Favorites -->
<string name="manage_favorites">Favoriten verwalten</string>
<string name="go_to_favorite">Zu Favoriten wechseln</string>
<string name="favorites_activity_placeholder">Du kannst häufig benutzte Ordner für einen einfacheren Zugriff zu den Favoriten hinzufügen.</string>
<!-- File Editor -->
<string name="file_editor">Dateieditor</string>
<!-- Storage analysis -->
<string name="storage_analysis">Speicheranalyse</string>
<string name="images">Bilder</string>
<string name="videos">Videos</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">Archiv</string>
<string name="others">Andere</string>
<string name="storage_free">frei</string>
<string name="total_storage">Gesamter Speicherplatz: %s</string>
<!-- Settings -->
<string name="enable_root_access">Root-Zugriff erlauben</string>
<string name="press_back_twice">Zweimaliges Drücken von Zurück ist erforderlich, um die App zu verlassen</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
<string name="videos">Videos</string>
<string name="documents">Dokumente</string>
<string name="audio">Audio</string>
<string name="downloads">Downloads</string>
</resources>
+1 -18
View File
@@ -9,22 +9,17 @@
<string name="path_copied">Η διαδρομή αντιγράφηκε</string>
<string name="select_audio_file">Επιλέξτε ένα αρχείο ήχου</string>
<string name="search_folder">Αναζήτηση φακέλου</string>
<string name="rooted_device_only">Αυτό το χαρακτηριστικό λειτουργεί μόνο σε συσκευές με πρόσβαση στον ριζικό κατάλογο.</string>
<string name="rooted_device_only">Αυτό το χαρακτηριστικό λειτουργεί μόνο σε συσκευές με πρόσβαση στον ριζικό κατάλογο</string>
<string name="recents">Πρόσφατα</string>
<string name="show_recents">Εμφάνιση προσφάτων</string>
<string name="invert_colors">Αντιστροφή χρωμάτων</string>
<!-- Open as -->
<string name="open_as">Άνοιγμα ως</string>
<string name="text_file">Αρχείο Κειμένου</string>
<string name="image_file">Αρχείο Εικόνας</string>
<string name="audio_file">Αρχείο Ήχου</string>
<string name="video_file">Αρχείο Βίντεο</string>
<string name="other_file">Άλλος τύπος</string>
<!-- Compression -->
<string name="compress">Συμπίεση</string>
<string name="compress_pro">Συμπίεση (Pro)</string>
<string name="decompress">Αποσυμπίεση</string>
<string name="compress_as">Συμπίεση ως</string>
<string name="compressing">Συμπιέζεται…</string>
@@ -33,16 +28,10 @@
<string name="decompression_successful">Η Αποσυμπίεση ολοκληρώθηκε</string>
<string name="compressing_failed">Σφάλμα Συμπίεσης</string>
<string name="decompressing_failed">Σφάλμα Αποσυμπίεσης</string>
<!-- Favorites -->
<string name="manage_favorites">Διαχείριση Αγαπημένων</string>
<string name="go_to_favorite">Μετάβαση στα Αγαπημένα</string>
<string name="favorites_activity_placeholder">Μπορείτε να προσθέσετε φακέλους που χρησιμοποιούνται συχνά στα Αγαπημένα για εύκολη πρόσβαση από οπουδήποτε.</string>
<!-- File Editor -->
<string name="file_editor">Επεξεργαστής αρχείων</string>
<!-- Storage analysis -->
<string name="storage_analysis">Ανάλυση Αποθήκευσης</string>
<string name="images">Εικόνες</string>
<string name="videos">Βίντεο</string>
@@ -53,12 +42,6 @@
<string name="others">Άλλα</string>
<string name="storage_free">ελεύθερα</string>
<string name="total_storage">Σύνολο: %s</string>
<!-- Settings -->
<string name="enable_root_access">Ενεργοποιήστε την πρόσβαση ριζικού καταλόγου</string>
<string name="press_back_twice">Απαιτείται διπλό πάτημα του πλήκτρου \"Πίσω\" για κλείσιμο εφαρμογής</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
+8 -1
View File
@@ -1,2 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_launcher_name">File Manager</string>
<string name="invert_colors">Invert colours</string>
<string name="audio">Audio</string>
<string name="press_back_again">Press back again to exit</string>
<string name="go_to_home_folder">Go to home folder</string>
<string name="set_as_home_folder">Set as home folder</string>
</resources>
+23 -34
View File
@@ -1,28 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Dosieradministrilo</string>
<string name="press_back_again">Press back again to exit</string>
<string name="go_to_home_folder">Go to home folder</string>
<string name="set_as_home_folder">Set as home folder</string>
<string name="home_folder_updated">Home folder updated</string>
<string name="copy_path">Copy path to clipboard</string>
<string name="path_copied">Path copied</string>
<string name="select_audio_file">Please select an audio file</string>
<string name="search_folder">Search folder</string>
<string name="rooted_device_only">This operation works only on rooted devices</string>
<string name="recents">Recents</string>
<string name="show_recents">Show recents</string>
<string name="invert_colors">Invert colors</string>
<!-- Open as -->
<string name="open_as">Malfermi kiel</string>
<string name="text_file">Teksta dosiero</string>
<string name="image_file">Bilda dosiero</string>
<string name="audio_file">Sondosiero</string>
<string name="video_file">Filma dosiero</string>
<string name="other_file">Alia dosiero</string>
<!-- Compression -->
<string name="compress">Densigi</string>
<string name="compress_pro">Densigi (Pro)</string>
<string name="decompress">Maldensigi</string>
<string name="compress_as">Densigi kiel</string>
<string name="compressing">Densigante…</string>
@@ -31,28 +16,32 @@
<string name="decompression_successful">Maldensigo sukcesis</string>
<string name="compressing_failed">Densigo malsukcesis</string>
<string name="decompressing_failed">Maldensigo malsukcesis</string>
<!-- Favorites -->
<string name="manage_favorites">Manage favorites</string>
<string name="go_to_favorite">Go to favorite</string>
<string name="favorites_activity_placeholder">You can add frequently used folders to favorites for easy access from anywhere.</string>
<!-- File Editor -->
<string name="file_editor">Dosierredaktilo</string>
<!-- Storage analysis -->
<string name="storage_analysis">Storage analysis</string>
<string name="images">Bildoj</string>
<string name="videos">Filmoj</string>
<string name="audio">Sonoj</string>
<string name="videos">Filmetoj</string>
<string name="audio">Sono</string>
<string name="documents">Dokumentoj</string>
<string name="downloads">Elŝutoj</string>
<string name="archives">Archives</string>
<string name="others">Aliaj</string>
<string name="storage_free">free</string>
<string name="total_storage">Total storage: %s</string>
<!-- Settings -->
<string name="enable_root_access">Enable root access</string>
<string name="press_back_twice">Require pressing Back twice to leave the app</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="select_audio_file">Bonvolu elekti sondosieron</string>
<string name="invert_colors">Inversigi kolorojn</string>
<string name="manage_favorites">Administri plej ŝatatajn</string>
<string name="go_to_favorite">Iri al plej ŝatata</string>
<string name="favorites_activity_placeholder">Vi povas aldoni ofte uzatajn dosierujojn al viaj plej ŝatataj por facile atingi ilin el ie ajn.</string>
<string name="archives">Arkivoj</string>
<string name="storage_free">libera</string>
<string name="total_storage">Tuta memoro: %s</string>
<string name="enable_root_access">Ŝalti ĉefuzantajn permesojn</string>
<string name="press_back_again">Premu la revenobutonon denove por eliri</string>
<string name="go_to_home_folder">Iri al la hejma dosierujo</string>
<string name="set_as_home_folder">Difini kiel hejma dosierujo</string>
<string name="home_folder_updated">Hejma dosierujo ĝisdatigita</string>
<string name="copy_path">Kopii vojon al la tondujo</string>
<string name="path_copied">Vojo kopiita</string>
<string name="search_folder">Serĉi dosierujon</string>
<string name="rooted_device_only">Ĉi tiu operacio funkcias nur sur aparatoj root-itaj</string>
<string name="recents">Lastaj</string>
<string name="show_recents">Montri lastajn</string>
<string name="storage_analysis">Memora analizo</string>
<string name="press_back_twice">Postuli premi la revenobutonon du fojojn por eliri el la aplikaĵo</string>
</resources>
+5 -1
View File
@@ -1,2 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_launcher_name">Gestor de archivos</string>
<string name="press_back_again">Presione hacia atrás nuevamente para salir</string>
<string name="go_to_home_folder">Ir a la carpeta de inicio</string>
</resources>
+1 -12
View File
@@ -13,16 +13,13 @@
<string name="recents">Recientes</string>
<string name="show_recents">Mostrar recientes</string>
<string name="invert_colors">Invertir colores</string>
<!-- Open as -->
<string name="open_as">Abrir como</string>
<string name="text_file">Archivo de texto</string>
<string name="image_file">Imagen</string>
<string name="audio_file">Archivo de audio</string>
<string name="video_file">Video</string>
<string name="other_file">Otro tipo de archivo</string>
<!-- Compression -->
<string name="compress">Comprimir</string>
<string name="compress_pro">Comprimir (Pro)</string>
<string name="decompress">Descomprimir</string>
<string name="compress_as">Comprimir como</string>
<string name="compressing">Comprimiendo…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Descompresión exitosa</string>
<string name="compressing_failed">Compresión fallida</string>
<string name="decompressing_failed">Descompresión fallida</string>
<!-- Favorites -->
<string name="manage_favorites">Administrar favoritos</string>
<string name="go_to_favorite">Ir a favoritos</string>
<string name="favorites_activity_placeholder">Puede agregar carpetas de uso frecuente a favoritos para facilitar el acceso desde cualquier lugar.</string>
<!-- File Editor -->
<string name="file_editor">Editor de archivos</string>
<!-- Storage analysis -->
<string name="storage_analysis">Análisis de almacenamiento</string>
<string name="images">Imágenes</string>
<string name="videos">Vídeos</string>
<string name="audio">Audio</string>
<string name="documents">Documentos</string>
<string name="downloads">Descargas</string>
<string name="archives">Archivos</string>
<string name="others">Otros</string>
<string name="storage_free">libre</string>
<string name="total_storage">Almacenamiento total: %s</string>
<!-- Settings -->
<string name="enable_root_access">Activar acceso root</string>
<string name="press_back_twice">Se requiere presionar el botón atras dos veces para salir de la app</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="audio">Audio</string>
</resources>
+1 -12
View File
@@ -13,16 +13,13 @@
<string name="recents">Viimati kasutatud</string>
<string name="show_recents">Näita viimatikasutatud faile</string>
<string name="invert_colors">Pööra värvid tagurpidi</string>
<!-- Open as -->
<string name="open_as">Ava kui</string>
<string name="text_file">tekstifailina</string>
<string name="image_file">pildifailina</string>
<string name="audio_file">helifailina</string>
<string name="video_file">videofailina</string>
<string name="other_file">muu failina</string>
<!-- Compression -->
<string name="compress">Paki kokku</string>
<string name="compress_pro">Paki kokku (Pro)</string>
<string name="decompress">Paki lahti</string>
<string name="compress_as">Paki kokku kui</string>
<string name="compressing">Kokkupakkimine…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Lahtipakitud</string>
<string name="compressing_failed">Lahtipakkimine ei õnnestunud</string>
<string name="decompressing_failed">Kokkupakkimine ei õnnestunud</string>
<!-- Favorites -->
<string name="manage_favorites">Halda lemmikuid</string>
<string name="go_to_favorite">Ava mõni lemmikutest</string>
<string name="favorites_activity_placeholder">Selleks, et alati oleks mugav ligipääs, lisa enamkasutatud kaustad lemmikuteks.</string>
<!-- File Editor -->
<string name="file_editor">Failiredaktor</string>
<!-- Storage analysis -->
<string name="storage_analysis">Andmekandja analüüs</string>
<string name="images">Pildid</string>
<string name="videos">Videod</string>
<string name="audio">Helifailid</string>
<string name="audio">Audio</string>
<string name="documents">Dokumendid</string>
<string name="downloads">Allalaadimised</string>
<string name="archives">Failiarhiivid</string>
<string name="others">Muud failid</string>
<string name="storage_free">vaba</string>
<string name="total_storage">Kogu salvestusruum: %s</string>
<!-- Settings -->
<string name="enable_root_access">Luba ligipääs juurkasutajale</string>
<string name="press_back_twice">Rakendusest väljumiseks eelda kahte Tagasi-nupu vajutust</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
+46 -1
View File
@@ -1,2 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="images">Irudiak</string>
<string name="videos">Bideoak</string>
<string name="open_as">Ireki honela</string>
<string name="favorites_activity_placeholder">Gogokoetara maiz erabiltzen diren karpetak gehi ditzakezu edonondik erraz sartzeko.</string>
<string name="storage_analysis">Biltegiratze-analisia</string>
<string name="documents">Dokumentuak</string>
<string name="downloads">Deskargak</string>
<string name="others">Bestelakoak</string>
<string name="enable_root_access">Gaitu root sarbidea</string>
<string name="press_back_twice">Sakatu Atzera bi aldiz sakatu aplikaziotik irteteko</string>
<string name="image_file">Irudi-fitxategia</string>
<string name="audio_file">Audio-fitxategia</string>
<string name="compression_successful">Trinkotzea behar bezala burutu da</string>
<string name="decompressing_failed">Deskonprimatzeak huts egin du</string>
<string name="manage_favorites">Kudeatu gogokoak</string>
<string name="file_editor">Fitxategien editorea</string>
<string name="audio">Audio</string>
<string name="path_copied">Bidea kopiatu da</string>
<string name="select_audio_file">Hautatu audio-fitxategi bat</string>
<string name="search_folder">Bilatu karpeta</string>
<string name="rooted_device_only">Eragiketa honek rooteatutako gailuetan bakarrik funtzionatzen du</string>
<string name="recents">Azkenak</string>
<string name="show_recents">Erakutsi azkenak</string>
<string name="invert_colors">Alderantzikatu koloreak</string>
<string name="text_file">Testu-fitxategia</string>
<string name="video_file">Bideo-fitxategia</string>
<string name="other_file">Bestelako fitxategia</string>
<string name="compress">Trinkotu</string>
<string name="compress_as">Trinkotu honela</string>
<string name="compressing">Trinkotzen…</string>
<string name="decompressing">Deskonprimatzen…</string>
<string name="decompression_successful">Deskonprimatzea behar bezala burutu da</string>
<string name="compressing_failed">Trinkotzeak huts egin du</string>
<string name="decompress">Deskonprimatu</string>
<string name="go_to_favorite">Joan gogokoetara</string>
<string name="archives">Artxiboak</string>
<string name="storage_free">librea</string>
<string name="total_storage">Biltegiratze osoa: %s</string>
<string name="app_launcher_name">Fitxategi kudeatzailea</string>
<string name="press_back_again">Sakatu berriro atzera irteteko</string>
<string name="go_to_home_folder">Joan hasierako karpetara</string>
<string name="set_as_home_folder">Ezarri hasierako karpeta gisa</string>
<string name="home_folder_updated">Hasierako karpeta eguneratu da</string>
<string name="copy_path">Kopiatu bidea arbelean</string>
</resources>
+46 -1
View File
@@ -1,2 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="images">تصاویر</string>
<string name="audio">صوت</string>
<string name="app_launcher_name">مدیریت فایل ها</string>
<string name="press_back_again">برای خروج دوباره بازگشت را بزنید</string>
<string name="go_to_home_folder">رفتن به پوشهٔ خانه</string>
<string name="set_as_home_folder">تنظیم به عنوان پوشهٔ خانه</string>
<string name="home_folder_updated">پوشهٔ خانه به‌روزرسانی شد</string>
<string name="copy_path">رونوشت مسیر در کلیپ‌بورد</string>
<string name="path_copied">مسیر رونوشت شد</string>
<string name="select_audio_file">لطفاً یک پرونده صوتی انتخاب کنید</string>
<string name="search_folder">جست‌وجوی پوشه</string>
<string name="rooted_device_only">این عملیات فقط روی دستگاه‌های روت‌شده کار می‌کند</string>
<string name="recents">موارد اخیر</string>
<string name="show_recents">نمایش موارد اخیر</string>
<string name="invert_colors">وارون کردن رنگ‌ها</string>
<string name="open_as">باز کردن به عنوان</string>
<string name="text_file">پرونده متنی</string>
<string name="image_file">پرونده تصویری</string>
<string name="audio_file">پرونده صوتی</string>
<string name="video_file">پرونده ویدیویی</string>
<string name="other_file">پرونده دیگر</string>
<string name="compress">فشرده‌سازی</string>
<string name="decompress">خارج‌سازی از حالت فشرده</string>
<string name="compress_as">فشرده‌سازی به عنوان</string>
<string name="compressing">در حال فشرده‌سازی…</string>
<string name="decompressing">در حال خارج‌سازی از حالت فشرده…</string>
<string name="compression_successful">فشرده‌سازی موفقیت‌آمیز بود</string>
<string name="decompression_successful">خارج‌سازی از حالت فشرده موفقیت‌آمیز بود</string>
<string name="compressing_failed">فشرده‌سازی ناموفق بود</string>
<string name="decompressing_failed">خارج‌سازی از حالت فشرده ناموفق بود</string>
<string name="manage_favorites">مدیریت علاقه‌مندی‌ها</string>
<string name="go_to_favorite">رفتن به علاقه‌مندی</string>
<string name="favorites_activity_placeholder">می‌توانید پوشه‌های پرکاربرد را برای دسترسی آسان از هر جا به علاقه‌مندی‌ها اضافه کنید.</string>
<string name="file_editor">ویرایشگر پرونده</string>
<string name="storage_analysis">تحلیل فضای ذخیره‌سازی</string>
<string name="videos">ویدیوها</string>
<string name="documents">اسناد</string>
<string name="downloads">دانلود‌ها</string>
<string name="archives">آرشیو‌ها</string>
<string name="others">سایر</string>
<string name="storage_free">آزاد</string>
<string name="total_storage">کل فضای ذخیره‌سازی: %s</string>
<string name="enable_root_access">فعال‌سازی دسترسی روت</string>
<string name="press_back_twice">برای خروج از برنامه، دو بار دکمهٔ بازگشت را بزنید</string>
</resources>
+2 -13
View File
@@ -13,16 +13,13 @@
<string name="recents">Viimeaikaiset</string>
<string name="show_recents">Näytä viimeaikaiset</string>
<string name="invert_colors">Käänteiset värit</string>
<!-- Open as -->
<string name="open_as">Avaa nimellä</string>
<string name="text_file">Tekstitiedostona</string>
<string name="image_file">Kuvatiedostona</string>
<string name="audio_file">Äänitiedostona</string>
<string name="video_file">Videotiedostona</string>
<string name="other_file">Jonakin muuna tiedostona</string>
<!-- Compression -->
<string name="compress">Pakkaa</string>
<string name="compress_pro">Pakkaa (Pro)</string>
<string name="decompress">Pura</string>
<string name="compress_as">Pakkausmuoto</string>
<string name="compressing">Pakataan…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Purkaminen valmis</string>
<string name="compressing_failed">Pakkaaminen epäonnistui</string>
<string name="decompressing_failed">Purkaminen epäonnistui</string>
<!-- Favorites -->
<string name="manage_favorites">Hallitse suosikkeja</string>
<string name="go_to_favorite">Mene suosikkiin</string>
<string name="favorites_activity_placeholder">Voit lisätä usein käyttämiäsi kansiota suosikeiksi, jolloin niiden käyttö on helppoa mistä vain.</string>
<!-- File Editor -->
<string name="file_editor">Tiedostoeditori</string>
<!-- Storage analysis -->
<string name="storage_analysis">Tallennustilan analyysi</string>
<string name="images">Kuvat</string>
<string name="videos">Videot</string>
<string name="audio">Audio</string>
<string name="documents">Dokumentit</string>
<string name="downloads">Lataukset</string>
<string name="archives">Arkistot</string>
<string name="others">Muut</string>
<string name="storage_free">ilmainen</string>
<string name="storage_free">vapaana</string>
<string name="total_storage">Tallennustila: %s</string>
<!-- Settings -->
<string name="enable_root_access">Ota käyttöön root-ominaisuudet</string>
<string name="press_back_twice">Ota käyttöön sovelluksesta poistuminen kahdella takaisin-painikkeen painalluksella</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="audio">Ääni</string>
</resources>
+6 -17
View File
@@ -13,46 +13,35 @@
<string name="recents">Récents</string>
<string name="show_recents">Afficher les récents</string>
<string name="invert_colors">Inverser les couleurs</string>
<!-- Open as -->
<string name="open_as">Ouvert comme</string>
<string name="text_file">Fichier texte</string>
<string name="image_file">Fichier image</string>
<string name="audio_file">Fichier audio</string>
<string name="video_file">Fichier vidéo</string>
<string name="other_file">Autre fichier</string>
<!-- Compression -->
<string name="compress">Compresser</string>
<string name="compress_pro">Compresser (Pro)</string>
<string name="decompress">Décompresser</string>
<string name="compress_as">Compresser sous</string>
<string name="compressing">Compression…</string>
<string name="decompressing">Décompression…</string>
<string name="compression_successful">Compression réussie</string>
<string name="decompression_successful">Décompression réussie</string>
<string name="compressing_failed">Compression ratée</string>
<string name="decompressing_failed">Décompression ratée</string>
<!-- Favorites -->
<string name="compressing_failed">Échec de la compression</string>
<string name="decompressing_failed">Échec de la décompression</string>
<string name="manage_favorites">Gérer les favoris</string>
<string name="go_to_favorite">Aller au favori</string>
<string name="favorites_activity_placeholder">Vous pouvez ajouter des dossiers souvent utilisés comme favoris pour y avoir accès rapidement depuis n\'importe où.</string>
<!-- File Editor -->
<string name="file_editor">Éditeur de fichier</string>
<!-- Storage analysis -->
<string name="storage_analysis">Analyse du stockage</string>
<string name="images">Images</string>
<string name="videos">Vidéos</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Téléchargements</string>
<string name="archives">Archives</string>
<string name="others">Autres</string>
<string name="storage_free">libre</string>
<string name="total_storage">Stockage total : %s</string>
<!-- Settings -->
<string name="enable_root_access">Activer les droits root</string>
<string name="press_back_twice">Obligation d\'appuyer deux fois sur la touche Retour pour quitter l\'application</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="audio">Audio</string>
<string name="images">Images</string>
<string name="documents">Documents</string>
<string name="archives">Archives</string>
</resources>
+47
View File
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Bainisteoir Comhad</string>
<string name="go_to_home_folder">Téigh go dtí an fillteán baile</string>
<string name="home_folder_updated">Nuashonraíodh an fillteán baile</string>
<string name="copy_path">Cóipeáil cosán chuig an ngearrthaisce</string>
<string name="path_copied">Cóipeáladh an cosán</string>
<string name="invert_colors">Inbhéartaigh dathanna</string>
<string name="open_as">Oscail mar</string>
<string name="video_file">Comhad físe</string>
<string name="other_file">Comhad eile</string>
<string name="compress">Comhbhrúigh</string>
<string name="compress_as">Comhbhrúigh mar</string>
<string name="decompressing">Ag dí-chomhbhrú…</string>
<string name="decompression_successful">Dí-chomhbhrú rathúil</string>
<string name="compressing_failed">Theip ar chomhbhrú</string>
<string name="go_to_favorite">Téigh go dtí is fearr leat</string>
<string name="file_editor">Eagarthóir Comhad</string>
<string name="storage_analysis">Anailís stórála</string>
<string name="images">Íomhánna</string>
<string name="downloads">Íoslódálacha</string>
<string name="archives">Cartlanna</string>
<string name="others">Eile</string>
<string name="storage_free">saor</string>
<string name="total_storage">Stóras iomlán: %s</string>
<string name="enable_root_access">Cumasaigh rochtain fréimhe</string>
<string name="press_back_twice">A cheangal ar an cnaipe Ar ais faoi dhó a fhágáil ar an aip</string>
<string name="press_back_again">Brúigh ar ais arís chun imeacht</string>
<string name="select_audio_file">Roghnaigh comhad fuaime</string>
<string name="search_folder">Cuardach fillteán</string>
<string name="recents">Le déanaí</string>
<string name="show_recents">Taispeáin nuashonruithe</string>
<string name="set_as_home_folder">Socraigh mar fhillteán baile</string>
<string name="image_file">Comhad íomhá</string>
<string name="audio_file">Comhad fuaime</string>
<string name="rooted_device_only">Ní oibríonn an oibríocht seo ach ar fheistí fréamhaithe</string>
<string name="text_file">Comhad téacs</string>
<string name="decompress">Dí-chomhbhrú</string>
<string name="compressing">Ag comhbhrúite…</string>
<string name="favorites_activity_placeholder">Is féidir leat fillteáin a úsáidtear go minic a chur le ceanáin ar mhaithe le rochtain éasca ó áit ar bith.</string>
<string name="videos">Físeáin</string>
<string name="documents">Doiciméid</string>
<string name="compression_successful">Comhbhrú rathúil</string>
<string name="decompressing_failed">Theip ar dhí-chomhbhrú</string>
<string name="manage_favorites">Theip ar an dí-chomhbhrú</string>
<string name="audio">Fuaime</string>
</resources>
+15 -26
View File
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Xestor de ficheiros</string>
<string name="press_back_again">Preme novamente para saír</string>
<string name="go_to_home_folder">Ir para o cartafol persoal</string>
<string name="set_as_home_folder">Poñer como predeterminado este cartafol persoal</string>
<string name="home_folder_updated">Cartafol persoal actualizado</string>
<string name="copy_path">Copiar ruta para a área de transferencia</string>
<string name="app_launcher_name">Ficheiros</string>
<string name="press_back_again">Preme outra vez para saír</string>
<string name="go_to_home_folder">Ir ao cartafol de inicio</string>
<string name="set_as_home_folder">Establecer como cartafol de inicio</string>
<string name="home_folder_updated">Cartafol de inicio actualizado</string>
<string name="copy_path">Copiar ruta ao portapapeis</string>
<string name="path_copied">Copiouse a ruta</string>
<string name="select_audio_file">Seleccione un ficheiro de audio</string>
<string name="search_folder">Buscar cartafol</string>
@@ -13,16 +13,12 @@
<string name="recents">Recentes</string>
<string name="show_recents">Amosar recentes</string>
<string name="invert_colors">Inverte as cores</string>
<!-- Open as -->
<string name="open_as">Abrir como</string>
<string name="text_file">Texto</string>
<string name="image_file">Imaxe</string>
<string name="audio_file">Audio</string>
<string name="video_file">Vídeo</string>
<string name="other_file">Outro tipo de ficheiro</string>
<!-- Compression -->
<string name="other_file">Outros ficheiros</string>
<string name="compress">Comprimir</string>
<string name="compress_pro">Comprimir (Pro)</string>
<string name="decompress">Descomprimir</string>
<string name="compress_as">Comprimir como</string>
<string name="compressing">Comprimindo…</string>
@@ -31,28 +27,21 @@
<string name="decompression_successful">Descompresión terminada</string>
<string name="compressing_failed">Erro ao comprimir</string>
<string name="decompressing_failed">Erro ao descomprimir</string>
<!-- Favorites -->
<string name="manage_favorites">Xestionar favoritos</string>
<string name="go_to_favorite">Ir a favorito</string>
<string name="favorites_activity_placeholder">Pode adiccionar cartafoles como favoritos para un acesso mais rápido.</string>
<!-- File Editor -->
<string name="file_editor">Editor de ficheiros</string>
<!-- Storage analysis -->
<string name="storage_analysis">Análise do almacenamento</string>
<string name="storage_analysis">Análise da almacenaxe</string>
<string name="images">Imaxes</string>
<string name="videos">Vídeos</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">Arquivos</string>
<string name="others">Outros</string>
<string name="storage_free">ceibe</string>
<string name="total_storage">Almacenamento total: %s</string>
<!-- Settings -->
<string name="storage_free">libre</string>
<string name="total_storage">Almacenaxe total: %s</string>
<string name="enable_root_access">Activar acceso root</string>
<string name="press_back_twice">Require premer Atrás dúas veces para saír da aplicación</string>
<!--
Non atopou todas as cadeas que debería traducir? Existen algunhas máis en
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
<string name="audio_file">Ficheiro de audio</string>
<string name="audio">Audio</string>
<string name="documents">Documentos</string>
<string name="downloads">Descargas</string>
</resources>
+26 -42
View File
@@ -1,63 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">फ़ाइल प्रबंधक</string>
<string name="app_launcher_name">फाइल प्रबंधक</string>
<string name="press_back_again">फिर से बाहर निकलने के लिए प्रेस करें</string>
<string name="go_to_home_folder">घर फ़ोल्डर में जाओ</string>
<string name="set_as_home_folder">होम फ़ोल्डर के रूप में सेट करें</string>
<string name="home_folder_updated">होम फ़ोल्डर अद्यतन</string>
<string name="go_to_home_folder">घर फोल्डर में जाओ</string>
<string name="set_as_home_folder">होम फोल्डर के रूप में सेट करें</string>
<string name="home_folder_updated">होम फोल्डर अप्डैटिड</string>
<string name="copy_path">क्लिपबोर्ड के लिए पथ कॉपी करें</string>
<string name="path_copied">पाथ कॉपी</string>
<string name="select_audio_file">कृपया एक ऑडियो फ़ाइल चुनें</string>
<string name="search_folder">खोज फ़ोल्डर</string>
<string name="search_folder">खोज फोल्डर</string>
<string name="rooted_device_only">यह ऑपरेशन केवल रूटेड डिवाइस पर काम करता है</string>
<string name="recents">हाल के</string>
<string name="show_recents">हाल ही में दिखाएं</string>
<string name="invert_colors">Invert colors</string>
<!-- Open as -->
<string name="open_as">इस रूप में खोलें</string>
<string name="text_file">टेकस्ट फ़ाइलें</string>
<string name="image_file">इमेज फ़ाइलें</string>
<string name="audio_file">आॉडियो फ़ाइलें</string>
<string name="video_file">वीडियो फ़ाइलें</string>
<string name="other_file">अन्य फ़ाइलें</string>
<!-- Compression -->
<string name="text_file">टेकस्ट फाइलें</string>
<string name="image_file">छवि फाइलें</string>
<string name="audio_file">आॉडियो फाइलें</string>
<string name="video_file">वीडियो फाइलें</string>
<string name="other_file">अन्य फाइल</string>
<string name="compress">संपीड़न</string>
<string name="compress_pro">संपीड़न (Pro)</string>
<string name="decompress">अवसाद</string>
<string name="compress_as">इस रूप में संपीड़न</string>
<string name="compressing">संपीड़न हो रहा है</string>
<string name="decompressing">अवसाद हो रहा है</string>
<string name="compressing">संपीड़न…</string>
<string name="decompressing">विसंपीड़न…</string>
<string name="compression_successful">संपीड़न सफल</string>
<string name="decompression_successful">अवसाद सफल</string>
<string name="compressing_failed">संपीड़न विफल</string>
<string name="decompressing_failed">अवसाद विफल</string>
<!-- Favorites -->
<string name="manage_favorites">पसंदीदा प्रबंधित करें</string>
<string name="go_to_favorite">पसंदीदा के जाओ</string>
<string name="favorites_activity_placeholder">आप कहीं से भी आसानी से पहुंच के लिए पसंदीदा में अक्सर इस्तेमाल किए जाने वाले फ़ोल्डर जोड़ सकते हैं।</string>
<!-- File Editor -->
<string name="file_editor">फ़ाइल संपादक</string>
<!-- Storage analysis -->
<string name="storage_analysis">Storage analysis</string>
<string name="images">Images</string>
<string name="videos">Videos</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">Archives</string>
<string name="others">Others</string>
<string name="storage_free">free</string>
<string name="total_storage">Total storage: %s</string>
<!-- Settings -->
<string name="file_editor">फाइल संपादक</string>
<string name="enable_root_access">रूट एक्सेस</string>
<string name="press_back_twice">Require pressing Back twice to leave the app</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
<string name="invert_colors">रंगों को उलटा करें</string>
<string name="storage_analysis">स्टोरेज विश्लेषण</string>
<string name="images">छवियां</string>
<string name="videos">वीडियो</string>
<string name="archives">अभिलेखागार</string>
<string name="others">अन्य</string>
<string name="storage_free">मुक्त</string>
<string name="total_storage">कुल स्टोरेज: %s</string>
<string name="audio">ऑडियो</string>
<string name="documents">दस्तावेजों</string>
<string name="downloads">डाउनलोड्स</string>
<string name="press_back_twice">ऐप छोड़ने के लिए बैक को दो बार दबाने की आवश्यकता है</string>
</resources>
+2 -13
View File
@@ -13,16 +13,13 @@
<string name="recents">Nedavni</string>
<string name="show_recents">Pokaži nedavne</string>
<string name="invert_colors">Invertiraj boje</string>
<!-- Open as -->
<string name="open_as">Otvori kao</string>
<string name="text_file">Tekstualna datoteka</string>
<string name="image_file">Slikovna datoteka</string>
<string name="audio_file">Audio datoteka</string>
<string name="video_file">Video datoteka</string>
<string name="other_file">Ostala datoteka</string>
<!-- Compression -->
<string name="compress">Komprimiraj</string>
<string name="compress_pro">Komprimiraj (Pro)</string>
<string name="decompress">Dekomprimiraj</string>
<string name="compress_as">Komprimiraj kao</string>
<string name="compressing">Komprimiranje…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Dekomprimiranje uspješno</string>
<string name="compressing_failed">Komprimiranje neuspješno</string>
<string name="decompressing_failed">Dekomprimiranje neuspješno</string>
<!-- Favorites -->
<string name="manage_favorites">Upravljaj favoritima</string>
<string name="go_to_favorite">Idi na favorite</string>
<string name="favorites_activity_placeholder">Možeš dodavati često korištene mape u favorite za jednostavan pristup s bilo kojeg mjesta.</string>
<!-- File Editor -->
<string name="file_editor">Uređivač datoteka</string>
<!-- Storage analysis -->
<string name="storage_analysis">Analiza spremišta</string>
<string name="images">Slike</string>
<string name="videos">Video</string>
<string name="audio">Audio</string>
<string name="videos">Videa</string>
<string name="documents">Dokumenti</string>
<string name="downloads">Preuzimanja</string>
<string name="archives">Arhive</string>
<string name="others">Ostali</string>
<string name="storage_free">slobodno</string>
<string name="total_storage">Ukupna memorija: %s</string>
<!-- Settings -->
<string name="enable_root_access">Aktiviraj administratorski pristup</string>
<string name="press_back_twice">Zahtijevaj pritiskanje gumba „Natrag” dvaput za napuštanje aplikacije</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
<string name="audio">Audio</string>
</resources>
+6 -17
View File
@@ -3,26 +3,23 @@
<string name="app_launcher_name">Fájlkezelő</string>
<string name="press_back_again">A kilépéshez nyomja meg újra a vissza gombot</string>
<string name="go_to_home_folder">Ugrás a kezdőmappára</string>
<string name="set_as_home_folder">Beállítás kezdőmappának</string>
<string name="home_folder_updated">Kezdőmappa frissítve</string>
<string name="set_as_home_folder">Beállítás főmappaként</string>
<string name="home_folder_updated">Főmappa frissítve</string>
<string name="copy_path">Útvonal vágólapra másolása</string>
<string name="path_copied">Útvonal másolva</string>
<string name="select_audio_file">Válasszon egy hangfájlt</string>
<string name="select_audio_file">Kérem, válasszon egy hangfájlt</string>
<string name="search_folder">Mappa keresése</string>
<string name="rooted_device_only">Ez a művelet csak root jogosultságot támogató eszközökön működik</string>
<string name="recents">Frissek</string>
<string name="rooted_device_only">Ez a művelet csak root-olt eszközökön működik</string>
<string name="recents">Legutóbbiak</string>
<string name="show_recents">Frissek megjelenítése</string>
<string name="invert_colors">Színek invertálása</string>
<!-- Open as -->
<string name="open_as">Megnyitás másként</string>
<string name="text_file">Szövegfájl</string>
<string name="image_file">Képfájl</string>
<string name="audio_file">Hangfájl</string>
<string name="video_file">Videófájl</string>
<string name="other_file">Egyéb fájl</string>
<!-- Compression -->
<string name="compress">Tömörítés</string>
<string name="compress_pro">Tömörítés (Pro)</string>
<string name="decompress">Kibontás</string>
<string name="compress_as">Tömörítés másként</string>
<string name="compressing">Tömörítés…</string>
@@ -31,28 +28,20 @@
<string name="decompression_successful">Kibontás sikeres</string>
<string name="compressing_failed">Tömörítés sikertelen</string>
<string name="decompressing_failed">Kibontás sikertelen</string>
<!-- Favorites -->
<string name="manage_favorites">Kedvencek kezelése</string>
<string name="go_to_favorite">Ugrás kedvenchez</string>
<string name="favorites_activity_placeholder">A gyakran használt mappákat kedvencnek jelölheti, hogy bárhonnan könnyen elérje őket.</string>
<!-- File Editor -->
<string name="file_editor">Fájlszerkesztő</string>
<!-- Storage analysis -->
<string name="storage_analysis">Tárolóelemzés</string>
<string name="images">Képek</string>
<string name="videos">Videók</string>
<string name="audio">Hangok</string>
<string name="audio">Hang</string>
<string name="documents">Dokumentumok</string>
<string name="downloads">Letöltések</string>
<string name="archives">Archívumok</string>
<string name="others">Egyebek</string>
<string name="storage_free">szabad</string>
<string name="total_storage">Összes tárhely: %s</string>
<!-- Settings -->
<string name="enable_root_access">Root hozzáférés engedélyezése</string>
<string name="press_back_twice">A Vissza gombot kétszer kelljen megnyomni az alkalmazásból történő kilépéshez</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Gestor de files</string>
<string name="go_to_home_folder">Vader al dossier de initio</string>
<string name="set_as_home_folder">Definir como dossier de initio</string>
<string name="recents">Recente</string>
<string name="show_recents">Monstrar le recentes</string>
<string name="open_as">Aperir como</string>
<string name="image_file">File de imagine</string>
<string name="audio_file">File de audio</string>
<string name="video_file">File de video</string>
<string name="other_file">Altere files</string>
<string name="file_editor">Editor de files</string>
<string name="audio">Audio</string>
<string name="images">Imagines</string>
<string name="videos">Videos</string>
<string name="downloads">Discargamentos</string>
<string name="archives">Files</string>
<string name="others">Alteres</string>
<string name="storage_free">libere</string>
<string name="enable_root_access">Activar le accesso root</string>
<string name="home_folder_updated">Dossier de initio actualisate</string>
<string name="copy_path">Copiar le percurso al area de transferentia</string>
<string name="search_folder">Cercar dossier</string>
<string name="invert_colors">Inverter le colores</string>
<string name="text_file">File de texto</string>
<string name="manage_favorites">Gerer le favoritos</string>
<string name="go_to_favorite">Vader al favoritos</string>
<string name="total_storage">Immagazinage total: %s</string>
<string name="path_copied">Percurso copiate</string>
<string name="select_audio_file">Selectionar un file de audio</string>
</resources>
+13 -24
View File
@@ -1,28 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">File Manager</string>
<string name="press_back_again">Tekan sekali lagi untuk keluar</string>
<string name="go_to_home_folder">Buka folder beranda</string>
<string name="set_as_home_folder">Setel sebagai folder beranda</string>
<string name="home_folder_updated">Folder beranda diperbarui</string>
<string name="copy_path">Salin jalur ke papan klip</string>
<string name="path_copied">Jalur disalin</string>
<string name="select_audio_file">Silakan pilih berkas audio</string>
<string name="select_audio_file">Silakan pilih file audio</string>
<string name="search_folder">Cari folder</string>
<string name="rooted_device_only">Tindakan ini hanya bekerja pada perangkat dengan akses root</string>
<string name="recents">Terkini</string>
<string name="show_recents">Tampilkan terkini</string>
<string name="invert_colors">Invers warna</string>
<!-- Open as -->
<string name="open_as">Buka sebagai</string>
<string name="text_file">Berkas teks</string>
<string name="image_file">Berkas gambar</string>
<string name="audio_file">Berkas audio</string>
<string name="video_file">Berkas video</string>
<string name="other_file">Berkas lainnya</string>
<!-- Compression -->
<string name="text_file">File teks</string>
<string name="image_file">File gambar</string>
<string name="audio_file">File audio</string>
<string name="video_file">File video</string>
<string name="other_file">File lainnya</string>
<string name="compress">Kompres</string>
<string name="compress_pro">Kompres (Pro)</string>
<string name="decompress">Dekompres</string>
<string name="compress_as">Kompres sebagai</string>
<string name="compressing">Mengompres…</string>
@@ -31,28 +27,21 @@
<string name="decompression_successful">Berhasil dekompresi</string>
<string name="compressing_failed">Gagal mengompres</string>
<string name="decompressing_failed">Gagal dekompresi</string>
<!-- Favorites -->
<string name="manage_favorites">Kelola favorit</string>
<string name="go_to_favorite">Buka favorit</string>
<string name="favorites_activity_placeholder">Anda bisa menambahkan folder yang sering digunakan ke favorit untuk kemudahan akses dari mana saja.</string>
<!-- File Editor -->
<string name="file_editor">Penyunting Berkas</string>
<!-- Storage analysis -->
<string name="file_editor">Penyunting File</string>
<string name="storage_analysis">Analisis penyimpanan</string>
<string name="images">Gambar</string>
<string name="videos">Video</string>
<string name="audio">Audio</string>
<string name="documents">Documents</string>
<string name="downloads">Downloads</string>
<string name="archives">Arsip</string>
<string name="others">Lainnya</string>
<string name="storage_free">free</string>
<string name="total_storage">Total penyimpanan: %s</string>
<!-- Settings -->
<string name="enable_root_access">Aktifkan akses root</string>
<string name="press_back_twice">Wajib tekan tombol kembali dua kali untuk keluar aplikasi</string>
<!--
Haven't found some strings? There's more at
https://github.com/FossifyOrg/Commons/tree/master/commons/src/main/res
-->
</resources>
<string name="audio">Audio</string>
<string name="documents">Dokumen</string>
<string name="app_launcher_name">Pengelola File</string>
<string name="downloads">Unduhan</string>
<string name="storage_free">bebas</string>
</resources>
Loaded 100 of 205 files, more files were not shown because too many files have changed in this diff. Show more