aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/android/activity/SettingsActivity.java')
-rw-r--r--app/src/main/java/com/wireguard/android/activity/SettingsActivity.java128
1 files changed, 0 insertions, 128 deletions
diff --git a/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java b/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java
deleted file mode 100644
index 442c93e6..00000000
--- a/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright © 2017-2019 WireGuard LLC. All Rights Reserved.
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package com.wireguard.android.activity;
-
-import android.content.pm.PackageManager;
-import android.os.Build;
-import android.os.Bundle;
-import androidx.annotation.Nullable;
-import androidx.core.app.ActivityCompat;
-import androidx.core.content.ContextCompat;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.PreferenceScreen;
-import android.util.SparseArray;
-import android.view.MenuItem;
-
-import com.wireguard.android.Application;
-import com.wireguard.android.R;
-import com.wireguard.android.backend.WgQuickBackend;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Interface for changing application-global persistent settings.
- */
-
-public class SettingsActivity extends ThemeChangeAwareActivity {
- private final SparseArray<PermissionRequestCallback> permissionRequestCallbacks = new SparseArray<>();
- private int permissionRequestCounter;
-
- public void ensurePermissions(final String[] permissions, final PermissionRequestCallback cb) {
- final List<String> needPermissions = new ArrayList<>(permissions.length);
- for (final String permission : permissions) {
- if (ContextCompat.checkSelfPermission(this, permission)
- != PackageManager.PERMISSION_GRANTED)
- needPermissions.add(permission);
- }
- if (needPermissions.isEmpty()) {
- final int[] granted = new int[permissions.length];
- Arrays.fill(granted, PackageManager.PERMISSION_GRANTED);
- cb.done(permissions, granted);
- return;
- }
- final int idx = permissionRequestCounter++;
- permissionRequestCallbacks.put(idx, cb);
- ActivityCompat.requestPermissions(this,
- needPermissions.toArray(new String[needPermissions.size()]), idx);
- }
-
- @Override
- protected void onCreate(@Nullable final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
- getSupportFragmentManager().beginTransaction()
- .add(android.R.id.content, new SettingsFragment())
- .commit();
- }
- }
-
- @Override
- public boolean onOptionsItemSelected(final MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
- @Override
- public void onRequestPermissionsResult(final int requestCode,
- final String[] permissions,
- final int[] grantResults) {
- final PermissionRequestCallback f = permissionRequestCallbacks.get(requestCode);
- if (f != null) {
- permissionRequestCallbacks.remove(requestCode);
- f.done(permissions, grantResults);
- }
- }
-
- public interface PermissionRequestCallback {
- void done(String[] permissions, int[] grantResults);
- }
-
- public static class SettingsFragment extends PreferenceFragmentCompat {
- @Override
- public void onCreatePreferences(final Bundle savedInstanceState, final String key) {
- addPreferencesFromResource(R.xml.preferences);
- final PreferenceScreen screen = getPreferenceScreen();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
- screen.removePreference(getPreferenceManager().findPreference("dark_theme"));
-
- final Preference wgQuickOnlyPrefs[] = {
- getPreferenceManager().findPreference("tools_installer"),
- getPreferenceManager().findPreference("restore_on_boot")
- };
- for (final Preference pref : wgQuickOnlyPrefs)
- pref.setVisible(false);
- Application.getBackendAsync().thenAccept(backend -> {
- for (final Preference pref : wgQuickOnlyPrefs) {
- if (backend instanceof WgQuickBackend)
- pref.setVisible(true);
- else
- screen.removePreference(pref);
- }
- });
-
- final Preference moduleInstaller = getPreferenceManager().findPreference("module_downloader");
- moduleInstaller.setVisible(false);
- if (Application.getModuleLoader().isModuleLoaded()) {
- screen.removePreference(moduleInstaller);
- } else {
- Application.getAsyncWorker().runAsync(Application.getRootShell()::start).whenComplete((v, e) -> {
- if (e == null)
- moduleInstaller.setVisible(true);
- else
- screen.removePreference(moduleInstaller);
- });
- }
- }
- }
-}