mirror of
https://github.com/sudoxnym/fdroiddata.git
synced 2026-05-18 11:49:12 +00:00
de.mm20.launcher2.release: Update
This commit is contained in:
parent
9f333be0da
commit
29ad70bbcf
2 changed files with 850 additions and 2 deletions
|
|
@ -67,6 +67,20 @@ Builds:
|
|||
- fdroid
|
||||
output: app/app/build/outputs/apk/fdroid/release/app-fdroid-release-unsigned.apk
|
||||
|
||||
- versionName: 1.27.1-fdroid
|
||||
versionCode: 2023090800
|
||||
commit: v1.27.1
|
||||
sudo:
|
||||
- apt-get update
|
||||
- apt-get install openjdk-17-jdk-headless
|
||||
- update-alternatives --auto java
|
||||
patch:
|
||||
- remove_ms_g_2023090800.patch
|
||||
gradle:
|
||||
- fdroid
|
||||
output: app/app/build/outputs/apk/fdroid/release/app-fdroid-release-unsigned.apk
|
||||
prebuild: cp libs/g-services/consumer-rules.pro libs/nextcloud/consumer-rules.pro
|
||||
|
||||
MaintainerNotes: |-
|
||||
Kvaesitso uses several external APIs for search providers.
|
||||
Several of them require signing up to obtain a developer API
|
||||
|
|
@ -104,5 +118,5 @@ MaintainerNotes: |-
|
|||
|
||||
AutoUpdateMode: None
|
||||
UpdateCheckMode: None
|
||||
CurrentVersion: 1.26.4-fdroid
|
||||
CurrentVersionCode: 2023071201
|
||||
CurrentVersion: 1.27.1-fdroid
|
||||
CurrentVersionCode: 2023090800
|
||||
|
|
|
|||
834
metadata/de.mm20.launcher2.release/remove_ms_g_2023090800.patch
Normal file
834
metadata/de.mm20.launcher2.release/remove_ms_g_2023090800.patch
Normal file
|
|
@ -0,0 +1,834 @@
|
|||
diff --git a/app/app/build.gradle.kts b/app/app/build.gradle.kts
|
||||
index 9b2cbd2b..94c92fbd 100644
|
||||
--- a/app/app/build.gradle.kts
|
||||
+++ b/app/app/build.gradle.kts
|
||||
@@ -84,11 +84,6 @@ android {
|
||||
}
|
||||
}
|
||||
}
|
||||
- configurations.all {
|
||||
- //Fixes Error: Duplicate class: com.google.common.util.concurrent.ListenableFuture
|
||||
- exclude(group = "com.google.guava", module = "listenablefuture")
|
||||
- exclude(group = "org.apache.httpcomponents", module = "httpclient")
|
||||
- }
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
@@ -142,7 +137,6 @@ dependencies {
|
||||
implementation(project(":data:searchable"))
|
||||
implementation(project(":data:themes"))
|
||||
implementation(project(":data:files"))
|
||||
- implementation(project(":libs:g-services"))
|
||||
implementation(project(":core:i18n"))
|
||||
implementation(project(":services:icons"))
|
||||
implementation(project(":core:ktx"))
|
||||
@@ -168,4 +162,4 @@ dependencies {
|
||||
|
||||
// Uncomment this if you want annoying notifications in your debug builds yelling at you how terrible your code is
|
||||
//debugImplementation(libs.leakcanary)
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/app/ui/build.gradle.kts b/app/ui/build.gradle.kts
|
||||
index 1e3a12ae..a0b58901 100644
|
||||
--- a/app/ui/build.gradle.kts
|
||||
+++ b/app/ui/build.gradle.kts
|
||||
@@ -142,7 +142,6 @@ dependencies {
|
||||
implementation(project(":data:websites"))
|
||||
implementation(project(":data:unitconverter"))
|
||||
implementation(project(":libs:nextcloud"))
|
||||
- implementation(project(":libs:g-services"))
|
||||
implementation(project(":libs:owncloud"))
|
||||
implementation(project(":services:accounts"))
|
||||
implementation(project(":services:backup"))
|
||||
@@ -150,4 +149,4 @@ dependencies {
|
||||
implementation(project(":services:global-actions"))
|
||||
implementation(project(":services:widgets"))
|
||||
implementation(project(":services:favorites"))
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/buildinfo/BuildInfoSettingsScreenVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/buildinfo/BuildInfoSettingsScreenVM.kt
|
||||
index 3e629b79..ba76be2d 100644
|
||||
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/buildinfo/BuildInfoSettingsScreenVM.kt
|
||||
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/buildinfo/BuildInfoSettingsScreenVM.kt
|
||||
@@ -15,9 +15,9 @@ class BuildInfoSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
private val availableWeatherProviders = weatherRepository.getAvailableProviders()
|
||||
|
||||
val buildFeatures = mapOf(
|
||||
- "Accounts: Google" to accountsRepository.isSupported(AccountType.Google),
|
||||
+ "Accounts: Google" to false,
|
||||
"Weather providers: HERE" to availableWeatherProviders.contains(WeatherProvider.Here),
|
||||
"Weather providers: Met No" to availableWeatherProviders.contains(WeatherProvider.MetNo),
|
||||
"Weather providers: OpenWeatherMap" to availableWeatherProviders.contains(WeatherProvider.OpenWeatherMap),
|
||||
)
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt
|
||||
index ef7ef245..dea27124 100644
|
||||
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt
|
||||
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreen.kt
|
||||
@@ -139,42 +139,7 @@ fun FileSearchSettingsScreen() {
|
||||
},
|
||||
enabled = owncloudAccount != null
|
||||
)
|
||||
-
|
||||
- if (viewModel.googleAvailable) {
|
||||
- val gdrive by viewModel.gdrive.collectAsState()
|
||||
- val googleAccount by viewModel.googleAccount
|
||||
- AnimatedVisibility(googleAccount == null) {
|
||||
- Banner(
|
||||
- text = stringResource(R.string.no_account_google),
|
||||
- icon = Icons.Rounded.AccountBox,
|
||||
- primaryAction = {
|
||||
- TextButton(onClick = {
|
||||
- viewModel.login(
|
||||
- context as AppCompatActivity,
|
||||
- AccountType.Google
|
||||
- )
|
||||
- }) {
|
||||
- Text(
|
||||
- stringResource(R.string.connect_account),
|
||||
- )
|
||||
- }
|
||||
- },
|
||||
- modifier = Modifier.padding(16.dp)
|
||||
- )
|
||||
- }
|
||||
- SwitchPreference(
|
||||
- title = stringResource(R.string.preference_search_gdrive),
|
||||
- summary = googleAccount?.let {
|
||||
- stringResource(R.string.preference_search_gdrive_summary, it.userName)
|
||||
- } ?: stringResource(R.string.preference_summary_not_logged_in),
|
||||
- value = gdrive == true && googleAccount != null,
|
||||
- onValueChanged = {
|
||||
- viewModel.setGdrive(it)
|
||||
- },
|
||||
- enabled = googleAccount != null
|
||||
- )
|
||||
- }
|
||||
}
|
||||
}
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreenVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreenVM.kt
|
||||
index af6c07d2..27a507af 100644
|
||||
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreenVM.kt
|
||||
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/filesearch/FileSearchSettingsScreenVM.kt
|
||||
@@ -28,9 +28,6 @@ class FileSearchSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
val loading = mutableStateOf(true)
|
||||
val nextcloudAccount = mutableStateOf<Account?>(null)
|
||||
val owncloudAccount = mutableStateOf<Account?>(null)
|
||||
- val googleAccount = mutableStateOf<Account?>(null)
|
||||
-
|
||||
- val googleAvailable = accountsRepository.isSupported(AccountType.Google)
|
||||
|
||||
fun onResume() {
|
||||
viewModelScope.launch {
|
||||
@@ -38,7 +35,6 @@ class FileSearchSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
accountsRepository.getCurrentlySignedInAccount(AccountType.Nextcloud)
|
||||
owncloudAccount.value =
|
||||
accountsRepository.getCurrentlySignedInAccount(AccountType.Owncloud)
|
||||
- googleAccount.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Google)
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
@@ -75,38 +71,6 @@ class FileSearchSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
}
|
||||
}
|
||||
|
||||
- val gdrive = dataStore.data.map { it.fileSearch.gdrive }
|
||||
- .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), null)
|
||||
- fun setGdrive(gdrive: Boolean) {
|
||||
- viewModelScope.launch {
|
||||
- dataStore.updateData {
|
||||
- it.toBuilder()
|
||||
- .setFileSearch(
|
||||
- it.fileSearch
|
||||
- .toBuilder()
|
||||
- .setGdrive(gdrive)
|
||||
- )
|
||||
- .build()
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- val onedrive = dataStore.data.map { it.fileSearch.onedrive }
|
||||
- .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), null)
|
||||
- fun setOneDrive(onedrive: Boolean) {
|
||||
- viewModelScope.launch {
|
||||
- dataStore.updateData {
|
||||
- it.toBuilder()
|
||||
- .setFileSearch(
|
||||
- it.fileSearch
|
||||
- .toBuilder()
|
||||
- .setOnedrive(onedrive)
|
||||
- )
|
||||
- .build()
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
val owncloud = dataStore.data.map { it.fileSearch.owncloud }
|
||||
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(), null)
|
||||
fun setOwncloud(owncloud: Boolean) {
|
||||
@@ -130,4 +94,4 @@ class FileSearchSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
fun login(context: AppCompatActivity, accountType: AccountType) {
|
||||
accountsRepository.signin(context, accountType)
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt
|
||||
index b220fa8a..26895dbd 100644
|
||||
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt
|
||||
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreen.kt
|
||||
@@ -55,8 +55,6 @@ fun IntegrationsSettingsScreen() {
|
||||
|
||||
val owncloudUser by viewModel.owncloudUser
|
||||
val nextcloudUser by viewModel.nextcloudUser
|
||||
- val msUser by viewModel.msUser
|
||||
- val googleUser by viewModel.googleUser
|
||||
|
||||
val loading by viewModel.loading
|
||||
|
||||
@@ -126,69 +124,7 @@ fun IntegrationsSettingsScreen() {
|
||||
},
|
||||
enabled = !loading,
|
||||
)
|
||||
-
|
||||
- if (viewModel.isGoogleAvailable) {
|
||||
- Preference(
|
||||
- title = if (googleUser != null) {
|
||||
- stringResource(R.string.preference_google)
|
||||
- } else {
|
||||
- stringResource(R.string.preference_google_signin)
|
||||
- },
|
||||
- summary = googleUser?.let {
|
||||
- stringResource(R.string.preference_signin_user, it.userName)
|
||||
- } ?: stringResource(R.string.preference_google_signin_summary),
|
||||
- onClick = {
|
||||
- if (googleUser != null) {
|
||||
- viewModel.signOut(AccountType.Google)
|
||||
- } else {
|
||||
- viewModel.signIn(
|
||||
- context as AppCompatActivity,
|
||||
- AccountType.Google
|
||||
- )
|
||||
- }
|
||||
- },
|
||||
- enabled = !loading,
|
||||
- )
|
||||
- }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
-@Composable
|
||||
-fun GoogleSigninButton(
|
||||
- onClick: () -> Unit,
|
||||
-) {
|
||||
- Surface(
|
||||
- modifier = Modifier.height(40.dp),
|
||||
- shadowElevation = 1.dp,
|
||||
- color = Color.White,
|
||||
- shape = RoundedCornerShape(2.dp),
|
||||
- onClick = onClick
|
||||
- ) {
|
||||
- Row(
|
||||
- verticalAlignment = Alignment.CenterVertically
|
||||
- ) {
|
||||
- Box(
|
||||
- modifier = Modifier
|
||||
- .size(40.dp)
|
||||
- .background(Color.White),
|
||||
- contentAlignment = Alignment.Center
|
||||
- ) {
|
||||
- Image(
|
||||
- modifier = Modifier.size(18.dp),
|
||||
- painter = painterResource(id = R.drawable.ic_google_g),
|
||||
- contentDescription = null
|
||||
- )
|
||||
- }
|
||||
- Text(
|
||||
- modifier = Modifier.padding(start = 13.dp, end = 8.dp),
|
||||
- text = stringResource(id = R.string.preference_google_signin),
|
||||
- fontFamily = FontFamily.SansSerif,
|
||||
- color = Color(0f, 0f, 0f, 0.54f),
|
||||
- fontSize = 14.sp,
|
||||
- fontWeight = FontWeight.Medium
|
||||
- )
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
\ No newline at end of file
|
||||
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreenVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreenVM.kt
|
||||
index 97574426..31766768 100644
|
||||
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreenVM.kt
|
||||
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/integrations/IntegrationsSettingsScreenVM.kt
|
||||
@@ -14,10 +14,6 @@ import org.koin.core.component.inject
|
||||
class IntegrationsSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
private val accountsRepository: AccountsRepository by inject()
|
||||
|
||||
- val isGoogleAvailable = accountsRepository.isSupported(AccountType.Google)
|
||||
-
|
||||
- val googleUser = mutableStateOf<Account?>(null)
|
||||
- val msUser= mutableStateOf<Account?>(null)
|
||||
val nextcloudUser = mutableStateOf<Account?>(null)
|
||||
val owncloudUser = mutableStateOf<Account?>(null)
|
||||
|
||||
@@ -26,7 +22,6 @@ class IntegrationsSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
fun onResume() {
|
||||
viewModelScope.launch {
|
||||
loading.value = true
|
||||
- googleUser.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Google)
|
||||
nextcloudUser.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Nextcloud)
|
||||
owncloudUser.value = accountsRepository.getCurrentlySignedInAccount(AccountType.Owncloud)
|
||||
loading.value = false
|
||||
@@ -40,9 +35,8 @@ class IntegrationsSettingsScreenVM : ViewModel(), KoinComponent {
|
||||
fun signOut(accountType: AccountType) {
|
||||
accountsRepository.signout(accountType)
|
||||
when(accountType){
|
||||
- AccountType.Google -> googleUser.value = null
|
||||
AccountType.Nextcloud -> nextcloudUser.value = null
|
||||
AccountType.Owncloud -> owncloudUser.value = null
|
||||
}
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index 88c84871..2d5e2b3d 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -23,7 +23,6 @@ allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
- maven(url = "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1")
|
||||
jcenter() // For tinypinyin
|
||||
}
|
||||
}
|
||||
@@ -32,4 +31,4 @@ tasks.create<Delete>("clean") {
|
||||
delete(rootProject.buildDir)
|
||||
}
|
||||
|
||||
-apply(from = "docs/deps-graph.gradle")
|
||||
\ No newline at end of file
|
||||
+apply(from = "docs/deps-graph.gradle")
|
||||
diff --git a/data/files/build.gradle.kts b/data/files/build.gradle.kts
|
||||
index 0756762d..70558bd9 100644
|
||||
--- a/data/files/build.gradle.kts
|
||||
+++ b/data/files/build.gradle.kts
|
||||
@@ -46,10 +46,9 @@ dependencies {
|
||||
|
||||
implementation(project(":core:base"))
|
||||
implementation(project(":core:ktx"))
|
||||
- implementation(project(":libs:g-services"))
|
||||
implementation(project(":libs:nextcloud"))
|
||||
implementation(project(":libs:owncloud"))
|
||||
implementation(project(":core:i18n"))
|
||||
implementation(project(":core:permissions"))
|
||||
implementation(project(":core:crashreporter"))
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt b/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt
|
||||
index f660d6b5..17cd9913 100644
|
||||
--- a/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt
|
||||
+++ b/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt
|
||||
@@ -72,127 +72,12 @@ class LocalFileDeserializer(
|
||||
return null
|
||||
}
|
||||
}
|
||||
-
|
||||
-class GDriveFileSerializer : SearchableSerializer {
|
||||
- override fun serialize(searchable: SavableSearchable): String {
|
||||
- searchable as GDriveFile
|
||||
- return jsonObjectOf(
|
||||
- "id" to searchable.fileId,
|
||||
- "label" to searchable.label,
|
||||
- "path" to searchable.path,
|
||||
- "mimeType" to searchable.mimeType,
|
||||
- "size" to searchable.size,
|
||||
- "directory" to searchable.isDirectory,
|
||||
- "color" to searchable.directoryColor,
|
||||
- "uri" to searchable.viewUri
|
||||
- ).apply {
|
||||
- for ((k, v) in searchable.metaData) {
|
||||
- put(
|
||||
- when (k) {
|
||||
- R.string.file_meta_owner -> "owner"
|
||||
- R.string.file_meta_dimensions -> "dimensions"
|
||||
- else -> "other"
|
||||
- }, v
|
||||
- )
|
||||
- }
|
||||
- }.toString()
|
||||
- }
|
||||
-
|
||||
- override val typePrefix: String
|
||||
- get() = "gdrive"
|
||||
-}
|
||||
-
|
||||
-class GDriveFileDeserializer : SearchableDeserializer {
|
||||
- override fun deserialize(serialized: String): SavableSearchable {
|
||||
- val json = JSONObject(serialized)
|
||||
- val id = json.getString("id")
|
||||
- val label = json.getString("label")
|
||||
- val path = json.getString("path")
|
||||
- val mimeType = json.getString("mimeType")
|
||||
- val size = json.getLong("size")
|
||||
- val directory = json.getBoolean("directory")
|
||||
- val color = json.optString("color")
|
||||
- val uri = json.getString("uri")
|
||||
- val owner = json.optString("owner")
|
||||
- val dimensions = json.optString("dimensions")
|
||||
- val metaData = mutableListOf<Pair<Int, String>>()
|
||||
- owner.takeIf { it.isNotEmpty() }?.let { metaData.add(R.string.file_meta_owner to it) }
|
||||
- dimensions.takeIf { it.isNotEmpty() }
|
||||
- ?.let { metaData.add(R.string.file_meta_dimensions to it) }
|
||||
- return GDriveFile(
|
||||
- fileId = id,
|
||||
- label = label,
|
||||
- path = path,
|
||||
- mimeType = mimeType,
|
||||
- size = size,
|
||||
- directoryColor = color,
|
||||
- isDirectory = directory,
|
||||
- viewUri = uri,
|
||||
- metaData = metaData
|
||||
- )
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-class OneDriveFileSerializer : SearchableSerializer {
|
||||
- override fun serialize(searchable: SavableSearchable): String {
|
||||
- searchable as OneDriveFile
|
||||
- return jsonObjectOf(
|
||||
- "id" to searchable.fileId,
|
||||
- "label" to searchable.label,
|
||||
- "mimeType" to searchable.mimeType,
|
||||
- "size" to searchable.size,
|
||||
- "directory" to searchable.isDirectory,
|
||||
- "webUrl" to searchable.webUrl
|
||||
- ).apply {
|
||||
- for ((k, v) in searchable.metaData) {
|
||||
- put(
|
||||
- when (k) {
|
||||
- R.string.file_meta_owner -> "owner"
|
||||
- R.string.file_meta_dimensions -> "dimensions"
|
||||
- else -> "other"
|
||||
- }, v
|
||||
- )
|
||||
- }
|
||||
- }.toString()
|
||||
- }
|
||||
-
|
||||
- override val typePrefix: String
|
||||
- get() = "onedrive"
|
||||
-}
|
||||
-
|
||||
-class OneDriveFileDeserializer : SearchableDeserializer {
|
||||
- override fun deserialize(serialized: String): SavableSearchable {
|
||||
- val json = JSONObject(serialized)
|
||||
- val fileId = json.getString("id")
|
||||
- val label = json.getString("label")
|
||||
- val mimeType = json.getString("mimeType")
|
||||
- val size = json.getLong("size")
|
||||
- val isDirectory = json.getBoolean("directory")
|
||||
- val webUrl = json.getString("webUrl")
|
||||
- val owner = json.optString("owner")
|
||||
- val dimensions = json.optString("dimensions")
|
||||
- val metaData = mutableListOf<Pair<Int, String>>()
|
||||
- owner.takeIf { it.isNotEmpty() }?.let { metaData.add(R.string.file_meta_owner to it) }
|
||||
- dimensions.takeIf { it.isNotEmpty() }
|
||||
- ?.let { metaData.add(R.string.file_meta_dimensions to it) }
|
||||
- return OneDriveFile(
|
||||
- fileId = fileId,
|
||||
- label = label,
|
||||
- path = "",
|
||||
- mimeType = mimeType,
|
||||
- size = size,
|
||||
- isDirectory = isDirectory,
|
||||
- metaData = metaData,
|
||||
- webUrl = webUrl
|
||||
- )
|
||||
- }
|
||||
-}
|
||||
-
|
||||
class NextcloudFileSerializer : SearchableSerializer {
|
||||
override fun serialize(searchable: SavableSearchable): String {
|
||||
searchable as NextcloudFile
|
||||
return jsonObjectOf(
|
||||
- "id" to searchable.fileId,
|
||||
+
|
||||
+ "id" to searchable.fileId,
|
||||
"label" to searchable.label,
|
||||
"path" to searchable.path,
|
||||
"mimeType" to searchable.mimeType,
|
||||
@@ -292,4 +177,4 @@ class OwncloudFileDeserializer : SearchableDeserializer {
|
||||
|
||||
)
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/data/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt b/data/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt
|
||||
index 74792735..ff930e6d 100644
|
||||
--- a/data/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt
|
||||
+++ b/data/files/src/main/java/de/mm20/launcher2/files/FilesRepository.kt
|
||||
@@ -2,7 +2,6 @@ package de.mm20.launcher2.files
|
||||
|
||||
import android.content.Context
|
||||
import de.mm20.launcher2.files.providers.FileProvider
|
||||
-import de.mm20.launcher2.files.providers.GDriveFileProvider
|
||||
import de.mm20.launcher2.files.providers.LocalFileProvider
|
||||
import de.mm20.launcher2.files.providers.NextcloudFileProvider
|
||||
import de.mm20.launcher2.files.providers.OwncloudFileProvider
|
||||
@@ -24,8 +23,6 @@ interface FileRepository {
|
||||
fun search(
|
||||
query: String,
|
||||
local: Boolean = true,
|
||||
- gdrive: Boolean = true,
|
||||
- onedrive: Boolean = true,
|
||||
nextcloud: Boolean = true,
|
||||
owncloud: Boolean = true,
|
||||
): Flow<ImmutableList<File>>
|
||||
@@ -50,8 +47,6 @@ internal class FileRepositoryImpl(
|
||||
override fun search(
|
||||
query: String,
|
||||
local: Boolean,
|
||||
- gdrive: Boolean,
|
||||
- onedrive: Boolean,
|
||||
nextcloud: Boolean,
|
||||
owncloud: Boolean
|
||||
) = channelFlow {
|
||||
@@ -63,7 +58,6 @@ internal class FileRepositoryImpl(
|
||||
val providers = mutableListOf<FileProvider>()
|
||||
|
||||
if (local) providers.add(LocalFileProvider(context, permissionsManager))
|
||||
- if (gdrive) providers.add(GDriveFileProvider(context))
|
||||
if (nextcloud) providers.add(NextcloudFileProvider(nextcloudClient))
|
||||
if (owncloud) providers.add(OwncloudFileProvider(owncloudClient))
|
||||
|
||||
@@ -85,4 +79,4 @@ internal class FileRepositoryImpl(
|
||||
}
|
||||
}
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/data/files/src/main/java/de/mm20/launcher2/files/providers/GDriveFileProvider.kt b/data/files/src/main/java/de/mm20/launcher2/files/providers/GDriveFileProvider.kt
|
||||
deleted file mode 100644
|
||||
index f6287616..00000000
|
||||
--- a/data/files/src/main/java/de/mm20/launcher2/files/providers/GDriveFileProvider.kt
|
||||
+++ /dev/null
|
||||
@@ -1,40 +0,0 @@
|
||||
-package de.mm20.launcher2.files.providers
|
||||
-
|
||||
-import android.content.Context
|
||||
-import de.mm20.launcher2.files.R
|
||||
-import de.mm20.launcher2.gservices.DriveFileMeta
|
||||
-import de.mm20.launcher2.gservices.GoogleApiHelper
|
||||
-import de.mm20.launcher2.search.data.File
|
||||
-import de.mm20.launcher2.search.data.GDriveFile
|
||||
-
|
||||
-internal class GDriveFileProvider(
|
||||
- private val context: Context
|
||||
-) : FileProvider {
|
||||
- override suspend fun search(query: String): List<File> {
|
||||
- if (query.length < 4) return emptyList()
|
||||
- val driveFiles = GoogleApiHelper.getInstance(context).queryGDriveFiles(query)
|
||||
- return driveFiles.map {
|
||||
- GDriveFile(
|
||||
- fileId = it.fileId,
|
||||
- label = it.label,
|
||||
- size = it.size,
|
||||
- mimeType = it.mimeType,
|
||||
- isDirectory = it.isDirectory,
|
||||
- path = "",
|
||||
- directoryColor = it.directoryColor,
|
||||
- viewUri = it.viewUri,
|
||||
- metaData = getMetadata(it.metadata)
|
||||
- )
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private fun getMetadata(file: DriveFileMeta): List<Pair<Int, String>> {
|
||||
- val metaData = mutableListOf<Pair<Int, String>>()
|
||||
- val owners = file.owners
|
||||
- metaData.add(R.string.file_meta_owner to owners.joinToString(separator = ", "))
|
||||
- val width = file.width ?: file.width
|
||||
- val height = file.height ?: file.height
|
||||
- if (width != null && height != null) metaData.add(R.string.file_meta_dimensions to "${width}x$height")
|
||||
- return metaData
|
||||
- }
|
||||
-}
|
||||
\ No newline at end of file
|
||||
diff --git a/data/searchable/src/main/java/de/mm20/launcher2/searchable/Serialization.kt b/data/searchable/src/main/java/de/mm20/launcher2/searchable/Serialization.kt
|
||||
index cac42fd1..8152f94f 100644
|
||||
--- a/data/searchable/src/main/java/de/mm20/launcher2/searchable/Serialization.kt
|
||||
+++ b/data/searchable/src/main/java/de/mm20/launcher2/searchable/Serialization.kt
|
||||
@@ -46,12 +46,6 @@ internal fun getSerializer(searchable: Searchable?): SearchableSerializer {
|
||||
if (searchable is Wikipedia) {
|
||||
return WikipediaSerializer()
|
||||
}
|
||||
- if (searchable is GDriveFile) {
|
||||
- return GDriveFileSerializer()
|
||||
- }
|
||||
- if (searchable is OneDriveFile) {
|
||||
- return OneDriveFileSerializer()
|
||||
- }
|
||||
if (searchable is OwncloudFile) {
|
||||
return OwncloudFileSerializer()
|
||||
}
|
||||
@@ -89,12 +83,6 @@ internal fun getDeserializer(context: Context, type: String): SearchableDeserial
|
||||
if (type == Wikipedia.Domain) {
|
||||
return WikipediaDeserializer(context)
|
||||
}
|
||||
- if (type == GDriveFile.Domain) {
|
||||
- return GDriveFileDeserializer()
|
||||
- }
|
||||
- if (type == OneDriveFile.Domain) {
|
||||
- return OneDriveFileDeserializer()
|
||||
- }
|
||||
if (type == NextcloudFile.Domain) {
|
||||
return NextcloudFileDeserializer()
|
||||
}
|
||||
@@ -111,4 +99,4 @@ internal fun getDeserializer(context: Context, type: String): SearchableDeserial
|
||||
return TagDeserializer()
|
||||
}
|
||||
return NullDeserializer()
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/gradle.properties b/gradle.properties
|
||||
index 3d58091d..3e8be796 100644
|
||||
--- a/gradle.properties
|
||||
+++ b/gradle.properties
|
||||
@@ -6,7 +6,7 @@
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
-org.gradle.jvmargs=-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
+org.gradle.jvmargs=-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
diff --git a/services/accounts/build.gradle.kts b/services/accounts/build.gradle.kts
|
||||
index a4b614f2..0f24031c 100644
|
||||
--- a/services/accounts/build.gradle.kts
|
||||
+++ b/services/accounts/build.gradle.kts
|
||||
@@ -40,8 +40,7 @@ dependencies {
|
||||
|
||||
implementation(libs.koin.android)
|
||||
|
||||
- implementation(project(":libs:g-services"))
|
||||
implementation(project(":libs:owncloud"))
|
||||
implementation(project(":libs:nextcloud"))
|
||||
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountType.kt b/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountType.kt
|
||||
index bef71441..615a3c7b 100644
|
||||
--- a/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountType.kt
|
||||
+++ b/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountType.kt
|
||||
@@ -1,7 +1,6 @@
|
||||
package de.mm20.launcher2.accounts
|
||||
|
||||
enum class AccountType {
|
||||
- Google,
|
||||
Nextcloud,
|
||||
Owncloud,
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountsRepository.kt b/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountsRepository.kt
|
||||
index aeb5d079..8420d957 100644
|
||||
--- a/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountsRepository.kt
|
||||
+++ b/services/accounts/src/main/java/de/mm20/launcher2/accounts/AccountsRepository.kt
|
||||
@@ -2,7 +2,6 @@ package de.mm20.launcher2.accounts
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
-import de.mm20.launcher2.gservices.GoogleApiHelper
|
||||
import de.mm20.launcher2.nextcloud.NextcloudApiHelper
|
||||
import de.mm20.launcher2.owncloud.OwncloudClient
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -27,17 +26,11 @@ internal class AccountsRepositoryImpl(
|
||||
) : AccountsRepository {
|
||||
private val scope = CoroutineScope(Job() + Dispatchers.Default)
|
||||
|
||||
- private val googleApiHelper = GoogleApiHelper.getInstance(context)
|
||||
private val nextcloudApiHelper = NextcloudApiHelper(context)
|
||||
private val owncloudApiHelper = OwncloudClient(context)
|
||||
|
||||
override fun signin(context: Activity, accountType: AccountType) {
|
||||
when (accountType) {
|
||||
- AccountType.Google -> {
|
||||
- scope.launch {
|
||||
- googleApiHelper.login(context)
|
||||
- }
|
||||
- }
|
||||
AccountType.Nextcloud ->
|
||||
scope.launch {
|
||||
nextcloudApiHelper.login(context)
|
||||
@@ -51,9 +44,6 @@ internal class AccountsRepositoryImpl(
|
||||
|
||||
override fun signout(accountType: AccountType) {
|
||||
when (accountType) {
|
||||
- AccountType.Google -> {
|
||||
- googleApiHelper.logout()
|
||||
- }
|
||||
AccountType.Nextcloud -> {
|
||||
scope.launch {
|
||||
nextcloudApiHelper.logout()
|
||||
@@ -67,7 +57,6 @@ internal class AccountsRepositoryImpl(
|
||||
|
||||
override fun isSupported(accountType: AccountType): Boolean {
|
||||
return when (accountType) {
|
||||
- AccountType.Google -> googleApiHelper.isAvailable()
|
||||
AccountType.Nextcloud -> true
|
||||
AccountType.Owncloud -> true
|
||||
}
|
||||
@@ -75,9 +64,6 @@ internal class AccountsRepositoryImpl(
|
||||
|
||||
override suspend fun getCurrentlySignedInAccount(accountType: AccountType): Account? {
|
||||
return when (accountType) {
|
||||
- AccountType.Google -> {
|
||||
- getGoogleAccount()
|
||||
- }
|
||||
AccountType.Nextcloud -> {
|
||||
getNextcloudAccount()
|
||||
}
|
||||
@@ -87,19 +73,6 @@ internal class AccountsRepositoryImpl(
|
||||
}
|
||||
}
|
||||
|
||||
- private suspend fun getGoogleAccount(): Account? {
|
||||
- return googleApiHelper.getAccount()?.let {
|
||||
- Account(it.name, AccountType.Google)
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private suspend fun getMicrosoftAccount(): Account? {
|
||||
- return null
|
||||
- /*return msGraphApiHelper.getUser()?.let {
|
||||
- Account(it.name, AccountType.Microsoft)
|
||||
- }*/
|
||||
- }
|
||||
-
|
||||
private suspend fun getNextcloudAccount(): Account? {
|
||||
return nextcloudApiHelper.getLoggedInUser()?.let {
|
||||
Account(it.displayName, AccountType.Nextcloud)
|
||||
@@ -112,4 +85,4 @@ internal class AccountsRepositoryImpl(
|
||||
}
|
||||
}
|
||||
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/services/search/src/main/java/de/mm20/launcher2/search/SearchService.kt b/services/search/src/main/java/de/mm20/launcher2/search/SearchService.kt
|
||||
index bb31f870..10ef0cb2 100644
|
||||
--- a/services/search/src/main/java/de/mm20/launcher2/search/SearchService.kt
|
||||
+++ b/services/search/src/main/java/de/mm20/launcher2/search/SearchService.kt
|
||||
@@ -22,11 +22,9 @@ import de.mm20.launcher2.search.data.Calculator
|
||||
import de.mm20.launcher2.search.data.CalendarEvent
|
||||
import de.mm20.launcher2.search.data.Contact
|
||||
import de.mm20.launcher2.search.data.File
|
||||
-import de.mm20.launcher2.search.data.GDriveFile
|
||||
import de.mm20.launcher2.search.data.LauncherApp
|
||||
import de.mm20.launcher2.search.data.LocalFile
|
||||
import de.mm20.launcher2.search.data.NextcloudFile
|
||||
-import de.mm20.launcher2.search.data.OneDriveFile
|
||||
import de.mm20.launcher2.search.data.OwncloudFile
|
||||
import de.mm20.launcher2.search.data.UnitConverter
|
||||
import de.mm20.launcher2.search.data.Website
|
||||
@@ -63,8 +61,6 @@ interface SearchService {
|
||||
.build(),
|
||||
files: FilesSearchSettings = Settings.FilesSearchSettings.newBuilder()
|
||||
.setLocalFiles(false)
|
||||
- .setGdrive(false)
|
||||
- .setOnedrive(false)
|
||||
.setOwncloud(false)
|
||||
.setNextcloud(false)
|
||||
.build(),
|
||||
@@ -206,15 +202,13 @@ internal class SearchServiceImpl(
|
||||
}
|
||||
}
|
||||
}
|
||||
- if (files.localFiles || files.owncloud || files.onedrive || files.gdrive || files.nextcloud) {
|
||||
+ if (files.localFiles || files.owncloud || files.nextcloud) {
|
||||
launch {
|
||||
fileRepository.search(
|
||||
query,
|
||||
local = files.localFiles,
|
||||
nextcloud = files.nextcloud,
|
||||
owncloud = files.owncloud,
|
||||
- onedrive = files.onedrive,
|
||||
- gdrive = files.gdrive,
|
||||
)
|
||||
.withCustomLabels(customAttributesRepository)
|
||||
.collectLatest { r ->
|
||||
@@ -237,8 +231,6 @@ internal class SearchServiceImpl(
|
||||
files.localFiles && it is LocalFile ||
|
||||
files.nextcloud && it is NextcloudFile ||
|
||||
files.owncloud && it is OwncloudFile ||
|
||||
- files.onedrive && it is OneDriveFile ||
|
||||
- files.gdrive && it is GDriveFile ||
|
||||
wikipedia.enabled && it is Wikipedia ||
|
||||
websites.enabled && it is Website ||
|
||||
calendars.enabled && it is CalendarEvent ||
|
||||
@@ -284,4 +276,4 @@ fun SearchResults.toList(): List<Searchable> {
|
||||
searchActions,
|
||||
other,
|
||||
).flatten()
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/settings.gradle.kts b/settings.gradle.kts
|
||||
index ff92bab2..8f2237a3 100644
|
||||
--- a/settings.gradle.kts
|
||||
+++ b/settings.gradle.kts
|
||||
@@ -197,26 +197,12 @@ dependencyResolutionManagement {
|
||||
library("mathparser", "org.mariuszgromada.math", "MathParser.org-mXparser")
|
||||
.version("4.4.2")
|
||||
|
||||
- library("google.auth", "com.google.auth", "google-auth-library-oauth2-http")
|
||||
- .version("1.14.0")
|
||||
- library("google.apiclient", "com.google.api-client", "google-api-client")
|
||||
- .version("2.1.2")
|
||||
- library("google.drive", "com.google.apis", "google-api-services-drive")
|
||||
- .version("v3-rev20221219-2.0.0")
|
||||
- library("google.oauth2", "com.google.apis", "google-api-services-oauth2")
|
||||
- .version("v2-rev20200213-2.0.0")
|
||||
-
|
||||
library("gson", "com.google.code.gson", "gson")
|
||||
.version("2.10.1")
|
||||
|
||||
library("guava", "com.google.guava", "guava")
|
||||
.version("31.1-android")
|
||||
|
||||
- library("microsoft.graph", "com.microsoft.graph", "microsoft-graph")
|
||||
- .version("5.53.0")
|
||||
- library("microsoft.identity", "com.microsoft.identity.client", "msal")
|
||||
- .version("4.2.0")
|
||||
-
|
||||
version("protobuf", "3.14.0")
|
||||
library("protobuf.protoc", "com.google.protobuf", "protoc")
|
||||
.versionRef("protobuf")
|
||||
@@ -285,8 +271,6 @@ include(":libs:material-color-utilities")
|
||||
include(":libs:nextcloud")
|
||||
include(":libs:owncloud")
|
||||
include(":libs:webdav")
|
||||
-include(":libs:g-services")
|
||||
-include(":libs:ms-services")
|
||||
include(":services:global-actions")
|
||||
include(":services:widgets")
|
||||
include(":services:favorites")
|
||||
Loading…
Reference in a new issue