diff --git a/.idea/misc.xml b/.idea/misc.xml index 3f1af1d..8a1bb8c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,29 @@ + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4782b4c..cb63446 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,10 +24,6 @@ android:name="android.hardware.touchscreen" android:required="false" /> - - { + private class SortName implements Comparator { @Override public int compare(File a, File b) { @@ -137,7 +135,7 @@ public class BookmarkActivity extends ThemableSettingsActivity implements OnClic } protected Dialog onCreateDialog(int id) { - Dialog dialog = null; + Dialog dialog; final AlertDialog.Builder builder = new Builder(this); switch (id) { diff --git a/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java b/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java index 9cc4fbc..bde3d06 100644 --- a/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java @@ -96,19 +96,16 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll private FullscreenHolder mFullscreenContainer; private ListView mDrawerListLeft, mDrawerListRight; private LinearLayout mDrawerLeft, mDrawerRight, mUiLayout, mToolbarLayout; - private RelativeLayout mNewTab, mSearchBar; + private RelativeLayout mSearchBar; // List - private final List mWebViews = new ArrayList(); + private final List mWebViews = new ArrayList<>(); private List mBookmarkList; private LightningView mCurrentView; - // View - private ActionBar mActionBar; private AnimatedProgressBar mProgressBar; private AutoCompleteTextView mSearch; private ImageView mArrowImage; - private Toolbar mToolbar; private VideoView mVideoView; private View mCustomView, mVideoProgressView; @@ -160,9 +157,9 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll @SuppressWarnings("deprecation") private synchronized void initialize() { setContentView(R.layout.activity_main); - mToolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); - mActionBar = getSupportActionBar(); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + ActionBar actionBar = getSupportActionBar(); mPreferences = PreferenceManager.getInstance(); mDarkTheme = mPreferences.getUseDarkTheme() || isIncognito(); @@ -177,7 +174,7 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll mUiLayout = (LinearLayout) findViewById(R.id.ui_layout); mProgressBar = (AnimatedProgressBar) findViewById(R.id.progress_view); - mNewTab = (RelativeLayout) findViewById(R.id.new_tab_button); + RelativeLayout newTab = (RelativeLayout) findViewById(R.id.new_tab_button); mDrawerLeft = (LinearLayout) findViewById(R.id.left_drawer); // Drawer stutters otherwise mDrawerLeft.setLayerType(View.LAYER_TYPE_HARDWARE, null); @@ -205,22 +202,22 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll mHistoryDatabase = HistoryDatabase.getInstance(getApplicationContext()); // set display options of the ActionBar - mActionBar.setDisplayShowTitleEnabled(false); - mActionBar.setDisplayShowHomeEnabled(false); - mActionBar.setDisplayShowCustomEnabled(true); - mActionBar.setCustomView(R.layout.toolbar_content); + actionBar.setDisplayShowTitleEnabled(false); + actionBar.setDisplayShowHomeEnabled(false); + actionBar.setDisplayShowCustomEnabled(true); + actionBar.setCustomView(R.layout.toolbar_content); - View v = mActionBar.getCustomView(); + View v = actionBar.getCustomView(); LayoutParams lp = v.getLayoutParams(); lp.width = LayoutParams.MATCH_PARENT; v.setLayoutParams(lp); mArrowDrawable = new DrawerArrowDrawable(this); - mArrowImage = (ImageView) mActionBar.getCustomView().findViewById(R.id.arrow); + mArrowImage = (ImageView) actionBar.getCustomView().findViewById(R.id.arrow); // Use hardware acceleration for the animation mArrowImage.setLayerType(View.LAYER_TYPE_HARDWARE, null); mArrowImage.setImageDrawable(mArrowDrawable); - LinearLayout arrowButton = (LinearLayout) mActionBar.getCustomView().findViewById( + LinearLayout arrowButton = (LinearLayout) actionBar.getCustomView().findViewById( R.id.arrow_button); arrowButton.setOnClickListener(this); @@ -231,8 +228,8 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll forward.setOnClickListener(this); // create the search EditText in the ToolBar - mSearch = (AutoCompleteTextView) mActionBar.getCustomView().findViewById(R.id.search); - mUntitledTitle = (String) getString(R.string.untitled); + mSearch = (AutoCompleteTextView) actionBar.getCustomView().findViewById(R.id.search); + mUntitledTitle = getString(R.string.untitled); mBackgroundColor = getResources().getColor(R.color.primary_color); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { mDeleteIcon = getResources().getDrawable(R.drawable.ic_action_delete); @@ -283,8 +280,8 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll }); initialize.run(); - mNewTab.setOnClickListener(this); - mNewTab.setOnLongClickListener(new OnLongClickListener() { + newTab.setOnClickListener(this); + newTab.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { @@ -500,7 +497,7 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll * If Orbot/Tor is installed, prompt the user if they want to enable * proxying for this session */ - public boolean checkForTor() { + private boolean checkForTor() { boolean useProxy = mPreferences.getUseProxy(); OrbotHelper oh = new OrbotHelper(this); @@ -538,7 +535,7 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll /* * Initialize WebKit Proxying for Tor */ - public void initializeTor() { + private void initializeTor() { OrbotHelper oh = new OrbotHelper(this); if (!oh.isOrbotRunning()) { @@ -617,12 +614,12 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll mPreferences.setMemoryUrl(""); String[] array = Utils.getArray(mem); int count = 0; - for (int n = 0; n < array.length; n++) { - if (array[n].length() > 0) { - if (url != null && url.compareTo(array[n]) == 0) { + for (String urlString : array) { + if (urlString.length() > 0) { + if (url != null && url.compareTo(urlString) == 0) { url = null; } - newTab(array[n], true); + newTab(urlString, true); count++; } } @@ -1459,13 +1456,13 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll public class LightningViewAdapter extends ArrayAdapter { - Context context; + final Context context; ColorMatrix colorMatrix; ColorMatrixColorFilter filter; Paint paint; - int layoutResourceId; + final int layoutResourceId; List data = null; - CloseTabListener mExitListener; + final CloseTabListener mExitListener; public LightningViewAdapter(Context context, int layoutResourceId, List data) { super(context, layoutResourceId, data); @@ -1478,7 +1475,7 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll @Override public View getView(final int position, View convertView, ViewGroup parent) { View row = convertView; - LightningViewHolder holder = null; + LightningViewHolder holder; if (row == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); @@ -1591,11 +1588,11 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll public static boolean isColorTooDark(int color) { final byte RED_CHANNEL = 16; final byte GREEN_CHANNEL = 8; - final byte BLUE_CHANNEL = 0; + //final byte BLUE_CHANNEL = 0; int r = ((int) ((float) (color >> RED_CHANNEL & 0xff) * 0.3f)) & 0xff; int g = ((int) ((float) (color >> GREEN_CHANNEL & 0xff) * 0.59)) & 0xff; - int b = ((int) ((float) (color >> BLUE_CHANNEL & 0xff) * 0.11)) & 0xff; + int b = ((int) ((float) (color & 0xff) * 0.11)) & 0xff; int gr = (r + g + b) & 0xff; int gray = gr + (gr << GREEN_CHANNEL) + (gr << RED_CHANNEL); @@ -1606,7 +1603,7 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll final byte ALPHA_CHANNEL = 24; final byte RED_CHANNEL = 16; final byte GREEN_CHANNEL = 8; - final byte BLUE_CHANNEL = 0; + //final byte BLUE_CHANNEL = 0; final float inverseAmount = 1.0f - amount; @@ -1614,14 +1611,14 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll int g = ((int) (((float) (color1 >> GREEN_CHANNEL & 0xff) * amount) + ((float) (color2 >> GREEN_CHANNEL & 0xff) * inverseAmount))) & 0xff; int b = ((int) (((float) (color1 & 0xff) * amount) + ((float) (color2 & 0xff) * inverseAmount))) & 0xff; - return 0xff << ALPHA_CHANNEL | r << RED_CHANNEL | g << GREEN_CHANNEL | b << BLUE_CHANNEL; + return 0xff << ALPHA_CHANNEL | r << RED_CHANNEL | g << GREEN_CHANNEL | b; } public class BookmarkViewAdapter extends ArrayAdapter { - Context context; + final Context context; List data = null; - int layoutResourceId; + final int layoutResourceId; public BookmarkViewAdapter(Context context, int layoutResourceId, List data) { super(context, layoutResourceId, data); @@ -1633,7 +1630,7 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; - BookmarkViewHolder holder = null; + BookmarkViewHolder holder; if (row == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); @@ -1670,8 +1667,8 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll private class DownloadImageTask extends AsyncTask { - ImageView bmImage; - HistoryItem mWeb; + final ImageView bmImage; + final HistoryItem mWeb; public DownloadImageTask(ImageView bmImage, HistoryItem web) { this.bmImage = bmImage; @@ -1852,14 +1849,13 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll public boolean getSystemBrowser() { Cursor c = null; String[] columns = new String[] { "url", "title" }; - boolean browserFlag = false; + boolean browserFlag; try { Uri bookmarks = Browser.BOOKMARKS_URI; c = getContentResolver().query(bookmarks, columns, null, null, null); - } catch (SQLiteException ignored) { - } catch (IllegalStateException ignored) { - } catch (NullPointerException ignored) { + } catch (SQLiteException | IllegalStateException | NullPointerException e) { + e.printStackTrace(); } if (c != null) { @@ -1871,7 +1867,6 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll } if (c != null) { c.close(); - c = null; } mPreferences.setSystemBrowserPresent(browserFlag); return browserFlag; @@ -1899,7 +1894,6 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll getUrl.setText(url); } searchTheWeb(url); - url = null; InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); if (mCurrentView != null) { @@ -2045,7 +2039,6 @@ public class BrowserActivity extends ThemableActivity implements BrowserControll mFilePathCallback.onReceiveValue(results); mFilePathCallback = null; - return; } @Override diff --git a/app/src/main/java/acr/browser/lightning/activity/PrivacySettingsActivity.java b/app/src/main/java/acr/browser/lightning/activity/PrivacySettingsActivity.java index e129d59..68220ef 100644 --- a/app/src/main/java/acr/browser/lightning/activity/PrivacySettingsActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/PrivacySettingsActivity.java @@ -144,7 +144,7 @@ public class PrivacySettingsActivity extends ThemableSettingsActivity { private static class MessageHandler extends Handler { - Context mHandlerContext; + final Context mHandlerContext; public MessageHandler(Context context) { this.mHandlerContext = context; diff --git a/app/src/main/java/acr/browser/lightning/activity/ReadingActivity.java b/app/src/main/java/acr/browser/lightning/activity/ReadingActivity.java index a5f024b..75bb05c 100644 --- a/app/src/main/java/acr/browser/lightning/activity/ReadingActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/ReadingActivity.java @@ -1,14 +1,5 @@ package acr.browser.lightning.activity; -import java.util.ArrayList; -import java.util.List; - -import acr.browser.lightning.constant.Constants; -import acr.browser.lightning.preference.PreferenceManager; -import acr.browser.lightning.R; -import acr.browser.lightning.utils.Utils; -import acr.browser.lightning.reading.HtmlFetcher; -import acr.browser.lightning.reading.JResult; import android.animation.ObjectAnimator; import android.app.AlertDialog; import android.app.ProgressDialog; @@ -18,7 +9,7 @@ import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; -import android.support.v7.app.ActionBarActivity; +import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.Menu; @@ -28,7 +19,17 @@ import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; -public class ReadingActivity extends ActionBarActivity { +import java.util.ArrayList; +import java.util.List; + +import acr.browser.lightning.R; +import acr.browser.lightning.constant.Constants; +import acr.browser.lightning.preference.PreferenceManager; +import acr.browser.lightning.reading.HtmlFetcher; +import acr.browser.lightning.reading.JResult; +import acr.browser.lightning.utils.Utils; + +public class ReadingActivity extends AppCompatActivity { private TextView mTitle; private TextView mBody; @@ -114,7 +115,7 @@ public class ReadingActivity extends ActionBarActivity { private class PageLoader extends AsyncTask { - private Context mContext; + private final Context mContext; private ProgressDialog mProgressDialog; private String mTitleText; private List mBodyText; diff --git a/app/src/main/java/acr/browser/lightning/activity/SettingsActivity.java b/app/src/main/java/acr/browser/lightning/activity/SettingsActivity.java index c3ef0bd..c5a8b92 100644 --- a/app/src/main/java/acr/browser/lightning/activity/SettingsActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/SettingsActivity.java @@ -32,7 +32,7 @@ import info.guardianproject.onionkit.ui.OrbotHelper; public class SettingsActivity extends ThemableSettingsActivity { - private static int API = android.os.Build.VERSION.SDK_INT; + private static final int API = android.os.Build.VERSION.SDK_INT; private PreferenceManager mPreferences; private Context mContext; private Activity mActivity; diff --git a/app/src/main/java/acr/browser/lightning/activity/ThemableActivity.java b/app/src/main/java/acr/browser/lightning/activity/ThemableActivity.java index 9afd653..3b80b75 100644 --- a/app/src/main/java/acr/browser/lightning/activity/ThemableActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/ThemableActivity.java @@ -2,12 +2,12 @@ package acr.browser.lightning.activity; import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.ActionBarActivity; +import android.support.v7.app.AppCompatActivity; -import acr.browser.lightning.preference.PreferenceManager; import acr.browser.lightning.R; +import acr.browser.lightning.preference.PreferenceManager; -public abstract class ThemableActivity extends ActionBarActivity { +public abstract class ThemableActivity extends AppCompatActivity { private boolean mDark; diff --git a/app/src/main/java/acr/browser/lightning/activity/ThemableSettingsActivity.java b/app/src/main/java/acr/browser/lightning/activity/ThemableSettingsActivity.java index 86a9468..1955e59 100644 --- a/app/src/main/java/acr/browser/lightning/activity/ThemableSettingsActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/ThemableSettingsActivity.java @@ -2,12 +2,12 @@ package acr.browser.lightning.activity; import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.ActionBarActivity; +import android.support.v7.app.AppCompatActivity; -import acr.browser.lightning.preference.PreferenceManager; import acr.browser.lightning.R; +import acr.browser.lightning.preference.PreferenceManager; -public abstract class ThemableSettingsActivity extends ActionBarActivity { +public abstract class ThemableSettingsActivity extends AppCompatActivity { private boolean mDark; diff --git a/app/src/main/java/acr/browser/lightning/constant/Constants.java b/app/src/main/java/acr/browser/lightning/constant/Constants.java index f87f7ec..f8a25ce 100644 --- a/app/src/main/java/acr/browser/lightning/constant/Constants.java +++ b/app/src/main/java/acr/browser/lightning/constant/Constants.java @@ -14,7 +14,6 @@ public final class Constants { public static final String DESKTOP_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36"; public static final String MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; Android 4.4; en-us; Nexus 4 Build/JOP24G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"; - public static final int API = android.os.Build.VERSION.SDK_INT; public static final String YAHOO_SEARCH = "https://search.yahoo.com/search?p="; public static final String GOOGLE_SEARCH = "https://www.google.com/search?client=lightning&ie=UTF-8&oe=UTF-8&q="; public static final String BING_SEARCH = "https://www.bing.com/search?q="; diff --git a/app/src/main/java/acr/browser/lightning/controller/BrowserController.java b/app/src/main/java/acr/browser/lightning/controller/BrowserController.java index 5052203..8fdbd53 100644 --- a/app/src/main/java/acr/browser/lightning/controller/BrowserController.java +++ b/app/src/main/java/acr/browser/lightning/controller/BrowserController.java @@ -14,45 +14,45 @@ import android.webkit.WebView; public interface BrowserController { - public void updateUrl(String title, boolean shortUrl); + void updateUrl(String title, boolean shortUrl); - public void updateProgress(int n); + void updateProgress(int n); - public void updateHistory(String title, String url); + void updateHistory(String title, String url); - public void openFileChooser(ValueCallback uploadMsg); + void openFileChooser(ValueCallback uploadMsg); - public void update(); + void update(); - public void onLongPress(); + void onLongPress(); - public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback); + void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback); - public void onHideCustomView(); + void onHideCustomView(); - public Bitmap getDefaultVideoPoster(); + Bitmap getDefaultVideoPoster(); - public View getVideoLoadingProgressView(); + View getVideoLoadingProgressView(); - public void onCreateWindow(boolean isUserGesture, Message resultMsg); + void onCreateWindow(boolean isUserGesture, Message resultMsg); - public Activity getActivity(); + Activity getActivity(); - public void hideActionBar(); + void hideActionBar(); - public void showActionBar(); + void showActionBar(); - public void toggleActionBar(); + void toggleActionBar(); - public void longClickPage(String url); + void longClickPage(String url); - public void openBookmarkPage(WebView view); + void openBookmarkPage(WebView view); - public void showFileChooser(ValueCallback filePathCallback); + void showFileChooser(ValueCallback filePathCallback); - public void closeEmptyTab(); + void closeEmptyTab(); - public boolean isIncognito(); + boolean isIncognito(); - public int getMenu(); + int getMenu(); } diff --git a/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java b/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java index 208f5b3..b42ebb6 100644 --- a/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java +++ b/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java @@ -1,9 +1,17 @@ package acr.browser.lightning.database; +import android.content.Context; +import android.database.Cursor; +import android.os.Environment; +import android.provider.Browser; +import android.widget.Toast; + +import org.json.JSONException; +import org.json.JSONObject; + import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; @@ -15,15 +23,6 @@ import java.util.Locale; import java.util.SortedMap; import java.util.TreeMap; -import org.json.JSONException; -import org.json.JSONObject; - -import android.content.Context; -import android.database.Cursor; -import android.os.Environment; -import android.provider.Browser; -import android.widget.Toast; - import acr.browser.lightning.R; import acr.browser.lightning.constant.Constants; import acr.browser.lightning.preference.PreferenceManager; @@ -31,13 +30,13 @@ import acr.browser.lightning.utils.Utils; public class BookmarkManager { - private Context mContext; + private final Context mContext; private static final String TITLE = "title"; private static final String URL = "url"; private static final String FOLDER = "folder"; private static final String ORDER = "order"; private static final String FILE_BOOKMARKS = "bookmarks.dat"; - private static SortedMap mBookmarkMap = new TreeMap( + private static SortedMap mBookmarkMap = new TreeMap<>( String.CASE_INSENSITIVE_ORDER); private static BookmarkManager mInstance; @@ -74,9 +73,7 @@ public class BookmarkManager { bookmarkWriter.newLine(); bookmarkWriter.close(); mBookmarkMap.put(item.getUrl(), 1); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } return true; @@ -104,9 +101,7 @@ public class BookmarkManager { } } bookmarkWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } } @@ -117,7 +112,7 @@ public class BookmarkManager { * @param url */ public synchronized boolean deleteBookmark(String url) { - List list = new ArrayList(); + List list; if (url == null) { return false; } @@ -141,9 +136,7 @@ public class BookmarkManager { } } fileWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } return bookmarkDeleted; @@ -182,9 +175,7 @@ public class BookmarkManager { mContext, mContext.getString(R.string.bookmark_export_path) + " " + bookmarksExport.getPath(), Toast.LENGTH_SHORT).show(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } @@ -196,7 +187,7 @@ public class BookmarkManager { * @return */ public synchronized List getBookmarks(boolean sort) { - List bookmarks = new ArrayList(); + List bookmarks = new ArrayList<>(); File bookmarksFile = new File(mContext.getFilesDir(), FILE_BOOKMARKS); try { BufferedReader bookmarksReader = new BufferedReader(new FileReader(bookmarksFile)); @@ -212,11 +203,7 @@ public class BookmarkManager { bookmarks.add(item); } bookmarksReader.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } if (sort) { @@ -232,7 +219,7 @@ public class BookmarkManager { * @return */ public synchronized List getBookmarksFromFolder(String folder) { - List bookmarks = new ArrayList(); + List bookmarks = new ArrayList<>(); File bookmarksFile = new File(mContext.getFilesDir(), FILE_BOOKMARKS); try { BufferedReader bookmarksReader = new BufferedReader(new FileReader(bookmarksFile)); @@ -250,11 +237,7 @@ public class BookmarkManager { } } bookmarksReader.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } return bookmarks; @@ -266,7 +249,7 @@ public class BookmarkManager { * @return */ private synchronized SortedMap getBookmarkUrls() { - SortedMap map = new TreeMap(String.CASE_INSENSITIVE_ORDER); + SortedMap map = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); File bookmarksFile = new File(mContext.getFilesDir(), FILE_BOOKMARKS); try { BufferedReader bookmarksReader = new BufferedReader(new FileReader(bookmarksFile)); @@ -276,11 +259,7 @@ public class BookmarkManager { map.put(object.getString(URL), 1); } bookmarksReader.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (JSONException | IOException e) { e.printStackTrace(); } return map; @@ -292,8 +271,8 @@ public class BookmarkManager { * @return */ public synchronized List getFolders() { - List folders = new ArrayList(); - SortedMap folderMap = new TreeMap( + List folders = new ArrayList<>(); + SortedMap folderMap = new TreeMap<>( String.CASE_INSENSITIVE_ORDER); File bookmarksFile = new File(mContext.getFilesDir(), FILE_BOOKMARKS); try { @@ -311,11 +290,7 @@ public class BookmarkManager { } } bookmarksReader.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } return folders; @@ -328,7 +303,7 @@ public class BookmarkManager { public synchronized void importBookmarksFromBrowser(Context context) { if (PreferenceManager.getInstance().getSystemBrowserPresent()) { - List bookmarkList = new ArrayList(); + List bookmarkList = new ArrayList<>(); String[] columns = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; String selection = Browser.BookmarkColumns.BOOKMARK + " = 1"; @@ -372,7 +347,7 @@ public class BookmarkManager { if (file == null) { return; } - List list = new ArrayList(); + List list = new ArrayList<>(); try { BufferedReader bookmarksReader = new BufferedReader(new FileReader(file)); String line; @@ -391,17 +366,7 @@ public class BookmarkManager { addBookmarkList(list); Utils.showToast(mContext, number + " " + mContext.getResources().getString(R.string.message_import)); - } catch (FileNotFoundException e) { - e.printStackTrace(); - Utils.createInformativeDialog(context, - mContext.getResources().getString(R.string.title_error), mContext - .getResources().getString(R.string.import_bookmark_error)); - } catch (IOException e) { - e.printStackTrace(); - Utils.createInformativeDialog(context, - mContext.getResources().getString(R.string.title_error), mContext - .getResources().getString(R.string.import_bookmark_error)); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); Utils.createInformativeDialog(context, mContext.getResources().getString(R.string.title_error), mContext @@ -430,9 +395,7 @@ public class BookmarkManager { bookmarkWriter.newLine(); } bookmarkWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (JSONException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } } diff --git a/app/src/main/java/acr/browser/lightning/database/HistoryDatabase.java b/app/src/main/java/acr/browser/lightning/database/HistoryDatabase.java index 6e9736e..a12e8c4 100644 --- a/app/src/main/java/acr/browser/lightning/database/HistoryDatabase.java +++ b/app/src/main/java/acr/browser/lightning/database/HistoryDatabase.java @@ -92,6 +92,7 @@ public class HistoryDatabase extends SQLiteOpenHelper { } else { addHistoryItem(new HistoryItem(url, title)); } + q.close(); } public synchronized void addHistoryItem(HistoryItem item) { @@ -116,7 +117,7 @@ public class HistoryDatabase extends SQLiteOpenHelper { } public List findItemsContaining(String search) { - List itemList = new ArrayList(); + List itemList = new ArrayList<>(); String selectQuery = "SELECT * FROM " + TABLE_HISTORY + " WHERE " + KEY_TITLE + " LIKE '%" + search + "%' OR " + KEY_URL + " LIKE '%" + search + "%' " + "ORDER BY " + KEY_TIME_VISITED + " DESC LIMIT 5"; @@ -139,7 +140,7 @@ public class HistoryDatabase extends SQLiteOpenHelper { } public List getLastHundredItems() { - List itemList = new ArrayList(); + List itemList = new ArrayList<>(); String selectQuery = "SELECT * FROM " + TABLE_HISTORY + " ORDER BY " + KEY_TIME_VISITED + " DESC"; @@ -161,7 +162,7 @@ public class HistoryDatabase extends SQLiteOpenHelper { } public List getAllHistoryItems() { - List itemList = new ArrayList(); + List itemList = new ArrayList<>(); String selectQuery = "SELECT * FROM " + TABLE_HISTORY + " ORDER BY " + KEY_TIME_VISITED + " DESC"; diff --git a/app/src/main/java/acr/browser/lightning/database/HistoryItem.java b/app/src/main/java/acr/browser/lightning/database/HistoryItem.java index 3d79010..c4741b7 100644 --- a/app/src/main/java/acr/browser/lightning/database/HistoryItem.java +++ b/app/src/main/java/acr/browser/lightning/database/HistoryItem.java @@ -4,6 +4,7 @@ package acr.browser.lightning.database; import android.graphics.Bitmap; +import android.support.annotation.NonNull; public class HistoryItem implements Comparable { @@ -112,7 +113,7 @@ public class HistoryItem implements Comparable { } @Override - public int compareTo(HistoryItem another) { + public int compareTo(@NonNull HistoryItem another) { return mTitle.compareTo(another.mTitle); } @@ -137,10 +138,7 @@ public class HistoryItem implements Comparable { if (mBitmap != null ? !mBitmap.equals(that.mBitmap) : that.mBitmap != null) { return false; } - if (!mTitle.equals(that.mTitle)) { - return false; - } - return mUrl.equals(that.mUrl); + return mTitle.equals(that.mTitle) && mUrl.equals(that.mUrl); } @Override diff --git a/app/src/main/java/acr/browser/lightning/download/DownloadHandler.java b/app/src/main/java/acr/browser/lightning/download/DownloadHandler.java index b4830bc..58f56b0 100644 --- a/app/src/main/java/acr/browser/lightning/download/DownloadHandler.java +++ b/app/src/main/java/acr/browser/lightning/download/DownloadHandler.java @@ -131,8 +131,8 @@ public class DownloadHandler { * If the request is coming from a private browsing tab. */ /* package */ - static void onDownloadStartNoStream(Activity activity, String url, String userAgent, - String contentDisposition, String mimetype, boolean privateBrowsing) { + private static void onDownloadStartNoStream(Activity activity, String url, String userAgent, + String contentDisposition, String mimetype, boolean privateBrowsing) { String filename = URLUtil.guessFileName(url, contentDisposition, mimetype); diff --git a/app/src/main/java/acr/browser/lightning/download/FetchUrlMimeType.java b/app/src/main/java/acr/browser/lightning/download/FetchUrlMimeType.java index 1cb2165..329387b 100644 --- a/app/src/main/java/acr/browser/lightning/download/FetchUrlMimeType.java +++ b/app/src/main/java/acr/browser/lightning/download/FetchUrlMimeType.java @@ -26,15 +26,15 @@ import acr.browser.lightning.R; */ public class FetchUrlMimeType extends Thread { - private Context mContext; + private final Context mContext; - private DownloadManager.Request mRequest; + private final DownloadManager.Request mRequest; - private String mUri; + private final String mUri; - private String mCookies; + private final String mCookies; - private String mUserAgent; + private final String mUserAgent; public FetchUrlMimeType(Context context, DownloadManager.Request request, String uri, String cookies, String userAgent) { @@ -78,10 +78,7 @@ public class FetchUrlMimeType extends Thread { contentDisposition = contentDispositionHeader; } } - } catch (IllegalArgumentException ex) { - if (connection != null) - connection.disconnect(); - } catch (IOException ex) { + } catch (IllegalArgumentException | IOException ex) { if (connection != null) connection.disconnect(); } finally { diff --git a/app/src/main/java/acr/browser/lightning/download/LightningDownloadListener.java b/app/src/main/java/acr/browser/lightning/download/LightningDownloadListener.java index 2439405..241a091 100644 --- a/app/src/main/java/acr/browser/lightning/download/LightningDownloadListener.java +++ b/app/src/main/java/acr/browser/lightning/download/LightningDownloadListener.java @@ -16,7 +16,7 @@ import acr.browser.lightning.download.DownloadHandler; public class LightningDownloadListener implements DownloadListener { - private Activity mActivity; + private final Activity mActivity; public LightningDownloadListener(Activity activity) { mActivity = activity; diff --git a/app/src/main/java/acr/browser/lightning/download/WebAddress.java b/app/src/main/java/acr/browser/lightning/download/WebAddress.java index d459e08..9d2f87e 100644 --- a/app/src/main/java/acr/browser/lightning/download/WebAddress.java +++ b/app/src/main/java/acr/browser/lightning/download/WebAddress.java @@ -32,7 +32,7 @@ public class WebAddress { static final int MATCH_GROUP_HOST = 3; static final int MATCH_GROUP_PORT = 4; static final int MATCH_GROUP_PATH = 5; - static Pattern sAddressPattern = Pattern.compile( + static final Pattern sAddressPattern = Pattern.compile( /* scheme */"(?:(http|https|file)\\:\\/\\/)?" + /* authority */"(?:([-A-Za-z0-9$_.+!*'(),;?&=]+(?:\\:[-A-Za-z0-9$_.+!*'(),;?&=]+)?)@)?" + /* host */"([" + GOOD_IRI_CHAR + "%_-][" + GOOD_IRI_CHAR + "%_\\.-]*|\\[[0-9a-fA-F:\\.]+\\])?" + diff --git a/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java b/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java index c5b97e3..3cdf447 100644 --- a/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java +++ b/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java @@ -50,26 +50,26 @@ public class SearchAdapter extends BaseAdapter implements Filterable { private List mFilteredList; private List mAllBookmarks; private HistoryDatabase mDatabaseHandler; - private Context mContext; + private final Context mContext; private boolean mUseGoogle = true; private boolean mIsExecuting = false; - private boolean mDarkTheme; - private boolean mIncognito; - private BookmarkManager mBookmarkManager; + private final boolean mDarkTheme; + private final boolean mIncognito; + private final BookmarkManager mBookmarkManager; private static final String ENCODING = "ISO-8859-1"; private static final long INTERVAL_DAY = 86400000; - private String mSearchSubtitle; + private final String mSearchSubtitle; private static final int API = Build.VERSION.SDK_INT; - private Theme mTheme; + private final Theme mTheme; private SearchFilter mFilter; public SearchAdapter(Context context, boolean dark, boolean incognito) { mDatabaseHandler = HistoryDatabase.getInstance(context.getApplicationContext()); mTheme = context.getTheme(); - mFilteredList = new ArrayList(); - mHistory = new ArrayList(); - mBookmarks = new ArrayList(); - mSuggestions = new ArrayList(); + mFilteredList = new ArrayList<>(); + mHistory = new ArrayList<>(); + mBookmarks = new ArrayList<>(); + mSuggestions = new ArrayList<>(); mBookmarkManager = BookmarkManager.getInstance(context.getApplicationContext()); mAllBookmarks = mBookmarkManager.getBookmarks(true); mUseGoogle = PreferenceManager.getInstance().getGoogleSearchSuggestionsEnabled(); @@ -146,7 +146,7 @@ public class SearchAdapter extends BaseAdapter implements Filterable { @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; - SuggestionHolder holder = null; + SuggestionHolder holder; if (row == null) { LayoutInflater inflater = ((Activity) mContext).getLayoutInflater(); @@ -228,7 +228,7 @@ public class SearchAdapter extends BaseAdapter implements Filterable { @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); - if (constraint == null || constraint.toString() == null) { + if (constraint == null) { return results; } String query = constraint.toString().toLowerCase(Locale.getDefault()); @@ -237,7 +237,7 @@ public class SearchAdapter extends BaseAdapter implements Filterable { } int counter = 0; - mBookmarks = new ArrayList(); + mBookmarks = new ArrayList<>(); for (int n = 0; n < mAllBookmarks.size(); n++) { if (counter >= 5) { break; @@ -289,7 +289,7 @@ public class SearchAdapter extends BaseAdapter implements Filterable { protected List doInBackground(String... arg0) { mIsExecuting = true; - List filter = new ArrayList(); + List filter = new ArrayList<>(); String query = arg0[0]; try { query = query.replace(" ", "+"); @@ -397,7 +397,7 @@ public class SearchAdapter extends BaseAdapter implements Filterable { } public List getSuggestions() { - List filteredList = new ArrayList(); + List filteredList = new ArrayList<>(); int suggestionsSize = (mSuggestions == null) ? 0 : mSuggestions.size(); int historySize = (mHistory == null) ? 0 : mHistory.size(); diff --git a/app/src/main/java/acr/browser/lightning/reading/ArticleTextExtractor.java b/app/src/main/java/acr/browser/lightning/reading/ArticleTextExtractor.java index 5b6b788..a37ecb4 100644 --- a/app/src/main/java/acr/browser/lightning/reading/ArticleTextExtractor.java +++ b/app/src/main/java/acr/browser/lightning/reading/ArticleTextExtractor.java @@ -153,7 +153,7 @@ public class ArticleTextExtractor { } if (bestMatchElement != null) { - List images = new ArrayList(); + List images = new ArrayList<>(); Element imgEl = determineImageSource(bestMatchElement, images); if (imgEl != null) { res.setImageUrl(SHelper.replaceSpaces(imgEl.attr("src"))); @@ -321,7 +321,7 @@ public class ArticleTextExtractor { protected int weightChildNodes(Element rootEl) { int weight = 0; Element caption = null; - List pEls = new ArrayList(5); + List pEls = new ArrayList<>(5); for (Element child : rootEl.children()) { String ownText = child.ownText(); int ownTextLength = ownText.length(); @@ -373,6 +373,7 @@ public class ArticleTextExtractor { try { old = Integer.parseInt(el.attr("gravityScore")); } catch (Exception ex) { + ex.printStackTrace(); } return old; } @@ -444,6 +445,7 @@ public class ArticleTextExtractor { else weight -= 20; } catch (Exception ex) { + ex.printStackTrace(); } int width = 0; @@ -454,6 +456,7 @@ public class ArticleTextExtractor { else weight -= 20; } catch (Exception ex) { + ex.printStackTrace(); } String alt = e.attr("alt"); if (alt.length() > 35) @@ -463,7 +466,7 @@ public class ArticleTextExtractor { if (title.length() > 35) weight += 20; - String rel = null; + String rel; boolean noFollow = false; if (e.parent() != null) { rel = e.parent().attr("rel"); @@ -561,7 +564,7 @@ public class ArticleTextExtractor { * @return a set of all important nodes */ public Collection getNodes(Document doc) { - Set nodes = new HashSet(64); + Set nodes = new HashSet<>(64); int score = 100; for (Element el : doc.select("body").select("*")) { if (NODES.matcher(el.tagName()).matches()) { diff --git a/app/src/main/java/acr/browser/lightning/reading/Converter.java b/app/src/main/java/acr/browser/lightning/reading/Converter.java index 25c5310..fc1dc37 100644 --- a/app/src/main/java/acr/browser/lightning/reading/Converter.java +++ b/app/src/main/java/acr/browser/lightning/reading/Converter.java @@ -15,13 +15,17 @@ */ package acr.browser.lightning.reading; -import java.io.*; -import java.net.SocketTimeoutException; +import android.util.Log; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.Locale; import acr.browser.lightning.constant.Constants; -import android.util.Log; /** * This class is not thread safe. Use one new instance every time due to @@ -156,8 +160,6 @@ public class Converter { } return output.toString(encoding); - } catch (SocketTimeoutException e) { - Log.e(Constants.TAG, e.toString() + " url:" + url); } catch (IOException e) { Log.e(Constants.TAG, e.toString() + " url:" + url); } finally { @@ -165,6 +167,7 @@ public class Converter { try { in.close(); } catch (Exception e) { + e.printStackTrace(); } } } diff --git a/app/src/main/java/acr/browser/lightning/reading/HtmlFetcher.java b/app/src/main/java/acr/browser/lightning/reading/HtmlFetcher.java index 8dc5b6e..1d049fa 100644 --- a/app/src/main/java/acr/browser/lightning/reading/HtmlFetcher.java +++ b/app/src/main/java/acr/browser/lightning/reading/HtmlFetcher.java @@ -51,8 +51,8 @@ public class HtmlFetcher { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new FileReader("urls.txt")); - String line = null; - Set existing = new LinkedHashSet(); + String line; + Set existing = new LinkedHashSet<>(); while ((line = reader.readLine()) != null) { int index1 = line.indexOf("\""); int index2 = line.indexOf("\"", index1 + 1); @@ -81,10 +81,10 @@ public class HtmlFetcher { private String accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; private String charset = "UTF-8"; private SCache cache; - private AtomicInteger cacheCounter = new AtomicInteger(0); + private final AtomicInteger cacheCounter = new AtomicInteger(0); private int maxTextLength = -1; private ArticleTextExtractor extractor = new ArticleTextExtractor(); - private Set furtherResolveNecessary = new LinkedHashSet() { + private final Set furtherResolveNecessary = new LinkedHashSet() { { add("bit.ly"); add("cli.gs"); diff --git a/app/src/main/java/acr/browser/lightning/reading/ImageResult.java b/app/src/main/java/acr/browser/lightning/reading/ImageResult.java index fbdf461..85d52d2 100644 --- a/app/src/main/java/acr/browser/lightning/reading/ImageResult.java +++ b/app/src/main/java/acr/browser/lightning/reading/ImageResult.java @@ -9,13 +9,13 @@ import org.jsoup.nodes.Element; */ public class ImageResult { - public String src; - public Integer weight; - public String title; - public int height; - public int width; - public String alt; - public boolean noFollow; + public final String src; + public final Integer weight; + public final String title; + public final int height; + public final int width; + public final String alt; + public final boolean noFollow; public Element element; public ImageResult(String src, Integer weight, String title, int height, int width, String alt, diff --git a/app/src/main/java/acr/browser/lightning/reading/JResult.java b/app/src/main/java/acr/browser/lightning/reading/JResult.java index b094e3d..c3ff764 100644 --- a/app/src/main/java/acr/browser/lightning/reading/JResult.java +++ b/app/src/main/java/acr/browser/lightning/reading/JResult.java @@ -133,7 +133,7 @@ public class JResult implements Serializable { public List getTextList() { if (this.textList == null) - return new ArrayList(); + return new ArrayList<>(); return this.textList; } diff --git a/app/src/main/java/acr/browser/lightning/reading/OutputFormatter.java b/app/src/main/java/acr/browser/lightning/reading/OutputFormatter.java index 2afd0a9..4c5b403 100644 --- a/app/src/main/java/acr/browser/lightning/reading/OutputFormatter.java +++ b/app/src/main/java/acr/browser/lightning/reading/OutputFormatter.java @@ -74,7 +74,7 @@ public class OutputFormatter { * Takes an element and returns a list of texts extracted from the P tags */ public List getTextList(Element topNode) { - List texts = new ArrayList(); + List texts = new ArrayList<>(); for (Element element : topNode.select(this.nodesToKeepCssSelector)) { if (element.hasText()) { texts.add(element.text()); diff --git a/app/src/main/java/acr/browser/lightning/reading/SHelper.java b/app/src/main/java/acr/browser/lightning/reading/SHelper.java index 7be2ec9..08b0735 100644 --- a/app/src/main/java/acr/browser/lightning/reading/SHelper.java +++ b/app/src/main/java/acr/browser/lightning/reading/SHelper.java @@ -279,11 +279,10 @@ public class SHelper { if (url.startsWith("http://www.google.com/url?")) { url = url.substring("http://www.google.com/url?".length()); String arr[] = urlDecode(url).split("\\&"); - if (arr != null) - for (String str : arr) { - if (str.startsWith("q=")) - return str.substring("q=".length()); - } + for (String str : arr) { + if (str.startsWith("q=")) + return str.substring("q=".length()); + } } return null; @@ -382,6 +381,7 @@ public class SHelper { try { day = Integer.parseInt(str); } catch (Exception ex) { + ex.printStackTrace(); } if (day < 1 || day > 31) { day = -1; diff --git a/app/src/main/java/acr/browser/lightning/utils/AdBlock.java b/app/src/main/java/acr/browser/lightning/utils/AdBlock.java index 4abcbfe..a317f09 100644 --- a/app/src/main/java/acr/browser/lightning/utils/AdBlock.java +++ b/app/src/main/java/acr/browser/lightning/utils/AdBlock.java @@ -20,7 +20,7 @@ public class AdBlock { private static final String TAG = "AdBlock"; private static final String BLOCKED_DOMAINS_LIST_FILE_NAME = "hosts.txt"; - private static final Set mBlockedDomainsList = new HashSet(); + private static final Set mBlockedDomainsList = new HashSet<>(); private boolean mBlockAds; private static final Locale mLocale = Locale.getDefault(); private static AdBlock mInstance; diff --git a/app/src/main/java/acr/browser/lightning/utils/IntentUtils.java b/app/src/main/java/acr/browser/lightning/utils/IntentUtils.java index 60c4a47..324314d 100644 --- a/app/src/main/java/acr/browser/lightning/utils/IntentUtils.java +++ b/app/src/main/java/acr/browser/lightning/utils/IntentUtils.java @@ -19,7 +19,7 @@ import acr.browser.lightning.controller.BrowserController; public class IntentUtils { - private Activity mActivity; + private final Activity mActivity; static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile("(?i)" + // switch on case insensitive matching diff --git a/app/src/main/java/acr/browser/lightning/utils/Utils.java b/app/src/main/java/acr/browser/lightning/utils/Utils.java index cfa65c7..fcc8af8 100644 --- a/app/src/main/java/acr/browser/lightning/utils/Utils.java +++ b/app/src/main/java/acr/browser/lightning/utils/Utils.java @@ -115,7 +115,7 @@ public final class Utils { } public static List getOldBookmarks(Context context) { - List bookmarks = new ArrayList(); + List bookmarks = new ArrayList<>(); File bookUrl = new File(context.getFilesDir(), "bookurl"); File book = new File(context.getFilesDir(), "bookmarks"); try { @@ -128,8 +128,8 @@ public final class Utils { } readBook.close(); readUrl.close(); - } catch (FileNotFoundException ignored) { - } catch (IOException ignored) { + } catch (IOException e) { + e.printStackTrace(); } return bookmarks; } @@ -192,11 +192,10 @@ public final class Utils { String imageFileName = "JPEG_" + timeStamp + "_"; File storageDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); - File imageFile = File.createTempFile(imageFileName, /* prefix */ + return File.createTempFile(imageFileName, /* prefix */ ".jpg", /* suffix */ storageDir /* directory */ ); - return imageFile; } public static Bitmap getWebpageBitmap(Resources resources, boolean dark) { diff --git a/app/src/main/java/acr/browser/lightning/view/LightningView.java b/app/src/main/java/acr/browser/lightning/view/LightningView.java index a2e11be..f50b87d 100644 --- a/app/src/main/java/acr/browser/lightning/view/LightningView.java +++ b/app/src/main/java/acr/browser/lightning/view/LightningView.java @@ -4,14 +4,6 @@ package acr.browser.lightning.view; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.net.URISyntaxException; - import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; @@ -28,6 +20,7 @@ import android.net.Uri; import android.net.http.SslError; import android.os.Build; import android.os.Message; +import android.support.annotation.NonNull; import android.text.InputType; import android.text.method.PasswordTransformationMethod; import android.util.Log; @@ -52,29 +45,36 @@ import android.webkit.WebViewClient; import android.widget.EditText; import android.widget.LinearLayout; -import acr.browser.lightning.controller.BrowserController; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.net.URISyntaxException; + +import acr.browser.lightning.R; import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.StartPage; +import acr.browser.lightning.controller.BrowserController; import acr.browser.lightning.download.LightningDownloadListener; import acr.browser.lightning.preference.PreferenceManager; -import acr.browser.lightning.R; import acr.browser.lightning.utils.AdBlock; import acr.browser.lightning.utils.IntentUtils; import acr.browser.lightning.utils.Utils; public class LightningView { - private Title mTitle; + private final Title mTitle; private WebView mWebView; private BrowserController mBrowserController; private GestureDetector mGestureDetector; - private Activity mActivity; + private final Activity mActivity; private WebSettings mSettings; private static String mHomepage; private static String mDefaultUserAgent; private static Bitmap mWebpageBitmap; private static PreferenceManager mPreferences; - private AdBlock mAdBlock; + private final AdBlock mAdBlock; private IntentUtils mIntentUtils; private final Paint mPaint = new Paint(); private boolean isForegroundTab; @@ -195,6 +195,7 @@ public class LightningView { icon = "file:///android_asset/startpage.png"; // "https://startpage.com/graphics/startp_logo.gif"; searchUrl = Constants.STARTPAGE_MOBILE_SEARCH; + break; case 7: // DUCK_SEARCH; icon = "file:///android_asset/duckduckgo.png"; @@ -539,8 +540,6 @@ public class LightningView { icon.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } @@ -637,7 +636,7 @@ public class LightningView { public class LightningWebClient extends WebViewClient { - Context mActivity; + final Context mActivity; LightningWebClient(Context context) { mActivity = context; @@ -690,7 +689,7 @@ public class LightningView { } @Override - public void onReceivedHttpAuthRequest(final WebView view, final HttpAuthHandler handler, + public void onReceivedHttpAuthRequest(final WebView view, @NonNull final HttpAuthHandler handler, final String host, final String realm) { AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); @@ -760,7 +759,7 @@ public class LightningView { } @Override - public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { + public void onReceivedSslError(WebView view, @NonNull final SslErrorHandler handler, SslError error) { AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setTitle(mActivity.getString(R.string.title_warning)); builder.setMessage(mActivity.getString(R.string.message_untrusted_certificate)) @@ -789,7 +788,7 @@ public class LightningView { } @Override - public void onFormResubmission(WebView view, final Message dontResend, final Message resend) { + public void onFormResubmission(WebView view, @NonNull final Message dontResend, final Message resend) { AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setTitle(mActivity.getString(R.string.title_form_resubmission)); builder.setMessage(mActivity.getString(R.string.message_form_resubmission)) @@ -830,7 +829,7 @@ public class LightningView { view.reload(); return true; } else if (url.startsWith("intent://")) { - Intent intent = null; + Intent intent; try { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); } catch (URISyntaxException ex) { @@ -851,7 +850,7 @@ public class LightningView { public class LightningChromeClient extends WebChromeClient { - Context mActivity; + final Context mActivity; LightningChromeClient(Context context) { mActivity = context; @@ -888,7 +887,7 @@ public class LightningView { final boolean remember = true; AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setTitle(mActivity.getString(R.string.location)); - String org = null; + String org; if (origin.length() > 50) { org = origin.subSequence(0, 50) + "..."; } else { @@ -1012,7 +1011,7 @@ public class LightningView { private Bitmap mFavicon; private String mTitle; - private Bitmap mDefaultIcon; + private final Bitmap mDefaultIcon; public Title(Context context, boolean darkTheme) { mDefaultIcon = Utils.getWebpageBitmap(context.getResources(), darkTheme);