Merge change 9700
* changes:
Updates for the look of the bookmarks page.
diff --git a/res/drawable/bookmark_shadow.9.png b/res/drawable/bookmark_shadow.9.png
new file mode 100644
index 0000000..3c706be
--- /dev/null
+++ b/res/drawable/bookmark_shadow.9.png
Binary files differ
diff --git a/res/drawable/minitab_focus.9.png b/res/drawable/minitab_focus.9.png
new file mode 100644
index 0000000..7c290e3
--- /dev/null
+++ b/res/drawable/minitab_focus.9.png
Binary files differ
diff --git a/res/drawable/minitab_press.9.png b/res/drawable/minitab_press.9.png
new file mode 100644
index 0000000..c7369e7
--- /dev/null
+++ b/res/drawable/minitab_press.9.png
Binary files differ
diff --git a/res/drawable/minitab_selected.9.png b/res/drawable/minitab_selected.9.png
new file mode 100644
index 0000000..849e124
--- /dev/null
+++ b/res/drawable/minitab_selected.9.png
Binary files differ
diff --git a/res/drawable/minitab_unselected.9.png b/res/drawable/minitab_unselected.9.png
new file mode 100644
index 0000000..e12b36d
--- /dev/null
+++ b/res/drawable/minitab_unselected.9.png
Binary files differ
diff --git a/res/drawable/tab_indicator.xml b/res/drawable/tab_indicator.xml
new file mode 100644
index 0000000..839532b
--- /dev/null
+++ b/res/drawable/tab_indicator.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_selected="true"
+ android:state_focused="false"
+ android:state_pressed="false"
+ android:drawable="@drawable/minitab_selected"
+ />
+ <item
+ android:state_selected="false"
+ android:state_focused="false"
+ android:state_pressed="false"
+ android:drawable="@drawable/minitab_unselected"
+ />
+ <item
+ android:state_focused="true"
+ android:state_selected="true"
+ android:state_pressed="false"
+ android:drawable="@drawable/minitab_focus"
+ />
+ <item
+ android:state_pressed="true"
+ android:state_selected="true"
+ android:state_focused="true"
+ android:drawable="@drawable/minitab_press"
+ />
+</selector>
diff --git a/res/layout/bookmark_thumbnail.xml b/res/layout/bookmark_thumbnail.xml
index c1e0cd2..b3d39a4 100644
--- a/res/layout/bookmark_thumbnail.xml
+++ b/res/layout/bookmark_thumbnail.xml
@@ -20,21 +20,36 @@
android:padding="4dip"
>
+ <!-- Keep the width in sync with BrowserBookmarksPage and
+ BrowserActivity.updateScreenshot -->
+ <TextView android:id="@+id/label"
+ android:layout_width="100dip"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textStyle="bold"
+ android:textColor="@color/white"
+ android:maxLines="1"
+ android:paddingTop="3dip"
+ android:paddingBottom="3dip"
+ android:paddingLeft="2dip"
+ android:paddingRight="2dip"
+ android:scrollHorizontally="true"
+ android:ellipsize="marquee"
+ />
+
<ImageView android:id="@+id/thumb"
android:src="@drawable/blank"
android:scaleType="center"
android:layout_width="100dip"
android:layout_height="80dip"
+ android:background="@drawable/bookmark_shadow"
+ android:layout_below="@+id/label"
/>
- <ImageView android:id="@+id/fav"
- android:scaleType="fitCenter"
- android:layout_width="20dip"
- android:layout_height="20dip"
- android:padding="2dip"
- android:layout_alignBottom="@+id/thumb"
- android:background="@drawable/fav_icn_background"
- />
+ <!-- FIXME: Want to have a gradient over the thumb -->
+
+ <!-- This holds the star for addbookmark -->
<LinearLayout android:id="@+id/holder"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
@@ -59,22 +74,4 @@
android:text="@string/add_bookmark_short"
/>
</LinearLayout>
- <!-- Keep the width in sync with BrowserBookmarksPage and
- BrowserActivity.updateScreenshot -->
- <TextView android:id="@+id/label"
- android:layout_width="100dip"
- android:layout_height="wrap_content"
- android:layout_below="@+id/thumb"
- android:layout_gravity="bottom"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textStyle="bold"
- android:textColor="@color/white"
- android:maxLines="1"
- android:paddingTop="3dip"
- android:paddingBottom="3dip"
- android:paddingLeft="2dip"
- android:paddingRight="2dip"
- android:scrollHorizontally="true"
- android:ellipsize="marquee"
- />
</RelativeLayout>
diff --git a/res/layout/tab_header.xml b/res/layout/tab_header.xml
new file mode 100644
index 0000000..7187034
--- /dev/null
+++ b/res/layout/tab_header.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/tab_indicator"
+ >
+ <TextView
+ android:id="@+id/tab_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?android:attr/textColorPrimary"
+ android:layout_gravity="center"
+ />
+</FrameLayout>
diff --git a/res/layout/tabs.xml b/res/layout/tabs.xml
index 7cf5b5d..4fa102b 100644
--- a/res/layout/tabs.xml
+++ b/res/layout/tabs.xml
@@ -26,7 +26,7 @@
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
- android:layout_height="68dip"
+ android:layout_height="wrap_content"
android:paddingLeft="1dip"
android:paddingRight="1dip"
android:paddingTop="4dip"
diff --git a/res/menu/bookmarks.xml b/res/menu/bookmarks.xml
index 8a6e32e..f768c98 100644
--- a/res/menu/bookmarks.xml
+++ b/res/menu/bookmarks.xml
@@ -19,5 +19,5 @@
android:icon="@android:drawable/ic_menu_add"
android:title="@string/bookmark_page" />
<item android:id="@+id/switch_mode_menu_id"
- android:title="@string/switch_mode"/>
+ />
</menu>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c600666..47f1a60 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -169,9 +169,12 @@
currently on, but is not visible because the bookmarks page is
showing. -->
<string name="bookmark_page">Bookmark last-viewed page</string>
- <!-- Menu item in the page that displays all bookmarks. Switches between
- a vertical list view and a grid view which shows thumbnails -->
- <string name="switch_mode">Switch viewing mode</string>
+ <!-- Menu item in the page that displays all bookmarks. Switches to
+ a grid view which shows thumbnails -->
+ <string name="switch_to_thumbnails">Thumbnail view</string>
+ <!-- Menu item in the page that displays all bookmarks. Switches to a
+ list view which shows titles -->
+ <string name="switch_to_list">List view</string>
<!-- Summary text under the New Bookmark item on the Bookmarks screen.
Tells the user that if they select this item, it will bring up a
dialog to bookmark the page that the browser is currently viewing,
diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java
index 75be45b..764daea 100644
--- a/src/com/android/browser/BrowserBookmarksAdapter.java
+++ b/src/com/android/browser/BrowserBookmarksAdapter.java
@@ -368,13 +368,11 @@
}
View holder = convertView.findViewById(R.id.holder);
ImageView thumb = (ImageView) convertView.findViewById(R.id.thumb);
- ImageView fav = (ImageView) convertView.findViewById(R.id.fav);
TextView tv = (TextView) convertView.findViewById(R.id.label);
if (0 == position && !mCreateShortcut) {
// This is to create a bookmark for the current page.
holder.setVisibility(View.VISIBLE);
- fav.setVisibility(View.GONE);
tv.setText(mCurrentTitle);
// FIXME: Want to show the screenshot of the current page
thumb.setImageResource(R.drawable.blank);
@@ -393,15 +391,6 @@
thumb.setImageBitmap(
BitmapFactory.decodeByteArray(data, 0, data.length));
}
- // Now show the favicon
- data = mCursor.getBlob(Browser.HISTORY_PROJECTION_FAVICON_INDEX);
- if (data == null) {
- fav.setVisibility(View.GONE);
- } else {
- fav.setVisibility(View.VISIBLE);
- fav.setImageBitmap(
- BitmapFactory.decodeByteArray(data, 0, data.length));
- }
return convertView;
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 428aa92..5abdbb3 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -344,6 +344,14 @@
}
@Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ menu.findItem(R.id.switch_mode_menu_id).setTitle(
+ mGridMode ? R.string.switch_to_list
+ : R.string.switch_to_thumbnails);
+ return true;
+ }
+
+ @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.new_context_menu_id:
diff --git a/src/com/android/browser/CombinedBookmarkHistoryActivity.java b/src/com/android/browser/CombinedBookmarkHistoryActivity.java
index 963f179..26fd1ee 100644
--- a/src/com/android/browser/CombinedBookmarkHistoryActivity.java
+++ b/src/com/android/browser/CombinedBookmarkHistoryActivity.java
@@ -27,6 +27,9 @@
import android.webkit.WebIconDatabase.IconListener;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
+import android.widget.TextView;
+import android.view.LayoutInflater;
+import android.view.View;
import android.view.Window;
import java.util.HashMap;
@@ -77,40 +80,39 @@
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tabs);
- TabHost tabHost = getTabHost();
- tabHost.setOnTabChangedListener(this);
+ getTabHost().setOnTabChangedListener(this);
Bundle extras = getIntent().getExtras();
Resources resources = getResources();
getIconListenerSet(getContentResolver());
+
Intent bookmarksIntent = new Intent(this, BrowserBookmarksPage.class);
bookmarksIntent.putExtras(extras);
- tabHost.addTab(tabHost.newTabSpec(BOOKMARKS_TAB)
- .setIndicator(resources.getString(R.string.tab_bookmarks),
- resources.getDrawable(R.drawable.browser_bookmark_tab))
- .setContent(bookmarksIntent));
+ createTab(bookmarksIntent, R.string.tab_bookmarks, BOOKMARKS_TAB);
Intent visitedIntent = new Intent(this, MostVisitedActivity.class);
visitedIntent.putExtras(extras);
- tabHost.addTab(tabHost.newTabSpec(VISITED_TAB)
- .setIndicator(resources.getString(R.string.tab_most_visited),
- resources.getDrawable(R.drawable.browser_visited_tab))
- .setContent(visitedIntent));
+ createTab(visitedIntent, R.string.tab_most_visited, VISITED_TAB);
Intent historyIntent = new Intent(this, BrowserHistoryPage.class);
historyIntent.putExtras(extras);
- tabHost.addTab(tabHost.newTabSpec(HISTORY_TAB)
- .setIndicator(resources.getString(R.string.tab_history),
- resources.getDrawable(R.drawable.
- browser_history_tab)).setContent(historyIntent));
+ createTab(historyIntent, R.string.tab_history, HISTORY_TAB);
String defaultTab = extras.getString(STARTING_TAB);
if (defaultTab != null) {
- tabHost.setCurrentTab(2);
+ getTabHost().setCurrentTab(2);
}
}
+ private void createTab(Intent intent, int labelResId, String tab) {
+ LayoutInflater factory = LayoutInflater.from(this);
+ View tabHeader = factory.inflate(R.layout.tab_header, null);
+ TextView textView = (TextView) tabHeader.findViewById(R.id.tab_label);
+ textView.setText(labelResId);
+ TabHost tabHost = getTabHost();
+ tabHost.addTab(tabHost.newTabSpec(tab).setIndicator(tabHeader).setContent(intent));
+ }
// Copied from DialTacts Activity
/** {@inheritDoc} */
public void onTabChanged(String tabId) {