diff --git a/android/Omnivore/README.md b/android/Omnivore/README.md index cd631fb4f..7f60a883f 100644 --- a/android/Omnivore/README.md +++ b/android/Omnivore/README.md @@ -1,5 +1,12 @@ # Omnivore - Android +## Setup with gradle + +In case you do not have Android Studio and you do not want to install it, you may want to use gradlew scripts to build the application. + +`./gradlew assembleDebug` should create `./app/build/outputs/apk/debug/app-debug.apk` + + ## Setup From the root directory run the following command: diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/editinfo/EditInfoViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/editinfo/EditInfoViewModel.kt index bcd64b9fc..08c7d0db9 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/editinfo/EditInfoViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/editinfo/EditInfoViewModel.kt @@ -10,6 +10,7 @@ import app.omnivore.omnivore.R import app.omnivore.omnivore.core.data.DataService import app.omnivore.omnivore.core.datastore.DatastoreRepository import app.omnivore.omnivore.core.datastore.omnivoreAuthToken +import app.omnivore.omnivore.core.datastore.omnivoreSelfHostedApiServer import app.omnivore.omnivore.graphql.generated.UpdatePageMutation import app.omnivore.omnivore.graphql.generated.type.UpdatePageInput import app.omnivore.omnivore.utils.Constants @@ -48,6 +49,12 @@ class EditInfoViewModel @Inject constructor( datastoreRepo.getString(omnivoreAuthToken) } + fun baseUrl() = runBlocking { + datastoreRepo.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL + } + + private fun serverUrl() = "${baseUrl()}/api/graphql" + fun editInfo(itemId: String, title: String, author: String?, description: String?) { viewModelScope.launch { isLoading = true @@ -62,7 +69,7 @@ class EditInfoViewModel @Inject constructor( } val apolloClient = ApolloClient.Builder() - .serverUrl("${Constants.apiURL}/api/graphql") + .serverUrl(serverUrl()) .addHttpHeader("Authorization", value = authToken) .build() diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/onboarding/OnboardingViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/onboarding/OnboardingViewModel.kt index 5887807ff..939db5446 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/onboarding/OnboardingViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/onboarding/OnboardingViewModel.kt @@ -176,6 +176,12 @@ class OnboardingViewModel @Inject constructor( resetPendingEmailUserCreds() } + fun baseUrl() = runBlocking { + datastoreRepository.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL + } + + private fun serverUrl() = "${baseUrl()}/api/graphql" + fun validateUsername(potentialUsername: String) { validateUsernameJob?.cancel() @@ -209,7 +215,7 @@ class OnboardingViewModel @Inject constructor( } val apolloClient = - ApolloClient.Builder().serverUrl("${Constants.apiURL}/api/graphql").build() + ApolloClient.Builder().serverUrl(serverUrl()).build() try { val response = apolloClient.query( diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveURLWorker.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveURLWorker.kt index fbf869e58..25d077820 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveURLWorker.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveURLWorker.kt @@ -16,6 +16,7 @@ import androidx.work.WorkerParameters import app.omnivore.omnivore.R import app.omnivore.omnivore.core.datastore.DatastoreRepository import app.omnivore.omnivore.core.datastore.omnivoreAuthToken +import app.omnivore.omnivore.core.datastore.omnivoreSelfHostedApiServer import app.omnivore.omnivore.graphql.generated.SaveUrlMutation import app.omnivore.omnivore.graphql.generated.type.SaveUrlInput import app.omnivore.omnivore.utils.Constants @@ -59,11 +60,16 @@ class SaveURLWorker @AssistedInject constructor( } } + suspend fun baseUrl() = + datastoreRepository.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL + + private suspend fun serverUrl() = "${baseUrl()}/api/graphql" + private suspend fun saveURL(url: String): Boolean { val authToken = datastoreRepository.getString(omnivoreAuthToken) ?: return false val apolloClient = ApolloClient.Builder() - .serverUrl("${Constants.apiURL}/api/graphql") + .serverUrl(serverUrl()) .addHttpHeader("Authorization", value = authToken) .build() diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveViewModel.kt index b708c8b04..2bbbb8a3d 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/save/SaveViewModel.kt @@ -11,6 +11,7 @@ import androidx.lifecycle.viewModelScope import app.omnivore.omnivore.R import app.omnivore.omnivore.core.datastore.DatastoreRepository import app.omnivore.omnivore.core.datastore.omnivoreAuthToken +import app.omnivore.omnivore.core.datastore.omnivoreSelfHostedApiServer import app.omnivore.omnivore.graphql.generated.SaveUrlMutation import app.omnivore.omnivore.graphql.generated.type.SaveUrlInput import app.omnivore.omnivore.utils.Constants @@ -71,6 +72,12 @@ class SaveViewModel @Inject constructor( return null } + fun baseUrl() = runBlocking { + datastoreRepo.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL + } + + private fun serverUrl() = "${baseUrl()}/api/graphql" + fun saveURL(url: String) { viewModelScope.launch { isLoading = true @@ -86,7 +93,7 @@ class SaveViewModel @Inject constructor( } val apolloClient = ApolloClient.Builder() - .serverUrl("${Constants.apiURL}/api/graphql") + .serverUrl(serverUrl()) .addHttpHeader("Authorization", value = authToken) .build()