|
|
|
@ -40,6 +40,7 @@ import android.util.Log;
@@ -40,6 +40,7 @@ import android.util.Log;
|
|
|
|
|
import android.util.TypedValue; |
|
|
|
|
import android.view.*; |
|
|
|
|
import android.view.View.OnClickListener; |
|
|
|
|
import android.view.View.OnFocusChangeListener; |
|
|
|
|
import android.view.View.OnKeyListener; |
|
|
|
|
import android.view.View.OnLongClickListener; |
|
|
|
|
import android.view.View.OnTouchListener; |
|
|
|
@ -87,6 +88,8 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -87,6 +88,8 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
private LightningViewAdapter mTitleAdapter; |
|
|
|
|
private List<HistoryItem> mBookmarkList; |
|
|
|
|
private BookmarkViewAdapter mBookmarkAdapter; |
|
|
|
|
private DrawerArrowDrawable mArrowDrawable; |
|
|
|
|
private ImageView mArrowImage; |
|
|
|
|
private AutoCompleteTextView mSearch; |
|
|
|
|
private ClickHandler mClickHandler; |
|
|
|
|
private AnimatedProgressBar mProgressBar; |
|
|
|
@ -227,9 +230,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -227,9 +230,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
|
|
final DrawerArrowDrawable drawable = new DrawerArrowDrawable(this); |
|
|
|
|
final ImageView arrow = (ImageView) mActionBar.getCustomView().findViewById(R.id.arrow); |
|
|
|
|
arrow.setImageDrawable(drawable); |
|
|
|
|
mArrowDrawable = new DrawerArrowDrawable(this); |
|
|
|
|
mArrowImage = (ImageView) mActionBar.getCustomView().findViewById(R.id.arrow); |
|
|
|
|
mArrowImage.setImageDrawable(mArrowDrawable); |
|
|
|
|
LinearLayout arrowButton = (LinearLayout) mActionBar.getCustomView().findViewById( |
|
|
|
|
R.id.arrow_button); |
|
|
|
|
arrowButton.setOnClickListener(new OnClickListener() { |
|
|
|
@ -290,8 +293,65 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -290,8 +293,65 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
mCopyIcon.setBounds(0, 0, Utils.convertDpiToPixels(mContext, 24), |
|
|
|
|
Utils.convertDpiToPixels(mContext, 24)); |
|
|
|
|
mIcon = mRefreshIcon; |
|
|
|
|
SearchClass search = new SearchClass(); |
|
|
|
|
mSearch.setCompoundDrawables(null, null, mRefreshIcon, null); |
|
|
|
|
mSearch.setOnKeyListener(new OnKeyListener() { |
|
|
|
|
mSearch.setOnKeyListener(search.new KeyListener()); |
|
|
|
|
mSearch.setOnFocusChangeListener(search.new FocusChangeListener()); |
|
|
|
|
mSearch.setOnEditorActionListener(search.new EditorActionListener()); |
|
|
|
|
mSearch.setOnTouchListener(search.new TouchListener()); |
|
|
|
|
|
|
|
|
|
mSystemBrowser = getSystemBrowser(); |
|
|
|
|
Thread initialize = new Thread(new Runnable() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
initializeSearchSuggestions(mSearch); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
initialize.run(); |
|
|
|
|
|
|
|
|
|
mNewTab.setOnClickListener(new OnClickListener() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onClick(View arg0) { |
|
|
|
|
newTab(null, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
mNewTab.setOnLongClickListener(new OnLongClickListener() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onLongClick(View v) { |
|
|
|
|
String url = mPreferences.getString(PreferenceConstants.SAVE_URL, null); |
|
|
|
|
if (url != null) { |
|
|
|
|
newTab(url, true); |
|
|
|
|
Toast.makeText(mContext, R.string.deleted_tab, Toast.LENGTH_SHORT).show(); |
|
|
|
|
} |
|
|
|
|
mEditPrefs.putString(PreferenceConstants.SAVE_URL, null).apply(); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// mDrawerLayout.setDrawerListener(mDrawerToggle);
|
|
|
|
|
mDrawerLayout.setDrawerShadow(R.drawable.drawer_right_shadow, GravityCompat.END); |
|
|
|
|
mDrawerLayout.setDrawerShadow(R.drawable.drawer_left_shadow, GravityCompat.START); |
|
|
|
|
initializePreferences(); |
|
|
|
|
initializeTabs(); |
|
|
|
|
|
|
|
|
|
if (API <= Build.VERSION_CODES.JELLY_BEAN_MR2) { |
|
|
|
|
WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
checkForTor(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private class SearchClass { |
|
|
|
|
|
|
|
|
|
public class KeyListener implements OnKeyListener { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onKey(View arg0, int arg1, KeyEvent arg2) { |
|
|
|
@ -311,9 +371,31 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -311,9 +371,31 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
mSearch.setOnFocusChangeListener(new View.OnFocusChangeListener() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public class EditorActionListener implements OnEditorActionListener { |
|
|
|
|
@Override |
|
|
|
|
public boolean onEditorAction(TextView arg0, int actionId, KeyEvent arg2) { |
|
|
|
|
// hide the keyboard and search the web when the enter key
|
|
|
|
|
// button is pressed
|
|
|
|
|
if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE |
|
|
|
|
|| actionId == EditorInfo.IME_ACTION_NEXT |
|
|
|
|
|| actionId == EditorInfo.IME_ACTION_SEND |
|
|
|
|
|| actionId == EditorInfo.IME_ACTION_SEARCH |
|
|
|
|
|| (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) { |
|
|
|
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); |
|
|
|
|
imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); |
|
|
|
|
searchTheWeb(mSearch.getText().toString()); |
|
|
|
|
if (mCurrentView != null) { |
|
|
|
|
mCurrentView.requestFocus(); |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public class FocusChangeListener implements OnFocusChangeListener { |
|
|
|
|
@Override |
|
|
|
|
public void onFocusChange(View v, final boolean hasFocus) { |
|
|
|
|
if (!hasFocus && mCurrentView != null) { |
|
|
|
@ -336,9 +418,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -336,9 +418,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
@Override |
|
|
|
|
protected void applyTransformation(float interpolatedTime, Transformation t) { |
|
|
|
|
if (!hasFocus) { |
|
|
|
|
drawable.setProgress(1.0f - interpolatedTime); |
|
|
|
|
mArrowDrawable.setProgress(1.0f - interpolatedTime); |
|
|
|
|
} else { |
|
|
|
|
drawable.setProgress(interpolatedTime); |
|
|
|
|
mArrowDrawable.setProgress(interpolatedTime); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -359,9 +441,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -359,9 +441,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
@Override |
|
|
|
|
public void onAnimationEnd(Animation animation) { |
|
|
|
|
if (!hasFocus) { |
|
|
|
|
drawable.setProgress(0.0f); |
|
|
|
|
mArrowDrawable.setProgress(0.0f); |
|
|
|
|
} else { |
|
|
|
|
drawable.setProgress(1.0f); |
|
|
|
|
mArrowDrawable.setProgress(1.0f); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -374,7 +456,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -374,7 +456,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
arrow.startAnimation(anim); |
|
|
|
|
mArrowImage.startAnimation(anim); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}, 100); |
|
|
|
@ -384,32 +466,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -384,32 +466,9 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
mSearch.setOnEditorActionListener(new OnEditorActionListener() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onEditorAction(TextView arg0, int actionId, KeyEvent arg2) { |
|
|
|
|
// hide the keyboard and search the web when the enter key
|
|
|
|
|
// button is pressed
|
|
|
|
|
if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE |
|
|
|
|
|| actionId == EditorInfo.IME_ACTION_NEXT |
|
|
|
|
|| actionId == EditorInfo.IME_ACTION_SEND |
|
|
|
|
|| actionId == EditorInfo.IME_ACTION_SEARCH |
|
|
|
|
|| (arg2.getAction() == KeyEvent.KEYCODE_ENTER)) { |
|
|
|
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); |
|
|
|
|
imm.hideSoftInputFromWindow(mSearch.getWindowToken(), 0); |
|
|
|
|
searchTheWeb(mSearch.getText().toString()); |
|
|
|
|
if (mCurrentView != null) { |
|
|
|
|
mCurrentView.requestFocus(); |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
mSearch.setOnTouchListener(new OnTouchListener() { |
|
|
|
|
public class TouchListener implements OnTouchListener { |
|
|
|
|
|
|
|
|
|
@SuppressLint("ClickableViewAccessibility") |
|
|
|
|
@Override |
|
|
|
@ -438,55 +497,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
@@ -438,55 +497,7 @@ public class BrowserActivity extends ActionBarActivity implements BrowserControl
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
mSystemBrowser = getSystemBrowser(); |
|
|
|
|
Thread initialize = new Thread(new Runnable() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
initializeSearchSuggestions(mSearch); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
initialize.run(); |
|
|
|
|
|
|
|
|
|
mNewTab.setOnClickListener(new OnClickListener() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onClick(View arg0) { |
|
|
|
|
newTab(null, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
mNewTab.setOnLongClickListener(new OnLongClickListener() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onLongClick(View v) { |
|
|
|
|
String url = mPreferences.getString(PreferenceConstants.SAVE_URL, null); |
|
|
|
|
if (url != null) { |
|
|
|
|
newTab(url, true); |
|
|
|
|
Toast.makeText(mContext, R.string.deleted_tab, Toast.LENGTH_SHORT).show(); |
|
|
|
|
} |
|
|
|
|
mEditPrefs.putString(PreferenceConstants.SAVE_URL, null).apply(); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// mDrawerLayout.setDrawerListener(mDrawerToggle);
|
|
|
|
|
mDrawerLayout.setDrawerShadow(R.drawable.drawer_right_shadow, GravityCompat.END); |
|
|
|
|
mDrawerLayout.setDrawerShadow(R.drawable.drawer_left_shadow, GravityCompat.START); |
|
|
|
|
initializePreferences(); |
|
|
|
|
initializeTabs(); |
|
|
|
|
|
|
|
|
|
if (API <= Build.VERSION_CODES.JELLY_BEAN_MR2) { |
|
|
|
|
WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
checkForTor(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private class DrawerLocker implements DrawerListener { |
|
|
|
|