From 4f3db06db54fca9a6c0364edcc70e0883b081ed6 Mon Sep 17 00:00:00 2001 From: Erfan Abdi Date: Thu, 19 Nov 2020 01:26:34 +0330 Subject: [PATCH 1/5] Add force enabled backends array * For easy use on adding default backends as overlay or rro --- .../nlp/client/UnifiedLocationClient.kt | 2 ++ client/src/main/res/values/arrays.xml | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 client/src/main/res/values/arrays.xml diff --git a/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt b/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt index e4c9340..e923acc 100644 --- a/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt +++ b/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt @@ -451,6 +451,8 @@ class UnifiedLocationClient(private val context: Context, private val lifecycle: } catch (e: Exception) { Log.w(TAG, "Failed to register location callback", e) } + context.get()?.resources?.getStringArray(R.array.force_location_backends)?.let { setLocationBackends(it + getLocationBackends()) } + context.get()?.resources?.getStringArray(R.array.force_geocoder_backends)?.let { setGeocoderBackends(it + getGeocoderBackends()) } updateServiceInterval() if (continuations.size > 0) { Log.d(TAG, "Resuming ${continuations.size} continuations") diff --git a/client/src/main/res/values/arrays.xml b/client/src/main/res/values/arrays.xml new file mode 100644 index 0000000..d71add4 --- /dev/null +++ b/client/src/main/res/values/arrays.xml @@ -0,0 +1,24 @@ + + + + + + + + + + From 1274a311d8fdc7a0efa3bb03f4f10d5a976792e3 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 2 Jun 2022 21:12:49 -0400 Subject: [PATCH 2/5] Revert "Add force enabled backends array" This reverts commit 4f3db06db54fca9a6c0364edcc70e0883b081ed6. --- .../nlp/client/UnifiedLocationClient.kt | 2 -- client/src/main/res/values/arrays.xml | 24 ------------------- 2 files changed, 26 deletions(-) delete mode 100644 client/src/main/res/values/arrays.xml diff --git a/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt b/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt index e923acc..e4c9340 100644 --- a/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt +++ b/client/src/main/kotlin/org/microg/nlp/client/UnifiedLocationClient.kt @@ -451,8 +451,6 @@ class UnifiedLocationClient(private val context: Context, private val lifecycle: } catch (e: Exception) { Log.w(TAG, "Failed to register location callback", e) } - context.get()?.resources?.getStringArray(R.array.force_location_backends)?.let { setLocationBackends(it + getLocationBackends()) } - context.get()?.resources?.getStringArray(R.array.force_geocoder_backends)?.let { setGeocoderBackends(it + getGeocoderBackends()) } updateServiceInterval() if (continuations.size > 0) { Log.d(TAG, "Resuming ${continuations.size} continuations") diff --git a/client/src/main/res/values/arrays.xml b/client/src/main/res/values/arrays.xml deleted file mode 100644 index d71add4..0000000 --- a/client/src/main/res/values/arrays.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - From 0bb25e70ec9167856a0cb26cc723c0d8d52e772e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 2 Jun 2022 21:49:31 -0400 Subject: [PATCH 3/5] app: Fix build --- app/build.gradle | 13 ++++----- .../app/tools/selfcheck/NlpStatusChecks.java | 28 +++++++++++-------- .../org/microg/nlp/app/SettingsFragment.kt | 5 ++-- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e430284..a17a449 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,6 +45,7 @@ android { sourceSets { main.java.srcDirs += 'src/main/kotlin' + main.java.srcDirs += 'src/main/java' } flavorDimensions 'default' @@ -64,6 +65,10 @@ android { } } + android.applicationVariants.all { variant -> + variant.resValue 'string', 'application_id', variant.applicationId + } + compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 @@ -78,8 +83,6 @@ android { } } -apply from: "../gradle/androidJars.gradle" - dependencies { implementation project(':api') implementation project(':geocode-v1') @@ -103,9 +106,3 @@ dependencies { implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion" implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion" } - -afterEvaluate { - android.applicationVariants.all { variant -> - variant.resValue 'string', 'application_id', variant.applicationId - } -} diff --git a/app/src/main/java/org/microg/nlp/app/tools/selfcheck/NlpStatusChecks.java b/app/src/main/java/org/microg/nlp/app/tools/selfcheck/NlpStatusChecks.java index 149c65c..f852b6c 100644 --- a/app/src/main/java/org/microg/nlp/app/tools/selfcheck/NlpStatusChecks.java +++ b/app/src/main/java/org/microg/nlp/app/tools/selfcheck/NlpStatusChecks.java @@ -23,19 +23,19 @@ import android.location.LocationManager; import android.os.Bundle; import android.text.TextUtils; +import androidx.lifecycle.LifecycleOwner; + import org.microg.nlp.app.R; -import org.microg.nlp.client.UnifiedLocationClient; +import org.microg.nlp.client.LocationClient; import java.util.concurrent.atomic.AtomicBoolean; import static android.content.Context.LOCATION_SERVICE; import static android.location.LocationManager.NETWORK_PROVIDER; import static org.microg.nlp.api.Constants.LOCATION_EXTRA_BACKEND_COMPONENT; -import static org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result.Negative; -import static org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result.Positive; -import static org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result.Unknown; +import org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result; -public class NlpStatusChecks implements SelfCheckGroup { +public class NlpStatusChecks implements org.microg.nlp.app.tools.selfcheck.SelfCheckGroup { @Override public String getGroupName(Context context) { return context.getString(R.string.self_check_cat_nlp_status); @@ -50,17 +50,21 @@ public class NlpStatusChecks implements SelfCheckGroup { } } + private LocationClient getLocationClient(Context context) { + return new LocationClient(context, ((LifecycleOwner) context).getLifecycle()); + } + private boolean providerWasBound(Context context, ResultCollector collector) { collector.addResult(context.getString(R.string.self_check_name_nlp_bound), - UnifiedLocationClient.get(context).isAvailable() ? Positive : Negative, context.getString(R.string.self_check_resolution_nlp_bound)); - return UnifiedLocationClient.get(context).isAvailable(); + getLocationClient(context).isAvailable() ? Result.Positive : Result.Negative, context.getString(R.string.self_check_resolution_nlp_bound)); + return getLocationClient(context).isAvailable(); } private boolean isNetworkLocationEnabled(Context context, ResultCollector collector) { LocationManager locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE); boolean networkEnabled = locationManager.getProviders(true).contains(NETWORK_PROVIDER); collector.addResult(context.getString(R.string.self_check_name_network_enabled), - networkEnabled ? Positive : Negative, context.getString(R.string.self_check_resolution_network_enabled)); + networkEnabled ? Result.Positive : Result.Negative, context.getString(R.string.self_check_resolution_network_enabled)); return networkEnabled; } @@ -71,10 +75,10 @@ public class NlpStatusChecks implements SelfCheckGroup { boolean hasKnown = location != null && location.getExtras() != null && location.getExtras().containsKey(LOCATION_EXTRA_BACKEND_COMPONENT); collector.addResult(context.getString(R.string.self_check_name_last_location), - hasKnown ? Positive : Unknown, context.getString(R.string.self_check_resolution_last_location)); + hasKnown ? Result.Positive : Result.Unknown, context.getString(R.string.self_check_resolution_last_location)); return hasKnown; } catch (SecurityException e) { - collector.addResult(context.getString(R.string.self_check_name_last_location), Unknown, context.getString(R.string.self_check_loc_perm_missing)); + collector.addResult(context.getString(R.string.self_check_name_last_location), Result.Unknown, context.getString(R.string.self_check_loc_perm_missing)); return false; } } @@ -91,7 +95,7 @@ public class NlpStatusChecks implements SelfCheckGroup { } catch (InterruptedException e) { } collector.addResult(context.getString(R.string.self_check_name_nlp_is_providing), - result.get() ? Positive : Unknown, context.getString(R.string.self_check_resolution_nlp_is_providing)); + result.get() ? Result.Positive : Result.Unknown, context.getString(R.string.self_check_resolution_nlp_is_providing)); } } }).start(); @@ -119,7 +123,7 @@ public class NlpStatusChecks implements SelfCheckGroup { } }, null); } catch (SecurityException e) { - collector.addResult(context.getString(R.string.self_check_name_last_location), Unknown, context.getString(R.string.self_check_loc_perm_missing)); + collector.addResult(context.getString(R.string.self_check_name_last_location), Result.Unknown, context.getString(R.string.self_check_loc_perm_missing)); } } } diff --git a/app/src/main/kotlin/org/microg/nlp/app/SettingsFragment.kt b/app/src/main/kotlin/org/microg/nlp/app/SettingsFragment.kt index ede1a49..4210b4f 100644 --- a/app/src/main/kotlin/org/microg/nlp/app/SettingsFragment.kt +++ b/app/src/main/kotlin/org/microg/nlp/app/SettingsFragment.kt @@ -9,7 +9,8 @@ import android.os.Bundle import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.preference.Preference -import org.microg.nlp.client.UnifiedLocationClient +import org.microg.nlp.client.LocationClient +import org.microg.nlp.client.GeocodeClient import org.microg.nlp.app.tools.ui.ResourceSettingsFragment import org.microg.nlp.ui.navigate @@ -35,7 +36,7 @@ class SettingsFragment : ResourceSettingsFragment() { } private suspend fun updateDetails() { - val backendCount = UnifiedLocationClient[requireContext()].getLocationBackends().size + UnifiedLocationClient[requireContext()].getGeocoderBackends().size + val backendCount = LocationClient(requireContext(), lifecycle).getLocationBackends().size + GeocodeClient(requireContext(), lifecycle).getGeocodeBackends().size findPreference(PREF_UNIFIEDNLP)!!.summary = resources.getQuantityString(R.plurals.pref_unifiednlp_summary, backendCount, backendCount); } From 0e9fce1ffdc4e1b8ce217b56f377707c613a4ea1 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 2 Jun 2022 22:58:41 -0400 Subject: [PATCH 4/5] app: Add ACCESS_BACKGROUND_LOCATION permission Needed for binding to backends when we are in the background. --- app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d005eb9..0f87c4f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,7 @@ xmlns:tools="http://schemas.android.com/tools" package="org.microg.nlp.app"> + Date: Thu, 2 Jun 2022 22:59:22 -0400 Subject: [PATCH 5/5] Update .gitignore for Android Studio build outputs --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d6d5aa8..9fe7fca 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ user.gradle local.properties .idea/ BuildConfig.java +app/UnifiedNlp