UI revision for tabbed browsing
bug # http://b/issue?id=2712871
separated tab bar from url bar
subclassed webview for scroll listener
added search button support
Change-Id: Ib9bd0c7e815e2ef08cdd20334daf61263cd52938
diff --git a/res/drawable-mdpi/tab_selected_bg.9.png b/res/drawable-mdpi/tab_selected_bg.9.png
index 5e6b1ed..b843242 100644
--- a/res/drawable-mdpi/tab_selected_bg.9.png
+++ b/res/drawable-mdpi/tab_selected_bg.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_unselected_bg.9.png b/res/drawable-mdpi/tab_unselected_bg.9.png
index c19443a..872117a 100644
--- a/res/drawable-mdpi/tab_unselected_bg.9.png
+++ b/res/drawable-mdpi/tab_unselected_bg.9.png
Binary files differ
diff --git a/res/drawable/browserbarbutton.xml b/res/drawable/browserbarbutton.xml
index 35a6f48..5c9eca0 100644
--- a/res/drawable/browserbarbutton.xml
+++ b/res/drawable/browserbarbutton.xml
@@ -16,6 +16,6 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
- android:drawable="@drawable/button_selected" />
+ android:drawable="@drawable/button_bg_selected" />
<item android:state_pressed="false" android:drawable="@drawable/clear" />
</selector>
diff --git a/res/drawable/button_bg_selected.xml b/res/drawable/button_bg_selected.xml
new file mode 100644
index 0000000..17c1fc3
--- /dev/null
+++ b/res/drawable/button_bg_selected.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <!--
+ Copyright (C) 2010 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.
+ -->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid
+ android:color="#ff4d83ba" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/clear.xml b/res/drawable/clear.xml
index 5973f5c..267db10 100644
--- a/res/drawable/clear.xml
+++ b/res/drawable/clear.xml
@@ -18,6 +18,6 @@
state -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00000000"/>
- <padding android:left="9dp" android:top="9dp"
- android:right="9dp" android:bottom="9dp" />
+ <padding android:left="4dp" android:top="4dp"
+ android:right="4dp" android:bottom="4dp" />
</shape>
diff --git a/res/drawable/ic_menu_showurl.png b/res/drawable/ic_menu_showurl.png
new file mode 100644
index 0000000..4b346a8
--- /dev/null
+++ b/res/drawable/ic_menu_showurl.png
Binary files differ
diff --git a/res/drawable/progress.xml b/res/drawable/progress.xml
index dd7c375..fd89317 100644
--- a/res/drawable/progress.xml
+++ b/res/drawable/progress.xml
@@ -14,16 +14,17 @@
limitations under the License.
-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
+<!--
<item android:id="@android:id/background">
<shape>
- <solid android:color="#ffffffff"/>
+ <solid android:color="#804d83ba"/>
</shape>
</item>
+ -->
<item android:id="@android:id/progress">
<clip>
<shape>
- <solid android:color="#ff94b73f"/>
+ <solid android:color="#804d83ba"/>
</shape>
</clip>
</item>
diff --git a/res/drawable/tab_background.xml b/res/drawable/tab_background.xml
new file mode 100644
index 0000000..65db25e
--- /dev/null
+++ b/res/drawable/tab_background.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 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:drawable="@drawable/tab_selected_bg" />
+ <item android:state_selected="false"
+ android:drawable="@drawable/tab_unselected_bg" />
+</selector>
diff --git a/res/layout-land/title_bar_tabbed.xml b/res/layout-land/title_bar_tabbed.xml
deleted file mode 100644
index 853dbeb..0000000
--- a/res/layout-land/title_bar_tabbed.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
- <!--
- Copyright 2010, 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.
- -->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/tabbedtitleland"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingLeft="6dip"
- android:paddingRight="6dip"
- android:background="#ffdddddd">
- <ImageButton
- android:id="@+id/back"
- android:src="@drawable/ic_arrow_left"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/forward"
- android:src="@drawable/ic_arrow_right"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/star"
- android:src="@drawable/ic_star"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <com.android.browser.TabScrollView
- android:id="@+id/tabs"
- android:layout_width="0dip"
- android:layout_weight="1.0"
- android:layout_height="wrap_content"
- android:orientation="horizontal" />
- <com.android.browser.UrlInputView
- android:id="@+id/editurl"
- android:layout_width="0dip"
- android:layout_weight="1.0"
- android:layout_height="wrap_content"
- android:layout_marginLeft="3dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="@color/black"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:ellipsize="end"
- android:lines="1"
- android:scrollHorizontally="true"
- android:visibility="gone"
- android:background="@drawable/textfield_stroke"
- android:inputType="textUri"
- android:imeOptions="actionGo" />
- <ImageButton
- android:id="@+id/newtab"
- android:src="@drawable/ic_menu_new_window"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/menu"
- android:src="@drawable/ic_menu"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/all_btn"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:scaleType="center"
- android:background="@drawable/browserbarbutton"
- android:src="@drawable/ic_pages" />
-</LinearLayout>
diff --git a/res/layout/tab_bar.xml b/res/layout/tab_bar.xml
new file mode 100644
index 0000000..60f08ef
--- /dev/null
+++ b/res/layout/tab_bar.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <!--
+ Copyright 2010, 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.
+ -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/tabbarcontent"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="#ffdddddd"
+ android:orientation="horizontal">
+ <com.android.browser.TabScrollView
+ android:id="@+id/tabs"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1.0"
+ android:orientation="horizontal" />
+ <ImageButton
+ android:id="@+id/showurl"
+ android:src="@drawable/ic_menu_showurl"
+ android:layout_width="48dip"
+ android:layout_height="48dip"
+ android:layout_marginLeft="6dip"
+ android:background="@drawable/browserbarbutton"
+ android:visibility="invisible" />
+ <ImageButton
+ android:id="@+id/newtab"
+ android:src="@drawable/ic_menu_new_window"
+ android:layout_width="48dip"
+ android:layout_height="48dip"
+ android:layout_marginLeft="6dip"
+ android:layout_marginRight="6dip"
+ android:background="@drawable/browserbarbutton" />
+</LinearLayout>
diff --git a/res/layout/tab_title.xml b/res/layout/tab_title.xml
index 28b553d..6166d24 100644
--- a/res/layout/tab_title.xml
+++ b/res/layout/tab_title.xml
@@ -14,9 +14,10 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_weight="1.0"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:gravity="center_vertical"
- android:orientation="horizontal">
+ android:orientation="horizontal"
+ android:background="@drawable/tab_background" >
<ImageView
android:id="@+id/favicon"
android:layout_width="20dip"
@@ -30,21 +31,15 @@
android:visibility="gone" />
<TextView
android:id="@+id/title"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_width="0dip"
android:layout_weight="1.0"
android:layout_marginLeft="3dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/black"
- android:gravity="center_vertical"
+ android:gravity="center_vertical|center_horizontal"
android:singleLine="true"
android:ellipsize="end" />
- <com.android.browser.CircularProgressView
- android:id="@+id/stop"
- android:layout_width="36dip"
- android:layout_height="36dip"
- android:background="@null"
- android:src="@drawable/progress_stop" />
<ImageView
android:id="@+id/close"
android:layout_width="wrap_content"
diff --git a/res/layout/title_bar_tabbed.xml b/res/layout/title_bar_tabbed.xml
deleted file mode 100644
index fc786e0..0000000
--- a/res/layout/title_bar_tabbed.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
- <!--
- Copyright 2010, 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.
- -->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/tabbedtitleport"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:background="#ffdddddd">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <com.android.browser.TabScrollView
- android:id="@+id/tabs"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1.0"
- android:orientation="horizontal" />
- <ImageButton
- android:id="@+id/newtab"
- android:src="@drawable/ic_menu_new_window"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:background="@drawable/browserbarbutton" />
- </LinearLayout>
- <LinearLayout
- android:id="@+id/urlbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingLeft="6dip"
- android:paddingRight="6dip">
- <ImageButton
- android:id="@+id/back"
- android:src="@drawable/ic_arrow_left"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/forward"
- android:src="@drawable/ic_arrow_right"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/star"
- android:src="@drawable/ic_star"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <com.android.browser.UrlInputView
- android:id="@+id/editurl"
- android:layout_width="0dip"
- android:layout_weight="1.0"
- android:layout_height="wrap_content"
- android:layout_marginLeft="3dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="@color/black"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:ellipsize="end"
- android:lines="1"
- android:scrollHorizontally="true"
- android:visibility="gone"
- android:background="@drawable/textfield_nostroke"
- android:inputType="textUri"
- android:imeOptions="actionGo" />
- <ImageButton
- android:id="@+id/menu"
- android:src="@drawable/ic_menu"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_marginRight="6dip"
- android:background="@drawable/browserbarbutton" />
- <ImageButton
- android:id="@+id/all_btn"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:scaleType="center"
- android:background="@drawable/browserbarbutton"
- android:src="@drawable/ic_pages" />
- </LinearLayout>
-</LinearLayout>
diff --git a/res/layout/url_bar.xml b/res/layout/url_bar.xml
new file mode 100644
index 0000000..9bf617d
--- /dev/null
+++ b/res/layout/url_bar.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <!--
+ Copyright 2010, 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.
+ -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+ <LinearLayout
+ android:id="@+id/taburlbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:background="#ffdddddd"
+ android:paddingLeft="6dip"
+ android:paddingRight="6dip"
+ android:paddingTop="2dip"
+ android:paddingBottom="2dip">
+ <ImageButton
+ android:id="@+id/back"
+ android:src="@drawable/ic_arrow_left"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginRight="6dip"
+ android:background="@drawable/browserbarbutton" />
+ <ImageButton
+ android:id="@+id/forward"
+ android:src="@drawable/ic_arrow_right"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginRight="6dip"
+ android:background="@drawable/browserbarbutton" />
+ <LinearLayout
+ android:id="@+id/urlbar"
+ android:layout_width="0dip"
+ android:layout_height="match_parent"
+ android:layout_weight="1.0"
+ android:orientation="horizontal"
+ android:background="#ffffffff">
+ <ImageButton
+ android:id="@+id/star"
+ android:src="@drawable/ic_star"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="6dip"
+ android:background="@drawable/browserbarbutton" />
+ <ImageView
+ android:id="@+id/lock"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="6dip"
+ android:visibility="gone" />
+ <com.android.browser.UrlInputView
+ android:id="@+id/editurl"
+ android:layout_width="0dip"
+ android:layout_weight="1.0"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="6dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@color/black"
+ android:hint="@string/search_hint"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:lines="1"
+ android:scrollHorizontally="true"
+ android:background="@null"
+ android:inputType="textUri"
+ android:imeOptions="actionGo" />
+ <ImageView
+ android:id="@+id/stop"
+ android:background="@drawable/browserbarbutton"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="6dip"
+ android:gravity="center_vertical"
+ android:src="@drawable/ic_stop" />
+ <ImageButton
+ android:id="@+id/search"
+ android:src="@drawable/ic_btn_find"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:layout_marginLeft="6dip"
+ android:layout_marginRight="6dip"
+ android:background="@drawable/browserbarbutton" />
+ </LinearLayout>
+ <ImageButton
+ android:id="@+id/menu"
+ android:src="@drawable/ic_menu"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="6dip"
+ android:layout_marginRight="6dip"
+ android:background="@drawable/browserbarbutton" />
+ <ImageButton
+ android:id="@+id/all_btn"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:scaleType="center"
+ android:layout_marginLeft="6dip"
+ android:background="@drawable/browserbarbutton"
+ android:src="@drawable/ic_pages" />
+ </LinearLayout>
+ <ImageView
+ android:id="@+id/progress"
+ android:layout_width="match_parent"
+ android:layout_height="8dip"
+ android:src="@drawable/progress"
+ android:visibility="gone" />
+</LinearLayout>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
new file mode 100644
index 0000000..2fc3233
--- /dev/null
+++ b/res/values/dimensions.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2010 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.
+-->
+<resources
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- The width of a selected tab -->
+ <dimen
+ name="tab_width_selected">300dp</dimen>
+ <!-- The width of an unselected tab -->
+ <dimen
+ name="tab_width_unselected">300dp</dimen>
+</resources>
\ No newline at end of file