diff options
author | Eric Kuck <eric@bluelinelabs.com> | 2018-07-12 19:10:35 -0500 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-07-13 03:46:23 +0200 |
commit | ffa908d8a06f9b3ee5b488d2c5142da233d562ac (patch) | |
tree | 84f904d66f6111a7d8f897164eb236bc62199cae /app/src/main/java/com/wireguard/android/activity | |
parent | Version bump (diff) | |
download | wireguard-android-ffa908d8a06f9b3ee5b488d2c5142da233d562ac.tar.xz wireguard-android-ffa908d8a06f9b3ee5b488d2c5142da233d562ac.zip |
global: Add nullity annotations
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/activity')
5 files changed, 45 insertions, 32 deletions
diff --git a/app/src/main/java/com/wireguard/android/activity/BaseActivity.java b/app/src/main/java/com/wireguard/android/activity/BaseActivity.java index 9b535d79..51357d89 100644 --- a/app/src/main/java/com/wireguard/android/activity/BaseActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/BaseActivity.java @@ -9,6 +9,7 @@ package com.wireguard.android.activity; import android.databinding.CallbackRegistry; import android.databinding.CallbackRegistry.NotifierCallback; import android.os.Bundle; +import android.support.annotation.Nullable; import com.wireguard.android.Application; import com.wireguard.android.model.Tunnel; @@ -24,19 +25,19 @@ public abstract class BaseActivity extends ThemeChangeAwareActivity { private static final String KEY_SELECTED_TUNNEL = "selected_tunnel"; private final SelectionChangeRegistry selectionChangeRegistry = new SelectionChangeRegistry(); - private Tunnel selectedTunnel; + @Nullable private Tunnel selectedTunnel; - public void addOnSelectedTunnelChangedListener( - final OnSelectedTunnelChangedListener listener) { + public void addOnSelectedTunnelChangedListener(final OnSelectedTunnelChangedListener listener) { selectionChangeRegistry.add(listener); } + @Nullable public Tunnel getSelectedTunnel() { return selectedTunnel; } @Override - protected void onCreate(final Bundle savedInstanceState) { + protected void onCreate(@Nullable final Bundle savedInstanceState) { // Restore the saved tunnel if there is one; otherwise grab it from the arguments. String savedTunnelName = null; if (savedInstanceState != null) @@ -59,14 +60,14 @@ public abstract class BaseActivity extends ThemeChangeAwareActivity { super.onSaveInstanceState(outState); } - protected abstract void onSelectedTunnelChanged(Tunnel oldTunnel, Tunnel newTunnel); + protected abstract void onSelectedTunnelChanged(@Nullable Tunnel oldTunnel, @Nullable Tunnel newTunnel); public void removeOnSelectedTunnelChangedListener( final OnSelectedTunnelChangedListener listener) { selectionChangeRegistry.remove(listener); } - public void setSelectedTunnel(final Tunnel tunnel) { + public void setSelectedTunnel(@Nullable final Tunnel tunnel) { final Tunnel oldTunnel = selectedTunnel; if (Objects.equals(oldTunnel, tunnel)) return; @@ -76,7 +77,7 @@ public abstract class BaseActivity extends ThemeChangeAwareActivity { } public interface OnSelectedTunnelChangedListener { - void onSelectedTunnelChanged(Tunnel oldTunnel, Tunnel newTunnel); + void onSelectedTunnelChanged(@Nullable Tunnel oldTunnel, @Nullable Tunnel newTunnel); } private static final class SelectionChangeNotifier diff --git a/app/src/main/java/com/wireguard/android/activity/MainActivity.java b/app/src/main/java/com/wireguard/android/activity/MainActivity.java index e7f438f2..5a8134f3 100644 --- a/app/src/main/java/com/wireguard/android/activity/MainActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/MainActivity.java @@ -9,6 +9,7 @@ package com.wireguard.android.activity; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; @@ -22,6 +23,8 @@ import com.wireguard.android.fragment.TunnelEditorFragment; import com.wireguard.android.fragment.TunnelListFragment; import com.wireguard.android.model.Tunnel; +import java.util.List; + import java9.util.stream.Stream; /** @@ -33,6 +36,7 @@ import java9.util.stream.Stream; public class MainActivity extends BaseActivity { private static final String KEY_STATE = "fragment_state"; private static final String TAG = "WireGuard/" + MainActivity.class.getSimpleName(); + private State state = State.EMPTY; private boolean moveToState(final State nextState) { @@ -70,13 +74,19 @@ public class MainActivity extends BaseActivity { @Override public void onBackPressed() { - TunnelListFragment fragment = null; - try { - fragment = ((TunnelListFragment) getSupportFragmentManager().getFragments().get(0)); - } catch (final ClassCastException ignored) { } - if (fragment == null || !fragment.collapseActionMenu()) { - if (!moveToState(State.ofLayer(state.layer - 1))) - super.onBackPressed(); + final List<Fragment> fragments = getSupportFragmentManager().getFragments(); + + boolean handled = false; + if (!fragments.isEmpty() && fragments.get(0) instanceof TunnelListFragment) { + handled = ((TunnelListFragment) fragments.get(0)).collapseActionMenu(); + } + + if (!handled) { + handled = moveToState(State.ofLayer(state.layer - 1)); + } + + if (!handled) { + super.onBackPressed(); } } @@ -84,7 +94,7 @@ public class MainActivity extends BaseActivity { // calling View#performClick defeats the purpose of it. @SuppressLint("ClickableViewAccessibility") @Override - protected void onCreate(final Bundle savedInstanceState) { + protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); if (savedInstanceState != null && savedInstanceState.getString(KEY_STATE) != null) @@ -99,9 +109,10 @@ public class MainActivity extends BaseActivity { final int actionBarId = getResources().getIdentifier("action_bar", "id", getPackageName()); if (actionBarId != 0 && findViewById(actionBarId) != null) { findViewById(actionBarId).setOnTouchListener((v, e) -> { - try { - ((TunnelListFragment) getSupportFragmentManager().getFragments().get(0)).collapseActionMenu(); - } catch (final ClassCastException ignored) { } + final List<Fragment> fragments = getSupportFragmentManager().getFragments(); + if (!fragments.isEmpty() && fragments.get(0) instanceof TunnelListFragment) { + ((TunnelListFragment) fragments.get(0)).collapseActionMenu(); + } return false; }); } @@ -142,7 +153,7 @@ public class MainActivity extends BaseActivity { } @Override - protected void onSelectedTunnelChanged(final Tunnel oldTunnel, final Tunnel newTunnel) { + protected void onSelectedTunnelChanged(@Nullable final Tunnel oldTunnel, @Nullable final Tunnel newTunnel) { moveToState(newTunnel != null ? State.DETAIL : State.LIST); } @@ -157,10 +168,10 @@ public class MainActivity extends BaseActivity { DETAIL(TunnelDetailFragment.class, 2), EDITOR(TunnelEditorFragment.class, 3); - private final String fragment; + @Nullable private final String fragment; private final int layer; - State(final Class<? extends Fragment> fragment, final int layer) { + State(@Nullable final Class<? extends Fragment> fragment, final int layer) { this.fragment = fragment != null ? fragment.getName() : null; this.layer = layer; } diff --git a/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java b/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java index ed2da4dc..066d377f 100644 --- a/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/SettingsActivity.java @@ -8,12 +8,13 @@ package com.wireguard.android.activity; import android.content.pm.PackageManager; import android.os.Bundle; -import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; import android.support.v7.preference.PreferenceScreen; +import android.util.SparseArray; import android.view.MenuItem; import com.wireguard.android.Application; @@ -22,16 +23,14 @@ import com.wireguard.android.backend.WgQuickBackend; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * Interface for changing application-global persistent settings. */ public class SettingsActivity extends ThemeChangeAwareActivity { - private final Map<Integer, PermissionRequestCallback> permissionRequestCallbacks = new HashMap<>(); + private final SparseArray<PermissionRequestCallback> permissionRequestCallbacks = new SparseArray<>(); private int permissionRequestCounter; public void ensurePermissions(final String[] permissions, final PermissionRequestCallback cb) { @@ -54,7 +53,7 @@ public class SettingsActivity extends ThemeChangeAwareActivity { } @Override - protected void onCreate(final Bundle savedInstanceState) { + protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) { getSupportFragmentManager().beginTransaction() @@ -76,8 +75,8 @@ public class SettingsActivity extends ThemeChangeAwareActivity { @Override public void onRequestPermissionsResult(final int requestCode, - @NonNull final String[] permissions, - @NonNull final int[] grantResults) { + final String[] permissions, + final int[] grantResults) { final PermissionRequestCallback f = permissionRequestCallbacks.get(requestCode); if (f != null) { permissionRequestCallbacks.remove(requestCode); diff --git a/app/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.java b/app/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.java index be61f256..d85a0170 100644 --- a/app/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.java @@ -8,6 +8,7 @@ package com.wireguard.android.activity; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatDelegate; import android.util.Log; @@ -19,7 +20,7 @@ import java.lang.reflect.Field; public abstract class ThemeChangeAwareActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = "WireGuard/" + ThemeChangeAwareActivity.class.getSimpleName(); - private static Resources lastResources; + @Nullable private static Resources lastResources; private static boolean lastDarkMode; private static synchronized void invalidateDrawableCache(final Resources resources, final boolean darkMode) { if (resources == lastResources && darkMode == lastDarkMode) @@ -51,7 +52,7 @@ public abstract class ThemeChangeAwareActivity extends AppCompatActivity impleme @Override - protected void onCreate(final Bundle savedInstanceState) { + protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); Application.getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } diff --git a/app/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.java b/app/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.java index 044548ce..99bb4141 100644 --- a/app/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.java +++ b/app/src/main/java/com/wireguard/android/activity/TunnelCreatorActivity.java @@ -7,6 +7,7 @@ package com.wireguard.android.activity; import android.os.Bundle; +import android.support.annotation.Nullable; import com.wireguard.android.fragment.TunnelEditorFragment; import com.wireguard.android.model.Tunnel; @@ -18,7 +19,7 @@ import com.wireguard.android.model.Tunnel; public class TunnelCreatorActivity extends BaseActivity { @Override @SuppressWarnings("UnnecessaryFullyQualifiedName") - protected void onCreate(final Bundle savedInstanceState) { + protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) { getSupportFragmentManager().beginTransaction() @@ -28,7 +29,7 @@ public class TunnelCreatorActivity extends BaseActivity { } @Override - protected void onSelectedTunnelChanged(final Tunnel oldTunnel, final Tunnel newTunnel) { + protected void onSelectedTunnelChanged(@Nullable final Tunnel oldTunnel, @Nullable final Tunnel newTunnel) { finish(); } } |