Browse Source

Inferring nullity

master
anthony restaino 7 years ago
parent
commit
72e5b0fa91
  1. 2
      app/src/main/java/acr/browser/lightning/receiver/NetworkReceiver.java
  2. 4
      app/src/main/java/acr/browser/lightning/search/BaseSuggestionsModel.java
  3. 19
      app/src/main/java/acr/browser/lightning/search/SuggestionsAdapter.java
  4. 3
      app/src/main/java/acr/browser/lightning/utils/MemoryLeakUtils.java
  5. 4
      app/src/main/java/acr/browser/lightning/utils/Preconditions.java
  6. 2
      app/src/main/java/acr/browser/lightning/utils/Utils.java
  7. 3
      app/src/main/java/acr/browser/lightning/view/BackgroundDrawable.java
  8. 4
      app/src/main/java/acr/browser/lightning/view/LightningWebClient.java
  9. 9
      app/src/main/java/acr/browser/lightning/view/SearchView.java

2
app/src/main/java/acr/browser/lightning/receiver/NetworkReceiver.java

@ -12,7 +12,7 @@ public abstract class NetworkReceiver extends BroadcastReceiver {
public abstract void onConnectivityChange(boolean isConnected); public abstract void onConnectivityChange(boolean isConnected);
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(@NonNull Context context, Intent intent) {
onConnectivityChange(isConnected(context)); onConnectivityChange(isConnected(context));
} }

4
app/src/main/java/acr/browser/lightning/search/BaseSuggestionsModel.java

@ -98,7 +98,7 @@ abstract class BaseSuggestionsModel {
* @return the cache file containing the suggestions * @return the cache file containing the suggestions
*/ */
@Nullable @Nullable
private InputStream downloadSuggestionsForQuery(@NonNull String query, String language) { private InputStream downloadSuggestionsForQuery(@NonNull String query, @NonNull String language) {
String queryUrl = createQueryUrl(query, language); String queryUrl = createQueryUrl(query, language);
try { try {
@ -122,7 +122,7 @@ abstract class BaseSuggestionsModel {
private static final Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = new Interceptor() { private static final Interceptor REWRITE_CACHE_CONTROL_INTERCEPTOR = new Interceptor() {
@Override @Override
public Response intercept(Chain chain) throws IOException { public Response intercept(@NonNull Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request()); Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder() return originalResponse.newBuilder()
.header("cache-control", "max-age=" + INTERVAL_DAY + ", max-stale=" + INTERVAL_DAY) .header("cache-control", "max-age=" + INTERVAL_DAY + ", max-stale=" + INTERVAL_DAY)

19
app/src/main/java/acr/browser/lightning/search/SuggestionsAdapter.java

@ -117,6 +117,7 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable {
return mFilteredList.size(); return mFilteredList.size();
} }
@Nullable
@Override @Override
public Object getItem(int position) { public Object getItem(int position) {
if (position > mFilteredList.size() || position < 0) { if (position > mFilteredList.size() || position < 0) {
@ -138,14 +139,15 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable {
mImage = (ImageView) view.findViewById(R.id.suggestionIcon); mImage = (ImageView) view.findViewById(R.id.suggestionIcon);
} }
final ImageView mImage; @NonNull final ImageView mImage;
final TextView mTitle; @NonNull final TextView mTitle;
final TextView mUrl; @NonNull final TextView mUrl;
} }
@Nullable
@Override @Override
public View getView(int position, View convertView, ViewGroup parent) { public View getView(int position, @Nullable View convertView, ViewGroup parent) {
SuggestionHolder holder; SuggestionHolder holder;
if (convertView == null) { if (convertView == null) {
@ -190,12 +192,13 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable {
return convertView; return convertView;
} }
@NonNull
@Override @Override
public Filter getFilter() { public Filter getFilter() {
return new SearchFilter(this); return new SearchFilter(this);
} }
private synchronized void publishResults(List<HistoryItem> list) { private synchronized void publishResults(@NonNull List<HistoryItem> list) {
mFilteredList.clear(); mFilteredList.clear();
mFilteredList.addAll(list); mFilteredList.addAll(list);
notifyDataSetChanged(); notifyDataSetChanged();
@ -315,8 +318,9 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable {
mSuggestionsAdapter = suggestionsAdapter; mSuggestionsAdapter = suggestionsAdapter;
} }
@NonNull
@Override @Override
protected FilterResults performFiltering(CharSequence constraint) { protected FilterResults performFiltering(@Nullable CharSequence constraint) {
FilterResults results = new FilterResults(); FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) { if (constraint == null || constraint.length() == 0) {
mSuggestionsAdapter.clearSuggestions(); mSuggestionsAdapter.clearSuggestions();
@ -359,8 +363,9 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable {
return results; return results;
} }
@NonNull
@Override @Override
public CharSequence convertResultToString(Object resultValue) { public CharSequence convertResultToString(@NonNull Object resultValue) {
return ((HistoryItem) resultValue).getUrl(); return ((HistoryItem) resultValue).getUrl();
} }

3
app/src/main/java/acr/browser/lightning/utils/MemoryLeakUtils.java

@ -6,6 +6,7 @@ import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
@ -17,7 +18,7 @@ public class MemoryLeakUtils {
private static final String TAG = MemoryLeakUtils.class.getSimpleName(); private static final String TAG = MemoryLeakUtils.class.getSimpleName();
private static Method sFinishInputLocked = null; @Nullable private static Method sFinishInputLocked = null;
/** /**
* Clears the mNextServedView and mServedView in * Clears the mNextServedView and mServedView in

4
app/src/main/java/acr/browser/lightning/utils/Preconditions.java

@ -1,5 +1,7 @@
package acr.browser.lightning.utils; package acr.browser.lightning.utils;
import android.support.annotation.Nullable;
public class Preconditions { public class Preconditions {
/** /**
* Ensure that an object is not null * Ensure that an object is not null
@ -8,7 +10,7 @@ public class Preconditions {
* *
* @param object check nullness on this object. * @param object check nullness on this object.
*/ */
public static void checkNonNull(Object object) { public static void checkNonNull(@Nullable Object object) {
if (object == null) { if (object == null) {
throw new RuntimeException("Object must not be null"); throw new RuntimeException("Object must not be null");
} }

2
app/src/main/java/acr/browser/lightning/utils/Utils.java

@ -72,7 +72,7 @@ public final class Utils {
* @param userAgent the user agent of the browser. * @param userAgent the user agent of the browser.
* @param contentDisposition the content description of the file. * @param contentDisposition the content description of the file.
*/ */
public static void downloadFile(final Activity activity, final PreferenceManager manager, final String url, public static void downloadFile(@NonNull final Activity activity, @NonNull final PreferenceManager manager, final String url,
final String userAgent, final String contentDisposition) { final String userAgent, final String contentDisposition) {
PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE}, new PermissionsResultAction() { Manifest.permission.WRITE_EXTERNAL_STORAGE}, new PermissionsResultAction() {

3
app/src/main/java/acr/browser/lightning/view/BackgroundDrawable.java

@ -4,6 +4,7 @@ import android.content.Context;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable; import android.graphics.drawable.TransitionDrawable;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import acr.browser.lightning.R; import acr.browser.lightning.R;
@ -17,7 +18,7 @@ public class BackgroundDrawable extends TransitionDrawable {
* Create a new transition drawable with the specified list of layers. At least * Create a new transition drawable with the specified list of layers. At least
* 2 layers are required for this drawable to work properly. * 2 layers are required for this drawable to work properly.
*/ */
public BackgroundDrawable(Context context) { public BackgroundDrawable(@NonNull Context context) {
super(new Drawable[]{new ColorDrawable(ContextCompat.getColor(context, R.color.transparent)), super(new Drawable[]{new ColorDrawable(ContextCompat.getColor(context, R.color.transparent)),
new ColorDrawable(ThemeUtils.getColor(context, R.attr.selectedBackground))}); new ColorDrawable(ThemeUtils.getColor(context, R.attr.selectedBackground))});
} }

4
app/src/main/java/acr/browser/lightning/view/LightningWebClient.java

@ -282,7 +282,7 @@ public class LightningWebClient extends WebViewClient {
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override @Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { public boolean shouldOverrideUrlLoading(@NonNull WebView view, @NonNull WebResourceRequest request) {
return shouldOverrideLoading(view, request.getUrl().toString()) || super.shouldOverrideUrlLoading(view, request); return shouldOverrideLoading(view, request.getUrl().toString()) || super.shouldOverrideUrlLoading(view, request);
} }
@ -292,7 +292,7 @@ public class LightningWebClient extends WebViewClient {
return shouldOverrideLoading(view, url) || super.shouldOverrideUrlLoading(view, url); return shouldOverrideLoading(view, url) || super.shouldOverrideUrlLoading(view, url);
} }
private boolean shouldOverrideLoading(WebView view, String url) { private boolean shouldOverrideLoading(@NonNull WebView view, @NonNull String url) {
// Check if configured proxy is available // Check if configured proxy is available
if (!mProxyUtils.isProxyReady(mActivity)) { if (!mProxyUtils.isProxyReady(mActivity)) {
// User has been notified // User has been notified

9
app/src/main/java/acr/browser/lightning/view/SearchView.java

@ -1,6 +1,7 @@
package acr.browser.lightning.view; package acr.browser.lightning.view;
import android.content.Context; import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatAutoCompleteTextView; import android.support.v7.widget.AppCompatAutoCompleteTextView;
import android.util.AttributeSet; import android.util.AttributeSet;
@ -17,15 +18,15 @@ public class SearchView extends AppCompatAutoCompleteTextView {
private boolean mIsBeingClicked; private boolean mIsBeingClicked;
private long mTimePressed; private long mTimePressed;
public SearchView(Context context) { public SearchView(@NonNull Context context) {
super(context); super(context);
} }
public SearchView(Context context, AttributeSet attrs) { public SearchView(@NonNull Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
} }
public SearchView(Context context, AttributeSet attrs, int defStyleAttr) { public SearchView(@NonNull Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr); super(context, attrs, defStyleAttr);
} }
@ -34,7 +35,7 @@ public class SearchView extends AppCompatAutoCompleteTextView {
} }
@Override @Override
public boolean onTouchEvent(MotionEvent event) { public boolean onTouchEvent(@NonNull MotionEvent event) {
switch (event.getAction()) { switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_DOWN:
mTimePressed = System.currentTimeMillis(); mTimePressed = System.currentTimeMillis();

Loading…
Cancel
Save