global: optimize imports

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2020-03-09 12:21:35 -06:00
parent 8e8643122e
commit 40ebf8006e
65 changed files with 223 additions and 281 deletions
@@ -5,8 +5,6 @@
package com.wireguard.android;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -17,10 +15,6 @@ import android.os.Looper;
import android.os.StrictMode;
import android.util.Log;
import androidx.preference.PreferenceManager;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDelegate;
import com.wireguard.android.backend.Backend;
import com.wireguard.android.backend.GoBackend;
import com.wireguard.android.backend.WgQuickBackend;
@@ -31,10 +25,14 @@ import com.wireguard.android.util.ExceptionLoggers;
import com.wireguard.android.util.ModuleLoader;
import com.wireguard.android.util.RootShell;
import com.wireguard.android.util.ToolsInstaller;
import com.wireguard.util.NonNullForAll;
import java.lang.ref.WeakReference;
import java.util.Locale;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.preference.PreferenceManager;
import java9.util.concurrent.CompletableFuture;
@NonNullForAll
@@ -5,8 +5,6 @@
package com.wireguard.android;
import com.wireguard.util.NonNullForAll;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -15,6 +13,7 @@ import android.util.Log;
import com.wireguard.android.backend.WgQuickBackend;
import com.wireguard.android.model.TunnelManager;
import com.wireguard.android.util.ExceptionLoggers;
import com.wireguard.util.NonNullForAll;
@NonNullForAll
public class BootShutdownReceiver extends BroadcastReceiver {
@@ -5,11 +5,7 @@
package com.wireguard.android;
import com.wireguard.util.NonNullForAll;
import android.content.Intent;
import androidx.databinding.Observable;
import androidx.databinding.Observable.OnPropertyChangedCallback;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Icon;
@@ -17,8 +13,6 @@ import android.os.Build;
import android.os.IBinder;
import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import android.util.Log;
import com.wireguard.android.activity.MainActivity;
@@ -26,9 +20,15 @@ import com.wireguard.android.activity.TunnelToggleActivity;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.android.widget.SlashDrawable;
import com.wireguard.util.NonNullForAll;
import java.util.Objects;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.databinding.Observable;
import androidx.databinding.Observable.OnPropertyChangedCallback;
/**
* Service that maintains the application's custom Quick Settings tile. This service is bound by the
* system framework as necessary to update the appearance of the tile in the system UI, and to
@@ -5,18 +5,18 @@
package com.wireguard.android.activity;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.CallbackRegistry;
import androidx.databinding.CallbackRegistry.NotifierCallback;
import android.os.Bundle;
import androidx.annotation.Nullable;
import com.wireguard.android.Application;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.util.NonNullForAll;
import java.util.Objects;
import androidx.annotation.Nullable;
import androidx.databinding.CallbackRegistry;
import androidx.databinding.CallbackRegistry.NotifierCallback;
/**
* Base class for activities that need to remember the currently-selected tunnel.
*/
@@ -5,16 +5,9 @@
package com.wireguard.android.activity;
import com.wireguard.util.NonNullForAll;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.appcompat.app.ActionBar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View.OnApplyWindowInsetsListener;
@@ -24,9 +17,16 @@ import com.wireguard.android.R;
import com.wireguard.android.fragment.TunnelDetailFragment;
import com.wireguard.android.fragment.TunnelEditorFragment;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.util.NonNullForAll;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
/**
* CRUD interface for WireGuard tunnels. This activity serves as the main entry point to the
* WireGuard application, and contains several fragments for listing, viewing details of, and
@@ -5,17 +5,9 @@
package com.wireguard.android.activity;
import com.wireguard.util.NonNullForAll;
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;
@@ -23,11 +15,19 @@ import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.backend.WgQuickBackend;
import com.wireguard.android.util.ModuleLoader;
import com.wireguard.util.NonNullForAll;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
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;
/**
* Interface for changing application-global persistent settings.
*/
@@ -5,20 +5,16 @@
package com.wireguard.android.activity;
import com.wireguard.util.NonNullForAll;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import com.wireguard.android.Application;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import android.util.Log;
import com.wireguard.android.Application;
import java.lang.reflect.Field;
@NonNullForAll
public abstract class ThemeChangeAwareActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
@@ -5,13 +5,13 @@
package com.wireguard.android.activity;
import com.wireguard.util.NonNullForAll;
import android.os.Bundle;
import androidx.annotation.Nullable;
import com.wireguard.android.fragment.TunnelEditorFragment;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
/**
* Standalone activity for creating tunnels.
@@ -5,15 +5,9 @@
package com.wireguard.android.activity;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ComponentName;
import android.os.Bundle;
import android.os.Build;
import android.os.Bundle;
import android.service.quicksettings.TileService;
import android.util.Log;
import android.widget.Toast;
@@ -21,9 +15,14 @@ import android.widget.Toast;
import com.wireguard.android.Application;
import com.wireguard.android.QuickTileService;
import com.wireguard.android.R;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
@RequiresApi(Build.VERSION_CODES.N)
@NonNullForAll
@@ -5,9 +5,8 @@
package com.wireguard.android.configStore;
import com.wireguard.util.NonNullForAll;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.util.Set;
@@ -5,14 +5,13 @@
package com.wireguard.android.configStore;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import android.util.Log;
import com.wireguard.android.R;
import com.wireguard.config.BadConfigException;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.io.File;
import java.io.FileInputStream;
@@ -5,16 +5,6 @@
package com.wireguard.android.databinding;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.BindingAdapter;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
import androidx.databinding.adapters.ListenerUtil;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.InputFilter;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
@@ -29,7 +19,16 @@ import com.wireguard.android.widget.ToggleSwitch.OnBeforeCheckedChangeListener;
import com.wireguard.config.Attribute;
import com.wireguard.config.InetNetwork;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.databinding.BindingAdapter;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
import androidx.databinding.adapters.ListenerUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java9.util.Optional;
/**
@@ -5,21 +5,21 @@
package com.wireguard.android.databinding;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.wireguard.android.BR;
import com.wireguard.util.NonNullForAll;
import java.lang.ref.WeakReference;
import java.util.Objects;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
/**
* Helper class for binding an ObservableList to the children of a ViewGroup.
*/
@@ -5,24 +5,24 @@
package com.wireguard.android.databinding;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.Adapter;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.wireguard.android.BR;
import com.wireguard.android.util.ObservableKeyedList;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import java.lang.ref.WeakReference;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.Adapter;
/**
* A generic {@code RecyclerView.Adapter} backed by a {@code ObservableKeyedList}.
*/
@@ -5,8 +5,6 @@
package com.wireguard.android.fragment;
import com.wireguard.util.NonNullForAll;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
@@ -14,10 +12,6 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.appcompat.app.AlertDialog;
import android.widget.Toast;
import com.wireguard.android.Application;
@@ -27,11 +21,16 @@ import com.wireguard.android.model.ApplicationData;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.android.util.ObservableKeyedArrayList;
import com.wireguard.android.util.ObservableKeyedList;
import com.wireguard.util.NonNullForAll;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import java9.util.Comparators;
import java9.util.stream.Collectors;
import java9.util.stream.StreamSupport;
@@ -5,29 +5,29 @@
package com.wireguard.android.fragment;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import android.content.Intent;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.annotation.Nullable;
import com.google.android.material.snackbar.Snackbar;
import androidx.fragment.app.Fragment;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.google.android.material.snackbar.Snackbar;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.activity.BaseActivity;
import com.wireguard.android.activity.BaseActivity.OnSelectedTunnelChangedListener;
import com.wireguard.android.backend.GoBackend;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.databinding.TunnelDetailFragmentBinding;
import com.wireguard.android.databinding.TunnelListItemBinding;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.fragment.app.Fragment;
/**
* Base class for fragments that need to know the currently-selected tunnel. Only does anything when
@@ -5,16 +5,11 @@
package com.wireguard.android.fragment;
import com.wireguard.util.NonNullForAll;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.appcompat.app.AlertDialog;
import android.view.inputmethod.InputMethodManager;
import com.wireguard.android.Application;
@@ -22,12 +17,17 @@ import com.wireguard.android.R;
import com.wireguard.android.databinding.ConfigNamingDialogFragmentBinding;
import com.wireguard.config.BadConfigException;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
@NonNullForAll
public class ConfigNamingDialogFragment extends DialogFragment {
private static final String KEY_CONFIG_TEXT = "config_text";
@@ -5,12 +5,7 @@
package com.wireguard.android.fragment;
import com.wireguard.util.NonNullForAll;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -18,16 +13,20 @@ import android.view.View;
import android.view.ViewGroup;
import com.wireguard.android.R;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.databinding.TunnelDetailFragmentBinding;
import com.wireguard.android.databinding.TunnelDetailPeerBinding;
import com.wireguard.android.model.ObservableTunnel;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.ui.EdgeToEdge;
import com.wireguard.crypto.Key;
import com.wireguard.util.NonNullForAll;
import java.util.Timer;
import java.util.TimerTask;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
/**
* Fragment that shows details about a specific tunnel.
*/
@@ -5,15 +5,9 @@
package com.wireguard.android.fragment;
import com.wireguard.util.NonNullForAll;
import android.app.Activity;
import android.content.Context;
import androidx.databinding.ObservableList;
import android.os.Bundle;
import androidx.annotation.Nullable;
import com.google.android.material.snackbar.Snackbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -24,6 +18,7 @@ import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
import com.google.android.material.snackbar.Snackbar;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.databinding.TunnelEditorFragmentBinding;
@@ -34,11 +29,15 @@ import com.wireguard.android.ui.EdgeToEdge;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.android.viewmodel.ConfigProxy;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import androidx.annotation.Nullable;
import androidx.databinding.ObservableList;
/**
* Fragment for editing a WireGuard configuration.
*/
@@ -5,8 +5,6 @@
package com.wireguard.android.fragment;
import com.wireguard.util.NonNullForAll;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentResolver;
@@ -16,13 +14,6 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.OpenableColumns;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.snackbar.Snackbar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.ActionMode;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -30,6 +21,7 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.material.snackbar.Snackbar;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import com.wireguard.android.Application;
@@ -44,6 +36,7 @@ import com.wireguard.android.util.ErrorMessages;
import com.wireguard.android.widget.MultiselectableRelativeLayout;
import com.wireguard.config.BadConfigException;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
@@ -59,6 +52,11 @@ import java.util.Locale;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.ActionMode;
import androidx.recyclerview.widget.RecyclerView;
import java9.util.concurrent.CompletableFuture;
import java9.util.stream.StreamSupport;
@@ -5,14 +5,14 @@
package com.wireguard.android.model;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import android.graphics.drawable.Drawable;
import com.wireguard.android.BR;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
@NonNullForAll
public class ApplicationData extends BaseObservable implements Keyed<String> {
@@ -5,19 +5,17 @@
package com.wireguard.android.model;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.annotation.Nullable;
import com.wireguard.android.BR;
import com.wireguard.android.backend.Statistics;
import com.wireguard.android.backend.Tunnel;
import com.wireguard.android.util.ExceptionLoggers;
import com.wireguard.config.Config;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import java9.util.concurrent.CompletableFuture;
import java9.util.concurrent.CompletionStage;
@@ -5,32 +5,31 @@
package com.wireguard.android.model;
import com.wireguard.util.NonNullForAll;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.annotation.Nullable;
import com.wireguard.android.Application;
import com.wireguard.android.BR;
import com.wireguard.android.R;
import com.wireguard.android.configStore.ConfigStore;
import com.wireguard.android.backend.Statistics;
import com.wireguard.android.backend.Tunnel;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.backend.Statistics;
import com.wireguard.android.configStore.ConfigStore;
import com.wireguard.android.util.ExceptionLoggers;
import com.wireguard.android.util.ObservableSortedKeyedArrayList;
import com.wireguard.android.util.ObservableSortedKeyedList;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Set;
import androidx.annotation.Nullable;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import java9.util.Comparators;
import java9.util.concurrent.CompletableFuture;
import java9.util.concurrent.CompletionStage;
@@ -5,28 +5,27 @@
package com.wireguard.android.preference;
import com.wireguard.util.NonNullForAll;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import androidx.annotation.Nullable;
import com.google.android.material.snackbar.Snackbar;
import androidx.preference.Preference;
import android.util.AttributeSet;
import android.util.Log;
import com.google.android.material.snackbar.Snackbar;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.util.DownloadsFileSaver;
import com.wireguard.android.util.DownloadsFileSaver.DownloadsFile;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.android.util.FragmentUtils;
import com.wireguard.util.NonNullForAll;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
/**
* Preference implementing a button that asynchronously exports logs.
*/
@@ -5,8 +5,6 @@
package com.wireguard.android.preference;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import android.content.Intent;
import android.system.OsConstants;
@@ -16,6 +14,7 @@ import android.widget.Toast;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
@@ -5,16 +5,16 @@
package com.wireguard.android.preference;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import android.util.AttributeSet;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.util.ToolsInstaller;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
/**
* Preference implementing a button that asynchronously runs {@code ToolsInstaller} and displays the
@@ -5,14 +5,10 @@
package com.wireguard.android.preference;
import com.wireguard.util.NonNullForAll;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import android.util.AttributeSet;
import com.wireguard.android.Application;
@@ -21,9 +17,13 @@ import com.wireguard.android.R;
import com.wireguard.android.backend.Backend;
import com.wireguard.android.backend.GoBackend;
import com.wireguard.android.backend.WgQuickBackend;
import com.wireguard.util.NonNullForAll;
import java.util.Locale;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
@NonNullForAll
public class VersionPreference extends Preference {
@Nullable private String versionSummary;
@@ -5,17 +5,13 @@
package com.wireguard.android.preference;
import com.wireguard.util.NonNullForAll;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import androidx.annotation.Nullable;
import com.google.android.material.snackbar.Snackbar;
import androidx.preference.Preference;
import android.util.AttributeSet;
import android.util.Log;
import com.google.android.material.snackbar.Snackbar;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.model.ObservableTunnel;
@@ -24,6 +20,7 @@ import com.wireguard.android.util.DownloadsFileSaver.DownloadsFile;
import com.wireguard.android.util.ErrorMessages;
import com.wireguard.android.util.FragmentUtils;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
@@ -31,6 +28,8 @@ import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import java9.util.concurrent.CompletableFuture;
/**
@@ -6,12 +6,7 @@ package com.wireguard.android.ui
import android.view.View
import android.view.ViewGroup
import androidx.core.view.marginBottom
import androidx.core.view.marginLeft
import androidx.core.view.marginRight
import androidx.core.view.marginTop
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.core.view.*
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
/**
@@ -5,10 +5,10 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import android.os.Handler;
import com.wireguard.util.NonNullForAll;
import java.util.concurrent.Executor;
import java9.util.concurrent.CompletableFuture;
@@ -5,15 +5,15 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import com.google.android.material.snackbar.Snackbar;
import android.view.View;
import android.widget.TextView;
import com.google.android.material.snackbar.Snackbar;
import com.wireguard.util.NonNullForAll;
/**
* Standalone utilities for interacting with the system clipboard.
*/
@@ -5,8 +5,6 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
@@ -18,6 +16,7 @@ import android.provider.MediaStore;
import android.provider.MediaStore.MediaColumns;
import com.wireguard.android.R;
import com.wireguard.util.NonNullForAll;
import java.io.File;
import java.io.FileOutputStream;
@@ -5,13 +5,9 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import android.content.res.Resources;
import android.os.RemoteException;
import androidx.annotation.Nullable;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.backend.BackendException;
@@ -24,11 +20,13 @@ import com.wireguard.config.ParseException;
import com.wireguard.crypto.Key.Format;
import com.wireguard.crypto.KeyFormatException;
import com.wireguard.crypto.KeyFormatException.Type;
import com.wireguard.util.NonNullForAll;
import java.net.InetAddress;
import java.util.EnumMap;
import java.util.Map;
import androidx.annotation.Nullable;
import java9.util.Maps;
@NonNullForAll
@@ -5,11 +5,9 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import android.util.Log;
import androidx.annotation.Nullable;
import java9.util.function.BiConsumer;
/**
@@ -4,13 +4,13 @@
*/
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import androidx.preference.Preference;
import android.view.ContextThemeWrapper;
import com.wireguard.android.activity.SettingsActivity;
import com.wireguard.util.NonNullForAll;
import androidx.preference.Preference;
@NonNullForAll
public final class FragmentUtils {
@@ -5,17 +5,16 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.ObservableArrayList;
import androidx.annotation.Nullable;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import java.util.Collection;
import java.util.ListIterator;
import java.util.Objects;
import androidx.annotation.Nullable;
import androidx.databinding.ObservableArrayList;
/**
* ArrayList that allows looking up elements by some key property. As the key property must always
* be retrievable, this list cannot hold {@code null} elements. Because this class places no
@@ -5,13 +5,12 @@
package com.wireguard.android.util;
import com.wireguard.util.Keyed;
import com.wireguard.util.KeyedList;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.ObservableList;
import com.wireguard.util.Keyed;
import com.wireguard.util.KeyedList;
/**
* A list that is both keyed and observable.
*/
@@ -5,11 +5,8 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import com.wireguard.util.SortedKeyedList;
import java.util.AbstractList;
@@ -21,6 +18,8 @@ import java.util.NoSuchElementException;
import java.util.Set;
import java.util.Spliterator;
import androidx.annotation.Nullable;
/**
* KeyedArrayList that enforces uniqueness and sorted order across the set of keys. This class uses
* binary search to improve lookup and replacement times to O(log(n)). However, due to the
@@ -5,9 +5,8 @@
package com.wireguard.android.util;
import com.wireguard.util.NonNullForAll;
import com.wireguard.util.Keyed;
import com.wireguard.util.NonNullForAll;
import com.wireguard.util.SortedKeyedList;
/**
@@ -5,20 +5,20 @@
package com.wireguard.android.viewmodel;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList;
import android.os.Parcel;
import android.os.Parcelable;
import com.wireguard.config.BadConfigException;
import com.wireguard.config.Config;
import com.wireguard.config.Peer;
import com.wireguard.util.NonNullForAll;
import java.util.ArrayList;
import java.util.Collection;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList;
@NonNullForAll
public class ConfigProxy implements Parcelable {
public static final Parcelable.Creator<ConfigProxy> CREATOR = new ConfigProxyCreator();
@@ -5,12 +5,6 @@
package com.wireguard.android.viewmodel;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList;
import android.os.Parcel;
import android.os.Parcelable;
@@ -21,10 +15,15 @@ import com.wireguard.config.Interface;
import com.wireguard.crypto.Key;
import com.wireguard.crypto.KeyFormatException;
import com.wireguard.crypto.KeyPair;
import com.wireguard.util.NonNullForAll;
import java.net.InetAddress;
import java.util.List;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList;
import java9.util.stream.Collectors;
import java9.util.stream.StreamSupport;
@@ -5,15 +5,8 @@
package com.wireguard.android.viewmodel;
import com.wireguard.util.NonNullForAll;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.databinding.Observable;
import androidx.databinding.ObservableList;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import com.wireguard.android.BR;
import com.wireguard.config.Attribute;
@@ -21,6 +14,7 @@ import com.wireguard.config.BadConfigException;
import com.wireguard.config.InetEndpoint;
import com.wireguard.config.Peer;
import com.wireguard.crypto.Key;
import com.wireguard.util.NonNullForAll;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -29,6 +23,11 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import androidx.annotation.Nullable;
import androidx.databinding.BaseObservable;
import androidx.databinding.Bindable;
import androidx.databinding.Observable;
import androidx.databinding.ObservableList;
import java9.util.Lists;
import java9.util.Sets;
import java9.util.stream.Collectors;
@@ -5,14 +5,14 @@
package com.wireguard.android.widget;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import android.text.InputFilter;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import com.wireguard.crypto.Key;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
/**
* InputFilter for entering WireGuard private/public keys encoded with base64.
@@ -5,13 +5,12 @@
package com.wireguard.android.widget;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.RelativeLayout;
import com.wireguard.android.R;
import com.wireguard.util.NonNullForAll;
@NonNullForAll
public class MultiselectableRelativeLayout extends RelativeLayout {
@@ -5,14 +5,14 @@
package com.wireguard.android.widget;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
import android.text.InputFilter;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import com.wireguard.android.backend.Tunnel;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
/**
* InputFilter for entering WireGuard configuration names (Linux interface names).
@@ -6,8 +6,6 @@
package com.wireguard.android.widget;
import com.wireguard.util.NonNullForAll;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.res.ColorStateList;
@@ -24,11 +22,14 @@ import android.graphics.RectF;
import android.graphics.Region;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.FloatProperty;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.ColorInt;
import androidx.annotation.IntRange;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import android.util.FloatProperty;
@RequiresApi(Build.VERSION_CODES.N)
@NonNullForAll
@@ -6,14 +6,15 @@
package com.wireguard.android.widget;
import com.wireguard.util.NonNullForAll;
import android.content.Context;
import android.os.Parcelable;
import androidx.annotation.Nullable;
import android.util.AttributeSet;
import android.widget.Switch;
import com.wireguard.util.NonNullForAll;
import androidx.annotation.Nullable;
@NonNullForAll
public class ToggleSwitch extends Switch {
private boolean isRestoringState;