Browse Source

Restore consistency in code formatting

* remove all trailing spaces
* some files used spaces instead of tabs like the rest of codebase - fixed
* make use of IDE "optimize import" feature
* make use of IDE "auto format" feature to fix some missing spaces here and there
master
Miłosz Sieradzki 10 years ago
parent
commit
005e75fc8d
  1. 11
      src/acr/browser/lightning/AdBlock.java
  2. 26
      src/acr/browser/lightning/AdvancedSettingsActivity.java
  3. 6
      src/acr/browser/lightning/BookmarkPageVariables.java
  4. 295
      src/acr/browser/lightning/BrowserActivity.java
  5. 1
      src/acr/browser/lightning/BrowserController.java
  6. 1
      src/acr/browser/lightning/ClickHandler.java
  7. 24
      src/acr/browser/lightning/Constants.java
  8. 21
      src/acr/browser/lightning/DatabaseHandler.java
  9. 18
      src/acr/browser/lightning/DownloadHandler.java
  10. 24
      src/acr/browser/lightning/FetchMimeUrlType.java
  11. 5
      src/acr/browser/lightning/HistoryItem.java
  12. 6
      src/acr/browser/lightning/HistoryPageVariables.java
  13. 1
      src/acr/browser/lightning/HomepageVariables.java
  14. 4
      src/acr/browser/lightning/IncognitoActivity.java
  15. 15
      src/acr/browser/lightning/IntentUtils.java
  16. 1
      src/acr/browser/lightning/LicenseActivity.java
  17. 11
      src/acr/browser/lightning/LightningDownloadListener.java
  18. 109
      src/acr/browser/lightning/LightningView.java
  19. 4
      src/acr/browser/lightning/MainActivity.java
  20. 32
      src/acr/browser/lightning/PreferenceConstants.java
  21. 34
      src/acr/browser/lightning/ReplacingInputStream.java
  22. 46
      src/acr/browser/lightning/SearchAdapter.java
  23. 37
      src/acr/browser/lightning/SettingsActivity.java
  24. 9
      src/acr/browser/lightning/SettingsController.java
  25. 27
      src/acr/browser/lightning/Utils.java
  26. 50
      src/acr/browser/lightning/WebAddress.java

11
src/acr/browser/lightning/AdBlock.java

@ -1,5 +1,9 @@ @@ -1,5 +1,9 @@
package acr.browser.lightning;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.AssetManager;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@ -8,14 +12,12 @@ import java.net.URI; @@ -8,14 +12,12 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.TreeMap;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.AssetManager;
public class AdBlock {
private static TreeMap<String, Integer> mAdBlockMap = null;
private SharedPreferences mPreferences;
private boolean mBlockAds = false;
public AdBlock(Context context) {
@ -88,5 +90,4 @@ public class AdBlock { @@ -88,5 +90,4 @@ public class AdBlock {
}
return domain.startsWith("www.") ? domain.substring(4) : domain;
}
}

26
src/acr/browser/lightning/AdvancedSettingsActivity.java

@ -3,27 +3,21 @@ @@ -3,27 +3,21 @@
*/
package acr.browser.lightning;
import java.io.File;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Browser;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Browser;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebIconDatabase;
import android.webkit.WebView;
import android.webkit.WebViewDatabase;
import android.view.WindowManager;
import android.webkit.*;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@ -34,15 +28,22 @@ public class AdvancedSettingsActivity extends Activity { @@ -34,15 +28,22 @@ public class AdvancedSettingsActivity extends Activity {
// mPreferences variables
private static final int API = android.os.Build.VERSION.SDK_INT;
private static SharedPreferences mPreferences;
private static SharedPreferences.Editor mEditPrefs;
private static RelativeLayout r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11,
r12, r13, r14, r15, rIncognitoCookies, rClearCache,
rSearchSuggestions, rClearHistoryExit, rClearCookiesExit;
private static CheckBox cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9, cb10,
cb11, cbIncognitoCookies, cbSearchSuggestions, cbClearHistoryExit, cbClearCookiesExit;
private static Context mContext;
private boolean mSystemBrowser;
private Handler messageHandler;
@Override
@ -258,6 +259,7 @@ public class AdvancedSettingsActivity extends Activity { @@ -258,6 +259,7 @@ public class AdvancedSettingsActivity extends Activity {
});
}
void cbClearCookiesExit(CheckBox view) {
view.setOnCheckedChangeListener(new OnCheckedChangeListener() {

6
src/acr/browser/lightning/BookmarkPageVariables.java

@ -4,12 +4,18 @@ @@ -4,12 +4,18 @@
package acr.browser.lightning;
public class BookmarkPageVariables {
public static final String Heading = "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta content=\"en-us\" http-equiv=\"Content-Language\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>"
+ BrowserApp.getAppContext().getString(R.string.action_bookmarks)
+ "</title></head><style>body { background: #e1e1e1; max-width:100%; min-height:100%;}#content {width:100%; max-width:800px; margin:0 auto; text-align:center;}.box { vertical-align:middle;text-align:center;position:relative; display: inline-block; height: 100px; width: 100px; margin: 10px; background-color:#fff;box-shadow: 0px 3px rgba( 0, 0, 0, 0.1 );font-family: Arial;color: #444;font-size: 12px;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;}.stuff {height: 100px; width: 100px;vertical-align:middle;text-align:center; display: table-cell;}p.ellipses {width:90px; white-space: nowrap; overflow: hidden;text-align:center;margin:auto; text-overflow: ellipsis; -o-text-overflow: ellipsis; -ms-text-overflow: ellipsis;}.box a { width: 100%; height: 100%; position: absolute; left: 0; top: 0;}</style><body> <div id=\"content\">";
public static final String Part1 = "<div class=\"box\"><a href=\"";
public static final String Part2 = "\" ></a><div class=\"stuff\" ><img height=\"20\" width=\"20\" src='http://www.google.com/s2/favicons?domain=";
public static final String Part3 = "' /><p class=\"ellipses\">";
public static final String Part4 = "</p></div></div>";
public static final String End = "</div></body></html>";
}

295
src/acr/browser/lightning/BrowserActivity.java

@ -4,38 +4,10 @@ @@ -4,38 +4,10 @@
package acr.browser.lightning;
import info.guardianproject.onionkit.ui.OrbotHelper;
import info.guardianproject.onionkit.web.WebkitProxy;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.*;
import android.content.res.Configuration;
import android.content.res.Resources.Theme;
import android.content.res.TypedArray;
@ -64,96 +36,131 @@ import android.support.v4.widget.DrawerLayout; @@ -64,96 +36,131 @@ import android.support.v4.widget.DrawerLayout;
import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.*;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.ValueCallback;
import android.webkit.WebViewDatabase;
import android.webkit.*;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebIconDatabase;
import android.webkit.WebView;
import android.webkit.WebView.HitTestResult;
import android.widget.AdapterView;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.VideoView;
import info.guardianproject.onionkit.ui.OrbotHelper;
import info.guardianproject.onionkit.web.WebkitProxy;
import java.io.*;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.util.*;
public class BrowserActivity extends Activity implements BrowserController {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private RelativeLayout mDrawer;
private LinearLayout mDrawerRight;
private ListView mDrawerListRight;
private RelativeLayout mNewTab;
private ActionBarDrawerToggle mDrawerToggle;
private List<LightningView> mWebViews = new ArrayList<LightningView>();
private List<Integer> mIdList = new ArrayList<Integer>();
private LightningView mCurrentView;
private int mIdGenerator;
private LightningViewAdapter mTitleAdapter;
private List<HistoryItem> mBookmarkList;
private BookmarkViewAdapter mBookmarkAdapter;
private AutoCompleteTextView mSearch;
private ClickHandler mClickHandler;
private ProgressBar mProgress;
private boolean mSystemBrowser = false;
private ValueCallback<Uri> mUploadMessage;
private View mCustomView;
private int mOriginalOrientation;
private int mActionBarSize;
private ActionBar mActionBar;
private boolean mFullScreen;
private FrameLayout mBrowserFrame;
private FullscreenHolder mFullscreenContainer;
private CustomViewCallback mCustomViewCallback;
private final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
private Bitmap mDefaultVideoPoster;
private View mVideoProgressView;
private DatabaseHandler mHistoryHandler;
private SQLiteDatabase mHistoryDatabase;
private SharedPreferences mPreferences;
private SharedPreferences.Editor mEditPrefs;
private Context mContext;
private Bitmap mWebpageBitmap;
private String mSearchText;
private Activity mActivity;
private CookieManager mCookieManager;
private final int API = android.os.Build.VERSION.SDK_INT;
private Drawable mDeleteIcon;
private Drawable mRefreshIcon;
private Drawable mCopyIcon;
private Drawable mIcon;
private int mActionBarSizeDp;
private int mNumberIconColor;
private String mHomepage;
private boolean mIsNewIntent = false;
private VideoView mVideoView;
private static SearchAdapter mSearchAdapter;
private boolean isIncognito = false;
@Override
@ -518,8 +525,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -518,8 +525,9 @@ public class BrowserActivity extends Activity implements BrowserController {
public void initializeTor() {
OrbotHelper oh = new OrbotHelper(this);
if (!oh.isOrbotRunning())
if (!oh.isOrbotRunning()) {
oh.requestOrbotStart(this);
}
WebkitProxy wkp = new WebkitProxy();
try {
@ -720,15 +728,17 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -720,15 +728,17 @@ public class BrowserActivity extends Activity implements BrowserController {
return true;
case R.id.action_back:
if (mCurrentView != null) {
if (mCurrentView.canGoBack())
if (mCurrentView.canGoBack()) {
mCurrentView.goBack();
}
}
return true;
case R.id.action_forward:
if (mCurrentView != null) {
if (mCurrentView.canGoForward())
if (mCurrentView.canGoForward()) {
mCurrentView.goForward();
}
}
return true;
case R.id.action_new_tab:
newTab(null, true);
@ -786,8 +796,8 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -786,8 +796,8 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* refreshes the underlying list of the Bookmark adapter since the bookmark
* adapter doesn't always change when notifyDataChanged gets called.
* refreshes the underlying list of the Bookmark adapter since the bookmark adapter doesn't always change when
* notifyDataChanged gets called.
*/
private void notifyBookmarkDataSetChanged() {
mBookmarkAdapter.clear();
@ -796,8 +806,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -796,8 +806,7 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* method that shows a dialog asking what string the user wishes to search
* for. It highlights the text entered.
* method that shows a dialog asking what string the user wishes to search for. It highlights the text entered.
*/
private void findInPage() {
final AlertDialog.Builder finder = new AlertDialog.Builder(mActivity);
@ -820,9 +829,12 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -820,9 +829,12 @@ public class BrowserActivity extends Activity implements BrowserController {
finder.show();
}
/** The click listener for ListView in the navigation drawer */
/**
* The click listener for ListView in the navigation drawer
*/
private class DrawerItemClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
@ -831,9 +843,12 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -831,9 +843,12 @@ public class BrowserActivity extends Activity implements BrowserController {
}
}
/** long click listener for Navigation Drawer */
/**
* long click listener for Navigation Drawer
*/
private class DrawerItemLongClickListener implements
ListView.OnItemLongClickListener {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
@ -844,6 +859,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -844,6 +859,7 @@ public class BrowserActivity extends Activity implements BrowserController {
private class BookmarkItemClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
@ -864,6 +880,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -864,6 +880,7 @@ public class BrowserActivity extends Activity implements BrowserController {
private class BookmarkItemLongClickListener implements
ListView.OnItemLongClickListener {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
final int position, long arg3) {
@ -913,11 +930,10 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -913,11 +930,10 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* Takes in the id of which bookmark was selected and shows a dialog that
* allows the user to rename and change the url of the bookmark
* Takes in the id of which bookmark was selected and shows a dialog that allows the user to rename and change the
* url of the bookmark
*
* @param id
* which id in the list was chosen
* @param id which id in the list was chosen
*/
public synchronized void editBookmark(final int id) {
final AlertDialog.Builder homePicker = new AlertDialog.Builder(
@ -989,11 +1005,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -989,11 +1005,9 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* displays the WebView contained in the LightningView Also handles the
* removal of previous views
* displays the WebView contained in the LightningView Also handles the removal of previous views
*
* @param view
* the LightningView to show
* @param view the LightningView to show
*/
private synchronized void showTab(LightningView view) {
if (view == null) {
@ -1037,8 +1051,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1037,8 +1051,9 @@ public class BrowserActivity extends Activity implements BrowserController {
url = intent.getDataString();
}
int num = 0;
if (intent != null && intent.getExtras() != null)
if (intent != null && intent.getExtras() != null) {
num = intent.getExtras().getInt(getPackageName() + ".Origin");
}
if (num == 1) {
mCurrentView.loadUrl(url);
} else if (url != null) {
@ -1085,8 +1100,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1085,8 +1100,7 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
* When using the ActionBarDrawerToggle, you must call it during onPostCreate() and onConfigurationChanged()...
*/
@Override
@ -1224,9 +1238,10 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1224,9 +1238,10 @@ public class BrowserActivity extends Activity implements BrowserController {
}
mCurrentView = null;
for (int n = 0; n < mWebViews.size(); n++) {
if (mWebViews.get(n) != null)
if (mWebViews.get(n) != null) {
mWebViews.get(n).onDestroy();
}
}
mWebViews.clear();
mTitleAdapter.notifyDataSetChanged();
finish();
@ -1297,13 +1312,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1297,13 +1312,15 @@ public class BrowserActivity extends Activity implements BrowserController {
mCurrentView.onPause();
}
if (mHistoryDatabase != null) {
if (mHistoryDatabase.isOpen())
if (mHistoryDatabase.isOpen()) {
mHistoryDatabase.close();
}
}
if (mHistoryHandler != null) {
if (mHistoryHandler.isOpen())
if (mHistoryHandler.isOpen()) {
mHistoryHandler.close();
}
}
}
@ -1325,13 +1342,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1325,13 +1342,15 @@ public class BrowserActivity extends Activity implements BrowserController {
protected void onDestroy() {
Log.i(Constants.TAG, "onDestroy");
if (mHistoryDatabase != null) {
if (mHistoryDatabase.isOpen())
if (mHistoryDatabase.isOpen()) {
mHistoryDatabase.close();
}
}
if (mHistoryHandler != null) {
if (mHistoryHandler.isOpen())
if (mHistoryHandler.isOpen()) {
mHistoryHandler.close();
}
}
super.onDestroy();
}
@ -1380,8 +1399,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1380,8 +1399,7 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* searches the web for the query fixing any and all problems with the input
* checks if it is a search, url, etc.
* searches the web for the query fixing any and all problems with the input checks if it is a search, url, etc.
*/
void searchTheWeb(String query) {
if (query.equals("")) {
@ -1467,7 +1485,6 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1467,7 +1485,6 @@ public class BrowserActivity extends Activity implements BrowserController {
/**
* converts the int num into density pixels
*
* @param num
* @return density pixels
*/
private int getDp(int num) {
@ -1493,8 +1510,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1493,8 +1510,9 @@ public class BrowserActivity extends Activity implements BrowserController {
paint.setAntiAlias(true);
paint.setStyle(Style.FILL);
paint.setColor(mNumberIconColor);
if (number > 99)
if (number > 99) {
number = 99;
}
// pixels, 36 dp
if (mActionBarSizeDp < 50) {
if (number > 9) {
@ -1524,7 +1542,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1524,7 +1542,9 @@ public class BrowserActivity extends Activity implements BrowserController {
public class LightningViewAdapter extends ArrayAdapter<LightningView> {
Context context;
int layoutResourceId;
List<LightningView> data = null;
public LightningViewAdapter(Context context, int layoutResourceId,
@ -1578,8 +1598,11 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1578,8 +1598,11 @@ public class BrowserActivity extends Activity implements BrowserController {
}
class LightningViewHolder {
TextView txtTitle;
ImageView favicon;
ImageView exit;
}
}
@ -1587,7 +1610,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1587,7 +1610,9 @@ public class BrowserActivity extends Activity implements BrowserController {
public class BookmarkViewAdapter extends ArrayAdapter<HistoryItem> {
Context context;
int layoutResourceId;
List<HistoryItem> data = null;
public BookmarkViewAdapter(Context context, int layoutResourceId,
@ -1628,7 +1653,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1628,7 +1653,9 @@ public class BrowserActivity extends Activity implements BrowserController {
}
class BookmarkViewHolder {
TextView txtTitle;
ImageView favicon;
}
}
@ -1646,7 +1673,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1646,7 +1673,9 @@ public class BrowserActivity extends Activity implements BrowserController {
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
HistoryItem mWeb;
public DownloadImageTask(ImageView bmImage, HistoryItem web) {
@ -1729,8 +1758,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1729,8 +1758,9 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void updateUrl(String url) {
if (url == null)
if (url == null) {
return;
}
url = url.replaceFirst(Constants.HTTP, "");
if (url.startsWith(Constants.FILE)) {
url = "";
@ -1741,8 +1771,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1741,8 +1771,9 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void updateProgress(int n) {
if (!mProgress.isShown())
if (!mProgress.isShown()) {
mProgress.setVisibility(View.VISIBLE);
}
mProgress.setProgress(n);
if (n == 100) {
mProgress.setVisibility(View.INVISIBLE);
@ -1821,16 +1852,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1821,16 +1852,15 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* 1, 2, 3, testing... is there a system browser that has some nice
* bookmarks for us?
* 1, 2, 3, testing... is there a system browser that has some nice bookmarks for us?
*/
public boolean isSystemBrowserAvailable() {
return mSystemBrowser;
}
/**
* 1, 2, 3, testing... is there a system browser that has some nice
* bookmarks for us? helper method for isSystemBrowserAvailable
* 1, 2, 3, testing... is there a system browser that has some nice bookmarks for us? helper method for
* isSystemBrowserAvailable
*/
public boolean getSystemBrowser() {
Cursor c = null;
@ -1863,8 +1893,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1863,8 +1893,7 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* method to generate search suggestions for the AutoCompleteTextView from
* previously searched URLs
* method to generate search suggestions for the AutoCompleteTextView from previously searched URLs
*/
private void initializeSearchSuggestions(final AutoCompleteTextView getUrl) {
@ -1936,8 +1965,6 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -1936,8 +1965,6 @@ public class BrowserActivity extends Activity implements BrowserController {
/**
* returns a list of HistoryItems
*
* @return
*/
private List<HistoryItem> getLatestHistory() {
DatabaseHandler historyHandler = new DatabaseHandler(mContext);
@ -2096,8 +2123,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2096,8 +2123,9 @@ public class BrowserActivity extends Activity implements BrowserController {
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if (requestCode == 1) {
if (null == mUploadMessage)
if (null == mUploadMessage) {
return;
}
Uri result = intent == null || resultCode != RESULT_OK ? null
: intent.getData();
mUploadMessage.onReceiveValue(result);
@ -2156,8 +2184,9 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2156,8 +2184,9 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void onHideCustomView() {
if (mCustomView == null || mCustomViewCallback == null
|| mCurrentView == null)
|| mCurrentView == null) {
return;
}
Log.i(Constants.TAG, "onHideCustomView");
mCurrentView.setVisibility(View.VISIBLE);
mCustomView.setKeepScreenOn(false);
@ -2203,8 +2232,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2203,8 +2232,7 @@ public class BrowserActivity extends Activity implements BrowserController {
/**
* turns on fullscreen mode in the app
*
* @param enabled
* whether to enable fullscreen or not
* @param enabled whether to enable fullscreen or not
*/
public void setFullscreen(boolean enabled) {
Window win = getWindow();
@ -2330,15 +2358,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2330,15 +2358,15 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
case DialogInterface.BUTTON_POSITIVE:
newTab(url, false);
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
case DialogInterface.BUTTON_NEGATIVE:
mCurrentView.loadUrl(url);
break;
}
case DialogInterface.BUTTON_NEUTRAL: {
case DialogInterface.BUTTON_NEUTRAL:
if (API > 8) {
Utils.downloadFile(mActivity, url,
mCurrentView.getUserAgent(),
@ -2347,7 +2375,6 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2347,7 +2375,6 @@ public class BrowserActivity extends Activity implements BrowserController {
break;
}
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(
@ -2374,24 +2401,22 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2374,24 +2401,22 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
case DialogInterface.BUTTON_POSITIVE:
newTab(url, false);
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
case DialogInterface.BUTTON_NEGATIVE:
mCurrentView.loadUrl(url);
break;
}
case DialogInterface.BUTTON_NEUTRAL: {
case DialogInterface.BUTTON_NEUTRAL:
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label",
url);
clipboard.setPrimaryClip(clip);
break;
}
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(
@ -2418,15 +2443,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2418,15 +2443,15 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
case DialogInterface.BUTTON_POSITIVE:
newTab(url, false);
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
case DialogInterface.BUTTON_NEGATIVE:
mCurrentView.loadUrl(url);
break;
}
case DialogInterface.BUTTON_NEUTRAL: {
case DialogInterface.BUTTON_NEUTRAL:
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", url);
clipboard.setPrimaryClip(clip);
@ -2434,7 +2459,6 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2434,7 +2459,6 @@ public class BrowserActivity extends Activity implements BrowserController {
break;
}
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); // dialog
@ -2461,15 +2485,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2461,15 +2485,15 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
case DialogInterface.BUTTON_POSITIVE:
newTab(newUrl, false);
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
case DialogInterface.BUTTON_NEGATIVE:
mCurrentView.loadUrl(newUrl);
break;
}
case DialogInterface.BUTTON_NEUTRAL: {
case DialogInterface.BUTTON_NEUTRAL:
if (API > 8) {
Utils.downloadFile(mActivity, newUrl,
mCurrentView.getUserAgent(),
@ -2478,7 +2502,6 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2478,7 +2502,6 @@ public class BrowserActivity extends Activity implements BrowserController {
break;
}
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(
@ -2505,15 +2528,15 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2505,15 +2528,15 @@ public class BrowserActivity extends Activity implements BrowserController {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
case DialogInterface.BUTTON_POSITIVE:
newTab(newUrl, false);
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
case DialogInterface.BUTTON_NEGATIVE:
mCurrentView.loadUrl(newUrl);
break;
}
case DialogInterface.BUTTON_NEUTRAL: {
case DialogInterface.BUTTON_NEUTRAL:
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label",
newUrl);
@ -2522,7 +2545,6 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2522,7 +2545,6 @@ public class BrowserActivity extends Activity implements BrowserController {
break;
}
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(
@ -2552,9 +2574,8 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2552,9 +2574,8 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* This method lets the search bar know that the page is currently loading
* and that it should display the stop icon to indicate to the user that
* pressing it stops the page from loading
* This method lets the search bar know that the page is currently loading and that it should display the stop icon
* to indicate to the user that pressing it stops the page from loading
*/
public void setIsLoading() {
if (!mSearch.hasFocus()) {
@ -2564,8 +2585,7 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2564,8 +2585,7 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* This tells the search bar that the page is finished loading and it should
* display the refresh icon
* This tells the search bar that the page is finished loading and it should display the refresh icon
*/
public void setIsFinishedLoading() {
if (!mSearch.hasFocus()) {
@ -2575,8 +2595,8 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2575,8 +2595,8 @@ public class BrowserActivity extends Activity implements BrowserController {
}
/**
* handle presses on the refresh icon in the search bar, if the page is
* loading, stop the page, if it is done loading refresh the page.
* handle presses on the refresh icon in the search bar, if the page is loading, stop the page, if it is done
* loading refresh the page.
*
* See setIsFinishedLoading and setIsLoading for displaying the correct icon
*/
@ -2612,5 +2632,4 @@ public class BrowserActivity extends Activity implements BrowserController { @@ -2612,5 +2632,4 @@ public class BrowserActivity extends Activity implements BrowserController {
}
}
}

1
src/acr/browser/lightning/BrowserController.java

@ -13,6 +13,7 @@ import android.webkit.WebChromeClient.CustomViewCallback; @@ -13,6 +13,7 @@ import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebView;
public interface BrowserController {
public void updateUrl(String title);
public void updateProgress(int n);

1
src/acr/browser/lightning/ClickHandler.java

@ -27,5 +27,4 @@ public class ClickHandler extends Handler { @@ -27,5 +27,4 @@ public class ClickHandler extends Handler {
url = msg.getData().getString("url");
mBrowserController.longClickPage(url);
}
}

24
src/acr/browser/lightning/Constants.java

@ -12,28 +12,50 @@ public class Constants { @@ -12,28 +12,50 @@ public class Constants {
}
public static final String DESKTOP_USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/20 Safari/537.17";
public static final String MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; U; Android 4.2; 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 = "http://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 = "http://www.bing.com/search?q=";
public static final String DUCK_SEARCH = "https://duckduckgo.com/?t=lightning&q=";
public static final String DUCK_LITE_SEARCH = "https://duckduckgo.com/lite/?t=lightning&q=";
public static final String STARTPAGE_MOBILE_SEARCH = "https://startpage.com/do/m/mobilesearch?language=english&query=";
public static final String STARTPAGE_SEARCH = "https://startpage.com/do/search?language=english&query=";
public static final String ANDROID_SEARCH = "http://www.androidsearchresult.com/search.pg?aff=olb&keyword=";
public static final String HOMEPAGE = "about:home";
public static final String BAIDU_SEARCH = "http://www.baidu.com/s?wd=";
public static final String YANDEX_SEARCH = "http://yandex.ru/yandsearch?lr=21411&text=";
public static final String ADVANCED_SETTINGS_INTENT = "android.intent.action.ADVANCED_SETTINGS";
public static final String LICENSE_INTENT = "android.intent.action.LICENSE";
public static final String SETTINGS_INTENT = "android.intent.action.SETTINGS";
public static final String INCOGNITO_INTENT = "android.intent.action.INCOGNITO";
public static final String EXTERNAL_STORAGE = Environment.getExternalStorageDirectory().toString();
public static final String SEPARATOR = "\\|\\$\\|SEPARATOR\\|\\$\\|";
public static final String HTTP = "http://";
public static final String HTTPS = "https://";
public static final String FILE = "file://";
public static final String TAG = "Lightning";
public static final String TAG = "Lightning";
}

21
src/acr/browser/lightning/DatabaseHandler.java

@ -3,15 +3,15 @@ @@ -3,15 +3,15 @@
*/
package acr.browser.lightning;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
@ -26,8 +26,11 @@ public class DatabaseHandler extends SQLiteOpenHelper { @@ -26,8 +26,11 @@ public class DatabaseHandler extends SQLiteOpenHelper {
// HistoryItems Table Columns names
public static final String KEY_ID = "id";
public static final String KEY_URL = "url";
public static final String KEY_TITLE = "title";
public static SQLiteDatabase mDatabase;
public DatabaseHandler(Context context) {
@ -56,16 +59,18 @@ public class DatabaseHandler extends SQLiteOpenHelper { @@ -56,16 +59,18 @@ public class DatabaseHandler extends SQLiteOpenHelper {
}
public boolean isOpen() {
if(mDatabase != null)
if (mDatabase != null) {
return mDatabase.isOpen();
else
} else {
return false;
}
}
@Override
public synchronized void close() {
if(mDatabase != null)
if (mDatabase != null) {
mDatabase.close();
}
super.close();
}
@ -75,9 +80,10 @@ public class DatabaseHandler extends SQLiteOpenHelper { @@ -75,9 +80,10 @@ public class DatabaseHandler extends SQLiteOpenHelper {
public synchronized void delete(String url) {
String n = getHistoryItem(url);
if(n != null)
if (n != null) {
deleteHistoryItem(n);
}
}
// Adding new item
public synchronized void addHistoryItem(HistoryItem item) {
@ -195,5 +201,4 @@ public class DatabaseHandler extends SQLiteOpenHelper { @@ -195,5 +201,4 @@ public class DatabaseHandler extends SQLiteOpenHelper {
// return count
return cursor.getCount();
}
}

18
src/acr/browser/lightning/DownloadHandler.java

@ -3,8 +3,6 @@ @@ -3,8 +3,6 @@
*/
package acr.browser.lightning;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DownloadManager;
@ -27,13 +25,14 @@ import android.widget.Toast; @@ -27,13 +25,14 @@ import android.widget.Toast;
*/
public class DownloadHandler {
private static final String LOGTAG = "DLHandler";
private static Activity mActivity;
/**
* Notify the host application a download should be done, or that
* the data should be streamed if a streaming viewer is available.
* Notify the host application a download should be done, or that the data should be streamed if a streaming viewer
* is available.
*
* @param activity Activity requesting the download.
* @param url The full url to the content that should be downloaded
* @param userAgent User agent of the downloading application.
@ -112,8 +111,9 @@ public class DownloadHandler { @@ -112,8 +111,9 @@ public class DownloadHandler {
}
/**
* Notify the host application a download should be done, even if there
* is a streaming viewer available for thise type.
* Notify the host application a download should be done, even if there is a streaming viewer available for thise
* type.
*
* @param activity Activity requesting the download.
* @param url The full url to the content that should be downloaded
* @param userAgent User agent of the downloading application.
@ -121,7 +121,8 @@ public class DownloadHandler { @@ -121,7 +121,8 @@ public class DownloadHandler {
* @param mimetype The mimetype of the content reported by the server
* @param privateBrowsing If the request is coming from a private browsing tab.
*/
/*package */ static void onDownloadStartNoStream(Activity activity,
/*package */
static void onDownloadStartNoStream(Activity activity,
String url, String userAgent, String contentDisposition,
String mimetype, boolean privateBrowsing) {
@ -211,5 +212,4 @@ public class DownloadHandler { @@ -211,5 +212,4 @@ public class DownloadHandler {
Toast.makeText(activity, R.string.download_pending, Toast.LENGTH_SHORT)
.show();
}
}

24
src/acr/browser/lightning/FetchMimeUrlType.java

@ -3,35 +3,34 @@ @@ -3,35 +3,34 @@
*/
package acr.browser.lightning;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpHead;
import android.app.DownloadManager;
import android.content.Context;
import android.net.http.AndroidHttpClient;
import android.os.Environment;
import android.webkit.MimeTypeMap;
import android.webkit.URLUtil;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpHead;
import java.io.IOException;
/**
* This class is used to pull down the http headers of a given URL so that
* we can analyse the mimetype and make any correction needed before we give
* the URL to the download manager.
* This operation is needed when the user long-clicks on a link or image and
* we don't know the mimetype. If the user just clicks on the link, we will
* do the same steps of correcting the mimetype down in
* android.os.webkit.LoadListener rather than handling it here.
*
* This class is used to pull down the http headers of a given URL so that we can analyse the mimetype and make any
* correction needed before we give the URL to the download manager. This operation is needed when the user long-clicks
* on a link or image and we don't know the mimetype. If the user just clicks on the link, we will do the same steps of
* correcting the mimetype down in android.os.webkit.LoadListener rather than handling it here.
*/
class FetchUrlMimeType extends Thread {
private Context mContext;
private DownloadManager.Request mRequest;
private String mUri;
private String mCookies;
private String mUserAgent;
public FetchUrlMimeType(Context context, DownloadManager.Request request,
@ -105,5 +104,4 @@ class FetchUrlMimeType extends Thread { @@ -105,5 +104,4 @@ class FetchUrlMimeType extends Thread {
Context.DOWNLOAD_SERVICE);
manager.enqueue(mRequest);
}
}

5
src/acr/browser/lightning/HistoryItem.java

@ -9,9 +9,13 @@ public class HistoryItem implements Comparable<HistoryItem> { @@ -9,9 +9,13 @@ public class HistoryItem implements Comparable<HistoryItem> {
// private variables
private int mId;
private String mUrl;
private String mTitle;
private Bitmap mBitmap;
private int mImageId;
// Empty constructor
@ -97,5 +101,4 @@ public class HistoryItem implements Comparable<HistoryItem> { @@ -97,5 +101,4 @@ public class HistoryItem implements Comparable<HistoryItem> {
public int compareTo(HistoryItem another) {
return mTitle.compareTo(another.mTitle);
}
}

6
src/acr/browser/lightning/HistoryPageVariables.java

@ -4,12 +4,18 @@ @@ -4,12 +4,18 @@
package acr.browser.lightning;
public class HistoryPageVariables {
public static final String Heading = "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta content=\"en-us\" http-equiv=\"Content-Language\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>"
+ BrowserApp.getAppContext().getString(R.string.action_history)
+ "</title></head><style>body { background: #e1e1e1;}.box { vertical-align:middle;position:relative; display: block; margin: 10px;padding-left:10px;padding-right:10px;padding-top:5px;padding-bottom:5px; background-color:#fff;box-shadow: 0px 3px rgba( 0, 0, 0, 0.1 );font-family: Arial;color: #444;font-size: 12px;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;}.box a { width: 100%; height: 100%; position: absolute; left: 0; top: 0;}.black {color: black;font-size: 15px;font-family: Arial; white-space: nowrap; overflow: hidden;margin:auto; text-overflow: ellipsis; -o-text-overflow: ellipsis; -ms-text-overflow: ellipsis;}.font {color: gray;font-size: 10px;font-family: Arial; white-space: nowrap; overflow: hidden;margin:auto; text-overflow: ellipsis; -o-text-overflow: ellipsis; -ms-text-overflow: ellipsis;}</style><body><div id=\"content\">";
public static final String Part1 = "<div class=\"box\"><a href=\"";
public static final String Part2 = "\"></a><p class=\"black\">";
public static final String Part3 = "</p><p class=\"font\">";
public static final String Part4 = "</p></div></div>";
public static final String End = "</div></body></html>";
}

1
src/acr/browser/lightning/HomepageVariables.java

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
package acr.browser.lightning;
public class HomepageVariables {
public static final String HEAD = "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta content=\"en-us\" http-equiv=\"Content-Language\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=0\"><title>"
+ BrowserApp.getAppContext().getString(R.string.home)
+ "</title></head>"

4
src/acr/browser/lightning/IncognitoActivity.java

@ -10,6 +10,7 @@ import android.webkit.CookieSyncManager; @@ -10,6 +10,7 @@ import android.webkit.CookieSyncManager;
public class IncognitoActivity extends BrowserActivity {
SharedPreferences mPreferences;
CookieManager mCookieManager;
@Override
@ -73,7 +74,4 @@ public class IncognitoActivity extends BrowserActivity { @@ -73,7 +74,4 @@ public class IncognitoActivity extends BrowserActivity {
closeDrawers();
finish();
}
}

15
src/acr/browser/lightning/IntentUtils.java

@ -1,10 +1,5 @@ @@ -1,10 +1,5 @@
package acr.browser.lightning;
import java.net.URISyntaxException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
@ -15,10 +10,17 @@ import android.net.Uri; @@ -15,10 +10,17 @@ import android.net.Uri;
import android.util.Log;
import android.webkit.WebView;
import java.net.URISyntaxException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IntentUtils {
private Activity mActivity;
private BrowserController mController;
static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile("(?i)"
+ // switch on case insensitive matching
"("
@ -72,8 +74,7 @@ public class IntentUtils { @@ -72,8 +74,7 @@ public class IntentUtils {
}
/**
* Search for intent handlers that are specific to this URL aka, specialized
* apps like google maps or youtube
* Search for intent handlers that are specific to this URL aka, specialized apps like google maps or youtube
*/
private boolean isSpecializedHandlerAvailable(Intent intent) {
PackageManager pm = mActivity.getPackageManager();

1
src/acr/browser/lightning/LicenseActivity.java

@ -54,5 +54,4 @@ public class LicenseActivity extends Activity implements View.OnClickListener { @@ -54,5 +54,4 @@ public class LicenseActivity extends Activity implements View.OnClickListener {
finish();
return super.onOptionsItemSelected(item);
}
}

11
src/acr/browser/lightning/LightningDownloadListener.java

@ -11,7 +11,9 @@ import android.webkit.DownloadListener; @@ -11,7 +11,9 @@ import android.webkit.DownloadListener;
import android.webkit.URLUtil;
public class LightningDownloadListener implements DownloadListener {
private Activity mActivity;
LightningDownloadListener(Activity activity) {
mActivity = activity;
}
@ -26,15 +28,14 @@ public class LightningDownloadListener implements DownloadListener { @@ -26,15 +28,14 @@ public class LightningDownloadListener implements DownloadListener {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE: {
case DialogInterface.BUTTON_POSITIVE:
DownloadHandler.onDownloadStart(mActivity, url, userAgent, contentDisposition, mimetype, false);
break;
}
case DialogInterface.BUTTON_NEGATIVE: {
case DialogInterface.BUTTON_NEGATIVE:
break;
}
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); // dialog
@ -47,6 +48,4 @@ public class LightningDownloadListener implements DownloadListener { @@ -47,6 +48,4 @@ public class LightningDownloadListener implements DownloadListener {
Log.i(Constants.TAG, "Downloading" + fileName);
}
}

109
src/acr/browser/lightning/LightningView.java

@ -4,28 +4,10 @@ @@ -4,28 +4,10 @@
package acr.browser.lightning;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URISyntaxException;
import java.net.URL;
import org.apache.http.util.ByteArrayBuffer;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.*;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.MailTo;
@ -33,7 +15,6 @@ import android.net.Uri; @@ -33,7 +15,6 @@ import android.net.Uri;
import android.net.http.SslError;
import android.os.Message;
import android.text.InputType;
import android.text.TextUtils;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.view.GestureDetector;
@ -42,39 +23,50 @@ import android.view.MotionEvent; @@ -42,39 +23,50 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.webkit.CookieManager;
import android.webkit.GeolocationPermissions;
import android.webkit.HttpAuthHandler;
import android.webkit.SslErrorHandler;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.*;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.VideoView;
import org.apache.http.util.ByteArrayBuffer;
import java.io.*;
import java.net.*;
public class LightningView {
private Title mTitle;
private WebView mWebView;
private BrowserController mBrowserController;
private GestureDetector mGestureDetector;
private Activity mActivity;
private WebSettings mSettings;
private static int API = android.os.Build.VERSION.SDK_INT;
private static String mHomepage;
private static String mDefaultUserAgent;
private static Bitmap mWebpageBitmap;
private static SharedPreferences mPreferences;
private static boolean mWideViewPort;
private static AdBlock mAdBlock;
private CookieManager mCookieManager;
private boolean isForgroundTab = false;
private IntentUtils mIntentUtils = null;
@SuppressLint("NewApi")
@ -122,7 +114,9 @@ public class LightningView { @@ -122,7 +114,9 @@ public class LightningView {
mWebView.setOnTouchListener(new OnTouchListener() {
float mLocation = 0;
float mY = 0;
int mAction = 0;
@Override
@ -288,14 +282,12 @@ public class LightningView { @@ -288,14 +282,12 @@ public class LightningView {
case 0:
mSettings.setPluginState(PluginState.OFF);
break;
case 1: {
case 1:
mSettings.setPluginState(PluginState.ON_DEMAND);
break;
}
case 2: {
case 2:
mSettings.setPluginState(PluginState.ON);
break;
}
default:
break;
}
@ -303,11 +295,12 @@ public class LightningView { @@ -303,11 +295,12 @@ public class LightningView {
switch (mPreferences.getInt(PreferenceConstants.USER_AGENT, 1)) {
case 1:
if (API > 16)
if (API > 16) {
mSettings.setUserAgentString(WebSettings
.getDefaultUserAgent(context));
else
} else {
mSettings.setUserAgentString(mDefaultUserAgent);
}
break;
case 2:
mSettings.setUserAgentString(Constants.DESKTOP_USER_AGENT);
@ -403,21 +396,24 @@ public class LightningView { @@ -403,21 +396,24 @@ public class LightningView {
}
public boolean isShown() {
if (mWebView != null)
if (mWebView != null) {
return mWebView.isShown();
else
} else {
return false;
}
}
public synchronized void onPause() {
if (mWebView != null)
if (mWebView != null) {
mWebView.onPause();
}
}
public synchronized void onResume() {
if (mWebView != null)
if (mWebView != null) {
mWebView.onResume();
}
}
public void setIsForgroundTab(boolean isForground) {
isForgroundTab = isForground;
@ -456,10 +452,11 @@ public class LightningView { @@ -456,10 +452,11 @@ public class LightningView {
public void requestFocus() {
if (mWebView != null) {
if (!mWebView.hasFocus())
if (!mWebView.hasFocus()) {
mWebView.requestFocus();
}
}
}
public void setVisibility(int visible) {
if (mWebView != null) {
@ -508,9 +505,10 @@ public class LightningView { @@ -508,9 +505,10 @@ public class LightningView {
}
public synchronized void goBack() {
if (mWebView != null)
if (mWebView != null) {
mWebView.goBack();
}
}
public String getUserAgent() {
if (mWebView != null) {
@ -521,9 +519,10 @@ public class LightningView { @@ -521,9 +519,10 @@ public class LightningView {
}
public synchronized void goForward() {
if (mWebView != null)
if (mWebView != null) {
mWebView.goForward();
}
}
public boolean canGoBack() {
if (mWebView != null) {
@ -550,25 +549,28 @@ public class LightningView { @@ -550,25 +549,28 @@ public class LightningView {
}
public synchronized void loadUrl(String url) {
if (mWebView != null)
if (mWebView != null) {
mWebView.loadUrl(url);
}
}
public synchronized void invalidate() {
if (mWebView != null)
if (mWebView != null) {
mWebView.invalidate();
}
}
public String getTitle() {
return mTitle.getTitle();
}
public String getUrl() {
if (mWebView != null)
if (mWebView != null) {
return mWebView.getUrl();
else
} else {
return "";
}
}
public class LightningWebClient extends WebViewClient {
@ -593,11 +595,13 @@ public class LightningView { @@ -593,11 +595,13 @@ public class LightningView {
PreferenceConstants.USE_PROXY, false);
boolean mDoLeakHardening = false;
if (!useProxy)
if (!useProxy) {
return null;
}
if (!mDoLeakHardening)
if (!mDoLeakHardening) {
return null;
}
// now we are going to proxy!
try {
@ -636,13 +640,15 @@ public class LightningView { @@ -636,13 +640,15 @@ public class LightningView {
if (cEnc == null && ctArray.length > 1) {
cEnc = ctArray[1];
if (cEnc.indexOf('=') != -1)
if (cEnc.indexOf('=') != -1) {
cEnc = cEnc.split("=")[1].trim();
}
}
}
if (connLen <= 0)
if (connLen <= 0) {
connLen = 2048;
}
if (cType != null && cType.startsWith("text")) {
InputStream fStream = null;
@ -1043,8 +1049,11 @@ public class LightningView { @@ -1043,8 +1049,11 @@ public class LightningView {
}
public class Title {
private Bitmap mFavicon;
private String mTitle;
private Bitmap mDefaultIcon;
public Title(Context context) {

4
src/acr/browser/lightning/MainActivity.java

@ -10,6 +10,7 @@ import android.webkit.CookieSyncManager; @@ -10,6 +10,7 @@ import android.webkit.CookieSyncManager;
public class MainActivity extends BrowserActivity {
SharedPreferences mPreferences;
CookieManager mCookieManager;
@Override
@ -72,7 +73,4 @@ public class MainActivity extends BrowserActivity { @@ -72,7 +73,4 @@ public class MainActivity extends BrowserActivity {
closeDrawers();
moveTaskToBack(true);
}
}

32
src/acr/browser/lightning/PreferenceConstants.java

@ -4,38 +4,70 @@ @@ -4,38 +4,70 @@
package acr.browser.lightning;
public class PreferenceConstants {
public static final String ADOBE_FLASH_SUPPORT = "enableflash";
public static final String BLOCK_ADS = "AdBlock";
public static final String BLOCK_IMAGES = "blockimages";
public static final String CLEAR_CACHE_EXIT = "cache";
public static final String COOKIES = "cookies";
public static final String DOWNLOAD_DIRECTORY = "download";
public static final String FULL_SCREEN = "fullscreen";
public static final String HIDE_STATUS_BAR = "hidestatus";
public static final String HOMEPAGE = "home";
public static final String INCOGNITO_COOKIES = "incognitocookies";
public static final String JAVASCRIPT = "java";
public static final String LOCATION = "location";
public static final String OVERVIEW_MODE = "overviewmode";
public static final String POPUPS = "newwindows";
public static final String PREFERENCES = "settings";
public static final String RESTORE_LOST_TABS = "restoreclosed";
public static final String SAVE_PASSWORDS = "passwords";
public static final String SEARCH = "search";
public static final String SEARCH_URL = "searchurl";
public static final String SYSTEM_BROWSER_PRESENT = "SystemBrowser";
public static final String TEXT_REFLOW = "textreflow";
public static final String TEXT_SIZE = "textsize";
public static final String URL_MEMORY = "memory";
public static final String USE_WIDE_VIEWPORT = "wideviewport";
public static final String USER_AGENT = "agentchoose";
public static final String USER_AGENT_STRING = "userAgentString";
public static final String GOOGLE_SEARCH_SUGGESTIONS = "GoogleSearchSuggestions";
public static final String CLEAR_HISTORY_EXIT = "clearHistoryExit";
public static final String CLEAR_COOKIES_EXIT = "clearCookiesExit";
public static final String USE_PROXY = "useProxy";
public static final String USE_PROXY_HOST = "useProxyHost";
public static final String USE_PROXY_PORT = "useProxyPort";
public static final String INITIAL_CHECK_FOR_TOR = "checkForTor";
}

34
src/acr/browser/lightning/ReplacingInputStream.java

@ -9,7 +9,9 @@ import java.util.LinkedList; @@ -9,7 +9,9 @@ import java.util.LinkedList;
public class ReplacingInputStream extends FilterInputStream {
LinkedList<Integer> inQueue = new LinkedList<Integer>();
LinkedList<Integer> outQueue = new LinkedList<Integer>();
final byte[] search, replacement;
protected ReplacingInputStream(InputStream in, byte[] search,
@ -21,9 +23,11 @@ public class ReplacingInputStream extends FilterInputStream { @@ -21,9 +23,11 @@ public class ReplacingInputStream extends FilterInputStream {
private boolean isMatchFound() {
Iterator<Integer> inIter = inQueue.iterator();
for (int i = 0; i < search.length; i++)
if (!inIter.hasNext() || search[i] != inIter.next())
for (int i = 0; i < search.length; i++) {
if (!inIter.hasNext() || search[i] != inIter.next()) {
return false;
}
}
return true;
}
@ -32,10 +36,11 @@ public class ReplacingInputStream extends FilterInputStream { @@ -32,10 +36,11 @@ public class ReplacingInputStream extends FilterInputStream {
while (inQueue.size() < search.length) {
int next = super.read();
inQueue.offer(next);
if (next == -1)
if (next == -1) {
break;
}
}
}
@Override
@ -47,34 +52,39 @@ public class ReplacingInputStream extends FilterInputStream { @@ -47,34 +52,39 @@ public class ReplacingInputStream extends FilterInputStream {
readAhead();
if (isMatchFound()) {
for (int i = 0; i < search.length; i++)
for (int i = 0; i < search.length; i++) {
inQueue.remove();
}
for (byte b : replacement)
for (byte b : replacement) {
outQueue.offer((int) b);
} else
}
} else {
outQueue.add(inQueue.remove());
}
}
return outQueue.remove();
}
/**
* Returns false. REFilterInputStream does not support mark() and
* reset() methods.
* Returns false. REFilterInputStream does not support mark() and reset() methods.
*/
public boolean markSupported() {
return false;
}
/** Reads from the stream into the provided array.
* @throws IOException */
/**
* Reads from the stream into the provided array.
*/
public int read(byte[] b, int off, int len) throws IOException {
int i;
int ok = 0;
while (len-- > 0) {
i = read();
if (i == -1) return (ok == 0) ? -1 : ok;
if (i == -1) {
return (ok == 0) ? -1 : ok;
}
b[off++] = (byte) i;
ok++;
}
@ -86,6 +96,4 @@ public class ReplacingInputStream extends FilterInputStream { @@ -86,6 +96,4 @@ public class ReplacingInputStream extends FilterInputStream {
return read(buffer, 0, buffer.length);
}
}

46
src/acr/browser/lightning/SearchAdapter.java

@ -1,19 +1,5 @@ @@ -1,19 +1,5 @@
package acr.browser.lightning;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
@ -24,23 +10,41 @@ import android.os.AsyncTask; @@ -24,23 +10,41 @@ import android.os.AsyncTask;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.*;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class SearchAdapter extends BaseAdapter implements Filterable {
private List<HistoryItem> mHistory;
private List<HistoryItem> mBookmarks;
private List<HistoryItem> mSuggestions;
private List<HistoryItem> mFilteredList;
private List<HistoryItem> mAllBookmarks;
private DatabaseHandler mDatabaseHandler;
private SharedPreferences mPreferences;
private boolean mUseGoogle = true;
private Context mContext;
private boolean mIncognito = false;
public SearchAdapter(Context context, boolean incognito) {
@ -235,8 +239,11 @@ public class SearchAdapter extends BaseAdapter implements Filterable { @@ -235,8 +239,11 @@ public class SearchAdapter extends BaseAdapter implements Filterable {
}
private class SuggestionHolder {
ImageView mImage;
TextView mTitle;
TextView mUrl;
}
@ -389,5 +396,4 @@ public class SearchAdapter extends BaseAdapter implements Filterable { @@ -389,5 +396,4 @@ public class SearchAdapter extends BaseAdapter implements Filterable {
return filteredList;
}
}

37
src/acr/browser/lightning/SettingsActivity.java

@ -3,10 +3,6 @@ @@ -3,10 +3,6 @@
*/
package acr.browser.lightning;
import info.guardianproject.onionkit.ui.OrbotHelper;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
@ -20,36 +16,47 @@ import android.content.pm.PackageInfo; @@ -20,36 +16,47 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.view.WindowManager;
import android.widget.*;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Switch;
import android.widget.TextView;
import info.guardianproject.onionkit.ui.OrbotHelper;
public class SettingsActivity extends Activity {
private static int API = android.os.Build.VERSION.SDK_INT;
private static SharedPreferences.Editor mEditPrefs;
private static int mAgentChoice;
private static String mHomepage;
private static TextView mAgentTextView;
private static TextView mDownloadTextView;
private static int mEasterEggCounter = 0;
private static String mSearchUrl;
private static String mDownloadLocation;
private static TextView mHomepageText;
private static SharedPreferences mPreferences;
private static TextView mSearchText;
private Context mContext;
private Activity mActivity;
@Override
@ -483,8 +490,9 @@ public class SettingsActivity extends Activity { @@ -483,8 +490,9 @@ public class SettingsActivity extends Activity {
PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(
"com.adobe.flashplayer", 0);
if (ai != null)
if (ai != null) {
flashInstalled = true;
}
} catch (NameNotFoundException e) {
flashInstalled = false;
}
@ -611,8 +619,9 @@ public class SettingsActivity extends Activity { @@ -611,8 +619,9 @@ public class SettingsActivity extends Activity {
PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(
"com.adobe.flashplayer", 0);
if (ai != null)
if (ai != null) {
flashInstalled = true;
}
} catch (NameNotFoundException e) {
flashInstalled = false;
}

9
src/acr/browser/lightning/SettingsController.java

@ -4,14 +4,12 @@ @@ -4,14 +4,12 @@
package acr.browser.lightning;
public class SettingsController {
static boolean clearHistory = false;
/**
* The purpose of this class is so that
* I can clear the dropdown history in the main
* activities if the user selects to clear the
* history from the disk in advanced settings
* @param choice
* The purpose of this class is so that I can clear the dropdown history in the main activities if the user selects
* to clear the history from the disk in advanced settings
*/
static void setClearHistory(boolean choice) {
clearHistory = choice;
@ -19,7 +17,6 @@ public class SettingsController { @@ -19,7 +17,6 @@ public class SettingsController {
/**
* return the choice
* @return
*/
static boolean getClearHistory() {
if (clearHistory) {

27
src/acr/browser/lightning/Utils.java

@ -3,18 +3,6 @@ @@ -3,18 +3,6 @@
*/
package acr.browser.lightning;
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;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
@ -24,9 +12,16 @@ import android.util.Log; @@ -24,9 +12,16 @@ import android.util.Log;
import android.webkit.URLUtil;
import android.widget.Toast;
import java.io.*;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
public class Utils {
public static void downloadFile(final Activity activity, final String url, final String userAgent, final String contentDisposition, final boolean privateBrowsing){
public static void downloadFile(final Activity activity, final String url, final String userAgent,
final String contentDisposition, final boolean privateBrowsing) {
String fileName = URLUtil.guessFileName(url, null,
null);
DownloadHandler.onDownloadStart(activity, url, userAgent, contentDisposition, null, privateBrowsing);
@ -88,7 +83,8 @@ public class Utils { @@ -88,7 +83,8 @@ public class Utils {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setMessage(message).setCancelable(true)
.setPositiveButton(context.getResources().getString(R.string.action_ok), new DialogInterface.OnClickListener() {
.setPositiveButton(context.getResources().getString(R.string.action_ok),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
@ -103,9 +99,6 @@ public class Utils { @@ -103,9 +99,6 @@ public class Utils {
/**
* Returns the number of pixels corresponding to the passed density pixels
* @param context
* @param densityPixels
* @return
*/
public static int convertToDensityPixels(Context context, int densityPixels) {
float scale = context.getResources().getDisplayMetrics().density;

50
src/acr/browser/lightning/WebAddress.java

@ -3,43 +3,45 @@ @@ -3,43 +3,45 @@
*/
package acr.browser.lightning;
import static android.util.Patterns.GOOD_IRI_CHAR;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static android.util.Patterns.GOOD_IRI_CHAR;
/**
* {@hide}
*
* Web Address Parser
*
* This is called WebAddress, rather than URL or URI, because it
* attempts to parse the stuff that a user will actually type into a
* browser address widget.
* This is called WebAddress, rather than URL or URI, because it attempts to parse the stuff that a user will actually
* type into a browser address widget.
*
* Unlike java.net.uri, this parser will not choke on URIs missing
* schemes. It will only throw a ParseException if the input is
* really hosed.
* Unlike java.net.uri, this parser will not choke on URIs missing schemes. It will only throw a ParseException if the
* input is really hosed.
*
* If given an https scheme but no port, fills in port
*
*/
public class WebAddress {
private String mScheme;
private String mHost;
private int mPort;
private String mPath;
private String mAuthInfo;
static final int MATCH_GROUP_SCHEME = 1;
static final int MATCH_GROUP_AUTHORITY = 2;
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(
@ -50,8 +52,9 @@ public class WebAddress { @@ -50,8 +52,9 @@ public class WebAddress {
/* path */ "(\\/?[^#]*)?" +
/* anchor */ ".*", Pattern.CASE_INSENSITIVE);
/** parses given uriString.
* @throws Exception */
/**
* parses given uriString.
*/
public WebAddress(String address) throws Exception {
if (address == null) {
throw new NullPointerException();
@ -69,11 +72,17 @@ public class WebAddress { @@ -69,11 +72,17 @@ public class WebAddress {
String t;
if (m.matches()) {
t = m.group(MATCH_GROUP_SCHEME);
if (t != null) mScheme = t.toLowerCase(Locale.ROOT);
if (t != null) {
mScheme = t.toLowerCase(Locale.ROOT);
}
t = m.group(MATCH_GROUP_AUTHORITY);
if (t != null) mAuthInfo = t;
if (t != null) {
mAuthInfo = t;
}
t = m.group(MATCH_GROUP_HOST);
if (t != null) mHost = t;
if (t != null) {
mHost = t;
}
t = m.group(MATCH_GROUP_PORT);
if (t != null && t.length() > 0) {
// The ':' character is not returned by the regex.
@ -104,12 +113,15 @@ public class WebAddress { @@ -104,12 +113,15 @@ public class WebAddress {
if (mPort == 443 && mScheme.equals("")) {
mScheme = "https";
} else if (mPort == -1) {
if (mScheme.equals("https"))
if (mScheme.equals("https")) {
mPort = 443;
else
} else {
mPort = 80; // default
}
if (mScheme.equals("")) mScheme = "http";
}
if (mScheme.equals("")) {
mScheme = "http";
}
}
@Override

Loading…
Cancel
Save