Browse Source

Fixing potential null pointers

master
anthony restaino 8 years ago
parent
commit
63e77995ac
  1. 19
      app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java
  2. 1
      app/src/main/java/acr/browser/lightning/dialog/LightningDialogBuilder.java
  3. 25
      app/src/main/java/acr/browser/lightning/favicon/ImageFetcher.java
  4. 8
      app/src/main/java/acr/browser/lightning/search/BaseSuggestionsModel.java

19
app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java

@ -765,18 +765,27 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements
return true; return true;
case KeyEvent.KEYCODE_R: case KeyEvent.KEYCODE_R:
// Refresh current tab // Refresh current tab
mTabsManager.getCurrentTab().reload(); LightningView currentTab = mTabsManager.getCurrentTab();
if (currentTab != null) {
currentTab.reload();
}
return true; return true;
case KeyEvent.KEYCODE_TAB: case KeyEvent.KEYCODE_TAB:
int nextIndex = 0; int nextIndex = 0;
if (event.isShiftPressed()) { if (event.isShiftPressed()) {
// Go back one tab // Go back one tab
if(mTabsManager.indexOfCurrentTab() > 0) nextIndex = mTabsManager.indexOfCurrentTab() - 1; if (mTabsManager.indexOfCurrentTab() > 0) {
else nextIndex = mTabsManager.last(); nextIndex = mTabsManager.indexOfCurrentTab() - 1;
} else {
nextIndex = mTabsManager.last();
}
} else { } else {
// Go forward one tab // Go forward one tab
if(mTabsManager.indexOfCurrentTab() < mTabsManager.last()) nextIndex = mTabsManager.indexOfCurrentTab() + 1; if (mTabsManager.indexOfCurrentTab() < mTabsManager.last()) {
else nextIndex = 0; nextIndex = mTabsManager.indexOfCurrentTab() + 1;
} else {
nextIndex = 0;
}
} }
mPresenter.tabChanged(nextIndex); mPresenter.tabChanged(nextIndex);
return true; return true;

1
app/src/main/java/acr/browser/lightning/dialog/LightningDialogBuilder.java

@ -16,7 +16,6 @@ import android.widget.AutoCompleteTextView;
import android.widget.EditText; import android.widget.EditText;
import com.anthonycr.bonsai.CompletableOnSubscribe; import com.anthonycr.bonsai.CompletableOnSubscribe;
import com.anthonycr.bonsai.CompletableSubscriber;
import com.anthonycr.bonsai.Schedulers; import com.anthonycr.bonsai.Schedulers;
import com.anthonycr.bonsai.SingleOnSubscribe; import com.anthonycr.bonsai.SingleOnSubscribe;

25
app/src/main/java/acr/browser/lightning/favicon/ImageFetcher.java

@ -8,12 +8,14 @@ import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import acr.browser.lightning.utils.Utils; import acr.browser.lightning.utils.Utils;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import okhttp3.ResponseBody;
/** /**
* An image fetcher that creates image * An image fetcher that creates image
@ -65,11 +67,17 @@ class ImageFetcher {
Request imageRequest = new Request.Builder().url(url).build(); Request imageRequest = new Request.Builder().url(url).build();
Response boundsResponse = mHttpClient.newCall(imageRequest).execute(); Response boundsResponse = mHttpClient.newCall(imageRequest).execute();
boundsStream = boundsResponse.body().byteStream(); ResponseBody boundsBody = boundsResponse.body();
if (boundsBody == null) {
return null;
}
boundsStream = boundsBody.byteStream();
BitmapFactory.decodeStream(boundsStream, null, mLoaderOptions); BitmapFactory.decodeStream(boundsStream, null, mLoaderOptions);
boundsResponse.body().close(); boundsBody.close();
int size = Utils.dpToPx(24); int size = Utils.dpToPx(24);
@ -77,12 +85,19 @@ class ImageFetcher {
mLoaderOptions.inJustDecodeBounds = false; mLoaderOptions.inJustDecodeBounds = false;
Response imageResponse = mHttpClient.newCall(imageRequest).execute(); Response imageResponse = mHttpClient.newCall(imageRequest).execute();
iconStream = imageResponse.body().byteStream();
ResponseBody imageBody = imageResponse.body();
if (imageBody == null) {
return null;
}
iconStream = imageBody.byteStream();
icon = BitmapFactory.decodeStream(iconStream, null, mLoaderOptions); icon = BitmapFactory.decodeStream(iconStream, null, mLoaderOptions);
imageResponse.body().close(); imageBody.close();
} catch (Exception e) { } catch (IOException exception) {
Log.d(TAG, "Unable to download icon: " + url); Log.d(TAG, "Unable to download icon: " + url);
} finally { } finally {
Utils.close(boundsStream); Utils.close(boundsStream);

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

@ -26,6 +26,7 @@ import okhttp3.Interceptor;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import okhttp3.ResponseBody;
abstract class BaseSuggestionsModel { abstract class BaseSuggestionsModel {
@ -112,9 +113,10 @@ abstract class BaseSuggestionsModel {
Response suggestionsResponse = mHttpClient.newCall(suggestionsRequest).execute(); Response suggestionsResponse = mHttpClient.newCall(suggestionsRequest).execute();
return suggestionsResponse.body().byteStream(); ResponseBody responseBody = suggestionsResponse.body();
} catch (Exception e) { return responseBody != null ? responseBody.byteStream() : null;
Log.e(TAG, "Problem getting search suggestions", e); } catch (IOException exception) {
Log.e(TAG, "Problem getting search suggestions", exception);
} }
return null; return null;

Loading…
Cancel
Save