Update Kvaesitso to 1.26.4

This commit is contained in:
jugendhacker 2023-07-12 21:56:05 +00:00
parent da701a540d
commit 555e8bda2c
17 changed files with 836 additions and 46 deletions

View file

@ -1,6 +1,8 @@
AntiFeatures:
- NonFreeNet
- UpstreamNonFree
NonFreeNet:
en-US: App uses a third party service for currency exchange rates
UpstreamNonFree:
en-US: Google drive integration depends on libraries with non-free dependencies.
Categories:
- System
- Theming
@ -11,33 +13,6 @@ SourceCode: https://github.com/MM2-0/Kvaesitso
IssueTracker: https://github.com/MM2-0/Kvaesitso/issues
Donate: https://github.com/sponsors/MM2-0
Description: |-
Kvæsitso is a launcher application for Android
which replaces the device's default home screen.
It has been built from scratch, meaning it is not
based on the AOSP launcher (like many other third
party launchers) nor does it try to recreate this
launcher. Instead, Kvæsitso follows its own concepts.
The main feature is a global search which does not
only let you search on device for apps, contacts, and
calendar events, but also on web services like
Wikipedia or your Nextcloud Instance. Additionally it
includes some useful tools, for example a calculator
and a unit converter. You are looking for a document
or an information? Just search for it and Kvæsitso shows
you the fastest way to it.
F-Droid build has the following changes:
* Disabled OneDrive, GDrive and weather integration;
* F-Droid version uses a different versionCode.
Antifeatures:
* NonFreeNet: app uses a third party service for currency
exchange rates;
* UpstreamNonFree: google drive integration depends on
libraries with non-free dependencies.
RepoType: git
Repo: https://github.com/MM2-0/Kvaesitso
@ -83,6 +58,15 @@ Builds:
- fdroid
output: app/app/build/outputs/apk/fdroid/release/app-fdroid-release-unsigned.apk
- versionName: 1.26.4-fdroid
versionCode: 2023071201
commit: v1.26.4
patch:
- remove_ms_g_2023071201.patch
gradle:
- fdroid
output: app/app/build/outputs/apk/fdroid/release/app-fdroid-release-unsigned.apk
MaintainerNotes: |-
Kvaesitso uses several external APIs for search providers.
Several of them require signing up to obtain a developer API
@ -120,5 +104,5 @@ MaintainerNotes: |-
AutoUpdateMode: None
UpdateCheckMode: None
CurrentVersion: 1.25.0-fdroid
CurrentVersionCode: 2023051600
CurrentVersion: 1.26.4-fdroid
CurrentVersionCode: 2023071201

View file

@ -1 +0,0 @@
Launcher zaměřený na vyhledávání

View file

@ -1 +0,0 @@
Auf Suche fokussierter Launcher

View file

@ -1 +0,0 @@
Search focused launcher

View file

@ -1 +0,0 @@
Lanceur d'application axé sur la recherche

View file

@ -1 +0,0 @@
חיפוש במשגר ממוקד

View file

@ -1 +0,0 @@
Launcher skoncentrowany na wyszukiwaniu

View file

@ -1 +0,0 @@
Launcher focado em pesquisa

View file

@ -1 +0,0 @@
Lançador focado em pesquisa

View file

@ -1 +0,0 @@
Lançador focado em pesquisa

View file

@ -0,0 +1,821 @@
diff --git a/app/app/build.gradle.kts b/app/app/build.gradle.kts
index c6e24092..460cd7ee 100644
--- a/app/app/build.gradle.kts
+++ b/app/app/build.gradle.kts
@@ -74,11 +74,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
@@ -131,7 +126,6 @@ dependencies {
implementation(project(":data:customattrs"))
implementation(project(":data:searchable"))
implementation(project(":data:files"))
- implementation(project(":libs:g-services"))
implementation(project(":core:i18n"))
implementation(project(":services:icons"))
implementation(project(":core:ktx"))
@@ -157,4 +151,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 3d41646f..c3ac9b5f 100644
--- a/app/ui/build.gradle.kts
+++ b/app/ui/build.gradle.kts
@@ -139,7 +139,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"))
@@ -147,4 +146,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 48481b37..9d9bbebd 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -21,7 +21,6 @@ allprojects {
repositories {
google()
mavenCentral()
- maven(url = "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1")
jcenter() // For tinypinyin
}
}
@@ -30,4 +29,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/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 1fe9dbdb..05b6e9ed 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -200,26 +200,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")
@@ -284,8 +270,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")

View file

@ -1 +0,0 @@
Lansator axat pe căutare

View file

@ -1 +0,0 @@
Поиск сфокусированный на лаунчере

View file

@ -1 +0,0 @@
Kizinduzi kinacholenga utafutaji

View file

@ -1 +0,0 @@
Arama odaklı başlatıcı

View file

@ -1 +0,0 @@
Сфокусована на пошуку панель запуску

View file

@ -1 +0,0 @@
聚焦搜索的启动器