From a0832045411ca2394a4611d9662cc9897dd888ef Mon Sep 17 00:00:00 2001 From: Anthony Restaino Date: Wed, 27 Mar 2013 10:43:22 -0400 Subject: [PATCH 1/2] bugfixes 2.3.7 fixed some problems with loading pages from other apps and the app disappearing from memory --- AndroidManifest.xml | 8 +- res/drawable-xhdpi/bg_inactive.9.png | Bin 817 -> 927 bytes res/drawable-xhdpi/bg_press.9.png | Bin 710 -> 925 bytes res/menu-zh-rTW/menu.xml | 20 ++- res/values-zh-rTW/strings.xml | 40 +++-- src/acr/browser/barebones/Barebones.java | 191 +++++++++++++++++++---- 6 files changed, 191 insertions(+), 68 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index dc8b894..7f9f706 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="29" + android:versionName="2.3.6" > diff --git a/res/drawable-xhdpi/bg_inactive.9.png b/res/drawable-xhdpi/bg_inactive.9.png index 2138feee6b4276aec47509c257ba0339ed526ea3..c7af9ceb2fa290400bbd2f4e370ffe1320a160e2 100644 GIT binary patch delta 879 zcmV-#1Cac&2A>BZiBL{Q4GJ0x0000DNk~Le0000+0000g2nGNE01g-}rI8^U3cdgU z4!!~ELb1S+Mks#+8%ab#RA@u(S)pzlK@c?zEHo_aClnSI7?fEuGBgaaab#NxwCoQ! z+cF5uCj=H276t}YA+4gI>%8lXHQvtp?(E&YYvYlgc5kyg^WMwd=#uNSD00RnS{#>O zkS8w2c%m?-QFnH`-PL-%{=C_2ZUM}(#y@TM7Y4W zhsI~*;{I`8T5XAj^^k$T`m_o;u%BaAG9zH5myyQay)Rk z&=JQNB7E?^VhE~@BROKc--I{DeP1~us5X50BD{a!gf)iy%9AAm5Fw|+my^b)!2Kqy zF+|erDqLEHs9@uL#RnfJ8te9(ddARg`PZipnYRs^8#seI%cv67jiJO>RN%W&bU$wk zEPmh)4J@ZDsvASe*HTQQ?Z!A*vz)T1W(-8>B5MvN>aY2Dj=QkhaoajU15*Ppg002ovPDHLk FV1f#Xq~-ts delta 768 zcmV+b1ONP=2eAeriBL{Q4GJ0x0000DNk~Le0000o0000c2nGNE0ET$TJdq(A3cmmV z4!;371ydxEMks#*tw}^dR9HvVna_(7aTvxI*=0}Bp)Ns}r9;>19Q^@GC$DypJOrVL zsfn11sEC4$Bnl!X{=C#b&}I4?YLER79TqzF_CETq?#|BW%sA@I10O{l-{*P0^JN_H zgoqZXs=60g1oS?0l2s8eBa5|s*j2OH%r_p7U+}ZS{1AUg!}a@$9P5*>@2cI4OsCUR z4s^kMXSBh$f$v;khK#eT-HLF4bLPD!oMkWrvt+Ct*)KAm&rjL><76@+C%`Psl<`(& zzX-47%h6~=PJ)>--m2^s;nll87z}<6heL7_%*1T5u_D_=KCvl`9S5_;#)_;L;eCA8 z@Aqk+z(arR%*uKZ-p9{-y&mloc!-@@Su4UT!u$7Wr_-TB z057pMBg;j;wA*bu1n?4DGcsRHpyHOUYU1|MuUz4yd}maZ7;%?!3TepO67OGUZ-OKZ)A`-M%rG4uj!#$ ztwzTL86=L8HW%TQxK}6?F00il9TQ|g7Kx>&%|&=6UYE;das$XBvGinIgje7!o6Y_z zl}h9WkOi3}o>s<1_-gU0SS*s8KqiT&m2r_&Ds`F9=gCbVlf=_XzX;zNJj>;BWiBL{Q4GJ0x0000DNk~Le0000+0000g2nGNE01g-}rI8^U3cvsW z4!{9w)`7vB-CA3$r1UCLBIGTBDHX9gm*1-%E9SUM;>GF7+gW%yB4k?!Udr{7~d%ur%f5@ zjS2M?nah8=h2CTK<>)u*je(GR5h&suu`cXBHNWTdsUod0=m|Gkpa|1q+n~?r9F&{O zq=FIhG24pYGb@*nnPl^F-1}QM)B&uD20rj=Ym(CxDiLD z+c$rP8G~o|5`{}4qR1Qx=7#2==Ac?$GVMMw%or4X^2o^b6tEl=mnWv(C;A(Mf|K`^ z5JH?V_U$+QjKOXBBtB4bfvnFRnlqsPB>0*s8Vh2Hb$o#^?b|NW24y z2QYXHDl18-XebE3Ed|6ItnY(|S%#0@nf+mRU-H<^GV^|Bmd%Ee=Xt3TkPn>d-zP=& zV$sOOT7SgFcswo-27`MXo8UL;8QffNa%`E?<05{M(P)2kG?`4U5ULHD!Nb^=xuQY2 zsEAht0jl7u63~gFAzGA;g6Ku2)9De+-?U&+C|aUPc~?X)f?MK23lxWlaek^p<6O&b?PF7mE~NQ9zI8yC12nayU$T7V>p-%5pcws0?k`}jpOPndVKvxQp` ztW;SsO@n`5;ze5dUHB?IH^ zLwFGg)eYe+SZADl2rhz^IDtsl5Y2*J$--C~f{TAZpk@eW$r@v6*k1%IP{HJmA(kaO zl8Nz5>@R|6_@g40DJ2u*nFuWMqlsln$;5aj)hI< zg|en(V@yAGi{O>u8WZNGK#n+cDePcB6_f7slW`b0L{`ir~I`QU>Rml36SAs}0UGCG$=ZZD0|& uRRkAW=70jR - - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index df01390..24614e8 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -1,21 +1,19 @@ - - - - Lightning - Google - 浏覽器設置 - 允許站點訪問您地理位置 - 保存密碼 - User Agent - 退出時清空曆史記錄(緩存將被自動清理) - 郵件開發者 - 啓用 Adobe Flash(若已安裝) - 作爲移動設備訪問 - 作爲桌面設備訪問 - 自定義 User Agent - 首頁 - 設置僅將應用于新標簽頁 - 啓用全屏模式 - 啓用 JavaScript - - \ No newline at end of file + + + Lightning + Google + 瀏覽器設定 + 允許網頁存取您的位置資訊 + 儲存密碼 + 使用者代理 + 退出時清除歷史記錄(自動清理緩存) + 電郵給開發者 + 啓用 Adobe Flash(若已安裝) + 以手機版檢視 + 以電腦桌面版檢視 + 自定義使用者代理 + 首頁 + 設定僅套用於新的標簽頁 + 啓用全螢幕模式 + 啓用 JavaScript + diff --git a/src/acr/browser/barebones/Barebones.java b/src/acr/browser/barebones/Barebones.java index 675234f..696f506 100644 --- a/src/acr/browser/barebones/Barebones.java +++ b/src/acr/browser/barebones/Barebones.java @@ -17,12 +17,16 @@ import android.app.AlertDialog; import android.app.DownloadManager; import android.content.ClipData; import android.content.ClipboardManager; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.database.Cursor; +import android.database.DatabaseUtils; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.graphics.Bitmap; @@ -39,6 +43,7 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.provider.Browser; +import android.provider.Browser.BookmarkColumns; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; @@ -105,7 +110,8 @@ public class Barebones extends Activity implements OnLongClickListener, static final boolean PAID_VERSION = false; // variable declaration - static int crap; + + static Rect edge; static SimpleAdapter adapter; static MultiAutoCompleteTextView getUrl; static TextView[] urlTitle = new TextView[MAX_TABS]; @@ -127,9 +133,12 @@ public class Barebones extends Activity implements OnLongClickListener, static int height, width, pixels, leftPad, rightPad, pixelHeight; static int bookHeight, API; static int mShortAnimationDuration; + static int id; + static int hitTest; static int urlColumn, titleColumn; static View mCustomView = null; static CustomViewCallback mCustomViewCallback; + static boolean xPress; static boolean tabsAreDisplayed = true, isPhone = false; static boolean pageIsLoading = false, java; static boolean allowLocation, savePasswords, deleteHistory; @@ -167,6 +176,7 @@ public class Barebones extends Activity implements OnLongClickListener, static List> list; static Map map; static Handler handler; + @Override protected void onCreate(Bundle savedInstanceState) { @@ -349,8 +359,8 @@ public class Barebones extends Activity implements OnLongClickListener, pixelHeight = (int) (36 * scale + 0.5f); bookHeight = (int) (48 * scale + 0.5f); height56 = (int) (56 * scale + 0.5f); - leftPad = (int) (10 * scale + 0.5f); - rightPad = (int) (10 * scale + 0.5f); + leftPad = (int) (15 * scale + 0.5f); + rightPad = (int) (15 * scale + 0.5f); height32 = (int) (32 * scale + 0.5f); statusBar = (int) (25 * scale + 0.5f); number = 0; @@ -361,7 +371,7 @@ public class Barebones extends Activity implements OnLongClickListener, webpage.setBounds(0, 0, width * 2 / 3, height * 2 / 3); webpageOther.setBounds(0, 0, width * 1 / 2, height * 1 / 2); exitTab.setBounds(0, 0, width * 2 / 3, height * 2 / 3); - Intent url = getIntent().addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + Intent url = getIntent(); String URL = null; // that opens the browser // gets the string passed into the browser URL = url.getDataString(); @@ -496,7 +506,9 @@ public class Barebones extends Activity implements OnLongClickListener, new String[] { "title", "url" }, new int[] { R.id.title, R.id.url }); getUrl.setAdapter(adapter); - break;} + + break; + } case 2:{ break; @@ -512,18 +524,21 @@ public class Barebones extends Activity implements OnLongClickListener, bookmarks = Browser.BOOKMARKS_URI; + columns = new String[] { Browser.BookmarkColumns.URL, Browser.BookmarkColumns.TITLE }; - Context con = Barebones.this; + try{ + managedCursor = null; - managedCursor = con.getContentResolver().query(bookmarks, // URI of + managedCursor = getContentResolver().query(bookmarks, // URI of columns, // Which columns to return null, // Which rows to return (all rows) null, // Selection arguments (none) null); Log.i("Lightning: ","SQLite success!!!"); handler.sendEmptyMessage(1); + Log.i("Lightning: ","SQLite success!!!"); } catch(SQLiteException e){ @@ -681,6 +696,74 @@ public class Barebones extends Activity implements OnLongClickListener, Drawable[] drawables = title.getCompoundDrawables(); bounds[number] = drawables[2].getBounds(); title.setOnLongClickListener(Barebones.this); + title.setOnClickListener(new OnClickListener(){ + + @Override + public void onClick(View arg0) { + id = arg0.getId(); + if (API < 16) { + urlTitle[pageId].setBackgroundDrawable(getResources() + .getDrawable(R.drawable.bg_inactive)); + } else if (API > 15) { + urlTitle[pageId].setBackground(getResources() + .getDrawable(R.drawable.bg_inactive)); + } + urlTitle[pageId].setPadding(leftPad, 0, rightPad, 0); + + if (isBookmarkShowing) { + + background.addView(main[id]); + main[id].startAnimation(fadeIn); + scrollBookmarks.startAnimation(fadeOut); + background.removeView(scrollBookmarks); + isBookmarkShowing = false; + uBar.bringToFront(); + } else if (!isBookmarkShowing) { + if (!showFullScreen) { + background.addView(main[id]); + main[id].startAnimation(fadeIn); + main[pageId].startAnimation(fadeOut); + pageIdIsVisible = false; + background.removeView(main[pageId]); + uBar.bringToFront(); + } else if (API >= 12) { + pageIdIsVisible = false; + main[id].setAlpha(0f); + main[id].clearAnimation(); + background.addView(main[id]); + main[id].animate().alpha(1f) + .setDuration(mShortAnimationDuration); + main[pageId].clearAnimation(); + // main[pageId].animate().alpha(0f) + // .setDuration(mShortAnimationDuration); + + // main[pageId].setAlpha(1f); + background.removeView(main[pageId]); + + + uBar.bringToFront(); + } else { + pageIdIsVisible = false; + background.removeView(main[pageId]); + background.addView(main[id]); + } + uBar.bringToFront(); + } + pageId = id; + pageIdIsVisible = true; + getUrl.setText(urlToLoad[pageId][0]); + + if (API < 16) { + urlTitle[pageId].setBackgroundDrawable(getResources() + .getDrawable(R.drawable.bg_press)); + } else if (API > 15) { + urlTitle[pageId].setBackground(getResources().getDrawable( + R.drawable.bg_press)); + } + urlTitle[pageId].setPadding(leftPad, 0, rightPad, 0); + } + + }); title.setOnTouchListener(Barebones.this); tabLayout.addView(title); urlTitle[number] = title; @@ -897,7 +980,7 @@ public class Barebones extends Activity implements OnLongClickListener, super(context); } - + @Override protected void onDraw(Canvas canvas) { if(!showFullScreen){ @@ -924,12 +1007,11 @@ public class Barebones extends Activity implements OnLongClickListener, } case MotionEvent.ACTION_UP: { try{ - crap = getHitTestResult().getType(); + hitTest = getHitTestResult().getType(); } catch(NullPointerException e){ - Log.e("Lightning","Touch was invalid"); } - if (showFullScreen&&crap!=9) { + if (showFullScreen&&hitTest!=9) { if (System.currentTimeMillis() - timeBetweenDownPress < 500 && !move) { if (!uBarShows) { @@ -961,9 +1043,17 @@ public class Barebones extends Activity implements OnLongClickListener, } } - + private class AnthonyWebViewClient extends WebViewClient { + @Override + public void doUpdateVisitedHistory(WebView view, String url, + boolean isReload) { + + + return; + } + @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { @@ -1004,22 +1094,9 @@ public class Barebones extends Activity implements OnLongClickListener, } @Override - public void onPageStarted(WebView view, final String url, Bitmap favicon) { + public void onPageStarted(WebView view,String url, Bitmap favicon) { int num = view.getId(); - Thread hist = new Thread(new Runnable() { - - @Override - public void run() { - if(!noStockBrowser){ - Browser.updateVisitedHistory(getContentResolver(), url, - true); - - } - } - - }); - hist.start(); pageIsLoading = true; refresh.startAnimation(anim); getUrl.setText(url); @@ -1034,8 +1111,18 @@ public class Barebones extends Activity implements OnLongClickListener, } @Override - public void onPageFinished(WebView view, String url) { - + public void onPageFinished(WebView view, final String url) { + if(!noStockBrowser){ + Thread history = new Thread( new Runnable(){ + @Override + public void run(){ + Browser.updateVisitedHistory(getContentResolver(),url,true); + //Log.i("Lightning",view.getTitle()+" "+url); + } + + }); + history.start(); + } pageIsLoading = false; anim.cancel(); anim.reset(); @@ -1169,7 +1256,7 @@ public class Barebones extends Activity implements OnLongClickListener, @Override public void onReceivedTitle(WebView view, String title) { - + int num = view.getId(); urlTitle[num].setText(title); urlToLoad[num][1] = title; @@ -1973,6 +2060,7 @@ public class Barebones extends Activity implements OnLongClickListener, main[pageId].goBack(); } else { deleteTab(pageId); + uBar.bringToFront(); } } @@ -1990,6 +2078,7 @@ public class Barebones extends Activity implements OnLongClickListener, @Override public void finish() { pageIdIsVisible = false; + this.onPause(); super.finish(); } @@ -1999,8 +2088,7 @@ public class Barebones extends Activity implements OnLongClickListener, deleteHistory = settings.getBoolean("history", false); if (deleteHistory == true) { - - if(noStockBrowser){ + if(!noStockBrowser){ Browser.clearHistory(getContentResolver()); } } @@ -2038,14 +2126,16 @@ public class Barebones extends Activity implements OnLongClickListener, return dir.delete(); } + + @Override public boolean onTouch(View v, MotionEvent event) { pageIdIsVisible = false; - final int id = v.getId(); - boolean xPress = false; + id = v.getId(); + xPress = false; x = (int) event.getX(); y = (int) event.getY(); - final Rect edge = new Rect(); + edge = new Rect(); v.getLocalVisibleRect(edge); if (x >= (edge.right - bounds[id].width() - fuzz) @@ -2144,4 +2234,37 @@ public class Barebones extends Activity implements OnLongClickListener, return true; } + @Override + protected void onPause() { + if(API>=11){ + main[pageId].onPause(); + } + main[pageId].pauseTimers(); + super.onPause(); + } + + @Override + protected void onResume() { + if(API>=11){ + main[pageId].onResume(); + } + main[pageId].resumeTimers(); + super.onResume(); + + + } + + @Override + protected void onNewIntent(Intent intent) { + + String url = null; + url = intent.getDataString(); + if(url!=null){ + newTab(number,url); + } + super.onNewIntent(intent); + } + + + } From bba148f92e11e05096929f0e3ae70fd5c225b50b Mon Sep 17 00:00:00 2001 From: Anthony Restaino Date: Thu, 28 Mar 2013 08:31:55 -0400 Subject: [PATCH 2/2] 2.3.7 german language fixed crash when exiting bookmarks tweaked the bookmark and tab ui a little --- AndroidManifest.xml | 4 +- res/drawable-hdpi/ic_launcher.png | Bin 5573 -> 5957 bytes res/drawable-mdpi/ic_launcher.png | Bin 3113 -> 3086 bytes res/drawable-xhdpi/bg_inactive.9.png | Bin 927 -> 987 bytes res/drawable-xhdpi/bg_press.9.png | Bin 925 -> 943 bytes res/drawable-xhdpi/book.9.png | Bin 0 -> 706 bytes res/drawable-xhdpi/book_press.9.png | Bin 0 -> 984 bytes res/drawable/bookmark.xml | 6 +- res/layout/activity_main.xml | 7 +- res/layout/menu.xml | 44 +++ res/menu-de/menu.xml | 11 + res/values-de/strings.xml | 21 ++ res/values-it/strings.xml | 2 +- res/values-zh-rCN/strings.xml | 2 +- res/values-zh-rTW/strings.xml | 2 +- res/values/colors.xml | 4 +- src/acr/browser/barebones/Barebones.java | 403 ++++++++++++----------- 17 files changed, 301 insertions(+), 205 deletions(-) create mode 100644 res/drawable-xhdpi/book.9.png create mode 100644 res/drawable-xhdpi/book_press.9.png create mode 100644 res/layout/menu.xml create mode 100644 res/menu-de/menu.xml create mode 100644 res/values-de/strings.xml diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7f9f706..22dbdc6 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="30" + android:versionName="2.3.7" > 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 delta 5527 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 RK$k;PUH8sMRTA@%{{fJpp9KH_ diff --git a/res/drawable-mdpi/ic_launcher.png b/res/drawable-mdpi/ic_launcher.png index 60e67377d01234e224094c961099ad022d9a5df7..b68acbac014ffad7503254b64ee67274b60211d7 100644 GIT binary patch delta 3019 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 diff --git a/res/drawable-xhdpi/bg_inactive.9.png b/res/drawable-xhdpi/bg_inactive.9.png index c7af9ceb2fa290400bbd2f4e370ffe1320a160e2..a46cc894d2e3a1f9a43f73805cf068799ce55165 100644 GIT binary patch delta 903 zcmV;219<$O2ipgbJPN%401mwYNBfYikwz(hS4l)cRA@u(nJ;YHP!Prg2MY@e3m24y z4Gu*E2``F9A~ivUV^b6*g@c9pr>L-SuqY~-G`7OQNFy1T+|KD+OePQbg}f) zdrs_o-}g1OPj;`IElpf4^(>b*^hl3x*Ao@ox}9 z98>Fj*OV3v8&(0tLcgjnRt=Yw5)2!)0$}L7aFltle{I!rMd87a!A}@~HP^^@bocsb z)pS9j!H}^JVsalCh?;L_v)MbVcHR_!77X5&(KL@1_#GZkZ0N#$X|0hbg#<%JF36C7 zTMo=c%t`Og~Vk|3ITlRx-!~K$_ zEiJhP!+iw_+v!yVF_9O#HjKGEXJR{WNH922SWmGm7qd@0zqUwJrV~ufSH0J0oO`M;h_jR6wq-{19)&S{A?sx zxH51U7z~7yx&b^W7=9)~ixzqfmUC|~ z^14G8gu+LI)(>;@EoW>n!RrqHxe62s=f{ZF559JK95WccYSY2bR*_?eeQ4-EW2eX2 z35KuM!{PAfWHRxD@p$ZVgP$Ec=!fT{(dak!IFVrZD&6gNzYhijkLmaOk?}QQdFu6g z{Fc-2aU#LcPwlSL>3B%H-HzutuHogCqMx*gp=Jk4gBf;>- dlM^Ae+CO>sQnhMeolO7$002ovPDHLkV1j$BsR#f7 delta 843 zcmV-R1GN0x2cHL!JPN)501mzZ>O!%=kwz(h8%ab#RA@u(S)pzlK@c?zEHo_aClnSI z7?fEuGBgaaab#NxwCoQ!+cF5uCj=H276t}YA+4gI>%8lXHQvtp?(E&YYvYlgc5kyg z^WMwd=#uNSD00RnS{#>OkS8w2c%m?-QFnH`-PL-%{=C_2ZUM}(#y@TM7Y4WhsI~*;{I`8T5XAj^^k$T`m_o z;u%BaAG9zH5myyQay)Rk&=JQNB7E?^VhE~@BROKc--I{DeP1~us5X50BD~*!gf)iy z%9AAm5Fw|+my^b)!2KqyF+|erDqLEHs9@uL#RnfJ8te9(ddARg`PZipnYRs^8#seI z%cv67jiJO>RN%W&bU$wkEPmh)4J@ZDsvASe*HTQQ?Z!A*vz)T1W(*a78X~b<5Z7%r z#^TCjl~2Cq#?b9|@ae-Sv|norEN*J8$|soP#^9M;EEeBZt5psxmrHYOBaU%}rjmZ+ zH--*&r_-8>B5MvN>aY2Dj=Qkha VoajU15*Ppg002ovPDHLkV1ithpqT&w diff --git a/res/drawable-xhdpi/bg_press.9.png b/res/drawable-xhdpi/bg_press.9.png index 03f714b20f01d712707e4e95d6907f5ad35e17ce..0458ed73f32c4c91935566c99c69d57ce53269c1 100644 GIT binary patch delta 859 zcmV-h1El<&2d@W^JPN)501mzZ>O!%=kwz(hD@jB_RA@u(nyqu&KoG?Z3k?GU0}BHS z3;QPo76t~E6$Ta-76t|u1{!AkDOhOeGWD(IR`ax8Ir_Mh&Lo6Y7RY`5DSh{-R4cfasq^4z=tGiVAo|Xl(YbE#gVyAFnBRF?x)MEq7O$0DaIw9Cz`Y~7VyrJ*Tfc{KFa46Itu4`lk-h@Lj(QbEO~k_1 zrZLJxt|-BT+j7yXFe)|`8VrS^<0~}vddL+e7>Fr)l^{wVPnJSca$=oc4PftJAmGsm z8YB=#*Rvz&+yM3p1_JJlkikQLQEVurqf-OeIT(315*D5e5(WoD;k0f5I|U=pM6l?f z*OI2F9;*xURt;e5VB}VaMat(Yx;Tp%8`Wj>wQ2xc1tYgWEKv3;R)h+h0<255VQkz0 zHV!8ADlfXIH%)IctLnuRDt8 zDpaJLpCeX3`8w)x++gIYje|3<$hjjvEcneh>T!;Ok*hThe)Wp+wsVL51b>wtrxJ`@ zrEy^SuNiW}Znt}Pp$O_m&1@?la#e!C&f;~4Ik@uuJ)z#%Bj(5^o0q|07vB-CA3$r1UCLBIGTBDHX9gm*1-%E9SUM;>GF7+gW% zyB4k?!Udr{7~d%ur%f5@jS2M?najF=h2CTK<>)u*je(GR5h&suu`cXBHNWTdsUod0 z=m|Gkpa|1q+n~?r9F&{Oq=FIhG24pYGb@*nnPl^F-1}Q zM)B&uD20rj=Ym(CxDiLD+c$=P8G~o|5`{}4qR1Qx=7#2==Ac?$GVMMw%or4X^2o^b z6tEl=mnWv(C;A(Mf|K`^5JH?V_U$+QjKOXBBtB4bfvnFRnlqsP zR0#8Xq zK~z}7-I#51!axXyUp8B<^*Fu%5qcb3KVs+~w!m4Ov6u%cy572dQlPH@_RRdzGjS5pyMU#TxXQh6+#fQQgyZ`CfF!?{wWA6nFIV4y z+87Pu-i^4sx9rpgEyX%Q=1q_;oYaor4glTC+R>ytc%Zq>6x4>AxG z4gj^eIQy0h4V6o?zCN{Cg^~e+?J*C+Ip`pxct&o1xmQ?RC!b-n|et1wk3n;Gz zk44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfS&2Vq7F)?gK&AbW|YuPggqW*KI7p~j_o1wbLG64!{5;QX|b z^2DN4hJeJ(yb?V>*ARs=V?9$nLj!{^MGF}im`yxg977`9-`?=d7cmrIeXv14iM{a# zKgWa{e4OkPIBqL$k16t)^2fhUXg~8SXT21e?-wS^9pPEDM7{S|==;6fPUoFp=a{pmAWP+yl#FTm+N<4;i`O1BDc|+L z=RwYcn1es>D}27P!gt=aFB5LAyLc@{O2z4m(}SP~MGw3lWF6ef_+&?nX;$HbLo?gb zXUdw~n&nbu=hKP$Ix?f;%YZtz8H(b?`N(Rp2)EC&Ay~_heM!R zqC%uXszR(nt|IcoD#to~_jOWREeakUxjV~OUNUyE&{yBwOFA>=9&Z$H>^(61!0rRT z4;(+R{J?Xzea31qwXw6$&XY~OGC8x#`|(P_S-oEmq$Ox?kiEhAhV2{E@5W|iwZ6^M z=B-UPeJsA1?NY|MWpuk4gT5rpK)=T(q-x|1g(TT!E{rA|mRVM{E zY%aLG;OU&VUtcZ=%%Awi|9F?|?#nPOnr{Q$_D)x=o^7#aZlgTYZrhET2O@W5URdNg zyM1SmmDQZebBFiNyCL#G=Z=|(?yRzZ8H*=f)(~p{Ugw{~RUr1x(=Ap*q*_$T`UTu+ zOU+;D{LL>BDiF()a*z8p^@fjjvCY~ejr)z(2YBkS>2Y|MYMxxttM}AYU%7Xic)I-& zli&0ASX`d*`q7*;)!Vf5DO4&kTy5T;ZoV+fM84a(f-Q_H0#__ZE?QhYn!WZ#Cgdd9t0U<<T&jAz7+T;rv=hysm%u1iddODR^fJMAZt|$f)-EU^fq=sxs`|2yjCf(by zokL)5>zUxiW|akL{(LhRX91<)QyH?R rAC(Nuo|*mH{%Coi{4|N|?E8#2 - - - + + + \ No newline at end of file diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index 140d209..c9cfcb8 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -110,17 +110,22 @@ android:paddingTop="10dp" android:src="@drawable/refresh" /> + diff --git a/res/layout/menu.xml b/res/layout/menu.xml new file mode 100644 index 0000000..d9c513b --- /dev/null +++ b/res/layout/menu.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/menu-de/menu.xml b/res/menu-de/menu.xml new file mode 100644 index 0000000..5c6a7a5 --- /dev/null +++ b/res/menu-de/menu.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml new file mode 100644 index 0000000..b72961d --- /dev/null +++ b/res/values-de/strings.xml @@ -0,0 +1,21 @@ + + + + Lightning+ + Google + Browser Einstellungen + Webseiten erlauben auf Standort zu zugreifen + Passworter speichern + Ansicht + Beim Schlie�en Verlauf l�schen + kontaktiere mich + Adobe Flash aktivieren (fals es installiert ist) + Mobile Ansicht + Computer Ansicht + personalisierte Nutzeransicht + Startseite + Einstellungen werden erst g�ltig wenn ein neuer ab ge�ffnet wird + Vollansicht aktivieren + JavaScript aktivieren + + \ No newline at end of file diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 47522df..6f5be6c 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -1,7 +1,7 @@ - Lightning+ + Lightning Google Impostazioni del browser Consenti ai siti di accedere alla tua posizione diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 68083b9..67c0bf6 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -1,7 +1,7 @@ - Lightning + Lightning+ Google 浏览器设置 允许站点访问您地理位置 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 24614e8..9ae223a 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -1,6 +1,6 @@ - Lightning + Lightning+ Google 瀏覽器設定 允許網頁存取您的位置資訊 diff --git a/res/values/colors.xml b/res/values/colors.xml index 88c99fc..0026e66 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -1,8 +1,8 @@ #00000000 - #b40099cc - #330099cc + #b433b5e5 + #3333b5e5 #ff000000 #ff3f3f3f diff --git a/src/acr/browser/barebones/Barebones.java b/src/acr/browser/barebones/Barebones.java index 696f506..444d74d 100644 --- a/src/acr/browser/barebones/Barebones.java +++ b/src/acr/browser/barebones/Barebones.java @@ -49,6 +49,7 @@ import android.text.Spanned; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; +import android.view.Display; import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -93,6 +94,7 @@ import android.widget.LinearLayout; import android.widget.MultiAutoCompleteTextView.Tokenizer; import android.widget.PopupMenu; import android.widget.PopupMenu.OnMenuItemClickListener; +import android.widget.PopupWindow; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.ScrollView; @@ -110,7 +112,7 @@ public class Barebones extends Activity implements OnLongClickListener, static final boolean PAID_VERSION = false; // variable declaration - + static Rect edge; static SimpleAdapter adapter; static MultiAutoCompleteTextView getUrl; @@ -133,7 +135,7 @@ public class Barebones extends Activity implements OnLongClickListener, static int height, width, pixels, leftPad, rightPad, pixelHeight; static int bookHeight, API; static int mShortAnimationDuration; - static int id; + static int id, tenPad; static int hitTest; static int urlColumn, titleColumn; static View mCustomView = null; @@ -176,7 +178,6 @@ public class Barebones extends Activity implements OnLongClickListener, static List> list; static Map map; static Handler handler; - @Override protected void onCreate(Bundle savedInstanceState) { @@ -229,11 +230,8 @@ public class Barebones extends Activity implements OnLongClickListener, public void init() { DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); - if (isPhone) { - showFullScreen = settings.getBoolean("fullscreen", true); - } else { - showFullScreen = settings.getBoolean("fullscreen", false); - } + + showFullScreen = settings.getBoolean("fullscreen", false); uBar = (RelativeLayout) findViewById(R.id.urlBar); bg = (RelativeLayout) findViewById(R.id.background); slideUp = AnimationUtils.loadAnimation(this, R.anim.slide_up); @@ -359,9 +357,10 @@ public class Barebones extends Activity implements OnLongClickListener, pixelHeight = (int) (36 * scale + 0.5f); bookHeight = (int) (48 * scale + 0.5f); height56 = (int) (56 * scale + 0.5f); - leftPad = (int) (15 * scale + 0.5f); + leftPad = (int) (17 * scale + 0.5f); rightPad = (int) (15 * scale + 0.5f); height32 = (int) (32 * scale + 0.5f); + tenPad = (int) (10 * scale + 0.5f); statusBar = (int) (25 * scale + 0.5f); number = 0; loading = getResources().getDrawable(R.drawable.loading); @@ -406,17 +405,17 @@ public class Barebones extends Activity implements OnLongClickListener, } }); - + enterUrl(); updateUI(); if (showFullScreen) { bg.removeView(uBar); background.addView(uBar); } - + } - - public static void updateUI(){ + + public static void updateUI() { clock = System.currentTimeMillis(); Thread uiUpdate = new Thread(new Runnable() { @@ -424,7 +423,8 @@ public class Barebones extends Activity implements OnLongClickListener, public void run() { long clock = System.currentTimeMillis(); while (true) { - while (!(System.currentTimeMillis() - clock > 20 && pageIdIsVisible)); + while (!(System.currentTimeMillis() - clock > 20 && pageIdIsVisible)) + ; main[pageId].postInvalidate(); clock = System.currentTimeMillis(); @@ -435,7 +435,7 @@ public class Barebones extends Activity implements OnLongClickListener, pageIdIsVisible = true; uiUpdate.setDaemon(true); uiUpdate.setPriority(Thread.MIN_PRIORITY); - //uiUpdate.start(); + // uiUpdate.start(); } } @@ -491,95 +491,94 @@ public class Barebones extends Activity implements OnLongClickListener, } } - void enterUrl(){ + void enterUrl() { getUrl = (MultiAutoCompleteTextView) findViewById(R.id.enterUrl); + getUrl.setPadding(tenPad, 0, tenPad, 0); getUrl.setTextColor(getResources().getColor(android.R.color.black)); - + getUrl.setPadding(tenPad, 0, tenPad, 0); + getUrl.setBackgroundResource(R.drawable.book); + getUrl.setPadding(tenPad, 0, tenPad, 0); handler = new Handler() { - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case 1:{ - adapter = new SimpleAdapter(Barebones.this, list, - R.layout.two_line_autocomplete, - new String[] { "title", "url" }, new int[] { R.id.title, - R.id.url }); - getUrl.setAdapter(adapter); - - break; - } - case 2:{ - - break; - } - } - } - }; - + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case 1: { + adapter = new SimpleAdapter(Barebones.this, list, + R.layout.two_line_autocomplete, new String[] { + "title", "url" }, new int[] { R.id.title, + R.id.url }); + getUrl.setAdapter(adapter); + + break; + } + case 2: { + + break; + } + } + } + }; + Thread updateAutoComplete = new Thread(new Runnable() { - + @Override public void run() { - - + bookmarks = Browser.BOOKMARKS_URI; - + columns = new String[] { Browser.BookmarkColumns.URL, Browser.BookmarkColumns.TITLE }; - - try{ - - managedCursor = null; - managedCursor = getContentResolver().query(bookmarks, // URI of - columns, // Which columns to return - null, // Which rows to return (all rows) - null, // Selection arguments (none) - null); - Log.i("Lightning: ","SQLite success!!!"); - handler.sendEmptyMessage(1); - Log.i("Lightning: ","SQLite success!!!"); - - } - catch(SQLiteException e){ + + try { + + managedCursor = null; + managedCursor = getContentResolver().query(bookmarks, // URI + // of + columns, // Which columns to return + null, // Which rows to return (all rows) + null, // Selection arguments (none) + null); + Log.i("Barebones: ", "SQLite success!!!"); + handler.sendEmptyMessage(1); + Log.i("Barebones: ", "SQLite success!!!"); + + } catch (SQLiteException e) { handler.sendEmptyMessage(2); - Log.e("Lightning: ","SQLite Error!!! "+e); + Log.e("Barebones: ", "SQLite Error!!! " + e); } - + list = new ArrayList>(); noStockBrowser = true; - if(managedCursor!=null){ + if (managedCursor != null) { noStockBrowser = false; - - if (managedCursor.moveToFirst()) { - - // Variable for holding the retrieved URL - - urlColumn = managedCursor - .getColumnIndex(Browser.BookmarkColumns.URL); - titleColumn = managedCursor - .getColumnIndex(Browser.BookmarkColumns.TITLE); - // Reference to the the column containing the URL - do { - urlA = managedCursor.getString(urlColumn); - title = managedCursor.getString(titleColumn); - map = new HashMap(); - map.put("title", title); - map.put("url", urlA); - list.add(map); - } while (managedCursor.moveToNext()); - } + + if (managedCursor.moveToFirst()) { + + // Variable for holding the retrieved URL + + urlColumn = managedCursor + .getColumnIndex(Browser.BookmarkColumns.URL); + titleColumn = managedCursor + .getColumnIndex(Browser.BookmarkColumns.TITLE); + // Reference to the the column containing the URL + do { + urlA = managedCursor.getString(urlColumn); + title = managedCursor.getString(titleColumn); + map = new HashMap(); + map.put("title", title); + map.put("url", urlA); + list.add(map); + } while (managedCursor.moveToNext()); + } } - - + } - + }); - - - + updateAutoComplete.start(); - + getUrl.setThreshold(2); getUrl.setTokenizer(new SpaceTokenizer()); @@ -588,9 +587,10 @@ public class Barebones extends Activity implements OnLongClickListener, @Override public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { + try{ txt = (TextView) arg1.findViewById(R.id.url); str = txt.getText().toString(); - if(!pageIdIsVisible && isBookmarkShowing){ + if (!pageIdIsVisible && isBookmarkShowing) { scrollBookmarks.startAnimation(fadeOut); background.removeView(scrollBookmarks); background.addView(main[pageId]); @@ -599,9 +599,14 @@ public class Barebones extends Activity implements OnLongClickListener, } main[pageId].loadUrl(str); getUrl.setText(str); + getUrl.setPadding(tenPad, 0, tenPad, 0); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getUrl.getWindowToken(), 0); - + } + catch(NullPointerException e){ + + Log.e("Barebones Error: ","NullPointerException on item click"); + } } }); @@ -609,7 +614,7 @@ public class Barebones extends Activity implements OnLongClickListener, getUrl.setSelectAllOnFocus(true); // allows edittext to select all when // clicked } - + // new tab method, takes the id of the tab to be created and the url to load void newTab(int theId, String theUrl) { lastVisibleWebView = pageId; @@ -647,7 +652,6 @@ public class Barebones extends Activity implements OnLongClickListener, R.drawable.bg_inactive)); } urlTitle[pageId].setPadding(leftPad, 0, rightPad, 0); - background.addView(main[num]); background.removeView(main[pageId]); @@ -696,14 +700,15 @@ public class Barebones extends Activity implements OnLongClickListener, Drawable[] drawables = title.getCompoundDrawables(); bounds[number] = drawables[2].getBounds(); title.setOnLongClickListener(Barebones.this); - title.setOnClickListener(new OnClickListener(){ + title.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { id = arg0.getId(); if (API < 16) { - urlTitle[pageId].setBackgroundDrawable(getResources() - .getDrawable(R.drawable.bg_inactive)); + urlTitle[pageId] + .setBackgroundDrawable(getResources() + .getDrawable(R.drawable.bg_inactive)); } else if (API > 15) { urlTitle[pageId].setBackground(getResources() .getDrawable(R.drawable.bg_inactive)); @@ -734,13 +739,12 @@ public class Barebones extends Activity implements OnLongClickListener, main[id].animate().alpha(1f) .setDuration(mShortAnimationDuration); main[pageId].clearAnimation(); - // main[pageId].animate().alpha(0f) - // .setDuration(mShortAnimationDuration); - - // main[pageId].setAlpha(1f); + // main[pageId].animate().alpha(0f) + // .setDuration(mShortAnimationDuration); + + // main[pageId].setAlpha(1f); background.removeView(main[pageId]); - - + uBar.bringToFront(); } else { pageIdIsVisible = false; @@ -752,17 +756,18 @@ public class Barebones extends Activity implements OnLongClickListener, pageId = id; pageIdIsVisible = true; getUrl.setText(urlToLoad[pageId][0]); - + getUrl.setPadding(tenPad, 0, tenPad, 0); if (API < 16) { - urlTitle[pageId].setBackgroundDrawable(getResources() - .getDrawable(R.drawable.bg_press)); + urlTitle[pageId] + .setBackgroundDrawable(getResources() + .getDrawable(R.drawable.bg_press)); } else if (API > 15) { - urlTitle[pageId].setBackground(getResources().getDrawable( - R.drawable.bg_press)); + urlTitle[pageId].setBackground(getResources() + .getDrawable(R.drawable.bg_press)); } urlTitle[pageId].setPadding(leftPad, 0, rightPad, 0); } - + }); title.setOnTouchListener(Barebones.this); tabLayout.addView(title); @@ -780,7 +785,6 @@ public class Barebones extends Activity implements OnLongClickListener, Toast.makeText(Barebones.this, "Maximum number of tabs reached...", Toast.LENGTH_SHORT).show(); } - } @@ -933,16 +937,16 @@ public class Barebones extends Activity implements OnLongClickListener, switch (agentPicker) { case 1: main[pageToView].getSettings().setUserAgentString(mobile); - Log.i("lightning", mobile); + Log.i("barebones", mobile); break; case 2: main[pageToView].getSettings().setUserAgentString(desktop); - Log.i("lightning", desktop); + Log.i("barebones", desktop); break; case 3: userAgent = settings.getString("agent", user); main[pageToView].getSettings().setUserAgentString(userAgent); - Log.i("lightning", userAgent); + Log.i("barebones", userAgent); break; } background.addView(main[pageToView]); @@ -953,23 +957,21 @@ public class Barebones extends Activity implements OnLongClickListener, background.removeView(main[lastVisibleWebView]); } uBar.bringToFront(); - if(Url.contains("about:home")&&!showFullScreen){ + if (Url.contains("about:home") && !showFullScreen) { pageIdIsVisible = false; goBookmarks(); - } - else if (Url.contains("about:home")) { + } else if (Url.contains("about:home")) { pageIdIsVisible = true; main[pageToView].loadUrl("about:blank"); - - } - else if (Url.contains("about:blank")) { + + } else if (Url.contains("about:blank")) { pageIdIsVisible = true; main[pageToView].loadUrl("about:blank"); - + } else { pageIdIsVisible = true; main[pageToView].loadUrl(Url); - + } } @@ -980,19 +982,19 @@ public class Barebones extends Activity implements OnLongClickListener, super(context); } - + @Override protected void onDraw(Canvas canvas) { - if(!showFullScreen){ - main[pageId].invalidate(); + if (!showFullScreen) { + main[pageId].invalidate(); } super.onDraw(canvas); } @Override public boolean onTouchEvent(MotionEvent event) { - //final HitTestResult poop; - + // final HitTestResult poop; + switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { move = false; @@ -1006,12 +1008,11 @@ public class Barebones extends Activity implements OnLongClickListener, move = true; } case MotionEvent.ACTION_UP: { - try{ + try { hitTest = getHitTestResult().getType(); - } - catch(NullPointerException e){ - } - if (showFullScreen&&hitTest!=9) { + } catch (NullPointerException e) { + } + if (showFullScreen && hitTest != 9) { if (System.currentTimeMillis() - timeBetweenDownPress < 500 && !move) { if (!uBarShows) { @@ -1043,14 +1044,13 @@ public class Barebones extends Activity implements OnLongClickListener, } } - + private class AnthonyWebViewClient extends WebViewClient { @Override public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) { - - + return; } @@ -1059,7 +1059,7 @@ public class Barebones extends Activity implements OnLongClickListener, pageIdIsVisible = true; return super.shouldOverrideUrlLoading(view, url); - + } @Override @@ -1073,8 +1073,8 @@ public class Barebones extends Activity implements OnLongClickListener, public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { - Log.e("Lightning: ","Error: " + description); - + Log.e("Barebones: ", "Error: " + description); + super.onReceivedError(view, errorCode, description, failingUrl); } @@ -1094,12 +1094,13 @@ public class Barebones extends Activity implements OnLongClickListener, } @Override - public void onPageStarted(WebView view,String url, Bitmap favicon) { + public void onPageStarted(WebView view, String url, Bitmap favicon) { int num = view.getId(); - + pageIsLoading = true; refresh.startAnimation(anim); getUrl.setText(url); + getUrl.setPadding(tenPad, 0, tenPad, 0); urlToLoad[num][0] = url; urlTitle[num].setCompoundDrawables(webpageOther, null, exitTab, null); @@ -1112,14 +1113,15 @@ public class Barebones extends Activity implements OnLongClickListener, @Override public void onPageFinished(WebView view, final String url) { - if(!noStockBrowser){ - Thread history = new Thread( new Runnable(){ + if (!noStockBrowser) { + Thread history = new Thread(new Runnable() { @Override - public void run(){ - Browser.updateVisitedHistory(getContentResolver(),url,true); - //Log.i("Lightning",view.getTitle()+" "+url); + public void run() { + Browser.updateVisitedHistory(getContentResolver(), url, + true); + // Log.i("Barebones",view.getTitle()+" "+url); } - + }); history.start(); } @@ -1222,7 +1224,7 @@ public class Barebones extends Activity implements OnLongClickListener, if (allowLocation == true) { callback.invoke(origin, true, false); } else { - Log.i("Lightning: ", "onGeolocationPermissionsShowPrompt()"); + Log.i("Barebones: ", "onGeolocationPermissionsShowPrompt()"); final boolean remember = true; AlertDialog.Builder builder = new AlertDialog.Builder( @@ -1256,14 +1258,13 @@ public class Barebones extends Activity implements OnLongClickListener, @Override public void onReceivedTitle(WebView view, String title) { - + int num = view.getId(); urlTitle[num].setText(title); urlToLoad[num][1] = title; super.onReceivedTitle(view, title); } - @Override public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) { @@ -1346,18 +1347,16 @@ public class Barebones extends Activity implements OnLongClickListener, view.setSaveEnabled(true); webViewSettings.setDomStorageEnabled(true); webViewSettings.setAppCacheEnabled(true); - webViewSettings.setAppCachePath( - getApplicationContext().getFilesDir().getAbsolutePath() - + "/cache"); + webViewSettings.setAppCachePath(getApplicationContext().getFilesDir() + .getAbsolutePath() + "/cache"); webViewSettings.setRenderPriority(RenderPriority.HIGH); webViewSettings.setGeolocationEnabled(true); - webViewSettings.setGeolocationDatabasePath( - getApplicationContext().getFilesDir().getAbsolutePath()); + webViewSettings.setGeolocationDatabasePath(getApplicationContext() + .getFilesDir().getAbsolutePath()); webViewSettings.setDatabaseEnabled(true); - webViewSettings.setDatabasePath( - getApplicationContext().getFilesDir().getAbsolutePath() - + "/databases"); + webViewSettings.setDatabasePath(getApplicationContext().getFilesDir() + .getAbsolutePath() + "/databases"); enableFlash = settings.getInt("enableflash", 0); switch (enableFlash) { case 0: @@ -1384,8 +1383,8 @@ public class Barebones extends Activity implements OnLongClickListener, webViewSettings.setSupportZoom(true); webViewSettings.setUseWideViewPort(true); webViewSettings.setLoadWithOverviewMode(true); // Seems to be causing - // the performance - // to drop + // the performance + // to drop if (API >= 11) { webViewSettings.setDisplayZoomControls(false); webViewSettings.setAllowContentAccess(true); @@ -1410,9 +1409,9 @@ public class Barebones extends Activity implements OnLongClickListener, bookmarkLayout.setOrientation(LinearLayout.VERTICAL); TextView description = new TextView(Barebones.this); description.setHeight(height56); - description.setBackgroundColor(0xff0099cc); + description.setBackgroundColor(0xff33b5e5); description.setTextColor(0xffffffff); - description.setText("Bookmarks (long-press to remove)"); + description.setText("Bookmarks"); description.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); description.setTextSize(bookHeight / 3); @@ -1441,13 +1440,14 @@ public class Barebones extends Activity implements OnLongClickListener, if (uBar.isShown()) { urlTitle[pageId].setText("Bookmarks"); getUrl.setText("Bookmarks"); + getUrl.setPadding(tenPad, 0, tenPad, 0); } - //main[pageId].startAnimation(fadeOut); + // main[pageId].startAnimation(fadeOut); background.removeView(main[pageId]); if (showFullScreen) { - //uBar.startAnimation(fadeOut); + // uBar.startAnimation(fadeOut); background.removeView(uBar); } scrollBookmarks.addView(bookmarkLayout); @@ -1477,9 +1477,9 @@ public class Barebones extends Activity implements OnLongClickListener, new FileWriter(book)); BufferedWriter urlWriter = new BufferedWriter( new FileWriter(bookUrl)); - Log.i("lightning", "makes to here"); + Log.i("barebones", "makes to here"); while (bUrl[n] != null && n < (MAX_BOOKMARKS - 1)) { - Log.i("lightning", "makes to here " + n); + Log.i("barebones", "makes to here " + n); if (delete != n) { bookWriter.write(bTitle[n]); urlWriter.write(bUrl[n]); @@ -1487,7 +1487,7 @@ public class Barebones extends Activity implements OnLongClickListener, urlWriter.newLine(); } n++; - Log.i("lightning", "makes to here " + n); + Log.i("barebones", "makes to here " + n); } bookWriter.close(); urlWriter.close(); @@ -1571,7 +1571,7 @@ public class Barebones extends Activity implements OnLongClickListener, scrollBookmarks.startAnimation(fadeOut); background.removeView(scrollBookmarks); isBookmarkShowing = false; - + uBar.bringToFront(); main[pageId].loadUrl(bUrl[number]); } @@ -1597,6 +1597,8 @@ public class Barebones extends Activity implements OnLongClickListener, e.printStackTrace(); } catch (IOException e) { + e.printStackTrace(); + } catch (NullPointerException e){ e.printStackTrace(); } } @@ -1654,8 +1656,10 @@ public class Barebones extends Activity implements OnLongClickListener, public void deleteTab(int id) { int leftId = id; pageIdIsVisible = false; + main[id].stopLoading(); + main[id].clearView(); boolean right = false, left = false; - //background.clearDisappearingChildren(); + // background.clearDisappearingChildren(); if (API < 16) { urlTitle[id].setBackgroundDrawable(getResources().getDrawable( R.drawable.bg_press)); @@ -1696,6 +1700,7 @@ public class Barebones extends Activity implements OnLongClickListener, urlTitle[id].setPadding(leftPad, 0, rightPad, 0); pageId = id; getUrl.setText(urlToLoad[pageId][0]); + getUrl.setPadding(tenPad, 0, tenPad, 0); right = true; break; } @@ -1707,7 +1712,7 @@ public class Barebones extends Activity implements OnLongClickListener, if (urlTitle[leftId].isShown()) { background.addView(main[leftId]); main[leftId].setVisibility(View.VISIBLE); - //uBar.bringToFront(); + // uBar.bringToFront(); if (API < 16) { urlTitle[leftId] .setBackgroundDrawable(getResources() @@ -1719,6 +1724,7 @@ public class Barebones extends Activity implements OnLongClickListener, urlTitle[leftId].setPadding(leftPad, 0, rightPad, 0); pageId = leftId; getUrl.setText(urlToLoad[pageId][0]); + getUrl.setPadding(tenPad, 0, tenPad, 0); left = true; break; } @@ -1727,12 +1733,10 @@ public class Barebones extends Activity implements OnLongClickListener, } - - } - else{ + } else { right = left = true; } - + if (right == false && left == false) { finish(); } else { @@ -1881,6 +1885,21 @@ public class Barebones extends Activity implements OnLongClickListener, }); menu.show(); } else if (API < 11) { + /* + LayoutInflater inflater=(LayoutInflater)Barebones.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + Display display=getWindowManager().getDefaultDisplay(); + + int width=display.getWidth()/2; + int height=display.getHeight()/2; + + View pop = inflater.inflate(R.layout.menu,null,false); + pop.measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED); + height=pop.getMeasuredHeight(); + width=pop.getMeasuredWidth(); + PopupWindow pu = new PopupWindow(pop,width,height,true); + pu.showAtLocation(findViewById(v.getId()),Gravity.NO_GRAVITY,v.getRight(),v.getBottom()+80); + */ + openOptionsMenu(); } } @@ -1944,20 +1963,19 @@ public class Barebones extends Activity implements OnLongClickListener, String fixedQuery = query.trim(); boolean period = fixedQuery.contains("."); if (isBookmarkShowing) { - Log.i("Lightning", " is executing"); + Log.i("Barebones", " is executing"); scrollBookmarks.startAnimation(fadeOut); background.removeView(scrollBookmarks); + isBookmarkShowing = false; background.addView(main[pageId]); main[pageId].startAnimation(fadeIn); uBar.bringToFront(); - - + } pageIdIsVisible = true; - if(fixedQuery.contains("about:home")){ + if (fixedQuery.contains("about:home")) { goBookmarks(); - } - else if (fixedQuery.contains(" ") || period == false) { + } else if (fixedQuery.contains(" ") || period == false) { fixedQuery.replaceAll(" ", "+"); main[pageId] .loadUrl("http://www.google.com/search?q=" + fixedQuery); @@ -1993,6 +2011,7 @@ public class Barebones extends Activity implements OnLongClickListener, uBar.bringToFront(); urlTitle[pageId].setText(urlToLoad[pageId][1]); getUrl.setText(urlToLoad[pageId][0]); + getUrl.setPadding(tenPad, 0, tenPad, 0); pageIdIsVisible = true; isBookmarkShowing = false; } else { @@ -2053,6 +2072,7 @@ public class Barebones extends Activity implements OnLongClickListener, background.removeView(scrollBookmarks); urlTitle[pageId].setText(urlToLoad[pageId][1]); getUrl.setText(urlToLoad[pageId][0]); + getUrl.setPadding(tenPad, 0, tenPad, 0); pageIdIsVisible = true; isBookmarkShowing = false; uBar.bringToFront(); @@ -2088,9 +2108,9 @@ public class Barebones extends Activity implements OnLongClickListener, deleteHistory = settings.getBoolean("history", false); if (deleteHistory == true) { - if(!noStockBrowser){ + if (!noStockBrowser) { Browser.clearHistory(getContentResolver()); - } + } } // trimCache(this); } catch (Exception e) { @@ -2126,8 +2146,6 @@ public class Barebones extends Activity implements OnLongClickListener, return dir.delete(); } - - @Override public boolean onTouch(View v, MotionEvent event) { pageIdIsVisible = false; @@ -2198,13 +2216,12 @@ public class Barebones extends Activity implements OnLongClickListener, main[id].animate().alpha(1f) .setDuration(mShortAnimationDuration); main[pageId].clearAnimation(); - // main[pageId].animate().alpha(0f) - // .setDuration(mShortAnimationDuration); - - // main[pageId].setAlpha(1f); + // main[pageId].animate().alpha(0f) + // .setDuration(mShortAnimationDuration); + + // main[pageId].setAlpha(1f); background.removeView(main[pageId]); - - + uBar.bringToFront(); } else { pageIdIsVisible = false; @@ -2216,6 +2233,7 @@ public class Barebones extends Activity implements OnLongClickListener, pageId = id; pageIdIsVisible = true; getUrl.setText(urlToLoad[pageId][0]); + getUrl.setPadding(tenPad, 0, tenPad, 0); } } @@ -2236,8 +2254,8 @@ public class Barebones extends Activity implements OnLongClickListener, @Override protected void onPause() { - if(API>=11){ - main[pageId].onPause(); + if (API >= 11) { + main[pageId].onPause(); } main[pageId].pauseTimers(); super.onPause(); @@ -2245,26 +2263,23 @@ public class Barebones extends Activity implements OnLongClickListener, @Override protected void onResume() { - if(API>=11){ - main[pageId].onResume(); + if (API >= 11) { + main[pageId].onResume(); } main[pageId].resumeTimers(); super.onResume(); - - + } @Override protected void onNewIntent(Intent intent) { - + String url = null; url = intent.getDataString(); - if(url!=null){ - newTab(number,url); + if (url != null) { + newTab(number, url); } super.onNewIntent(intent); } - - }