Ver a proveniência

VersionPreference: account for checking state and move away from tools installer

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
master
Jason A. Donenfeld há 6 anos
ascendente
cometimento
7b59353910
4 ficheiros alterados com 21 adições e 12 eliminações
  1. +2
    -0
      app/src/main/java/com/wireguard/android/Application.java
  2. +17
    -2
      app/src/main/java/com/wireguard/android/preference/VersionPreference.java
  3. +0
    -9
      app/src/main/java/com/wireguard/android/util/ToolsInstaller.java
  4. +2
    -1
      app/src/main/res/values/strings.xml

+ 2
- 0
app/src/main/java/com/wireguard/android/Application.java Ver ficheiro

@@ -67,6 +67,8 @@ public class Application extends android.app.Application {
ToolsInstaller getToolsInstaller();

TunnelManager getTunnelManager();

RootShell getRootShell();
}

@Qualifier


+ 17
- 2
app/src/main/java/com/wireguard/android/preference/VersionPreference.java Ver ficheiro

@@ -16,6 +16,14 @@ import com.wireguard.android.BuildConfig;
import com.wireguard.android.R;
import com.wireguard.android.backend.GoBackend;
import com.wireguard.android.backend.WgQuickBackend;
import com.wireguard.android.util.RootShell;

import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

import java9.util.concurrent.CompletionStage;

public class VersionPreference extends Preference {
private String versionSummary;
@@ -26,10 +34,17 @@ public class VersionPreference extends Preference {
if (Application.getComponent().getBackendType() == GoBackend.class) {
versionSummary = getContext().getString(R.string.version_userspace_summary, GoBackend.getVersion());
} else if (Application.getComponent().getBackendType() == WgQuickBackend.class) {
Application.getComponent().getToolsInstaller().getVersion().whenComplete((version, exception) -> {
versionSummary = getContext().getString(R.string.version_kernel_summary_checking);
Application.getComponent().getAsyncWorker().supplyAsync(() -> {
final List<String> output = new ArrayList<>();
if (Application.getComponent().getRootShell()
.run(output, "cat /sys/module/wireguard/version") != 0 || output.isEmpty())
throw new RuntimeException("Unable to determine kernel module version");
return output.get(0);
}).whenComplete((version, exception) -> {
versionSummary = exception == null
? getContext().getString(R.string.version_kernel_summary, version)
: getContext().getString(R.string.version_kernel_unknown_summary);
: getContext().getString(R.string.version_kernel_summary_unknown);
notifyChanged();
});
}


+ 0
- 9
app/src/main/java/com/wireguard/android/util/ToolsInstaller.java Ver ficheiro

@@ -58,15 +58,6 @@ public final class ToolsInstaller {
this.rootShell = rootShell;
}

public CompletionStage<String> getVersion() {
return Application.getComponent().getAsyncWorker().supplyAsync(() -> {
final List<String> output = new ArrayList<>();
if (rootShell.run(output, "cat /sys/module/wireguard/version") != 0 || output.isEmpty())
throw new RuntimeException("Unable to determine kernel module version");
return output.get(0);
});
}

private static File getInstallDir() {
final String path = System.getenv("PATH");
if (path == null)


+ 2
- 1
app/src/main/res/values/strings.xml Ver ficheiro

@@ -83,7 +83,8 @@
<string name="tunnel_rename_success">Successfully renamed tunnel to “%s”</string>
<string name="version_title">WireGuard for Android v%s"</string>
<string name="version_kernel_summary">Kernel module backend v%s</string>
<string name="version_kernel_unknown_summary">Unknown kernel module version</string>
<string name="version_kernel_summary_checking">Checking kernel module backend version</string>
<string name="version_kernel_summary_unknown">Unknown kernel module version</string>
<string name="version_userspace_summary">Go userspace backend v%s</string>
<string name="zip_exporter_title">Export tunnels to zip file</string>
<string name="zip_export_error">Unable to export tunnels: %s</string>


Carregando…
Cancelar
Guardar