2805 Commits

Author SHA1 Message Date
LooKeR
f34ca109d8
chore: Upgrade deps and fix merge issues 2025-06-08 17:48:24 +05:30
LooKeR
249df47bef
Merge pull request #998 from Droid-ify/room-entity
Room entity
2025-06-08 17:23:47 +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
LooKeR
4d9c0b7778
Merge pull request #988 from CatotheCat11/show_min_sdk
Show minimum android version for apps
2025-05-31 19:15:06 +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
c943c2a149
Merge remote-tracking branch 'origin/room-entity' into room-entity
# Conflicts:
#	app/src/main/kotlin/com/looker/droidify/data/local/model/AuthenticationEntity.kt
2025-05-29 19:56:42 +05:30
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
5a15b7e602
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-26 10:47:46 +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
LooKeR
a0309ac218
chore: Update deps 2025-05-04 14:06:09 +05:30
Software In Interlingua
f47e98b44a
Translated using Weblate (Interlingua)
Currently translated at 95.9% (215 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/ia/
2025-05-04 07:33:10 +02:00
Cato the Cat
460337eaa6
Show minimum android version for app release item 2025-05-03 23:45:54 +03:00
தமிழ்நேரம்
9716fdc692
Translated using Weblate (Tamil)
Currently translated at 94.1% (211 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/ta/
2025-04-27 23:57:04 +02:00
Retrial
b702f096fb
Translated using Weblate (Greek)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/el/
2025-04-24 17:55:56 +02:00
LooKeR
c9b0f94975
Merge pull request #986 from PeppeMonster/patch-1
Update Kali NetHunter Repository
2025-04-24 07:36:57 +05:30
PeppeMonster
c270ed8c04
Update Kali NetHunter Repository 2025-04-23 23:16:20 +02:00
Nicolás Pérez
dd216d259a
Translated using Weblate (Spanish)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/es/
2025-04-19 05:23:56 +02:00
Koshan Othman
91e366beb8
Translated using Weblate (Kurdish (Central))
Currently translated at 2.2% (5 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/ckb/
2025-04-18 13:47:25 +02:00
Koshan Othman
18a467ffe5
Added translation using Weblate (Kurdish (Central)) 2025-04-18 12:59:21 +02:00
rimasx
787cdb19c1
Translated using Weblate (Estonian)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-04-16 07:56:09 +02:00
rimasx
73bcb0d5d0
Translated using Weblate (Estonian)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-04-15 02:21:50 +02:00
Poesty Li
d9af2a5396
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/zh_Hans/
2025-04-15 02:21:49 +02:00
Jay Tromp
603f2e3aa9
Translated using Weblate (Dutch)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/nl/
2025-04-12 03:01:56 +02:00
Julia 🌸🏳️‍⚧️
3bbe90f0b7
Translated using Weblate (Polish)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/pl/
2025-04-08 00:01:41 +02:00
sjqy9vuxuq0
9e9b13affb
Translated using Weblate (German)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/de/
2025-04-05 18:13:07 +02:00
cat
9dc4238189
Translated using Weblate (Danish)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/da/
2025-04-02 03:19:32 +02:00
elid
480a8317ce
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-03-26 07:29:37 +01:00
elid
64308f78cb
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-03-25 07:24:45 +01:00
rimasx
ef8b5190a4
Translated using Weblate (Estonian)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-03-25 03:03:55 +01:00
rimasx
1bf14c7a2a
Translated using Weblate (Estonian)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-03-23 13:31:21 +01:00
rimasx
9abbb9b3ae
Translated using Weblate (Estonian)
Currently translated at 99.5% (223 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-03-23 11:38:32 +01:00
rimasx
12eb94fc31
Translated using Weblate (Estonian)
Currently translated at 83.0% (186 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-03-23 11:06:32 +01:00
rimasx
842ec9b11b
Translated using Weblate (Estonian)
Currently translated at 38.8% (87 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/et/
2025-03-23 10:04:21 +01:00
rimasx
228b4cb239
Added translation using Weblate (Estonian) 2025-03-23 09:06:20 +01:00
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
48fc3f1451
Translated using Weblate (Latvian)
Currently translated at 95.9% (215 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/lv/
2025-03-22 14:19:49 +01:00
Yurical
56acb6e7e3
Translated using Weblate (Korean)
Currently translated at 100.0% (224 of 224 strings)

Translation: Droid-ify/Localization
Translate-URL: https://hosted.weblate.org/projects/droidify/localization/ko/
2025-03-22 14:19:49 +01:00