mirror of
https://github.com/Michatec/michas-droid.git
synced 2026-05-30 18:02:43 +02:00
- Renamed the package Name
- Update some features - Fix some bugs
This commit is contained in:
+2
-2
@@ -13,11 +13,11 @@ buildscript {
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
namespace 'nya.kitsunyan.foxydroid'
|
||||
namespace 'com.michatec.store'
|
||||
compileSdk 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'nya.kitsunyan.foxydroid'
|
||||
applicationId 'com.michatec.store'
|
||||
minSdk 30
|
||||
targetSdk 36
|
||||
versionCode 15
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent>
|
||||
<package android:name="com.android.vending" />
|
||||
</queries>
|
||||
|
||||
<application
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid
|
||||
package com.michatec.store
|
||||
|
||||
object Common {
|
||||
const val NOTIFICATION_CHANNEL_SYNCING = "syncing"
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package nya.kitsunyan.foxydroid
|
||||
package com.michatec.store
|
||||
|
||||
import android.content.Intent
|
||||
import nya.kitsunyan.foxydroid.screen.ScreenActivity
|
||||
import com.michatec.store.screen.ScreenActivity
|
||||
|
||||
class MainActivity: ScreenActivity() {
|
||||
companion object {
|
||||
+14
-13
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid
|
||||
package com.michatec.store
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
@@ -13,18 +13,18 @@ import android.content.pm.PackageInfo
|
||||
import com.squareup.picasso.OkHttp3Downloader
|
||||
import com.squareup.picasso.Picasso
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import nya.kitsunyan.foxydroid.content.Cache
|
||||
import nya.kitsunyan.foxydroid.content.Preferences
|
||||
import nya.kitsunyan.foxydroid.content.ProductPreferences
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.InstalledItem
|
||||
import nya.kitsunyan.foxydroid.index.RepositoryUpdater
|
||||
import nya.kitsunyan.foxydroid.network.Downloader
|
||||
import nya.kitsunyan.foxydroid.network.PicassoDownloader
|
||||
import nya.kitsunyan.foxydroid.service.Connection
|
||||
import nya.kitsunyan.foxydroid.service.SyncService
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import com.michatec.store.content.Cache
|
||||
import com.michatec.store.content.Preferences
|
||||
import com.michatec.store.content.ProductPreferences
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.InstalledItem
|
||||
import com.michatec.store.index.RepositoryUpdater
|
||||
import com.michatec.store.network.Downloader
|
||||
import com.michatec.store.network.PicassoDownloader
|
||||
import com.michatec.store.service.Connection
|
||||
import com.michatec.store.service.SyncService
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import java.net.InetSocketAddress
|
||||
import java.net.Proxy
|
||||
|
||||
@@ -61,6 +61,7 @@ class MainApplication: Application() {
|
||||
updateSyncJob(false)
|
||||
}
|
||||
|
||||
@SuppressLint("QueryPermissionsNeeded")
|
||||
private fun listenApplications() {
|
||||
registerReceiver(object: BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.content
|
||||
package com.michatec.store.content
|
||||
|
||||
import android.content.ContentProvider
|
||||
import android.content.ContentValues
|
||||
@@ -10,7 +10,7 @@ import android.net.Uri
|
||||
import android.os.ParcelFileDescriptor
|
||||
import android.provider.OpenableColumns
|
||||
import android.system.Os
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import java.io.File
|
||||
import java.util.UUID
|
||||
import kotlin.concurrent.thread
|
||||
+4
-4
@@ -1,13 +1,13 @@
|
||||
package nya.kitsunyan.foxydroid.content
|
||||
package com.michatec.store.content
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.Configuration
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.entity.ProductItem
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import java.net.Proxy
|
||||
import androidx.core.content.edit
|
||||
|
||||
+10
-12
@@ -1,15 +1,14 @@
|
||||
package nya.kitsunyan.foxydroid.content
|
||||
package com.michatec.store.content
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.ProductPreference
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.ProductPreference
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.nio.charset.Charset
|
||||
import androidx.core.content.edit
|
||||
|
||||
object ProductPreferences {
|
||||
@@ -57,15 +56,14 @@ object ProductPreferences {
|
||||
|
||||
operator fun set(packageName: String, productPreference: ProductPreference) {
|
||||
val oldProductPreference = this[packageName]
|
||||
val json = ByteArrayOutputStream().apply {
|
||||
Json.factory.createGenerator(this).use { it.writeDictionary(productPreference::serialize) }
|
||||
}.toByteArray().toString(Charsets.UTF_8)
|
||||
|
||||
preferences.edit {
|
||||
putString(
|
||||
packageName, ByteArrayOutputStream()
|
||||
.apply {
|
||||
Json.factory.createGenerator(this)
|
||||
.use { it.writeDictionary(productPreference::serialize) }
|
||||
}
|
||||
.toByteArray().toString(Charset.defaultCharset()))
|
||||
putString(packageName, json)
|
||||
}
|
||||
|
||||
if (oldProductPreference.ignoreUpdates != productPreference.ignoreUpdates ||
|
||||
oldProductPreference.ignoreVersionCode != productPreference.ignoreVersionCode) {
|
||||
subject.onNext(Pair(packageName, productPreference.databaseVersionCode))
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.database
|
||||
package com.michatec.store.database
|
||||
|
||||
import android.database.Cursor
|
||||
import android.os.Bundle
|
||||
@@ -7,7 +7,7 @@ import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.loader.app.LoaderManager
|
||||
import androidx.loader.content.Loader
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import com.michatec.store.entity.ProductItem
|
||||
|
||||
class CursorOwner: Fragment(), LoaderManager.LoaderCallbacks<Cursor> {
|
||||
sealed class Request {
|
||||
+8
-8
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.database
|
||||
package com.michatec.store.database
|
||||
|
||||
import android.content.ContentValues
|
||||
import android.content.Context
|
||||
@@ -9,12 +9,12 @@ import android.os.CancellationSignal
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import nya.kitsunyan.foxydroid.entity.InstalledItem
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.entity.InstalledItem
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.ProductItem
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
import java.io.ByteArrayOutputStream
|
||||
import androidx.core.database.sqlite.transaction
|
||||
|
||||
@@ -155,7 +155,7 @@ object Database {
|
||||
}
|
||||
}
|
||||
|
||||
private class Helper(context: Context): SQLiteOpenHelper(context, "foxydroid", null, 1) {
|
||||
private class Helper(context: Context): SQLiteOpenHelper(context, "store", null, 1) {
|
||||
var created = false
|
||||
private set
|
||||
var updated = false
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.database
|
||||
package com.michatec.store.database
|
||||
|
||||
import android.database.ContentObserver
|
||||
import android.database.Cursor
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
package nya.kitsunyan.foxydroid.database
|
||||
package com.michatec.store.database
|
||||
|
||||
import android.database.Cursor
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import android.os.CancellationSignal
|
||||
import nya.kitsunyan.foxydroid.BuildConfig
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.BuildConfig
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
|
||||
class QueryBuilder {
|
||||
companion object {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.database
|
||||
package com.michatec.store.database
|
||||
|
||||
import android.content.Context
|
||||
import android.database.Cursor
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
package nya.kitsunyan.foxydroid.entity
|
||||
package com.michatec.store.entity
|
||||
|
||||
class InstalledItem(val packageName: String, val version: String, val versionCode: Long, val signature: String)
|
||||
+3
-3
@@ -1,10 +1,10 @@
|
||||
package nya.kitsunyan.foxydroid.entity
|
||||
package com.michatec.store.entity
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
|
||||
data class Product(val repositoryId: Long, val packageName: String, val name: String, val summary: String,
|
||||
val description: String, val whatsNew: String, val icon: String, val metadataIcon: String, val author: Author,
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
package nya.kitsunyan.foxydroid.entity
|
||||
package com.michatec.store.entity
|
||||
|
||||
import android.os.Parcel
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.utility.KParcelable
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.utility.KParcelable
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
|
||||
data class ProductItem(val repositoryId: Long, val packageName: String, val name: String, val summary: String,
|
||||
val icon: String, val metadataIcon: String, val version: String, val installedVersion: String,
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package nya.kitsunyan.foxydroid.entity
|
||||
package com.michatec.store.entity
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
|
||||
data class ProductPreference(val ignoreUpdates: Boolean, val ignoreVersionCode: Long) {
|
||||
fun shouldIgnoreUpdate(versionCode: Long): Boolean {
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package nya.kitsunyan.foxydroid.entity
|
||||
package com.michatec.store.entity
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
import androidx.core.net.toUri
|
||||
|
||||
data class Release(val selected: Boolean, val version: String, val versionCode: Long,
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package nya.kitsunyan.foxydroid.entity
|
||||
package com.michatec.store.entity
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
|
||||
data class Repository(
|
||||
val id: Long, val address: String, val mirrors: List<String>,
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.graphics
|
||||
package com.michatec.store.graphics
|
||||
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Canvas
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.graphics
|
||||
package com.michatec.store.graphics
|
||||
|
||||
import android.graphics.Rect
|
||||
import android.graphics.drawable.Drawable
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
package nya.kitsunyan.foxydroid.index
|
||||
package com.michatec.store.index
|
||||
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import org.xml.sax.Attributes
|
||||
import org.xml.sax.helpers.DefaultHandler
|
||||
import java.text.SimpleDateFormat
|
||||
+5
-5
@@ -1,12 +1,12 @@
|
||||
package nya.kitsunyan.foxydroid.index
|
||||
package com.michatec.store.index
|
||||
|
||||
import android.content.ContentValues
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.Closeable
|
||||
import java.io.File
|
||||
+6
-6
@@ -1,12 +1,12 @@
|
||||
package nya.kitsunyan.foxydroid.index
|
||||
package com.michatec.store.index
|
||||
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.core.JsonToken
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.json.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.json.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import java.io.InputStream
|
||||
|
||||
object IndexV1Parser {
|
||||
+12
-12
@@ -1,21 +1,21 @@
|
||||
package nya.kitsunyan.foxydroid.index
|
||||
package com.michatec.store.index
|
||||
|
||||
import android.content.Context
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.content.Cache
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.network.Downloader
|
||||
import nya.kitsunyan.foxydroid.utility.ProgressInputStream
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.content.Cache
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.network.Downloader
|
||||
import com.michatec.store.utility.ProgressInputStream
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import org.xml.sax.InputSource
|
||||
import java.io.File
|
||||
import java.security.cert.X509Certificate
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
package nya.kitsunyan.foxydroid.network
|
||||
package com.michatec.store.network
|
||||
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.utility.ProgressInputStream
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import com.michatec.store.utility.ProgressInputStream
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import okhttp3.Cache
|
||||
import okhttp3.Call
|
||||
import okhttp3.OkHttpClient
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
package nya.kitsunyan.foxydroid.network
|
||||
package com.michatec.store.network
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import android.view.View
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import okhttp3.Cache
|
||||
import okhttp3.Call
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
+11
-11
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.content.ClipboardManager
|
||||
@@ -24,16 +24,16 @@ import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.network.Downloader
|
||||
import nya.kitsunyan.foxydroid.service.Connection
|
||||
import nya.kitsunyan.foxydroid.service.SyncService
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.network.Downloader
|
||||
import com.michatec.store.service.Connection
|
||||
import com.michatec.store.service.SyncService
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.Request
|
||||
import java.net.URI
|
||||
+7
-7
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.content.ActivityNotFoundException
|
||||
@@ -9,12 +9,12 @@ import android.os.Parcel
|
||||
import androidx.core.os.BundleCompat
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.utility.KParcelable
|
||||
import nya.kitsunyan.foxydroid.utility.PackageItemResolver
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.utility.KParcelable
|
||||
import com.michatec.store.utility.PackageItemResolver
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import androidx.core.net.toUri
|
||||
|
||||
class MessageDialog(): DialogFragment() {
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.app.Dialog
|
||||
@@ -20,9 +20,9 @@ import android.widget.Toolbar
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.Preferences
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.Preferences
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import androidx.core.view.isNotEmpty
|
||||
|
||||
class PreferencesFragment: ScreenFragment() {
|
||||
+21
-21
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.ClipData
|
||||
@@ -40,25 +40,25 @@ import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.util.LinkifyCompat
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.Preferences
|
||||
import nya.kitsunyan.foxydroid.content.ProductPreferences
|
||||
import nya.kitsunyan.foxydroid.entity.InstalledItem
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.ProductPreference
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.graphics.PaddingDrawable
|
||||
import nya.kitsunyan.foxydroid.network.PicassoDownloader
|
||||
import nya.kitsunyan.foxydroid.utility.KParcelable
|
||||
import nya.kitsunyan.foxydroid.utility.PackageItemResolver
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import nya.kitsunyan.foxydroid.widget.ClickableMovementMethod
|
||||
import nya.kitsunyan.foxydroid.widget.DividerItemDecoration
|
||||
import nya.kitsunyan.foxydroid.widget.StableRecyclerAdapter
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.Preferences
|
||||
import com.michatec.store.content.ProductPreferences
|
||||
import com.michatec.store.entity.InstalledItem
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.ProductPreference
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.graphics.PaddingDrawable
|
||||
import com.michatec.store.network.PicassoDownloader
|
||||
import com.michatec.store.utility.KParcelable
|
||||
import com.michatec.store.utility.PackageItemResolver
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import com.michatec.store.widget.ClickableMovementMethod
|
||||
import com.michatec.store.widget.DividerItemDecoration
|
||||
import com.michatec.store.widget.StableRecyclerAdapter
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.Locale
|
||||
import kotlin.math.*
|
||||
@@ -892,7 +892,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
||||
}
|
||||
ProductPreferences[switchItem.packageName] = productPreference
|
||||
items.asSequence().mapIndexedNotNull { index, item -> if (item is Item.HeaderItem ||
|
||||
item is Item.SectionItem) index else null }.forEach { notifyItemChanged(it, Payload.REFRESH) }
|
||||
item is Item.SectionItem || item is Item.SwitchItem) index else null }.forEach { notifyItemChanged(it, Payload.REFRESH) }
|
||||
callbacks.onPreferenceChanged(productPreference)
|
||||
}
|
||||
}
|
||||
+18
-21
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.content.ActivityNotFoundException
|
||||
@@ -24,20 +24,20 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.ProductPreferences
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.InstalledItem
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.ProductPreference
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.service.Connection
|
||||
import nya.kitsunyan.foxydroid.service.DownloadService
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.widget.DividerItemDecoration
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.ProductPreferences
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.InstalledItem
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.ProductPreference
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.service.Connection
|
||||
import com.michatec.store.service.DownloadService
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.widget.DividerItemDecoration
|
||||
import androidx.core.net.toUri
|
||||
|
||||
class ProductFragment(): ScreenFragment(), ProductAdapter.Callbacks {
|
||||
@@ -271,8 +271,8 @@ class ProductFragment(): ScreenFragment(), ProductAdapter.Callbacks {
|
||||
|
||||
val toolbar = toolbar
|
||||
if (toolbar != null) {
|
||||
for (action in sequenceOf(Action.INSTALL, Action.UPDATE, Action.UNINSTALL)) {
|
||||
toolbar.menu.findItem(action.id).isEnabled = !downloading
|
||||
for (action in sequenceOf(Action.INSTALL, Action.UPDATE, Action.UNINSTALL)) {
|
||||
toolbar.menu.findItem(action.id).isEnabled = !downloading
|
||||
}
|
||||
}
|
||||
this.actions = Pair(actions, primaryAction)
|
||||
@@ -349,7 +349,6 @@ class ProductFragment(): ScreenFragment(), ProductAdapter.Callbacks {
|
||||
if (productRepository != null && release != null && binder != null) {
|
||||
binder.enqueue(packageName, productRepository.first.name, productRepository.second, release)
|
||||
}
|
||||
Unit
|
||||
}
|
||||
ProductAdapter.Action.LAUNCH -> {
|
||||
val launcherActivities = installed?.launcherActivities.orEmpty()
|
||||
@@ -358,7 +357,6 @@ class ProductFragment(): ScreenFragment(), ProductAdapter.Callbacks {
|
||||
} else {
|
||||
launcherActivities.firstOrNull()?.let { startLauncherActivity(it.first) }
|
||||
}
|
||||
Unit
|
||||
}
|
||||
ProductAdapter.Action.DETAILS -> {
|
||||
startActivity(Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
||||
@@ -373,9 +371,8 @@ class ProductFragment(): ScreenFragment(), ProductAdapter.Callbacks {
|
||||
if (downloading && binder != null) {
|
||||
binder.cancel(packageName)
|
||||
}
|
||||
Unit
|
||||
}
|
||||
}::class
|
||||
}
|
||||
}
|
||||
|
||||
private fun startLauncherActivity(name: String) {
|
||||
+11
-11
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
@@ -13,16 +13,16 @@ import android.widget.ImageView
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.network.PicassoDownloader
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import nya.kitsunyan.foxydroid.widget.CursorRecyclerAdapter
|
||||
import nya.kitsunyan.foxydroid.widget.DividerItemDecoration
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.ProductItem
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.network.PicassoDownloader
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import com.michatec.store.widget.CursorRecyclerAdapter
|
||||
import com.michatec.store.widget.DividerItemDecoration
|
||||
|
||||
class ProductsAdapter(private val onClick: (ProductItem) -> Unit):
|
||||
CursorRecyclerAdapter<ProductsAdapter.ViewType, RecyclerView.ViewHolder>() {
|
||||
+8
-8
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.database.Cursor
|
||||
import android.os.Bundle
|
||||
@@ -13,13 +13,13 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.CursorOwner
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.widget.DividerItemDecoration
|
||||
import nya.kitsunyan.foxydroid.widget.RecyclerFastScroller
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.CursorOwner
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.ProductItem
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.widget.DividerItemDecoration
|
||||
import com.michatec.store.widget.RecyclerFastScroller
|
||||
|
||||
class ProductsFragment(): ScreenFragment(), CursorOwner.Callback {
|
||||
companion object {
|
||||
+6
-6
@@ -1,15 +1,15 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Switch
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.widget.CursorRecyclerAdapter
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.widget.CursorRecyclerAdapter
|
||||
|
||||
class RepositoriesAdapter(private val onClick: (Repository) -> Unit,
|
||||
private val onSwitch: (repository: Repository, isEnabled: Boolean) -> Boolean):
|
||||
+6
-6
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.database.Cursor
|
||||
import android.os.Bundle
|
||||
@@ -10,11 +10,11 @@ import android.widget.FrameLayout
|
||||
import android.widget.Toolbar
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.CursorOwner
|
||||
import nya.kitsunyan.foxydroid.service.Connection
|
||||
import nya.kitsunyan.foxydroid.service.SyncService
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.CursorOwner
|
||||
import com.michatec.store.service.Connection
|
||||
import com.michatec.store.service.SyncService
|
||||
import com.michatec.store.utility.Utils
|
||||
|
||||
class RepositoriesFragment: ScreenFragment(), CursorOwner.Callback {
|
||||
private var recyclerView: RecyclerView? = null
|
||||
+7
-7
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.SpannableStringBuilder
|
||||
@@ -17,12 +17,12 @@ import android.widget.Toolbar
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.service.Connection
|
||||
import nya.kitsunyan.foxydroid.service.SyncService
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.service.Connection
|
||||
import com.michatec.store.service.SyncService
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
|
||||
+10
-10
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -14,15 +14,15 @@ import androidx.core.os.BundleCompat
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.Cache
|
||||
import nya.kitsunyan.foxydroid.content.Preferences
|
||||
import nya.kitsunyan.foxydroid.database.CursorOwner
|
||||
import nya.kitsunyan.foxydroid.utility.KParcelable
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.Cache
|
||||
import com.michatec.store.content.Preferences
|
||||
import com.michatec.store.database.CursorOwner
|
||||
import com.michatec.store.utility.KParcelable
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
|
||||
abstract class ScreenActivity: FragmentActivity() {
|
||||
companion object {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
|
||||
+11
-11
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
@@ -22,16 +22,16 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.Product
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.graphics.PaddingDrawable
|
||||
import nya.kitsunyan.foxydroid.network.PicassoDownloader
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.widget.StableRecyclerAdapter
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.Product
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.graphics.PaddingDrawable
|
||||
import com.michatec.store.network.PicassoDownloader
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.widget.StableRecyclerAdapter
|
||||
|
||||
class ScreenshotsFragment(): DialogFragment() {
|
||||
companion object {
|
||||
+14
-14
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.screen
|
||||
package com.michatec.store.screen
|
||||
|
||||
import android.animation.ValueAnimator
|
||||
import android.content.Context
|
||||
@@ -34,19 +34,19 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.Preferences
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import nya.kitsunyan.foxydroid.service.Connection
|
||||
import nya.kitsunyan.foxydroid.service.SyncService
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.widget.DividerItemDecoration
|
||||
import nya.kitsunyan.foxydroid.widget.FocusSearchView
|
||||
import nya.kitsunyan.foxydroid.widget.StableRecyclerAdapter
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.Preferences
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.ProductItem
|
||||
import com.michatec.store.service.Connection
|
||||
import com.michatec.store.service.SyncService
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.widget.DividerItemDecoration
|
||||
import com.michatec.store.widget.FocusSearchView
|
||||
import com.michatec.store.widget.StableRecyclerAdapter
|
||||
import kotlin.math.*
|
||||
|
||||
class TabsFragment: ScreenFragment() {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.service
|
||||
package com.michatec.store.service
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package nya.kitsunyan.foxydroid.service
|
||||
package com.michatec.store.service
|
||||
|
||||
import android.app.Service
|
||||
import android.content.Intent
|
||||
import android.os.IBinder
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
|
||||
abstract class ConnectionService<T: IBinder>: Service() {
|
||||
abstract override fun onBind(intent: Intent): T
|
||||
+13
-13
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.service
|
||||
package com.michatec.store.service
|
||||
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
@@ -13,18 +13,18 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject
|
||||
import nya.kitsunyan.foxydroid.BuildConfig
|
||||
import nya.kitsunyan.foxydroid.Common
|
||||
import nya.kitsunyan.foxydroid.MainActivity
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.Cache
|
||||
import nya.kitsunyan.foxydroid.entity.Release
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.network.Downloader
|
||||
import nya.kitsunyan.foxydroid.utility.Utils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.BuildConfig
|
||||
import com.michatec.store.Common
|
||||
import com.michatec.store.MainActivity
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.Cache
|
||||
import com.michatec.store.entity.Release
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.network.Downloader
|
||||
import com.michatec.store.utility.Utils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import java.io.File
|
||||
import java.security.MessageDigest
|
||||
import java.util.concurrent.TimeUnit
|
||||
+14
-14
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.service
|
||||
package com.michatec.store.service
|
||||
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
@@ -18,19 +18,19 @@ import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject
|
||||
import nya.kitsunyan.foxydroid.BuildConfig
|
||||
import nya.kitsunyan.foxydroid.Common
|
||||
import nya.kitsunyan.foxydroid.MainActivity
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.content.Preferences
|
||||
import nya.kitsunyan.foxydroid.database.Database
|
||||
import nya.kitsunyan.foxydroid.entity.ProductItem
|
||||
import nya.kitsunyan.foxydroid.entity.Repository
|
||||
import nya.kitsunyan.foxydroid.index.RepositoryUpdater
|
||||
import nya.kitsunyan.foxydroid.utility.RxUtils
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.BuildConfig
|
||||
import com.michatec.store.Common
|
||||
import com.michatec.store.MainActivity
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.content.Preferences
|
||||
import com.michatec.store.database.Database
|
||||
import com.michatec.store.entity.ProductItem
|
||||
import com.michatec.store.entity.Repository
|
||||
import com.michatec.store.index.RepositoryUpdater
|
||||
import com.michatec.store.utility.RxUtils
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.*
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.utility
|
||||
package com.michatec.store.utility
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.michatec.store.utility
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageItemInfo
|
||||
import android.content.pm.PermissionInfo
|
||||
import android.content.res.Resources
|
||||
import java.util.Locale
|
||||
|
||||
object PackageItemResolver {
|
||||
class LocalCache {
|
||||
internal val resources = mutableMapOf<String, Resources>()
|
||||
}
|
||||
|
||||
private data class CacheKey(val locales: List<Locale>, val packageName: String, val resId: Int)
|
||||
|
||||
private val cache = mutableMapOf<CacheKey, String?>()
|
||||
|
||||
private fun load(context: Context, localCache: LocalCache, packageName: String,
|
||||
nonLocalized: CharSequence?, resId: Int): CharSequence? {
|
||||
return when {
|
||||
nonLocalized != null -> {
|
||||
nonLocalized
|
||||
}
|
||||
resId != 0 -> {
|
||||
val localesList = context.resources.configuration.locales
|
||||
val locales = (0 until localesList.size()).map(localesList::get)
|
||||
|
||||
val cacheKey = CacheKey(locales, packageName, resId)
|
||||
if (cache.containsKey(cacheKey)) {
|
||||
cache[cacheKey]
|
||||
} else {
|
||||
val resources = localCache.resources[packageName] ?: run {
|
||||
val resources = try {
|
||||
context.createPackageContext(packageName, 0)
|
||||
.createConfigurationContext(context.resources.configuration)
|
||||
.resources
|
||||
} catch (_: Exception) {
|
||||
null
|
||||
}
|
||||
resources?.let { localCache.resources[packageName] = it }
|
||||
resources
|
||||
}
|
||||
val label = resources?.getString(resId)
|
||||
cache[cacheKey] = label
|
||||
label
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun loadLabel(context: Context, localCache: LocalCache, packageItemInfo: PackageItemInfo): CharSequence? {
|
||||
return load(context, localCache, packageItemInfo.packageName,
|
||||
packageItemInfo.nonLocalizedLabel, packageItemInfo.labelRes)
|
||||
}
|
||||
|
||||
fun loadDescription(context: Context, localCache: LocalCache, permissionInfo: PermissionInfo): CharSequence? {
|
||||
return load(context, localCache, permissionInfo.packageName,
|
||||
permissionInfo.nonLocalizedDescription, permissionInfo.descriptionRes)
|
||||
}
|
||||
|
||||
fun getPermissionGroup(permissionInfo: PermissionInfo): String? {
|
||||
return when (permissionInfo.name) {
|
||||
android.Manifest.permission.READ_CONTACTS,
|
||||
android.Manifest.permission.WRITE_CONTACTS,
|
||||
android.Manifest.permission.GET_ACCOUNTS ->
|
||||
android.Manifest.permission_group.CONTACTS
|
||||
android.Manifest.permission.READ_CALENDAR,
|
||||
android.Manifest.permission.WRITE_CALENDAR ->
|
||||
android.Manifest.permission_group.CALENDAR
|
||||
android.Manifest.permission.SEND_SMS,
|
||||
android.Manifest.permission.RECEIVE_SMS,
|
||||
android.Manifest.permission.READ_SMS,
|
||||
android.Manifest.permission.RECEIVE_MMS,
|
||||
android.Manifest.permission.RECEIVE_WAP_PUSH,
|
||||
"android.permission.READ_CELL_BROADCASTS" ->
|
||||
android.Manifest.permission_group.SMS
|
||||
android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
android.Manifest.permission.ACCESS_MEDIA_LOCATION ->
|
||||
android.Manifest.permission_group.STORAGE
|
||||
android.Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_BACKGROUND_LOCATION ->
|
||||
android.Manifest.permission_group.LOCATION
|
||||
android.Manifest.permission.READ_CALL_LOG,
|
||||
android.Manifest.permission.WRITE_CALL_LOG,
|
||||
android.Manifest.permission.READ_PHONE_STATE,
|
||||
android.Manifest.permission.READ_PHONE_NUMBERS,
|
||||
android.Manifest.permission.CALL_PHONE,
|
||||
android.Manifest.permission.ADD_VOICEMAIL,
|
||||
android.Manifest.permission.USE_SIP,
|
||||
android.Manifest.permission.ANSWER_PHONE_CALLS,
|
||||
android.Manifest.permission.ACCEPT_HANDOVER ->
|
||||
android.Manifest.permission_group.PHONE
|
||||
android.Manifest.permission.RECORD_AUDIO ->
|
||||
android.Manifest.permission_group.MICROPHONE
|
||||
android.Manifest.permission.ACTIVITY_RECOGNITION ->
|
||||
android.Manifest.permission_group.ACTIVITY_RECOGNITION
|
||||
android.Manifest.permission.CAMERA ->
|
||||
android.Manifest.permission_group.CAMERA
|
||||
android.Manifest.permission.BODY_SENSORS ->
|
||||
android.Manifest.permission_group.SENSORS
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.utility
|
||||
package com.michatec.store.utility
|
||||
|
||||
import java.io.InputStream
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.utility
|
||||
package com.michatec.store.utility
|
||||
|
||||
import android.os.CancellationSignal
|
||||
import android.os.OperationCanceledException
|
||||
+6
-6
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.utility
|
||||
package com.michatec.store.utility
|
||||
|
||||
import android.animation.ValueAnimator
|
||||
import android.annotation.SuppressLint
|
||||
@@ -8,11 +8,11 @@ import android.content.res.Configuration
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.LocaleList
|
||||
import android.provider.Settings
|
||||
import nya.kitsunyan.foxydroid.BuildConfig
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import nya.kitsunyan.foxydroid.utility.extension.text.*
|
||||
import com.michatec.store.BuildConfig
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.text.*
|
||||
import java.security.MessageDigest
|
||||
import java.security.cert.Certificate
|
||||
import java.security.cert.CertificateEncodingException
|
||||
+9
-11
@@ -1,5 +1,5 @@
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
package nya.kitsunyan.foxydroid.utility.extension.android
|
||||
package com.michatec.store.utility.extension.android
|
||||
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
@@ -25,16 +25,15 @@ val Context.notificationManager: NotificationManager
|
||||
get() = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
|
||||
val PackageInfo.versionCodeCompat: Long
|
||||
get() = if (Android.sdk(28)) longVersionCode else @Suppress("DEPRECATION") versionCode.toLong()
|
||||
get() = longVersionCode
|
||||
|
||||
val PackageInfo.singleSignature: Signature?
|
||||
get() {
|
||||
return if (Android.sdk(28)) {
|
||||
val signingInfo = signingInfo
|
||||
if (signingInfo?.hasMultipleSigners() == false) signingInfo.apkContentsSigners
|
||||
?.let { if (it.size == 1) it[0] else null } else null
|
||||
val signingInfo = signingInfo
|
||||
return if (signingInfo?.hasMultipleSigners() == false) {
|
||||
signingInfo.apkContentsSigners?.let { if (it.size == 1) it[0] else null }
|
||||
} else {
|
||||
null
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,18 +55,17 @@ object Android {
|
||||
|
||||
object PendingIntent {
|
||||
val FLAG_IMMUTABLE: Int
|
||||
get() = if (sdk(23)) android.app.PendingIntent.FLAG_IMMUTABLE else 0
|
||||
|
||||
get() = android.app.PendingIntent.FLAG_IMMUTABLE
|
||||
}
|
||||
|
||||
object PackageManager {
|
||||
val signaturesFlag: Int
|
||||
get() = (if (sdk(28)) android.content.pm.PackageManager.GET_SIGNING_CERTIFICATES else 0)
|
||||
get() = android.content.pm.PackageManager.GET_SIGNING_CERTIFICATES
|
||||
}
|
||||
|
||||
object ServiceInfo {
|
||||
val FOREGROUND_SERVICE_TYPE_DATA_SYNC: Int
|
||||
get() = if (sdk(29)) android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC else 0
|
||||
get() = android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
|
||||
}
|
||||
|
||||
object Device {
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
package nya.kitsunyan.foxydroid.utility.extension.json
|
||||
package com.michatec.store.utility.extension.json
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactory
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
package nya.kitsunyan.foxydroid.utility.extension.resources
|
||||
package com.michatec.store.utility.extension.resources
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
@@ -18,7 +18,7 @@ import androidx.core.content.ContextCompat
|
||||
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
|
||||
import com.squareup.picasso.Picasso
|
||||
import com.squareup.picasso.RequestCreator
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import com.michatec.store.utility.extension.android.*
|
||||
import org.xmlpull.v1.XmlPullParser
|
||||
import kotlin.math.*
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
@file:Suppress("PackageDirectoryMismatch")
|
||||
package nya.kitsunyan.foxydroid.utility.extension.text
|
||||
package com.michatec.store.utility.extension.text
|
||||
|
||||
import android.util.Log
|
||||
import java.util.Locale
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.text.Selection
|
||||
import android.text.Spannable
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.database.Cursor
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Canvas
|
||||
import android.graphics.Rect
|
||||
import android.view.View
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import nya.kitsunyan.foxydroid.R
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import com.michatec.store.R
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import kotlin.math.*
|
||||
|
||||
class DividerItemDecoration(context: Context, private val configure: (context: Context,
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.util.SparseArray
|
||||
import android.view.ViewGroup
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.graphics.Canvas
|
||||
import android.graphics.Rect
|
||||
@@ -7,7 +7,7 @@ import android.view.MotionEvent
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import nya.kitsunyan.foxydroid.utility.extension.resources.*
|
||||
import com.michatec.store.utility.extension.resources.*
|
||||
import kotlin.math.*
|
||||
|
||||
class RecyclerFastScroller(private val recyclerView: RecyclerView) {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package nya.kitsunyan.foxydroid.widget
|
||||
package com.michatec.store.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
@@ -1,122 +0,0 @@
|
||||
package nya.kitsunyan.foxydroid.utility
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageItemInfo
|
||||
import android.content.pm.PermissionInfo
|
||||
import android.content.res.Resources
|
||||
import nya.kitsunyan.foxydroid.utility.extension.android.*
|
||||
import java.util.Locale
|
||||
|
||||
object PackageItemResolver {
|
||||
class LocalCache {
|
||||
internal val resources = mutableMapOf<String, Resources>()
|
||||
}
|
||||
|
||||
private data class CacheKey(val locales: List<Locale>, val packageName: String, val resId: Int)
|
||||
|
||||
private val cache = mutableMapOf<CacheKey, String?>()
|
||||
|
||||
private fun load(context: Context, localCache: LocalCache, packageName: String,
|
||||
nonLocalized: CharSequence?, resId: Int): CharSequence? {
|
||||
return when {
|
||||
nonLocalized != null -> {
|
||||
nonLocalized
|
||||
}
|
||||
resId != 0 -> {
|
||||
val locales = if (Android.sdk(24)) {
|
||||
val localesList = context.resources.configuration.locales
|
||||
(0 until localesList.size()).map(localesList::get)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
listOf(context.resources.configuration.locale)
|
||||
}
|
||||
val cacheKey = CacheKey(locales, packageName, resId)
|
||||
if (cache.containsKey(cacheKey)) {
|
||||
cache[cacheKey]
|
||||
} else {
|
||||
val resources = localCache.resources[packageName] ?: run {
|
||||
val resources = try {
|
||||
val resources = context.packageManager.getResourcesForApplication(packageName)
|
||||
@Suppress("DEPRECATION")
|
||||
resources.updateConfiguration(context.resources.configuration, null)
|
||||
resources
|
||||
} catch (_: Exception) {
|
||||
null
|
||||
}
|
||||
resources?.let { localCache.resources[packageName] = it }
|
||||
resources
|
||||
}
|
||||
val label = resources?.getString(resId)
|
||||
cache[cacheKey] = label
|
||||
label
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun loadLabel(context: Context, localCache: LocalCache, packageItemInfo: PackageItemInfo): CharSequence? {
|
||||
return load(context, localCache, packageItemInfo.packageName,
|
||||
packageItemInfo.nonLocalizedLabel, packageItemInfo.labelRes)
|
||||
}
|
||||
|
||||
fun loadDescription(context: Context, localCache: LocalCache, permissionInfo: PermissionInfo): CharSequence? {
|
||||
return load(context, localCache, permissionInfo.packageName,
|
||||
permissionInfo.nonLocalizedDescription, permissionInfo.descriptionRes)
|
||||
}
|
||||
|
||||
fun getPermissionGroup(permissionInfo: PermissionInfo): String? {
|
||||
return if (Android.sdk(29)) {
|
||||
// Copied from package installer (Utils.java)
|
||||
when (permissionInfo.name) {
|
||||
android.Manifest.permission.READ_CONTACTS,
|
||||
android.Manifest.permission.WRITE_CONTACTS,
|
||||
android.Manifest.permission.GET_ACCOUNTS ->
|
||||
android.Manifest.permission_group.CONTACTS
|
||||
android.Manifest.permission.READ_CALENDAR,
|
||||
android.Manifest.permission.WRITE_CALENDAR ->
|
||||
android.Manifest.permission_group.CALENDAR
|
||||
android.Manifest.permission.SEND_SMS,
|
||||
android.Manifest.permission.RECEIVE_SMS,
|
||||
android.Manifest.permission.READ_SMS,
|
||||
android.Manifest.permission.RECEIVE_MMS,
|
||||
android.Manifest.permission.RECEIVE_WAP_PUSH,
|
||||
"android.permission.READ_CELL_BROADCASTS" ->
|
||||
android.Manifest.permission_group.SMS
|
||||
android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
android.Manifest.permission.ACCESS_MEDIA_LOCATION ->
|
||||
android.Manifest.permission_group.STORAGE
|
||||
android.Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||
android.Manifest.permission.ACCESS_BACKGROUND_LOCATION ->
|
||||
android.Manifest.permission_group.LOCATION
|
||||
android.Manifest.permission.READ_CALL_LOG,
|
||||
android.Manifest.permission.WRITE_CALL_LOG,
|
||||
@Suppress("DEPRECATION") android.Manifest.permission.PROCESS_OUTGOING_CALLS ->
|
||||
android.Manifest.permission_group.CALL_LOG
|
||||
android.Manifest.permission.READ_PHONE_STATE,
|
||||
android.Manifest.permission.READ_PHONE_NUMBERS,
|
||||
android.Manifest.permission.CALL_PHONE,
|
||||
android.Manifest.permission.ADD_VOICEMAIL,
|
||||
android.Manifest.permission.USE_SIP,
|
||||
android.Manifest.permission.ANSWER_PHONE_CALLS,
|
||||
android.Manifest.permission.ACCEPT_HANDOVER ->
|
||||
android.Manifest.permission_group.PHONE
|
||||
android.Manifest.permission.RECORD_AUDIO ->
|
||||
android.Manifest.permission_group.MICROPHONE
|
||||
android.Manifest.permission.ACTIVITY_RECOGNITION ->
|
||||
android.Manifest.permission_group.ACTIVITY_RECOGNITION
|
||||
android.Manifest.permission.CAMERA ->
|
||||
android.Manifest.permission_group.CAMERA
|
||||
android.Manifest.permission.BODY_SENSORS ->
|
||||
android.Manifest.permission_group.SENSORS
|
||||
else -> null
|
||||
}
|
||||
} else {
|
||||
permissionInfo.group
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,7 +95,7 @@
|
||||
android:fontFamily="monospace"
|
||||
android:textSize="16sp"
|
||||
android:inputType="textNoSuggestions|textMultiLine"
|
||||
tools:ignore="Autofill,LabelFor" />
|
||||
tools:ignore="Autofill,LabelFor,Speakable" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/fingerprint_error"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<nya.kitsunyan.foxydroid.widget.FragmentLinearLayout
|
||||
<com.michatec.store.widget.FragmentLinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
@@ -13,7 +13,7 @@
|
||||
android:background="?android:attr/colorPrimary"
|
||||
android:elevation="4dp">
|
||||
|
||||
<nya.kitsunyan.foxydroid.widget.Toolbar
|
||||
<com.michatec.store.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -33,4 +33,4 @@
|
||||
android:layout_weight="1"
|
||||
android:background="?android:attr/colorBackground" />
|
||||
|
||||
</nya.kitsunyan.foxydroid.widget.FragmentLinearLayout>
|
||||
</com.michatec.store.widget.FragmentLinearLayout>
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:text="@string/website"
|
||||
style="@android:style/Widget.Material.Button" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<FrameLayout
|
||||
android:id="@+id/section_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/section_change"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<string name="always">Always</string>
|
||||
<string name="anti_features">Anti-features</string>
|
||||
<string name="application">Application</string>
|
||||
<string name="application_name" translatable="false">Foxy Droid</string>
|
||||
<string name="application_name" translatable="false">Store</string>
|
||||
<string name="application_not_found">Application not found</string>
|
||||
<string name="author_email">Author email</string>
|
||||
<string name="author_website">Author website</string>
|
||||
|
||||
Reference in New Issue
Block a user