821 Commits

Author SHA1 Message Date
LooKeR
9c04d4f2de
Merge pull request #1023 from RokeJulianLockhart/patch-1
Replace the (301) `Iamlooker/Droid-ify` URI with `Droid-ify/client` in `SettingsFragment.kt`.
2025-06-23 22:41:55 +05:30
Mr. Beedell, Roke Julian Lockhart (RJLB)
e22de97b97
Update Repository.kt to remove Umbrella and LibRetro.
Remediates:

1. https://github.com/Droid-ify/client/issues/1005#issuecomment-2996790623

2. https://github.com/Droid-ify/client/issues/1006#issuecomment-2996791174
2025-06-23 15:56:41 +01:00
LooKeR
53df86b72a
fix: Possible crash if given url is wrong 2025-06-23 20:22:56 +05:30
LooKeR
4223cea6d7
feat: Implement repository removal during database upgrades
This commit introduces a mechanism to remove specific repositories from the user's database during an `onUpgrade` event.

Key changes:
- Added a `toRemove` list in `Repository.kt` to specify addresses of repositories to be removed.
- Implemented `SQLiteDatabase.removeRepositories()` in `DatabaseHelper.kt`. This function:
    - Queries the database for existing repositories.
    - Compares them against the `toRemove` list.
    - Marks matching repositories as deleted in the database by setting the `ROW_DELETED` flag to 1.
- The `onUpgrade` method in `DatabaseHelper.kt` now calls `db.removeRepositories()` before adding newly added repositories.
2025-06-23 20:16:40 +05:30
LooKeR
6a00b6bc0c
Merge remote-tracking branch 'origin/main' 2025-06-23 20:12:01 +05:30
LooKeR
d6163a518d
Refactor: Extract database helper logic into separate classes
This commit refactors the database management logic by:

- Introducing a `Table` interface to define common table operations.
- Creating a `DatabaseHelper` class that extends `SQLiteOpenHelper` to encapsulate database creation, upgrades, and table/index management.
- Moving the `Schema` object into `Database` to maintain its accessibility.
- Making the `query` extension function on `SQLiteDatabase` public.

This improves code organization and maintainability by separating concerns related to database structure and helper functionalities.
2025-06-23 19:49:28 +05:30
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
ab2c107281
Translated using Weblate (Latvian)
Currently translated at 97.8% (224 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/lv/
2025-06-19 20:05:44 +02:00
Rex_sa
1468dec818
Translated using Weblate (Arabic)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/ar/
2025-06-19 20:05:42 +02:00
NEXI
d977b9999d
Translated using Weblate (Serbian)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/sr/
2025-06-17 23:04:46 +02:00
OlliesGudh
3be529bbd9
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/pt_BR/
2025-06-17 23:04:45 +02:00
Mr. Beedell, Roke Julian Lockhart (RJLB)
d7cf0f8a77
Replace the 301 GH URI in SettingsFragment.kt 2025-06-16 14:55:01 +01:00
Poesty Li
8a4db58947
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/zh_Hans/
2025-06-15 22:01:55 +02:00
Yago Raña Gayoso
4375189a77
Translated using Weblate (Galician)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/gl/
2025-06-15 22:01:53 +02:00
Yago Raña Gayoso
789634c6b8
Translated using Weblate (Spanish)
Currently translated at 97.8% (224 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/es/
2025-06-15 22:01:50 +02:00
LooKeR
402482e4c1
Merge remote-tracking branch 'origin/main' 2025-06-14 19:40:44 +05:30
samko5sam
1b536c74a0
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/zh_Hant/
2025-06-13 04:01:50 +02:00
diskacz
ed8b31a925
Translated using Weblate (Polish)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/pl/
2025-06-11 09:01:54 +02:00
LooKeR
e87427be58
Merge remote-tracking branch 'origin/main' 2025-06-10 16:22:41 +05:30
Максим Горпиніч
bdb3acc7fe
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/uk/
2025-06-10 08:01:59 +02:00
solokot
11fcc7d6ca
Translated using Weblate (Russian)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/ru/
2025-06-10 08:01:56 +02:00
Stephan Paternotte
3e426643e2
Translated using Weblate (Dutch)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/nl/
2025-06-10 08:01:55 +02:00
elid
44f6878a33
Translated using Weblate (Hebrew)
Currently translated at 98.6% (226 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/he/
2025-06-10 08:01:51 +02:00
Fjuro
c85fa68624
Translated using Weblate (Czech)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/cs/
2025-06-10 08:01:49 +02:00
trunars
eefb1c3db9
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (229 of 229 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/bg/
2025-06-10 08:01:47 +02:00
Hosted Weblate
3aca1e20c1
Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/
2025-06-09 06:50:16 +02:00
LooKeR
26f6fbbe17
fix: Auto verify izzy droid links 2025-06-08 19:49:09 +05:30
LooKeR
de003aeed0
fix: Dont let fdroid break share links 2025-06-08 19:48:45 +05:30
LooKeR
159bcb97e1
perf: perform refresh in ui layer
Improve refresh performance
2025-06-08 18:24:04 +05:30
LooKeR
cc71af1402
fix: Remove redundant page refresh after coming back 2025-06-08 18:03:24 +05:30
LooKeR
d29b85544f
fix: Show sort order on each page 2025-06-08 18:02:29 +05:30
LooKeR
0a54fcf097
fix: skipSignatureStream from AppListViewModel
This allows the AppListFragment to observe changes to the skipSignature setting and update the app list request accordingly.
2025-06-08 17:48:49 +05:30
LooKeR
f34ca109d8
chore: Upgrade deps and fix merge issues 2025-06-08 17:48:24 +05:30
LooKeR
22a1b09d2d
Merge branch 'main' into room-entity 2025-06-08 17:23:36 +05:30
LooKeR
ae2bdaea19
Refactor: Enhance AppDao query capabilities
This commit refactors the `AppDao` to provide more flexible and robust querying options for application data.

Key changes:

- **Renamed `_rawQueryAppEntities` to `_rawStreamAppEntities`**: This clarifies the function's purpose of returning a Flow of entities.
- **Added `_rawQueryAppEntities`**: A new suspend function that directly returns a List of entities, for non-streaming use cases.
- **Introduced `query` function**: A new public suspend function that mirrors the functionality of `stream` but returns a `List<AppEntity>` instead of a `Flow`.
- **Enhanced `searchQuery` private function**:
    - Now accepts lists for `categoriesToInclude`, `categoriesToExclude`, `antiFeaturesToInclude`, and `antiFeaturesToExclude` to allow filtering by multiple criteria.
    - Uses `DISTINCT` in the SQL query to avoid duplicate app entries.
    - Corrected join condition for `category_app_relation` from `app.id = category_app_relation.appId` to `app.id = category_app_relation.id`.
    - Corrected table name for anti-features from `anti_feature_app_relation` to `anti_features_app_relation`.
    - Improved SQL query construction for category and anti-feature filtering using `IN` and `NOT IN` clauses.
    - Ensured `ORDER BY` clause is always present, even if `searchQuery` is null.
    - Prefixed table names in `ORDER BY` clause (e.g., `app.lastUpdated`) for clarity and to avoid ambiguity.
- **Updated `stream` function**: Now utilizes the refactored `searchQuery` function and passes through all new filtering parameters.
- **Updated database schema**:
    - Changed `onDelete` action for the foreign key in the `authentication` table to `CASCADE`.
- **Updated Room tests**:
    - Simplified setup by removing legacy database initialization.
    - Added tests for new sorting and category filtering functionalities in `AppDao`.
2025-06-01 01:47:59 +05:30
Cato the Cat
2036894fa4
Merge branch 'main' into show_min_sdk 2025-05-31 16:39:53 +03:00
Cato the Cat
cfd7b56a92
Show target and minimum SDK on one line 2025-05-31 16:36:50 +03:00
LooKeR
a4e11a02dc
Merge pull request #956 from Porkepix/fix_messanger_typo
Fix typo from messanger to messenger
2025-05-31 18:25:24 +05:30
LooKeR
582d526faf
Merge pull request #995 from ManiaciaChao/feat/custom-legacy-installer
Add support for specifying custom installer (`LegacyInstaller` only)
2025-05-31 18:22:49 +05:30
elid
08c3f50ad1
Translated using Weblate (Hebrew)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/he/
2025-05-30 13:39:11 +02:00
LooKeR
fa2ee28284
Refactor: Use cascade delete for repo auth
This commit simplifies the `RepoDao` by removing the manual deletion of authentication records when a repository is deleted.

Instead, it leverages Room's `onDelete = CASCADE` functionality in the `AuthenticationEntity`'s foreign key definition. This ensures that when a `RepoEntity` is deleted, its associated `AuthenticationEntity` records are automatically removed from the database.

The `deleteRepo` and `deleteAuth` methods in `RepoDao` have been removed as they are no longer necessary. Additionally, `stream()` and `repo()` methods have been added to `RepoDao` for observing repository data.
2025-05-29 19:56:10 +05:30
LooKeR
d1d65a3aeb
fix: Only insert repo and app if not duplicate 2025-05-24 22:17:50 +05:30
maniacata
d9d22809a9 refactor: impl LegacyInstallComponent as sealed class & new option always_choose 2025-05-23 01:54:40 +08:00
maniacata
815aebe28c feat: allow specify custom installer for LegacyInstaller
Useful for customizing installation behavior.
2025-05-22 01:18:51 +08:00
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
2e5a61d136
Translated using Weblate (Latvian)
Currently translated at 98.2% (220 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/lv/
2025-05-18 15:20:36 +02:00
LooKeR
4d80956806
feat: Implement raw query for flexible app filtering and sorting
This commit introduces a raw query mechanism in the `AppDao` to support dynamic filtering and sorting of app data.

- Replaces the static `stream()` query with a raw query approach using `SimpleSQLiteQuery`.
- Adds a new `stream()` function that accepts parameters for `sortOrder`, `searchQuery`, `repoId`, `category`, and `antiFeature`.
- Constructs the SQL query dynamically based on the provided parameters.
- Includes logic for filtering by repository ID, category (including inverse filtering), and anti-feature (including inverse filtering).
- Implements search functionality with weighted sorting based on name, summary, package name, and description.
- Supports sorting by update date, added date, size, and name.
- Adds a new `installedStream()` query to retrieve installed apps, prioritizing those with available updates.
2025-05-12 12:32:59 +05:30
LooKeR
e30bb19b10
feat: Add InstalledEntity and AntiFeatureAppRelation
This commit introduces two new entities to the local database:
- `InstalledEntity`: Stores information about installed applications including version code, version name, signature, and package name.
- `AntiFeatureAppRelation`: Represents the relationship between anti-features and applications, including the tag, reason, application ID, and version code.

It also adds `InstalledEntity` and `AntiFeatureAppRelation` to the list of entities in `DroidifyDatabase` and updates the database schema accordingly.
2025-05-12 12:31:22 +05:30
LooKeR
dc9f7f9cce
feat: Include Size in Sort Order
Uncommented the `SortOrder.SIZE` case in the `context.sortOrderName` extension function for Preferences.
Modified `TabsFragment` to use a new `supportedSortOrders()` function to define the available sort options in the UI, rather than using all `SortOrder` enum entries.
Added the `SIZE` enum constant to `SortOrder.kt`.
Introduced the `supportedSortOrders()` function in `SortOrder.kt` to explicitly list the sort orders supported in the application's UI.
2025-05-12 12:30:34 +05:30
LooKeR
c18278517e
refactor: Update encryption to use correct Key and IV
This commit updates the encryption logic to correctly use the secret key and initialization vector (IV) as separate components, rather than combining them into a single `Key` object.

- The `Key` inline class now only holds the secret key bytes.
- Encryption now returns a `Pair` containing the encrypted data (`Encrypted`) and the generated IV (`ByteArray`).
- Decryption requires both the `Key` and the IV as input.
- The `AuthenticationEntity` is updated to store the encrypted password and its corresponding IV separately.
- The encryption test suite is updated to reflect these changes and includes a test for decryption with an incorrect IV.
2025-05-12 12:23:23 +05:30
Alireza Rashidi
b82c665e62
Translated using Weblate (Persian)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/fa/
2025-05-10 22:01:46 +02:00
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
5cf1d3d31d
Translated using Weblate (Latvian)
Currently translated at 96.8% (217 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/lv/
2025-05-04 11:49:56 +02:00