forked from Droid-ify/Releases
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6cd519d0a6 | |||
| a7fa9fcf80 | |||
|
|
e17ca02b6b | ||
|
|
c410026ad8 | ||
|
|
a05b78c6ef | ||
|
|
f545ffae91 | ||
| bb5c1ec1fe | |||
|
|
987af545be | ||
|
|
297ba87f64 | ||
|
|
97f87eb3c8 | ||
|
|
c9100a927a | ||
|
|
bf52c20cb4 | ||
| 0d6e0bbcae | |||
| 0a60e93e66 | |||
| 480d5a885b | |||
| 67206b176e | |||
| 021af3619e | |||
|
|
d11c751f07 | ||
| f552c0bda1 | |||
| fcccc2126a | |||
| 801fa055f4 | |||
| bb00031a7b | |||
| fd97e6e514 | |||
| 08e351eecc | |||
| a730aa478d | |||
| 49def9086b |
166
.github/workflows/release_build.yml
vendored
166
.github/workflows/release_build.yml
vendored
@@ -1,166 +0,0 @@
|
||||
name: Build Release APK
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
concurrency:
|
||||
group: "release-build"
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Debug Environment
|
||||
run: |
|
||||
echo "Working directory: $(pwd)"
|
||||
echo "Repository: ${{ github.repository }}"
|
||||
echo "Ref: ${{ github.ref }}"
|
||||
echo "Ref name: ${{ github.ref_name }}"
|
||||
ls -la
|
||||
|
||||
- name: Validate Gradle Wrapper
|
||||
uses: gradle/wrapper-validation-action@v1
|
||||
|
||||
- name: Set up Java 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: 'adopt'
|
||||
cache: gradle
|
||||
|
||||
- name: Debug Java and Gradle Setup
|
||||
run: |
|
||||
java -version
|
||||
echo "JAVA_HOME: $JAVA_HOME"
|
||||
|
||||
# Setting up Android SDK manually
|
||||
- name: Setup Android SDK
|
||||
run: |
|
||||
mkdir -p $HOME/Android/sdk
|
||||
echo "sdk.dir=$HOME/Android/sdk" > local.properties
|
||||
echo "ANDROID_HOME=$HOME/Android/sdk" >> $GITHUB_ENV
|
||||
echo "PATH=$PATH:$HOME/Android/sdk/tools:$HOME/Android/sdk/tools/bin:$HOME/Android/sdk/platform-tools" >> $GITHUB_ENV
|
||||
|
||||
# Install cmdline-tools
|
||||
mkdir -p $HOME/Android/sdk/cmdline-tools
|
||||
wget -q https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip -O cmdline-tools.zip
|
||||
unzip -q cmdline-tools.zip -d $HOME/Android/sdk/cmdline-tools
|
||||
mv $HOME/Android/sdk/cmdline-tools/cmdline-tools $HOME/Android/sdk/cmdline-tools/latest
|
||||
|
||||
# Debug cmdline-tools installation
|
||||
ls -la $HOME/Android/sdk/cmdline-tools/latest/bin/
|
||||
|
||||
# Accept licenses and install necessary components
|
||||
echo "y" | $HOME/Android/sdk/cmdline-tools/latest/bin/sdkmanager --licenses || echo "License acceptance failed but continuing"
|
||||
$HOME/Android/sdk/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.0"
|
||||
|
||||
# Verify installation
|
||||
echo "Android SDK components installed:"
|
||||
$HOME/Android/sdk/cmdline-tools/latest/bin/sdkmanager --list_installed
|
||||
|
||||
- name: Grant execution permission to Gradle Wrapper
|
||||
run: chmod +x gradlew
|
||||
|
||||
- name: Debug Gradle setup
|
||||
run: |
|
||||
./gradlew --version
|
||||
cat local.properties
|
||||
|
||||
- name: Build Release APK
|
||||
run: |
|
||||
./gradlew assembleRelease --stacktrace
|
||||
|
||||
- name: Find APK files
|
||||
run: |
|
||||
echo "Looking for APK files:"
|
||||
find . -type f -name "*.apk"
|
||||
|
||||
- name: Sign APK manually
|
||||
run: |
|
||||
# Find APK file
|
||||
APK_FILES=$(find app/build/outputs/apk/release/ -name "*.apk" | sort)
|
||||
if [ -z "$APK_FILES" ]; then
|
||||
echo "No APK files found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Found APK files:"
|
||||
echo "$APK_FILES"
|
||||
|
||||
# Use the first APK file found
|
||||
APK_FILE=$(echo "$APK_FILES" | head -1)
|
||||
echo "Using APK file: $APK_FILE"
|
||||
|
||||
# Create keystore from base64
|
||||
echo "Creating keystore..."
|
||||
echo "${{ secrets.KEY_BASE64 }}" | base64 -d > keystore.jks
|
||||
|
||||
# Sign APK
|
||||
echo "Signing APK..."
|
||||
SIGNED_FILE="${APK_FILE%.apk}-signed.apk"
|
||||
|
||||
# Find apksigner in build-tools
|
||||
APKSIGNER_PATH=$(find $HOME/Android/sdk/build-tools -name "apksigner" | head -1)
|
||||
echo "Using apksigner at: $APKSIGNER_PATH"
|
||||
|
||||
$APKSIGNER_PATH sign --ks keystore.jks \
|
||||
--ks-key-alias "${{ secrets.KEY_ALIAS }}" \
|
||||
--ks-pass pass:"${{ secrets.KEYSTORE_PASS }}" \
|
||||
--key-pass pass:"${{ secrets.KEYSTORE_PASS }}" \
|
||||
--out "$SIGNED_FILE" \
|
||||
"$APK_FILE"
|
||||
|
||||
echo "SIGNED_RELEASE_FILE=$SIGNED_FILE" >> $GITHUB_ENV
|
||||
|
||||
# Verify signed APK
|
||||
ls -la "$SIGNED_FILE" || echo "Failed to find signed APK"
|
||||
|
||||
- name: Extract Version Code
|
||||
run: |
|
||||
VERSION_CODE=$(grep -oP '(?<=versionCode)\s*=?\s*\K\d+' app/build.gradle || grep -oP '(?<=versionCode)\s*=?\s*\K\d+' app/build.gradle.kts || echo "unknown")
|
||||
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV
|
||||
echo "Version Code: $VERSION_CODE"
|
||||
|
||||
- name: Read Changelog
|
||||
run: |
|
||||
CHANGELOG_PATH="metadata/en-US/changelogs/$VERSION_CODE.txt"
|
||||
echo "Looking for changelog at: $CHANGELOG_PATH"
|
||||
|
||||
if [[ -f "$CHANGELOG_PATH" ]]; then
|
||||
echo "Changelog found:"
|
||||
cat "$CHANGELOG_PATH"
|
||||
echo ""
|
||||
|
||||
# Set environment variable for the changelog
|
||||
echo "CHANGELOG<<EOF" >> $GITHUB_ENV
|
||||
cat "$CHANGELOG_PATH" >> $GITHUB_ENV
|
||||
echo "EOF" >> $GITHUB_ENV
|
||||
else
|
||||
echo "No changelog found at: $CHANGELOG_PATH"
|
||||
echo "CHANGELOG=Release version $VERSION_CODE" >> $GITHUB_ENV
|
||||
|
||||
# Try to find any changelog files
|
||||
echo "Looking for any changelog files:"
|
||||
find metadata -type f -name "*.txt" || echo "No changelog files found"
|
||||
fi
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Signed-APK-${{ env.VERSION_CODE }}
|
||||
path: ${{ env.SIGNED_RELEASE_FILE }}
|
||||
|
||||
- name: Debug Final Output
|
||||
run: |
|
||||
echo "Signed APK path: ${{ env.SIGNED_RELEASE_FILE }}"
|
||||
echo "Version code: ${{ env.VERSION_CODE }}"
|
||||
echo "Changelog summary: $(echo "${{ env.CHANGELOG }}" | head -1)"
|
||||
26
README.md
26
README.md
@@ -1,14 +1,6 @@
|
||||
<div align="center">
|
||||
## Download
|
||||
|
||||
<img width="" src="metadata/en-US/images/featureGraphic.png" alt="FeloStore" align="center">
|
||||
|
||||
[](https://github.com/Felitendo/FeloStore/stargazers)
|
||||
[](https://github.com/Felitendo/FeloStore/blob/master/COPYING)
|
||||
[](https://github.com/Felitendo/FeloStore/releases/)
|
||||
[](https://github.com/Felitendo/FeloStore/releases/latest)
|
||||
[](https://f-droid.org/packages/com.felitendo.felostore)
|
||||
</div>
|
||||
<div align="left">
|
||||
- Click [here](https://git.felo.gg/FeloStore/FeloStore/releases/download/v0.0.3/felostore.apk) to download the latest version
|
||||
|
||||
## Features
|
||||
|
||||
@@ -17,10 +9,6 @@
|
||||
* Smooth user experience
|
||||
* Feature-rich
|
||||
|
||||
## Screenshots
|
||||
|
||||
<img src="metadata/en-US/images/phoneScreenshots/1.png" width="25%" /><img src="metadata/en-US/images/phoneScreenshots/2.png" width="25%" /><img src="metadata/en-US/images/phoneScreenshots/3.png" width="25%" /><img src="metadata/en-US/images/phoneScreenshots/4.png" width="25%" />
|
||||
|
||||
## Building and Installing
|
||||
|
||||
1. **Install Android Studio**:
|
||||
@@ -36,12 +24,6 @@
|
||||
- Select "Create New Keystore" and enter the required information, including a password.
|
||||
- Wait for the build process to finish.
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] Add support for `index-v2`
|
||||
- [ ] Add detekt code-analysis
|
||||
- [ ] Add GitHub Repo feature
|
||||
|
||||
## Contribution
|
||||
|
||||
- Pick any issue you would like to resolve
|
||||
@@ -49,10 +31,6 @@
|
||||
- Open a Pull Request
|
||||
- Your PR will undergo review
|
||||
|
||||
## Translations
|
||||
|
||||
[](https://hosted.weblate.org/engage/felostore/?utm_source=widget)
|
||||
|
||||
## License
|
||||
|
||||
```
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
1. Delete everything in the "FeloStore/Releases" Repo
|
||||
2. Put new version of FeloStore from the GitHub's "Release"-Tab in the "FeloStore/Releases" Repo
|
||||
1. Delete everything in the "Droid-ify/Releases" Repo
|
||||
2. Put new version of Droid-ify from the GitHub's "Release"-Tab in the "Droid-ify/Releases" Repo
|
||||
3. Commit the changes and push it
|
||||
|
||||
|
||||
3. Run these commands in the FeloStore/FeloStore Repo:
|
||||
4. Run these commands in the "FeloStore/FeloStore" Repo:
|
||||
- git fetch upstream
|
||||
- git checkout main
|
||||
- git merge upstream/main
|
||||
@@ -12,14 +12,14 @@ plugins {
|
||||
}
|
||||
|
||||
android {
|
||||
val latestVersionName = "0.0.1"
|
||||
namespace = "com.felitendo.felostore"
|
||||
val latestVersionName = "0.0.3"
|
||||
namespace = "de.felitendo.felostore"
|
||||
buildToolsVersion = "35.0.0"
|
||||
compileSdk = 35
|
||||
defaultConfig {
|
||||
minSdk = 23
|
||||
targetSdk = 35
|
||||
applicationId = "com.felitendo.felostore"
|
||||
applicationId = "de.felitendo.felostore"
|
||||
versionCode = 650
|
||||
versionName = latestVersionName
|
||||
vectorDrawables.useSupportLibrary = false
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,10 +1,10 @@
|
||||
package com.felitendo.felostore.index
|
||||
package de.felitendo.felostore.index
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.filters.SmallTest
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import com.felitendo.felostore.model.Repository
|
||||
import de.felitendo.felostore.model.Repository
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import com.felitendo.felostore.network.NetworkResponse
|
||||
import com.felitendo.felostore.network.ProgressListener
|
||||
import com.felitendo.felostore.network.header.HeadersBuilder
|
||||
import com.felitendo.felostore.network.validation.FileValidator
|
||||
import com.felitendo.felostore.sync.common.assets
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.network.NetworkResponse
|
||||
import de.felitendo.felostore.network.ProgressListener
|
||||
import de.felitendo.felostore.network.header.HeadersBuilder
|
||||
import de.felitendo.felostore.network.validation.FileValidator
|
||||
import de.felitendo.felostore.sync.common.assets
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.ensureActive
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import com.felitendo.felostore.sync.common.IndexJarValidator
|
||||
import com.felitendo.felostore.sync.common.Izzy
|
||||
import com.felitendo.felostore.sync.common.JsonParser
|
||||
import com.felitendo.felostore.sync.common.assets
|
||||
import com.felitendo.felostore.sync.common.downloadIndex
|
||||
import com.felitendo.felostore.sync.common.benchmark
|
||||
import com.felitendo.felostore.sync.v2.EntryParser
|
||||
import com.felitendo.felostore.sync.v2.EntrySyncable
|
||||
import com.felitendo.felostore.sync.v2.model.Entry
|
||||
import com.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.sync.common.IndexJarValidator
|
||||
import de.felitendo.felostore.sync.common.Izzy
|
||||
import de.felitendo.felostore.sync.common.JsonParser
|
||||
import de.felitendo.felostore.sync.common.assets
|
||||
import de.felitendo.felostore.sync.common.downloadIndex
|
||||
import de.felitendo.felostore.sync.common.benchmark
|
||||
import de.felitendo.felostore.sync.v2.EntryParser
|
||||
import de.felitendo.felostore.sync.v2.EntrySyncable
|
||||
import de.felitendo.felostore.sync.v2.model.Entry
|
||||
import de.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
import kotlinx.coroutines.test.runTest
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import java.util.jar.JarEntry
|
||||
|
||||
val FakeIndexValidator = object : IndexValidator {
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import com.felitendo.felostore.sync.common.IndexJarValidator
|
||||
import com.felitendo.felostore.sync.common.Izzy
|
||||
import com.felitendo.felostore.sync.common.JsonParser
|
||||
import com.felitendo.felostore.sync.common.downloadIndex
|
||||
import com.felitendo.felostore.sync.common.benchmark
|
||||
import com.felitendo.felostore.sync.common.toV2
|
||||
import com.felitendo.felostore.sync.v1.V1Parser
|
||||
import com.felitendo.felostore.sync.v1.V1Syncable
|
||||
import com.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import com.felitendo.felostore.sync.v2.V2Parser
|
||||
import com.felitendo.felostore.sync.v2.model.FileV2
|
||||
import com.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import com.felitendo.felostore.sync.v2.model.MetadataV2
|
||||
import com.felitendo.felostore.sync.v2.model.VersionV2
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.sync.common.IndexJarValidator
|
||||
import de.felitendo.felostore.sync.common.Izzy
|
||||
import de.felitendo.felostore.sync.common.JsonParser
|
||||
import de.felitendo.felostore.sync.common.downloadIndex
|
||||
import de.felitendo.felostore.sync.common.benchmark
|
||||
import de.felitendo.felostore.sync.common.toV2
|
||||
import de.felitendo.felostore.sync.v1.V1Parser
|
||||
import de.felitendo.felostore.sync.v1.V1Syncable
|
||||
import de.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import de.felitendo.felostore.sync.v2.V2Parser
|
||||
import de.felitendo.felostore.sync.v2.model.FileV2
|
||||
import de.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import de.felitendo.felostore.sync.v2.model.MetadataV2
|
||||
import de.felitendo.felostore.sync.v2.model.VersionV2
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
import kotlinx.coroutines.test.runTest
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import kotlin.math.pow
|
||||
import kotlin.math.sqrt
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import com.felitendo.felostore.domain.model.Authentication
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import com.felitendo.felostore.domain.model.VersionInfo
|
||||
import de.felitendo.felostore.domain.model.Authentication
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.domain.model.VersionInfo
|
||||
|
||||
val Izzy = Repo(
|
||||
id = 1L,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import java.io.InputStream
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore
|
||||
package de.felitendo.felostore
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
@@ -21,30 +21,30 @@ import coil3.disk.DiskCache
|
||||
import coil3.disk.directory
|
||||
import coil3.memory.MemoryCache
|
||||
import coil3.request.crossfade
|
||||
import com.felitendo.felostore.content.ProductPreferences
|
||||
import com.felitendo.felostore.database.Database
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.datastore.get
|
||||
import com.felitendo.felostore.datastore.model.AutoSync
|
||||
import com.felitendo.felostore.datastore.model.ProxyPreference
|
||||
import com.felitendo.felostore.datastore.model.ProxyType
|
||||
import com.felitendo.felostore.index.RepositoryUpdater
|
||||
import com.felitendo.felostore.installer.InstallManager
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import com.felitendo.felostore.receivers.InstalledAppReceiver
|
||||
import com.felitendo.felostore.service.Connection
|
||||
import com.felitendo.felostore.service.SyncService
|
||||
import com.felitendo.felostore.sync.SyncPreference
|
||||
import com.felitendo.felostore.sync.toJobNetworkType
|
||||
import com.felitendo.felostore.utility.common.Constants
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.utility.common.extension.getDrawableCompat
|
||||
import com.felitendo.felostore.utility.common.extension.getInstalledPackagesCompat
|
||||
import com.felitendo.felostore.utility.common.extension.jobScheduler
|
||||
import com.felitendo.felostore.utility.common.log
|
||||
import com.felitendo.felostore.utility.extension.toInstalledItem
|
||||
import com.felitendo.felostore.work.CleanUpWorker
|
||||
import de.felitendo.felostore.content.ProductPreferences
|
||||
import de.felitendo.felostore.database.Database
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.datastore.get
|
||||
import de.felitendo.felostore.datastore.model.AutoSync
|
||||
import de.felitendo.felostore.datastore.model.ProxyPreference
|
||||
import de.felitendo.felostore.datastore.model.ProxyType
|
||||
import de.felitendo.felostore.index.RepositoryUpdater
|
||||
import de.felitendo.felostore.installer.InstallManager
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.receivers.InstalledAppReceiver
|
||||
import de.felitendo.felostore.service.Connection
|
||||
import de.felitendo.felostore.service.SyncService
|
||||
import de.felitendo.felostore.sync.SyncPreference
|
||||
import de.felitendo.felostore.sync.toJobNetworkType
|
||||
import de.felitendo.felostore.utility.common.Constants
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.utility.common.extension.getDrawableCompat
|
||||
import de.felitendo.felostore.utility.common.extension.getInstalledPackagesCompat
|
||||
import de.felitendo.felostore.utility.common.extension.jobScheduler
|
||||
import de.felitendo.felostore.utility.common.log
|
||||
import de.felitendo.felostore.utility.extension.toInstalledItem
|
||||
import de.felitendo.felostore.work.CleanUpWorker
|
||||
import dagger.hilt.android.HiltAndroidApp
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore
|
||||
package de.felitendo.felostore
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
@@ -14,26 +14,26 @@ import androidx.core.view.WindowCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.felitendo.felostore.utility.common.DeeplinkType
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.deeplinkType
|
||||
import com.felitendo.felostore.utility.common.extension.homeAsUp
|
||||
import com.felitendo.felostore.utility.common.extension.inputManager
|
||||
import com.felitendo.felostore.utility.common.getInstallPackageName
|
||||
import com.felitendo.felostore.utility.common.requestNotificationPermission
|
||||
import com.felitendo.felostore.database.CursorOwner
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.datastore.extension.getThemeRes
|
||||
import com.felitendo.felostore.datastore.get
|
||||
import com.felitendo.felostore.installer.InstallManager
|
||||
import com.felitendo.felostore.installer.model.installFrom
|
||||
import com.felitendo.felostore.ui.appDetail.AppDetailFragment
|
||||
import com.felitendo.felostore.ui.favourites.FavouritesFragment
|
||||
import com.felitendo.felostore.ui.repository.EditRepositoryFragment
|
||||
import com.felitendo.felostore.ui.repository.RepositoriesFragment
|
||||
import com.felitendo.felostore.ui.repository.RepositoryFragment
|
||||
import com.felitendo.felostore.ui.settings.SettingsFragment
|
||||
import com.felitendo.felostore.ui.tabsFragment.TabsFragment
|
||||
import de.felitendo.felostore.utility.common.DeeplinkType
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.deeplinkType
|
||||
import de.felitendo.felostore.utility.common.extension.homeAsUp
|
||||
import de.felitendo.felostore.utility.common.extension.inputManager
|
||||
import de.felitendo.felostore.utility.common.getInstallPackageName
|
||||
import de.felitendo.felostore.utility.common.requestNotificationPermission
|
||||
import de.felitendo.felostore.database.CursorOwner
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.datastore.extension.getThemeRes
|
||||
import de.felitendo.felostore.datastore.get
|
||||
import de.felitendo.felostore.installer.InstallManager
|
||||
import de.felitendo.felostore.installer.model.installFrom
|
||||
import de.felitendo.felostore.ui.appDetail.AppDetailFragment
|
||||
import de.felitendo.felostore.ui.favourites.FavouritesFragment
|
||||
import de.felitendo.felostore.ui.repository.EditRepositoryFragment
|
||||
import de.felitendo.felostore.ui.repository.RepositoriesFragment
|
||||
import de.felitendo.felostore.ui.repository.RepositoryFragment
|
||||
import de.felitendo.felostore.ui.settings.SettingsFragment
|
||||
import de.felitendo.felostore.ui.tabsFragment.TabsFragment
|
||||
import dagger.hilt.EntryPoint
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package com.felitendo.felostore.content
|
||||
package de.felitendo.felostore.content
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import com.felitendo.felostore.utility.common.extension.Json
|
||||
import com.felitendo.felostore.utility.common.extension.parseDictionary
|
||||
import com.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import com.felitendo.felostore.model.ProductPreference
|
||||
import com.felitendo.felostore.database.Database
|
||||
import com.felitendo.felostore.utility.serialization.productPreference
|
||||
import com.felitendo.felostore.utility.serialization.serialize
|
||||
import de.felitendo.felostore.utility.common.extension.Json
|
||||
import de.felitendo.felostore.utility.common.extension.parseDictionary
|
||||
import de.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import de.felitendo.felostore.model.ProductPreference
|
||||
import de.felitendo.felostore.database.Database
|
||||
import de.felitendo.felostore.utility.serialization.productPreference
|
||||
import de.felitendo.felostore.utility.serialization.serialize
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.nio.charset.Charset
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.felitendo.felostore.database
|
||||
package de.felitendo.felostore.database
|
||||
|
||||
import android.database.Cursor
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.loader.app.LoaderManager
|
||||
import androidx.loader.content.Loader
|
||||
import com.felitendo.felostore.datastore.model.SortOrder
|
||||
import com.felitendo.felostore.model.ProductItem
|
||||
import de.felitendo.felostore.datastore.model.SortOrder
|
||||
import de.felitendo.felostore.model.ProductItem
|
||||
|
||||
class CursorOwner : Fragment(), LoaderManager.LoaderCallbacks<Cursor> {
|
||||
sealed class Request {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.database
|
||||
package de.felitendo.felostore.database
|
||||
|
||||
import android.content.ContentValues
|
||||
import android.content.Context
|
||||
@@ -9,22 +9,22 @@ import android.os.CancellationSignal
|
||||
import androidx.core.database.sqlite.transaction
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.felitendo.felostore.BuildConfig
|
||||
import com.felitendo.felostore.datastore.model.SortOrder
|
||||
import com.felitendo.felostore.model.InstalledItem
|
||||
import com.felitendo.felostore.model.Product
|
||||
import com.felitendo.felostore.model.ProductItem
|
||||
import com.felitendo.felostore.model.Repository
|
||||
import com.felitendo.felostore.utility.common.extension.Json
|
||||
import com.felitendo.felostore.utility.common.extension.asSequence
|
||||
import com.felitendo.felostore.utility.common.extension.firstOrNull
|
||||
import com.felitendo.felostore.utility.common.extension.parseDictionary
|
||||
import com.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import com.felitendo.felostore.utility.common.log
|
||||
import com.felitendo.felostore.utility.serialization.product
|
||||
import com.felitendo.felostore.utility.serialization.productItem
|
||||
import com.felitendo.felostore.utility.serialization.repository
|
||||
import com.felitendo.felostore.utility.serialization.serialize
|
||||
import de.felitendo.felostore.BuildConfig
|
||||
import de.felitendo.felostore.datastore.model.SortOrder
|
||||
import de.felitendo.felostore.model.InstalledItem
|
||||
import de.felitendo.felostore.model.Product
|
||||
import de.felitendo.felostore.model.ProductItem
|
||||
import de.felitendo.felostore.model.Repository
|
||||
import de.felitendo.felostore.utility.common.extension.Json
|
||||
import de.felitendo.felostore.utility.common.extension.asSequence
|
||||
import de.felitendo.felostore.utility.common.extension.firstOrNull
|
||||
import de.felitendo.felostore.utility.common.extension.parseDictionary
|
||||
import de.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import de.felitendo.felostore.utility.common.log
|
||||
import de.felitendo.felostore.utility.serialization.product
|
||||
import de.felitendo.felostore.utility.serialization.productItem
|
||||
import de.felitendo.felostore.utility.serialization.repository
|
||||
import de.felitendo.felostore.utility.serialization.serialize
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.channels.awaitClose
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.database
|
||||
package de.felitendo.felostore.database
|
||||
|
||||
import android.database.ContentObservable
|
||||
import android.database.ContentObserver
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.felitendo.felostore.database
|
||||
package de.felitendo.felostore.database
|
||||
|
||||
import android.database.Cursor
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import android.os.CancellationSignal
|
||||
import com.felitendo.felostore.BuildConfig
|
||||
import com.felitendo.felostore.utility.common.extension.asSequence
|
||||
import com.felitendo.felostore.utility.common.log
|
||||
import de.felitendo.felostore.BuildConfig
|
||||
import de.felitendo.felostore.utility.common.extension.asSequence
|
||||
import de.felitendo.felostore.utility.common.log
|
||||
|
||||
class QueryBuilder {
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.database
|
||||
package de.felitendo.felostore.database
|
||||
|
||||
import android.content.Context
|
||||
import android.database.Cursor
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package com.felitendo.felostore.database
|
||||
package de.felitendo.felostore.database
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.felitendo.felostore.utility.common.Exporter
|
||||
import com.felitendo.felostore.utility.common.extension.Json
|
||||
import com.felitendo.felostore.utility.common.extension.forEach
|
||||
import com.felitendo.felostore.utility.common.extension.forEachKey
|
||||
import com.felitendo.felostore.utility.common.extension.parseDictionary
|
||||
import com.felitendo.felostore.utility.common.extension.writeArray
|
||||
import com.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import com.felitendo.felostore.di.ApplicationScope
|
||||
import com.felitendo.felostore.di.IoDispatcher
|
||||
import com.felitendo.felostore.model.Repository
|
||||
import com.felitendo.felostore.utility.serialization.repository
|
||||
import com.felitendo.felostore.utility.serialization.serialize
|
||||
import de.felitendo.felostore.utility.common.Exporter
|
||||
import de.felitendo.felostore.utility.common.extension.Json
|
||||
import de.felitendo.felostore.utility.common.extension.forEach
|
||||
import de.felitendo.felostore.utility.common.extension.forEachKey
|
||||
import de.felitendo.felostore.utility.common.extension.parseDictionary
|
||||
import de.felitendo.felostore.utility.common.extension.writeArray
|
||||
import de.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import de.felitendo.felostore.di.ApplicationScope
|
||||
import de.felitendo.felostore.di.IoDispatcher
|
||||
import de.felitendo.felostore.model.Repository
|
||||
import de.felitendo.felostore.utility.serialization.repository
|
||||
import de.felitendo.felostore.utility.serialization.serialize
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.datastore
|
||||
package de.felitendo.felostore.datastore
|
||||
|
||||
import android.net.Uri
|
||||
import android.util.Log
|
||||
@@ -12,14 +12,14 @@ import androidx.datastore.preferences.core.intPreferencesKey
|
||||
import androidx.datastore.preferences.core.longPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringSetPreferencesKey
|
||||
import com.felitendo.felostore.datastore.model.AutoSync
|
||||
import com.felitendo.felostore.datastore.model.InstallerType
|
||||
import com.felitendo.felostore.datastore.model.ProxyPreference
|
||||
import com.felitendo.felostore.datastore.model.ProxyType
|
||||
import com.felitendo.felostore.datastore.model.SortOrder
|
||||
import com.felitendo.felostore.datastore.model.Theme
|
||||
import com.felitendo.felostore.utility.common.Exporter
|
||||
import com.felitendo.felostore.utility.common.extension.updateAsMutable
|
||||
import de.felitendo.felostore.datastore.model.AutoSync
|
||||
import de.felitendo.felostore.datastore.model.InstallerType
|
||||
import de.felitendo.felostore.datastore.model.ProxyPreference
|
||||
import de.felitendo.felostore.datastore.model.ProxyType
|
||||
import de.felitendo.felostore.datastore.model.SortOrder
|
||||
import de.felitendo.felostore.datastore.model.Theme
|
||||
import de.felitendo.felostore.utility.common.Exporter
|
||||
import de.felitendo.felostore.utility.common.extension.updateAsMutable
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.catch
|
||||
import kotlinx.coroutines.flow.first
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.felitendo.felostore.datastore
|
||||
package de.felitendo.felostore.datastore
|
||||
|
||||
import androidx.datastore.core.Serializer
|
||||
import com.felitendo.felostore.datastore.model.AutoSync
|
||||
import com.felitendo.felostore.datastore.model.InstallerType
|
||||
import com.felitendo.felostore.datastore.model.ProxyPreference
|
||||
import com.felitendo.felostore.datastore.model.SortOrder
|
||||
import com.felitendo.felostore.datastore.model.Theme
|
||||
import de.felitendo.felostore.datastore.model.AutoSync
|
||||
import de.felitendo.felostore.datastore.model.InstallerType
|
||||
import de.felitendo.felostore.datastore.model.ProxyPreference
|
||||
import de.felitendo.felostore.datastore.model.SortOrder
|
||||
import de.felitendo.felostore.datastore.model.Theme
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
import java.io.OutputStream
|
||||
@@ -25,13 +25,13 @@ data class Settings(
|
||||
val incompatibleVersions: Boolean = false,
|
||||
val notifyUpdate: Boolean = true,
|
||||
val unstableUpdate: Boolean = false,
|
||||
val ignoreSignature: Boolean = false,
|
||||
val ignoreSignature: Boolean = true,
|
||||
val theme: Theme = Theme.SYSTEM,
|
||||
val dynamicTheme: Boolean = true,
|
||||
val installerType: InstallerType = InstallerType.Default,
|
||||
val autoUpdate: Boolean = true,
|
||||
val autoSync: AutoSync = AutoSync.WIFI_ONLY,
|
||||
val sortOrder: SortOrder = SortOrder.NAME,
|
||||
val sortOrder: SortOrder = SortOrder.UPDATED,
|
||||
val proxy: ProxyPreference = ProxyPreference(),
|
||||
val cleanUpInterval: Duration = 12.hours,
|
||||
val lastCleanup: Instant? = null,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.felitendo.felostore.datastore
|
||||
package de.felitendo.felostore.datastore
|
||||
|
||||
import android.net.Uri
|
||||
import com.felitendo.felostore.datastore.model.AutoSync
|
||||
import com.felitendo.felostore.datastore.model.InstallerType
|
||||
import com.felitendo.felostore.datastore.model.ProxyType
|
||||
import com.felitendo.felostore.datastore.model.SortOrder
|
||||
import com.felitendo.felostore.datastore.model.Theme
|
||||
import de.felitendo.felostore.datastore.model.AutoSync
|
||||
import de.felitendo.felostore.datastore.model.InstallerType
|
||||
import de.felitendo.felostore.datastore.model.ProxyType
|
||||
import de.felitendo.felostore.datastore.model.SortOrder
|
||||
import de.felitendo.felostore.datastore.model.Theme
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.felitendo.felostore.datastore.exporter
|
||||
package de.felitendo.felostore.datastore.exporter
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import com.felitendo.felostore.utility.common.Exporter
|
||||
import com.felitendo.felostore.datastore.Settings
|
||||
import de.felitendo.felostore.utility.common.Exporter
|
||||
import de.felitendo.felostore.datastore.Settings
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.cancel
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.felitendo.felostore.datastore.extension
|
||||
package de.felitendo.felostore.datastore.extension
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import com.felitendo.felostore.R
|
||||
import com.felitendo.felostore.R.string as stringRes
|
||||
import com.felitendo.felostore.R.style as styleRes
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.datastore.model.AutoSync
|
||||
import com.felitendo.felostore.datastore.model.InstallerType
|
||||
import com.felitendo.felostore.datastore.model.ProxyType
|
||||
import com.felitendo.felostore.datastore.model.SortOrder
|
||||
import com.felitendo.felostore.datastore.model.Theme
|
||||
import de.felitendo.felostore.R
|
||||
import de.felitendo.felostore.R.string as stringRes
|
||||
import de.felitendo.felostore.R.style as styleRes
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.datastore.model.AutoSync
|
||||
import de.felitendo.felostore.datastore.model.InstallerType
|
||||
import de.felitendo.felostore.datastore.model.ProxyType
|
||||
import de.felitendo.felostore.datastore.model.SortOrder
|
||||
import de.felitendo.felostore.datastore.model.Theme
|
||||
import kotlin.time.Duration
|
||||
|
||||
fun Configuration.getThemeRes(theme: Theme, dynamicTheme: Boolean) = when (theme) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.datastore.migration
|
||||
package de.felitendo.felostore.datastore.migration
|
||||
|
||||
import com.felitendo.felostore.datastore.PreferenceSettingsRepository.PreferencesKeys.setting
|
||||
import com.felitendo.felostore.datastore.Settings
|
||||
import de.felitendo.felostore.datastore.PreferenceSettingsRepository.PreferencesKeys.setting
|
||||
import de.felitendo.felostore.datastore.Settings
|
||||
import kotlinx.coroutines.flow.first
|
||||
|
||||
class ProtoToPreferenceMigration(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.datastore.model
|
||||
package de.felitendo.felostore.datastore.model
|
||||
|
||||
enum class AutoSync {
|
||||
ALWAYS,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.felitendo.felostore.datastore.model
|
||||
package de.felitendo.felostore.datastore.model
|
||||
|
||||
import com.felitendo.felostore.utility.common.device.Miui
|
||||
import de.felitendo.felostore.utility.common.device.Miui
|
||||
|
||||
enum class InstallerType {
|
||||
LEGACY,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.datastore.model
|
||||
package de.felitendo.felostore.datastore.model
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.datastore.model
|
||||
package de.felitendo.felostore.datastore.model
|
||||
|
||||
enum class ProxyType {
|
||||
DIRECT,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.datastore.model
|
||||
package de.felitendo.felostore.datastore.model
|
||||
|
||||
// todo: Add Support for sorting by size
|
||||
enum class SortOrder {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.datastore.model
|
||||
package de.felitendo.felostore.datastore.model
|
||||
|
||||
enum class Theme {
|
||||
SYSTEM,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.di
|
||||
package de.felitendo.felostore.di
|
||||
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.di
|
||||
package de.felitendo.felostore.di
|
||||
|
||||
import android.content.Context
|
||||
import androidx.datastore.core.DataStore
|
||||
@@ -7,13 +7,13 @@ import androidx.datastore.dataStoreFile
|
||||
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.preferencesDataStoreFile
|
||||
import com.felitendo.felostore.utility.common.Exporter
|
||||
import com.felitendo.felostore.datastore.PreferenceSettingsRepository
|
||||
import com.felitendo.felostore.datastore.Settings
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.datastore.SettingsSerializer
|
||||
import com.felitendo.felostore.datastore.exporter.SettingsExporter
|
||||
import com.felitendo.felostore.datastore.migration.ProtoToPreferenceMigration
|
||||
import de.felitendo.felostore.utility.common.Exporter
|
||||
import de.felitendo.felostore.datastore.PreferenceSettingsRepository
|
||||
import de.felitendo.felostore.datastore.Settings
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.datastore.SettingsSerializer
|
||||
import de.felitendo.felostore.datastore.exporter.SettingsExporter
|
||||
import de.felitendo.felostore.datastore.migration.ProtoToPreferenceMigration
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.felitendo.felostore.di
|
||||
package de.felitendo.felostore.di
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.installer.InstallManager
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.installer.InstallManager
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.di
|
||||
package de.felitendo.felostore.di
|
||||
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import com.felitendo.felostore.network.KtorDownloader
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.network.KtorDownloader
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.felitendo.felostore.domain
|
||||
package de.felitendo.felostore.domain
|
||||
|
||||
import com.felitendo.felostore.domain.model.App
|
||||
import com.felitendo.felostore.domain.model.AppMinimal
|
||||
import com.felitendo.felostore.domain.model.Author
|
||||
import com.felitendo.felostore.domain.model.Package
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.domain.model.App
|
||||
import de.felitendo.felostore.domain.model.AppMinimal
|
||||
import de.felitendo.felostore.domain.model.Author
|
||||
import de.felitendo.felostore.domain.model.Package
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface AppRepository {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.felitendo.felostore.domain
|
||||
package de.felitendo.felostore.domain
|
||||
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface RepoRepository {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.domain.model
|
||||
package de.felitendo.felostore.domain.model
|
||||
|
||||
data class App(
|
||||
val repoId: Long,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.domain.model
|
||||
package de.felitendo.felostore.domain.model
|
||||
|
||||
interface DataFile {
|
||||
val name: String
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.domain.model
|
||||
package de.felitendo.felostore.domain.model
|
||||
|
||||
import java.security.MessageDigest
|
||||
import java.security.cert.Certificate
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.domain.model
|
||||
package de.felitendo.felostore.domain.model
|
||||
|
||||
data class Package(
|
||||
val id: Long,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.domain.model
|
||||
package de.felitendo.felostore.domain.model
|
||||
|
||||
@JvmInline
|
||||
value class PackageName(val name: String)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.domain.model
|
||||
package de.felitendo.felostore.domain.model
|
||||
|
||||
data class Repo(
|
||||
val id: Long,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.graphics
|
||||
package de.felitendo.felostore.graphics
|
||||
|
||||
import android.graphics.Canvas
|
||||
import android.graphics.ColorFilter
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.graphics
|
||||
package de.felitendo.felostore.graphics
|
||||
|
||||
import android.graphics.Rect
|
||||
import android.graphics.drawable.Drawable
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.felitendo.felostore.index
|
||||
package de.felitendo.felostore.index
|
||||
|
||||
import android.content.ContentValues
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.felitendo.felostore.utility.common.extension.Json
|
||||
import com.felitendo.felostore.utility.common.extension.asSequence
|
||||
import com.felitendo.felostore.utility.common.extension.collectNotNull
|
||||
import com.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import com.felitendo.felostore.model.Product
|
||||
import com.felitendo.felostore.model.Release
|
||||
import com.felitendo.felostore.utility.serialization.product
|
||||
import com.felitendo.felostore.utility.serialization.release
|
||||
import com.felitendo.felostore.utility.serialization.serialize
|
||||
import de.felitendo.felostore.utility.common.extension.Json
|
||||
import de.felitendo.felostore.utility.common.extension.asSequence
|
||||
import de.felitendo.felostore.utility.common.extension.collectNotNull
|
||||
import de.felitendo.felostore.utility.common.extension.writeDictionary
|
||||
import de.felitendo.felostore.model.Product
|
||||
import de.felitendo.felostore.model.Release
|
||||
import de.felitendo.felostore.utility.serialization.product
|
||||
import de.felitendo.felostore.utility.serialization.release
|
||||
import de.felitendo.felostore.utility.serialization.serialize
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.Closeable
|
||||
import java.io.File
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
package com.felitendo.felostore.index
|
||||
package de.felitendo.felostore.index
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.core.os.ConfigurationCompat.getLocales
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import com.felitendo.felostore.utility.common.extension.Json
|
||||
import com.felitendo.felostore.utility.common.extension.collectDistinctNotEmptyStrings
|
||||
import com.felitendo.felostore.utility.common.extension.collectNotNull
|
||||
import com.felitendo.felostore.utility.common.extension.forEach
|
||||
import com.felitendo.felostore.utility.common.extension.forEachKey
|
||||
import com.felitendo.felostore.utility.common.extension.illegal
|
||||
import com.felitendo.felostore.model.Product
|
||||
import com.felitendo.felostore.model.Product.Donate.Bitcoin
|
||||
import com.felitendo.felostore.model.Product.Donate.Liberapay
|
||||
import com.felitendo.felostore.model.Product.Donate.Litecoin
|
||||
import com.felitendo.felostore.model.Product.Donate.OpenCollective
|
||||
import com.felitendo.felostore.model.Product.Donate.Regular
|
||||
import com.felitendo.felostore.model.Product.Screenshot.Type.LARGE_TABLET
|
||||
import com.felitendo.felostore.model.Product.Screenshot.Type.PHONE
|
||||
import com.felitendo.felostore.model.Product.Screenshot.Type.SMALL_TABLET
|
||||
import com.felitendo.felostore.model.Product.Screenshot.Type.TV
|
||||
import com.felitendo.felostore.model.Product.Screenshot.Type.VIDEO
|
||||
import com.felitendo.felostore.model.Product.Screenshot.Type.WEAR
|
||||
import com.felitendo.felostore.model.Release
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.nullIfEmpty
|
||||
import de.felitendo.felostore.utility.common.extension.Json
|
||||
import de.felitendo.felostore.utility.common.extension.collectDistinctNotEmptyStrings
|
||||
import de.felitendo.felostore.utility.common.extension.collectNotNull
|
||||
import de.felitendo.felostore.utility.common.extension.forEach
|
||||
import de.felitendo.felostore.utility.common.extension.forEachKey
|
||||
import de.felitendo.felostore.utility.common.extension.illegal
|
||||
import de.felitendo.felostore.model.Product
|
||||
import de.felitendo.felostore.model.Product.Donate.Bitcoin
|
||||
import de.felitendo.felostore.model.Product.Donate.Liberapay
|
||||
import de.felitendo.felostore.model.Product.Donate.Litecoin
|
||||
import de.felitendo.felostore.model.Product.Donate.OpenCollective
|
||||
import de.felitendo.felostore.model.Product.Donate.Regular
|
||||
import de.felitendo.felostore.model.Product.Screenshot.Type.LARGE_TABLET
|
||||
import de.felitendo.felostore.model.Product.Screenshot.Type.PHONE
|
||||
import de.felitendo.felostore.model.Product.Screenshot.Type.SMALL_TABLET
|
||||
import de.felitendo.felostore.model.Product.Screenshot.Type.TV
|
||||
import de.felitendo.felostore.model.Product.Screenshot.Type.VIDEO
|
||||
import de.felitendo.felostore.model.Product.Screenshot.Type.WEAR
|
||||
import de.felitendo.felostore.model.Release
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.nullIfEmpty
|
||||
import java.io.InputStream
|
||||
|
||||
object IndexV1Parser {
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package com.felitendo.felostore.index
|
||||
package de.felitendo.felostore.index
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import com.felitendo.felostore.database.Database
|
||||
import com.felitendo.felostore.domain.model.fingerprint
|
||||
import com.felitendo.felostore.model.Product
|
||||
import com.felitendo.felostore.model.Release
|
||||
import com.felitendo.felostore.model.Repository
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import com.felitendo.felostore.network.NetworkResponse
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.utility.common.extension.toFormattedString
|
||||
import com.felitendo.felostore.utility.common.result.Result
|
||||
import com.felitendo.felostore.utility.extension.android.Android
|
||||
import com.felitendo.felostore.utility.getProgress
|
||||
import de.felitendo.felostore.database.Database
|
||||
import de.felitendo.felostore.domain.model.fingerprint
|
||||
import de.felitendo.felostore.model.Product
|
||||
import de.felitendo.felostore.model.Release
|
||||
import de.felitendo.felostore.model.Repository
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.network.NetworkResponse
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.utility.common.extension.toFormattedString
|
||||
import de.felitendo.felostore.utility.common.result.Result
|
||||
import de.felitendo.felostore.utility.extension.android.Android
|
||||
import de.felitendo.felostore.utility.getProgress
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.drop
|
||||
import kotlinx.coroutines.flow.filter
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
package com.felitendo.felostore.installer
|
||||
package de.felitendo.felostore.installer
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.utility.common.extension.addAndCompute
|
||||
import com.felitendo.felostore.utility.common.extension.filter
|
||||
import com.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import com.felitendo.felostore.utility.common.extension.updateAsMutable
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.datastore.get
|
||||
import com.felitendo.felostore.datastore.model.InstallerType
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.installer.installers.Installer
|
||||
import com.felitendo.felostore.installer.installers.LegacyInstaller
|
||||
import com.felitendo.felostore.installer.installers.root.RootInstaller
|
||||
import com.felitendo.felostore.installer.installers.session.SessionInstaller
|
||||
import com.felitendo.felostore.installer.installers.shizuku.ShizukuInstaller
|
||||
import com.felitendo.felostore.installer.model.InstallItem
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import com.felitendo.felostore.installer.notification.createInstallNotification
|
||||
import com.felitendo.felostore.installer.notification.installNotification
|
||||
import com.felitendo.felostore.installer.notification.removeInstallNotification
|
||||
import de.felitendo.felostore.utility.common.extension.addAndCompute
|
||||
import de.felitendo.felostore.utility.common.extension.filter
|
||||
import de.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import de.felitendo.felostore.utility.common.extension.updateAsMutable
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.datastore.get
|
||||
import de.felitendo.felostore.datastore.model.InstallerType
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.installer.installers.Installer
|
||||
import de.felitendo.felostore.installer.installers.LegacyInstaller
|
||||
import de.felitendo.felostore.installer.installers.root.RootInstaller
|
||||
import de.felitendo.felostore.installer.installers.session.SessionInstaller
|
||||
import de.felitendo.felostore.installer.installers.shizuku.ShizukuInstaller
|
||||
import de.felitendo.felostore.installer.model.InstallItem
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.installer.notification.createInstallNotification
|
||||
import de.felitendo.felostore.installer.notification.installNotification
|
||||
import de.felitendo.felostore.installer.notification.removeInstallNotification
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.channels.consumeEach
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.felitendo.felostore.installer.installers
|
||||
package de.felitendo.felostore.installer.installers
|
||||
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.installer.model.InstallItem
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.installer.model.InstallItem
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
|
||||
interface Installer : AutoCloseable {
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.felitendo.felostore.installer.installers
|
||||
package de.felitendo.felostore.installer.installers
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import com.felitendo.felostore.utility.common.extension.getLauncherActivities
|
||||
import com.felitendo.felostore.utility.common.extension.getPackageInfoCompat
|
||||
import com.felitendo.felostore.utility.common.extension.intent
|
||||
import de.felitendo.felostore.utility.common.extension.getLauncherActivities
|
||||
import de.felitendo.felostore.utility.common.extension.getPackageInfoCompat
|
||||
import de.felitendo.felostore.utility.common.extension.intent
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import rikka.shizuku.ShizukuProvider
|
||||
import kotlin.coroutines.resume
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.felitendo.felostore.installer.installers
|
||||
package de.felitendo.felostore.installer.installers
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.AndroidRuntimeException
|
||||
import androidx.core.net.toUri
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.installer.model.InstallItem
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.utility.common.extension.intent
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.installer.model.InstallItem
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.utility.common.extension.intent
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import kotlin.coroutines.resume
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.felitendo.felostore.installer.installers.root
|
||||
package de.felitendo.felostore.installer.installers.root
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.installer.installers.Installer
|
||||
import com.felitendo.felostore.installer.installers.uninstallPackage
|
||||
import com.felitendo.felostore.installer.model.InstallItem
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.installer.installers.Installer
|
||||
import de.felitendo.felostore.installer.installers.uninstallPackage
|
||||
import de.felitendo.felostore.installer.model.InstallItem
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.topjohnwu.superuser.Shell
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import kotlin.coroutines.resume
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.installer.installers.session
|
||||
package de.felitendo.felostore.installer.installers.session
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.PendingIntent
|
||||
@@ -9,14 +9,14 @@ import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.utility.common.log
|
||||
import com.felitendo.felostore.utility.common.sdkAbove
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.installer.installers.Installer
|
||||
import com.felitendo.felostore.installer.model.InstallItem
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.utility.common.log
|
||||
import de.felitendo.felostore.utility.common.sdkAbove
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.installer.installers.Installer
|
||||
import de.felitendo.felostore.installer.model.InstallItem
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import kotlin.coroutines.resume
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package com.felitendo.felostore.installer.installers.session
|
||||
package de.felitendo.felostore.installer.installers.session
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageInstaller
|
||||
import com.felitendo.felostore.utility.common.Constants.NOTIFICATION_CHANNEL_INSTALL
|
||||
import com.felitendo.felostore.R
|
||||
import com.felitendo.felostore.utility.common.createNotificationChannel
|
||||
import com.felitendo.felostore.utility.common.extension.getPackageName
|
||||
import com.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import com.felitendo.felostore.domain.model.toPackageName
|
||||
import com.felitendo.felostore.installer.InstallManager
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import com.felitendo.felostore.installer.notification.createInstallNotification
|
||||
import com.felitendo.felostore.installer.notification.installNotification
|
||||
import com.felitendo.felostore.installer.notification.removeInstallNotification
|
||||
import de.felitendo.felostore.utility.common.Constants.NOTIFICATION_CHANNEL_INSTALL
|
||||
import de.felitendo.felostore.R
|
||||
import de.felitendo.felostore.utility.common.createNotificationChannel
|
||||
import de.felitendo.felostore.utility.common.extension.getPackageName
|
||||
import de.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import de.felitendo.felostore.domain.model.toPackageName
|
||||
import de.felitendo.felostore.installer.InstallManager
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.installer.notification.createInstallNotification
|
||||
import de.felitendo.felostore.installer.notification.installNotification
|
||||
import de.felitendo.felostore.installer.notification.removeInstallNotification
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package com.felitendo.felostore.installer.installers.shizuku
|
||||
package de.felitendo.felostore.installer.installers.shizuku
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.utility.common.extension.size
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.installer.installers.Installer
|
||||
import com.felitendo.felostore.installer.installers.uninstallPackage
|
||||
import com.felitendo.felostore.installer.model.InstallItem
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.utility.common.extension.size
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.installer.installers.Installer
|
||||
import de.felitendo.felostore.installer.installers.uninstallPackage
|
||||
import de.felitendo.felostore.installer.model.InstallItem
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import java.io.BufferedReader
|
||||
import java.io.InputStream
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.installer.model
|
||||
package de.felitendo.felostore.installer.model
|
||||
|
||||
import com.felitendo.felostore.domain.model.PackageName
|
||||
import com.felitendo.felostore.domain.model.toPackageName
|
||||
import de.felitendo.felostore.domain.model.PackageName
|
||||
import de.felitendo.felostore.domain.model.toPackageName
|
||||
|
||||
class InstallItem(
|
||||
val packageName: PackageName,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.installer.model
|
||||
package de.felitendo.felostore.installer.model
|
||||
|
||||
enum class InstallState { Failed, Pending, Installing, Installed }
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package com.felitendo.felostore.installer.notification
|
||||
package de.felitendo.felostore.installer.notification
|
||||
|
||||
import android.app.Notification
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import androidx.core.app.NotificationCompat
|
||||
import com.felitendo.felostore.utility.common.Constants.NOTIFICATION_CHANNEL_INSTALL
|
||||
import com.felitendo.felostore.utility.common.Constants.NOTIFICATION_ID_INSTALL
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import com.felitendo.felostore.R
|
||||
import de.felitendo.felostore.utility.common.Constants.NOTIFICATION_CHANNEL_INSTALL
|
||||
import de.felitendo.felostore.utility.common.Constants.NOTIFICATION_ID_INSTALL
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.R
|
||||
|
||||
fun NotificationManager.installNotification(
|
||||
packageName: String,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.model
|
||||
package de.felitendo.felostore.model
|
||||
|
||||
class InstalledItem(
|
||||
val packageName: String,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.felitendo.felostore.model
|
||||
package de.felitendo.felostore.model
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.utility.common.extension.getColorFromAttr
|
||||
import com.felitendo.felostore.utility.common.extension.videoPlaceHolder
|
||||
import de.felitendo.felostore.utility.common.extension.getColorFromAttr
|
||||
import de.felitendo.felostore.utility.common.extension.videoPlaceHolder
|
||||
import com.google.android.material.R as MaterialR
|
||||
|
||||
data class Product(
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.felitendo.felostore.model
|
||||
package de.felitendo.felostore.model
|
||||
|
||||
import android.os.Parcelable
|
||||
import android.view.View
|
||||
import com.felitendo.felostore.utility.common.extension.dpi
|
||||
import de.felitendo.felostore.utility.common.extension.dpi
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
data class ProductItem(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.model
|
||||
package de.felitendo.felostore.model
|
||||
|
||||
data class ProductPreference(val ignoreUpdates: Boolean, val ignoreVersionCode: Long) {
|
||||
fun shouldIgnoreUpdate(versionCode: Long): Boolean {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.model
|
||||
package de.felitendo.felostore.model
|
||||
|
||||
import android.net.Uri
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.model
|
||||
package de.felitendo.felostore.model
|
||||
|
||||
import java.net.URL
|
||||
|
||||
@@ -89,26 +89,24 @@ data class Repository(
|
||||
|
||||
val defaultRepositories = listOf(
|
||||
defaultRepository(
|
||||
address = "https://store.felo.gg/repo/",
|
||||
address = "https://fdroid.felo.gg/repo/",
|
||||
name = "Felo Store",
|
||||
description = "A List of Modded Android Apps" +
|
||||
"with advanced features and or premium features unlocked" +
|
||||
"completely for free. Apps get updated every 3h",
|
||||
enabled = true,
|
||||
fingerprint = "5CBEF8C257808D20B65653CBC896F08F0A93F47659859FCD9A6B75FCADDA617D"
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
val newlyAdded: List<Repository> = listOf(
|
||||
defaultRepository(
|
||||
address = "https://f-droid.org/repo",
|
||||
name = "F-Droid",
|
||||
description = "A List of Modded Android Apps" +
|
||||
"with advanced features and or premium features unlocked" +
|
||||
"completely for free. Apps get updated every 3h",
|
||||
enabled = false,
|
||||
fingerprint = "5CBEF8C257808D20B65653CBC896F08F0A93F47659859FCD9A6B75FCADDA617D"
|
||||
),
|
||||
address = "https://fdroid.ironfoxoss.org/fdroid/repo",
|
||||
name = "IronFox",
|
||||
description = "The official repository for IronFox:" +
|
||||
" A privacy and security-oriented Firefox-based browser for Android.",
|
||||
fingerprint = "C5E291B5A571F9C8CD9A9799C2C94E02EC9703948893F2CA756D67B94204F904"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.network
|
||||
package de.felitendo.felostore.network
|
||||
|
||||
import java.util.Locale
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.network
|
||||
package de.felitendo.felostore.network
|
||||
|
||||
import com.felitendo.felostore.network.header.HeadersBuilder
|
||||
import com.felitendo.felostore.network.validation.FileValidator
|
||||
import de.felitendo.felostore.network.header.HeadersBuilder
|
||||
import de.felitendo.felostore.network.validation.FileValidator
|
||||
import java.io.File
|
||||
import java.net.Proxy
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.felitendo.felostore.network
|
||||
package de.felitendo.felostore.network
|
||||
|
||||
import com.felitendo.felostore.BuildConfig
|
||||
import com.felitendo.felostore.network.header.HeadersBuilder
|
||||
import com.felitendo.felostore.network.header.KtorHeadersBuilder
|
||||
import com.felitendo.felostore.network.validation.FileValidator
|
||||
import com.felitendo.felostore.network.validation.ValidationException
|
||||
import com.felitendo.felostore.utility.common.extension.size
|
||||
import de.felitendo.felostore.BuildConfig
|
||||
import de.felitendo.felostore.network.header.HeadersBuilder
|
||||
import de.felitendo.felostore.network.header.KtorHeadersBuilder
|
||||
import de.felitendo.felostore.network.validation.FileValidator
|
||||
import de.felitendo.felostore.network.validation.ValidationException
|
||||
import de.felitendo.felostore.utility.common.extension.size
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.HttpClientConfig
|
||||
import io.ktor.client.engine.HttpClientEngine
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.felitendo.felostore.network
|
||||
package de.felitendo.felostore.network
|
||||
|
||||
import com.felitendo.felostore.network.validation.ValidationException
|
||||
import de.felitendo.felostore.network.validation.ValidationException
|
||||
import java.util.Date
|
||||
|
||||
sealed interface NetworkResponse {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.network.header
|
||||
package de.felitendo.felostore.network.header
|
||||
|
||||
import java.util.Date
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.network.header
|
||||
package de.felitendo.felostore.network.header
|
||||
|
||||
import io.ktor.http.HttpHeaders
|
||||
import io.ktor.util.encodeBase64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.network.validation
|
||||
package de.felitendo.felostore.network.validation
|
||||
|
||||
import java.io.File
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.network.validation
|
||||
package de.felitendo.felostore.network.validation
|
||||
|
||||
class ValidationException(override val message: String) : Exception(message)
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.felitendo.felostore.receivers
|
||||
package de.felitendo.felostore.receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import com.felitendo.felostore.utility.common.extension.getPackageInfoCompat
|
||||
import com.felitendo.felostore.database.Database
|
||||
import com.felitendo.felostore.utility.extension.toInstalledItem
|
||||
import de.felitendo.felostore.utility.common.extension.getPackageInfoCompat
|
||||
import de.felitendo.felostore.database.Database
|
||||
import de.felitendo.felostore.utility.extension.toInstalledItem
|
||||
|
||||
class InstalledAppReceiver(private val packageManager: PackageManager) : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.service
|
||||
package de.felitendo.felostore.service
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.service
|
||||
package de.felitendo.felostore.service
|
||||
|
||||
import android.app.Service
|
||||
import android.content.Intent
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.service
|
||||
package de.felitendo.felostore.service
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.content.Intent
|
||||
@@ -6,34 +6,34 @@ import android.graphics.Color
|
||||
import android.net.Uri
|
||||
import android.util.Log
|
||||
import androidx.core.app.NotificationCompat
|
||||
import com.felitendo.felostore.BuildConfig
|
||||
import com.felitendo.felostore.MainActivity
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.datastore.get
|
||||
import com.felitendo.felostore.datastore.model.InstallerType
|
||||
import com.felitendo.felostore.installer.InstallManager
|
||||
import com.felitendo.felostore.installer.model.InstallState
|
||||
import com.felitendo.felostore.installer.model.installFrom
|
||||
import com.felitendo.felostore.installer.notification.createInstallNotification
|
||||
import com.felitendo.felostore.installer.notification.installNotification
|
||||
import com.felitendo.felostore.model.Release
|
||||
import com.felitendo.felostore.model.Repository
|
||||
import com.felitendo.felostore.network.DataSize
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import com.felitendo.felostore.network.NetworkResponse
|
||||
import com.felitendo.felostore.network.percentBy
|
||||
import com.felitendo.felostore.network.validation.ValidationException
|
||||
import com.felitendo.felostore.utility.common.Constants
|
||||
import com.felitendo.felostore.utility.common.Constants.NOTIFICATION_CHANNEL_INSTALL
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.utility.common.createNotificationChannel
|
||||
import com.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import com.felitendo.felostore.utility.common.extension.startServiceCompat
|
||||
import com.felitendo.felostore.utility.common.extension.stopForegroundCompat
|
||||
import com.felitendo.felostore.utility.common.extension.toPendingIntent
|
||||
import com.felitendo.felostore.utility.common.extension.updateAsMutable
|
||||
import com.felitendo.felostore.utility.common.log
|
||||
import de.felitendo.felostore.BuildConfig
|
||||
import de.felitendo.felostore.MainActivity
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.datastore.get
|
||||
import de.felitendo.felostore.datastore.model.InstallerType
|
||||
import de.felitendo.felostore.installer.InstallManager
|
||||
import de.felitendo.felostore.installer.model.InstallState
|
||||
import de.felitendo.felostore.installer.model.installFrom
|
||||
import de.felitendo.felostore.installer.notification.createInstallNotification
|
||||
import de.felitendo.felostore.installer.notification.installNotification
|
||||
import de.felitendo.felostore.model.Release
|
||||
import de.felitendo.felostore.model.Repository
|
||||
import de.felitendo.felostore.network.DataSize
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.network.NetworkResponse
|
||||
import de.felitendo.felostore.network.percentBy
|
||||
import de.felitendo.felostore.network.validation.ValidationException
|
||||
import de.felitendo.felostore.utility.common.Constants
|
||||
import de.felitendo.felostore.utility.common.Constants.NOTIFICATION_CHANNEL_INSTALL
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.utility.common.createNotificationChannel
|
||||
import de.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import de.felitendo.felostore.utility.common.extension.startServiceCompat
|
||||
import de.felitendo.felostore.utility.common.extension.stopForegroundCompat
|
||||
import de.felitendo.felostore.utility.common.extension.toPendingIntent
|
||||
import de.felitendo.felostore.utility.common.extension.updateAsMutable
|
||||
import de.felitendo.felostore.utility.common.log
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Job
|
||||
@@ -50,7 +50,7 @@ import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.yield
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
import com.felitendo.felostore.R.string as stringRes
|
||||
import de.felitendo.felostore.R.string as stringRes
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DownloadService : ConnectionService<DownloadService.Binder>() {
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package com.felitendo.felostore.service
|
||||
package de.felitendo.felostore.service
|
||||
|
||||
import android.content.Context
|
||||
import androidx.annotation.StringRes
|
||||
import com.felitendo.felostore.utility.common.extension.calculateHash
|
||||
import com.felitendo.felostore.utility.common.extension.getPackageArchiveInfoCompat
|
||||
import com.felitendo.felostore.utility.common.extension.singleSignature
|
||||
import com.felitendo.felostore.utility.common.extension.versionCodeCompat
|
||||
import com.felitendo.felostore.network.validation.FileValidator
|
||||
import com.felitendo.felostore.utility.common.signature.Hash
|
||||
import com.felitendo.felostore.network.validation.invalid
|
||||
import com.felitendo.felostore.utility.common.signature.verifyHash
|
||||
import com.felitendo.felostore.model.Release
|
||||
import de.felitendo.felostore.utility.common.extension.calculateHash
|
||||
import de.felitendo.felostore.utility.common.extension.getPackageArchiveInfoCompat
|
||||
import de.felitendo.felostore.utility.common.extension.singleSignature
|
||||
import de.felitendo.felostore.utility.common.extension.versionCodeCompat
|
||||
import de.felitendo.felostore.network.validation.FileValidator
|
||||
import de.felitendo.felostore.utility.common.signature.Hash
|
||||
import de.felitendo.felostore.network.validation.invalid
|
||||
import de.felitendo.felostore.utility.common.signature.verifyHash
|
||||
import de.felitendo.felostore.model.Release
|
||||
import java.io.File
|
||||
import com.felitendo.felostore.R.string as strings
|
||||
import de.felitendo.felostore.R.string as strings
|
||||
|
||||
class ReleaseFileValidator(
|
||||
private val context: Context,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.service
|
||||
package de.felitendo.felostore.service
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.PendingIntent
|
||||
@@ -15,25 +15,25 @@ import android.text.style.ForegroundColorSpan
|
||||
import android.view.ContextThemeWrapper
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.felitendo.felostore.utility.common.Constants
|
||||
import com.felitendo.felostore.utility.common.SdkCheck
|
||||
import com.felitendo.felostore.utility.common.createNotificationChannel
|
||||
import com.felitendo.felostore.utility.common.extension.getColorFromAttr
|
||||
import com.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import com.felitendo.felostore.utility.common.extension.startServiceCompat
|
||||
import com.felitendo.felostore.utility.common.extension.stopForegroundCompat
|
||||
import com.felitendo.felostore.utility.common.result.Result
|
||||
import com.felitendo.felostore.utility.common.sdkAbove
|
||||
import com.felitendo.felostore.datastore.SettingsRepository
|
||||
import com.felitendo.felostore.BuildConfig
|
||||
import com.felitendo.felostore.MainActivity
|
||||
import com.felitendo.felostore.database.Database
|
||||
import com.felitendo.felostore.index.RepositoryUpdater
|
||||
import com.felitendo.felostore.model.ProductItem
|
||||
import com.felitendo.felostore.model.Repository
|
||||
import com.felitendo.felostore.utility.extension.startUpdate
|
||||
import com.felitendo.felostore.network.DataSize
|
||||
import com.felitendo.felostore.network.percentBy
|
||||
import de.felitendo.felostore.utility.common.Constants
|
||||
import de.felitendo.felostore.utility.common.SdkCheck
|
||||
import de.felitendo.felostore.utility.common.createNotificationChannel
|
||||
import de.felitendo.felostore.utility.common.extension.getColorFromAttr
|
||||
import de.felitendo.felostore.utility.common.extension.notificationManager
|
||||
import de.felitendo.felostore.utility.common.extension.startServiceCompat
|
||||
import de.felitendo.felostore.utility.common.extension.stopForegroundCompat
|
||||
import de.felitendo.felostore.utility.common.result.Result
|
||||
import de.felitendo.felostore.utility.common.sdkAbove
|
||||
import de.felitendo.felostore.datastore.SettingsRepository
|
||||
import de.felitendo.felostore.BuildConfig
|
||||
import de.felitendo.felostore.MainActivity
|
||||
import de.felitendo.felostore.database.Database
|
||||
import de.felitendo.felostore.index.RepositoryUpdater
|
||||
import de.felitendo.felostore.model.ProductItem
|
||||
import de.felitendo.felostore.model.Repository
|
||||
import de.felitendo.felostore.utility.extension.startUpdate
|
||||
import de.felitendo.felostore.network.DataSize
|
||||
import de.felitendo.felostore.network.percentBy
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -51,12 +51,12 @@ import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.lang.ref.WeakReference
|
||||
import javax.inject.Inject
|
||||
import com.felitendo.felostore.R
|
||||
import de.felitendo.felostore.R
|
||||
import kotlinx.coroutines.FlowPreview
|
||||
import kotlin.math.roundToInt
|
||||
import android.R as AndroidR
|
||||
import com.felitendo.felostore.R.string as stringRes
|
||||
import com.felitendo.felostore.R.style as styleRes
|
||||
import de.felitendo.felostore.R.string as stringRes
|
||||
import de.felitendo.felostore.R.style as styleRes
|
||||
import kotlinx.coroutines.Job as CoroutinesJob
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.network.validation.ValidationException
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.network.validation.ValidationException
|
||||
import java.util.jar.JarEntry
|
||||
|
||||
interface IndexValidator {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import java.io.File
|
||||
|
||||
interface Parser<out T> {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import android.app.job.JobInfo
|
||||
import androidx.work.Constraints
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.felitendo.felostore.sync
|
||||
package de.felitendo.felostore.sync
|
||||
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
|
||||
/**
|
||||
* Expected Architecture: [https://excalidraw.com/#json=JqpGunWTJONjq-ecDNiPg,j9t0X4coeNvIG7B33GTq6A]
|
||||
@@ -15,6 +15,6 @@ interface Syncable<T> {
|
||||
|
||||
suspend fun sync(
|
||||
repo: Repo,
|
||||
): Pair<Fingerprint, com.felitendo.felostore.sync.v2.model.IndexV2?>
|
||||
): Pair<Fingerprint, de.felitendo.felostore.sync.v2.model.IndexV2?>
|
||||
|
||||
}
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import com.felitendo.felostore.sync.v1.model.AppV1
|
||||
import com.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import com.felitendo.felostore.sync.v1.model.Localized
|
||||
import com.felitendo.felostore.sync.v1.model.PackageV1
|
||||
import com.felitendo.felostore.sync.v1.model.RepoV1
|
||||
import com.felitendo.felostore.sync.v1.model.maxSdk
|
||||
import com.felitendo.felostore.sync.v1.model.name
|
||||
import com.felitendo.felostore.sync.v2.model.AntiFeatureV2
|
||||
import com.felitendo.felostore.sync.v2.model.CategoryV2
|
||||
import com.felitendo.felostore.sync.v2.model.FeatureV2
|
||||
import com.felitendo.felostore.sync.v2.model.FileV2
|
||||
import com.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import com.felitendo.felostore.sync.v2.model.LocalizedFiles
|
||||
import com.felitendo.felostore.sync.v2.model.LocalizedIcon
|
||||
import com.felitendo.felostore.sync.v2.model.LocalizedString
|
||||
import com.felitendo.felostore.sync.v2.model.ManifestV2
|
||||
import com.felitendo.felostore.sync.v2.model.MetadataV2
|
||||
import com.felitendo.felostore.sync.v2.model.MirrorV2
|
||||
import com.felitendo.felostore.sync.v2.model.PackageV2
|
||||
import com.felitendo.felostore.sync.v2.model.PermissionV2
|
||||
import com.felitendo.felostore.sync.v2.model.RepoV2
|
||||
import com.felitendo.felostore.sync.v2.model.ScreenshotsV2
|
||||
import com.felitendo.felostore.sync.v2.model.SignerV2
|
||||
import com.felitendo.felostore.sync.v2.model.UsesSdkV2
|
||||
import com.felitendo.felostore.sync.v2.model.VersionV2
|
||||
import de.felitendo.felostore.sync.v1.model.AppV1
|
||||
import de.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import de.felitendo.felostore.sync.v1.model.Localized
|
||||
import de.felitendo.felostore.sync.v1.model.PackageV1
|
||||
import de.felitendo.felostore.sync.v1.model.RepoV1
|
||||
import de.felitendo.felostore.sync.v1.model.maxSdk
|
||||
import de.felitendo.felostore.sync.v1.model.name
|
||||
import de.felitendo.felostore.sync.v2.model.AntiFeatureV2
|
||||
import de.felitendo.felostore.sync.v2.model.CategoryV2
|
||||
import de.felitendo.felostore.sync.v2.model.FeatureV2
|
||||
import de.felitendo.felostore.sync.v2.model.FileV2
|
||||
import de.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import de.felitendo.felostore.sync.v2.model.LocalizedFiles
|
||||
import de.felitendo.felostore.sync.v2.model.LocalizedIcon
|
||||
import de.felitendo.felostore.sync.v2.model.LocalizedString
|
||||
import de.felitendo.felostore.sync.v2.model.ManifestV2
|
||||
import de.felitendo.felostore.sync.v2.model.MetadataV2
|
||||
import de.felitendo.felostore.sync.v2.model.MirrorV2
|
||||
import de.felitendo.felostore.sync.v2.model.PackageV2
|
||||
import de.felitendo.felostore.sync.v2.model.PermissionV2
|
||||
import de.felitendo.felostore.sync.v2.model.RepoV2
|
||||
import de.felitendo.felostore.sync.v2.model.ScreenshotsV2
|
||||
import de.felitendo.felostore.sync.v2.model.SignerV2
|
||||
import de.felitendo.felostore.sync.v2.model.UsesSdkV2
|
||||
import de.felitendo.felostore.sync.v2.model.VersionV2
|
||||
|
||||
private const val V1_LOCALE = "en-US"
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.utility.common.cache.Cache
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.utility.common.cache.Cache
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.domain.model.check
|
||||
import com.felitendo.felostore.domain.model.fingerprint
|
||||
import com.felitendo.felostore.network.validation.invalid
|
||||
import com.felitendo.felostore.sync.utils.certificate
|
||||
import com.felitendo.felostore.sync.utils.codeSigner
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.check
|
||||
import de.felitendo.felostore.domain.model.fingerprint
|
||||
import de.felitendo.felostore.network.validation.invalid
|
||||
import de.felitendo.felostore.sync.utils.certificate
|
||||
import de.felitendo.felostore.sync.utils.codeSigner
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.util.jar.JarEntry
|
||||
|
||||
class IndexJarValidator(
|
||||
private val dispatcher: CoroutineDispatcher
|
||||
) : com.felitendo.felostore.sync.IndexValidator {
|
||||
) : de.felitendo.felostore.sync.IndexValidator {
|
||||
override suspend fun validate(
|
||||
jarEntry: JarEntry,
|
||||
expectedFingerprint: Fingerprint?
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.common
|
||||
package de.felitendo.felostore.sync.common
|
||||
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.utils
|
||||
package de.felitendo.felostore.sync.utils
|
||||
|
||||
import java.io.File
|
||||
import java.security.CodeSigner
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.felitendo.felostore.sync.v1
|
||||
package de.felitendo.felostore.sync.v1
|
||||
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import com.felitendo.felostore.sync.IndexValidator
|
||||
import com.felitendo.felostore.sync.Parser
|
||||
import com.felitendo.felostore.sync.utils.toJarFile
|
||||
import com.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.sync.IndexValidator
|
||||
import de.felitendo.felostore.sync.Parser
|
||||
import de.felitendo.felostore.sync.utils.toJarFile
|
||||
import de.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package com.felitendo.felostore.sync.v1
|
||||
package de.felitendo.felostore.sync.v1
|
||||
|
||||
import android.content.Context
|
||||
import com.felitendo.felostore.domain.model.Fingerprint
|
||||
import com.felitendo.felostore.domain.model.Repo
|
||||
import com.felitendo.felostore.sync.Parser
|
||||
import com.felitendo.felostore.sync.Syncable
|
||||
import com.felitendo.felostore.sync.common.INDEX_V1_NAME
|
||||
import com.felitendo.felostore.sync.common.IndexJarValidator
|
||||
import com.felitendo.felostore.sync.common.JsonParser
|
||||
import com.felitendo.felostore.sync.common.downloadIndex
|
||||
import com.felitendo.felostore.sync.common.toV2
|
||||
import com.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import com.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import com.felitendo.felostore.network.Downloader
|
||||
import de.felitendo.felostore.domain.model.Fingerprint
|
||||
import de.felitendo.felostore.domain.model.Repo
|
||||
import de.felitendo.felostore.sync.Parser
|
||||
import de.felitendo.felostore.sync.Syncable
|
||||
import de.felitendo.felostore.sync.common.INDEX_V1_NAME
|
||||
import de.felitendo.felostore.sync.common.IndexJarValidator
|
||||
import de.felitendo.felostore.sync.common.JsonParser
|
||||
import de.felitendo.felostore.sync.common.downloadIndex
|
||||
import de.felitendo.felostore.sync.common.toV2
|
||||
import de.felitendo.felostore.sync.v1.model.IndexV1
|
||||
import de.felitendo.felostore.sync.v2.model.IndexV2
|
||||
import de.felitendo.felostore.network.Downloader
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.v1.model
|
||||
package de.felitendo.felostore.sync.v1.model
|
||||
|
||||
/*
|
||||
* AppV1 is licensed under the GPL 3.0 to FDroid Organization.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.v1.model
|
||||
package de.felitendo.felostore.sync.v1.model
|
||||
|
||||
/*
|
||||
* IndexV1 is licensed under the GPL 3.0 to FDroid Organization.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.felitendo.felostore.sync.v1.model
|
||||
package de.felitendo.felostore.sync.v1.model
|
||||
|
||||
/*
|
||||
* Localized is licensed under the GPL 3.0 to FDroid Organization.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user