Compare commits
5 commits
1c678b4908
...
c56c69a5a7
Author | SHA1 | Date | |
---|---|---|---|
Peter Cai | c56c69a5a7 | ||
Peter Cai | 0e9fce1ffd | ||
Peter Cai | 0bb25e70ec | ||
Peter Cai | 1274a311d8 | ||
4f3db06db5 |
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -10,3 +10,4 @@ user.gradle
|
||||||
local.properties
|
local.properties
|
||||||
.idea/
|
.idea/
|
||||||
BuildConfig.java
|
BuildConfig.java
|
||||||
|
app/UnifiedNlp
|
||||||
|
|
|
@ -45,6 +45,7 @@ android {
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main.java.srcDirs += 'src/main/kotlin'
|
main.java.srcDirs += 'src/main/kotlin'
|
||||||
|
main.java.srcDirs += 'src/main/java'
|
||||||
}
|
}
|
||||||
|
|
||||||
flavorDimensions 'default'
|
flavorDimensions 'default'
|
||||||
|
@ -64,6 +65,10 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
android.applicationVariants.all { variant ->
|
||||||
|
variant.resValue 'string', 'application_id', variant.applicationId
|
||||||
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = 1.8
|
sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
|
@ -78,8 +83,6 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "../gradle/androidJars.gradle"
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':api')
|
implementation project(':api')
|
||||||
implementation project(':geocode-v1')
|
implementation project(':geocode-v1')
|
||||||
|
@ -103,9 +106,3 @@ dependencies {
|
||||||
implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
|
implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
|
||||||
implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion"
|
implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEvaluate {
|
|
||||||
android.applicationVariants.all { variant ->
|
|
||||||
variant.resValue 'string', 'application_id', variant.applicationId
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="org.microg.nlp.app">
|
package="org.microg.nlp.app">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
|
|
|
@ -23,19 +23,19 @@ import android.location.LocationManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
|
|
||||||
import org.microg.nlp.app.R;
|
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 java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import static android.content.Context.LOCATION_SERVICE;
|
import static android.content.Context.LOCATION_SERVICE;
|
||||||
import static android.location.LocationManager.NETWORK_PROVIDER;
|
import static android.location.LocationManager.NETWORK_PROVIDER;
|
||||||
import static org.microg.nlp.api.Constants.LOCATION_EXTRA_BACKEND_COMPONENT;
|
import static org.microg.nlp.api.Constants.LOCATION_EXTRA_BACKEND_COMPONENT;
|
||||||
import static org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result.Negative;
|
import org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result;
|
||||||
import static org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result.Positive;
|
|
||||||
import static org.microg.nlp.app.tools.selfcheck.SelfCheckGroup.Result.Unknown;
|
|
||||||
|
|
||||||
public class NlpStatusChecks implements SelfCheckGroup {
|
public class NlpStatusChecks implements org.microg.nlp.app.tools.selfcheck.SelfCheckGroup {
|
||||||
@Override
|
@Override
|
||||||
public String getGroupName(Context context) {
|
public String getGroupName(Context context) {
|
||||||
return context.getString(R.string.self_check_cat_nlp_status);
|
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) {
|
private boolean providerWasBound(Context context, ResultCollector collector) {
|
||||||
collector.addResult(context.getString(R.string.self_check_name_nlp_bound),
|
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));
|
getLocationClient(context).isAvailable() ? Result.Positive : Result.Negative, context.getString(R.string.self_check_resolution_nlp_bound));
|
||||||
return UnifiedLocationClient.get(context).isAvailable();
|
return getLocationClient(context).isAvailable();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isNetworkLocationEnabled(Context context, ResultCollector collector) {
|
private boolean isNetworkLocationEnabled(Context context, ResultCollector collector) {
|
||||||
LocationManager locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
|
LocationManager locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
|
||||||
boolean networkEnabled = locationManager.getProviders(true).contains(NETWORK_PROVIDER);
|
boolean networkEnabled = locationManager.getProviders(true).contains(NETWORK_PROVIDER);
|
||||||
collector.addResult(context.getString(R.string.self_check_name_network_enabled),
|
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;
|
return networkEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,10 +75,10 @@ public class NlpStatusChecks implements SelfCheckGroup {
|
||||||
boolean hasKnown = location != null && location.getExtras() != null &&
|
boolean hasKnown = location != null && location.getExtras() != null &&
|
||||||
location.getExtras().containsKey(LOCATION_EXTRA_BACKEND_COMPONENT);
|
location.getExtras().containsKey(LOCATION_EXTRA_BACKEND_COMPONENT);
|
||||||
collector.addResult(context.getString(R.string.self_check_name_last_location),
|
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;
|
return hasKnown;
|
||||||
} catch (SecurityException e) {
|
} 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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,7 +95,7 @@ public class NlpStatusChecks implements SelfCheckGroup {
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
}
|
}
|
||||||
collector.addResult(context.getString(R.string.self_check_name_nlp_is_providing),
|
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();
|
}).start();
|
||||||
|
@ -119,7 +123,7 @@ public class NlpStatusChecks implements SelfCheckGroup {
|
||||||
}
|
}
|
||||||
}, null);
|
}, null);
|
||||||
} catch (SecurityException e) {
|
} 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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,8 @@ import android.os.Bundle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.preference.Preference
|
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.app.tools.ui.ResourceSettingsFragment
|
||||||
import org.microg.nlp.ui.navigate
|
import org.microg.nlp.ui.navigate
|
||||||
|
|
||||||
|
@ -35,7 +36,7 @@ class SettingsFragment : ResourceSettingsFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun updateDetails() {
|
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<Preference>(PREF_UNIFIEDNLP)!!.summary = resources.getQuantityString(R.plurals.pref_unifiednlp_summary, backendCount, backendCount);
|
findPreference<Preference>(PREF_UNIFIEDNLP)!!.summary = resources.getQuantityString(R.plurals.pref_unifiednlp_summary, backendCount, backendCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue