Browser: add to support my navigation feature
When launch browser, display my navigation page.
We show a gridview in navigation page, user can
select to add website items to navigation page,
delete/edit existing website items, when tap a
item, browser will load the saved website.
CRs-Fixed: 530979
Change-Id: I9618b8df15f651ccee09b80de8626bacfb6fda12
diff --git a/res/layout/my_navigation_add_page.xml b/res/layout/my_navigation_add_page.xml
new file mode 100755
index 0000000..493a916
--- /dev/null
+++ b/res/layout/my_navigation_add_page.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (c) 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:orientation="horizontal"
+ android:paddingLeft="5dip"
+ android:paddingRight="5dip" >
+
+ <TextView
+ android:id="@+id/dialog_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:background="?android:attr/selectableItemBackground"
+ android:gravity="center_vertical"
+ android:text="@string/my_navigation_edit_label"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@android:color/white" />
+ </LinearLayout>
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="0dip"
+ android:layout_weight="1" >
+
+ <TableLayout
+ android:id="@+id/default_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingLeft="10dip"
+ android:paddingRight="10dip"
+ android:paddingTop="10dip"
+ android:shrinkColumns="1"
+ android:stretchColumns="1" >
+
+ <TableRow android:layout_marginBottom="10dip" >
+
+ <TextView
+ android:id="@+id/titleText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="left"
+ android:paddingTop="10dip"
+ android:text="@string/my_navigation_name"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <EditText
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="10dip"
+ android:inputType="textCapSentences"
+ android:selectAllOnFocus="true"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+ </TableRow>
+
+ <TableRow
+ android:id="@+id/row_address"
+ android:layout_marginBottom="10dip" >
+
+ <TextView
+ android:id="@+id/addressText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="left"
+ android:text="@string/my_navigation_address"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <EditText
+ android:id="@+id/address"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="10dip"
+ android:hint="@string/http"
+ android:inputType="textUri"
+ android:selectAllOnFocus="true"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+ </TableRow>
+ </TableLayout>
+ </ScrollView>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <View
+ android:id="@+id/add_divider"
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/dividerVertical" />
+
+ <LinearLayout
+ style="?android:attr/buttonBarStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal" >
+
+ <Button
+ android:id="@+id/cancel"
+ style="?android:attr/buttonBarButtonStyle"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right"
+ android:layout_weight="1"
+ android:maxLines="2"
+ android:text="@string/do_not_save" />
+
+ <Button
+ android:id="@+id/OK"
+ style="?android:attr/buttonBarButtonStyle"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_gravity="left"
+ android:layout_weight="1"
+ android:maxLines="2"
+ android:text="@string/save" />
+ </LinearLayout>
+ </LinearLayout>
+
+</LinearLayout>
diff --git a/res/menu/browsercontext.xml b/res/menu/browsercontext.xml
old mode 100644
new mode 100755
index 8137a67..baf5b42
--- a/res/menu/browsercontext.xml
+++ b/res/menu/browsercontext.xml
@@ -59,5 +59,11 @@
<item android:id="@+id/select_text_menu_id"
android:title="@string/select_dot"/>
</group>
+ <group android:id="@+id/MY_NAVIGATION_MENU">
+ <item android:id="@+id/edit_my_navigation_context_menu_id"
+ android:title="@string/my_navigation_edit_label"/>
+ <item android:id="@+id/delete_my_navigation_context_menu_id"
+ android:title="@string/my_navigation_delete_label"/>
+ </group>
</menu>
diff --git a/res/raw/my_navigation.ktpl b/res/raw/my_navigation.ktpl
new file mode 100755
index 0000000..b21ab0b
--- /dev/null
+++ b/res/raw/my_navigation.ktpl
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+<head>
+<title><%@ string/my_navigation_page_title %></title>
+<meta name="viewport" content="width=device-width; initial-scale=1.0; user-scalable=0" />
+
+<style type="text/css">
+
+* {
+ padding: 0;
+ margin: 0;
+}
+
+body {
+ text-align: center;
+ margin: 0px auto;
+ padding: 0 8px 0 8px;
+ max-width: <%@ dimen/mynav_max_width %>px;
+}
+
+h3 {
+ text-align: center;
+ margin: 5px 0 5px 0;
+}
+
+.thumbwrap li {
+ display: inline-block;
+ margin: 0 7px 12px 7px;
+ padding: 0;
+}
+
+@media all and (orientation:portrait) {
+.thumbwrap li {
+ width: <%@ dimen/mynav_item_width_portrait %>px;
+}
+}
+
+@media all and (orientation:landscape) {
+.thumbwrap li {
+ width: <%@ dimen/mynav_item_width %>px;
+}
+}
+
+.thumbwrap a {
+ display: block;
+ text-decoration: none;
+ color: #000;
+}
+
+.thumbwrap img {
+ border: <%@ dimen/mv_border_width %>px solid #e0e0e0;
+ border-radius: 0px;
+ width: 100%;
+}
+
+.thumbwrap .caption {
+ margin-top: 2px;
+ margin-left: 4px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: block;
+ font-size: .8em;
+ text-align: center;
+}
+
+</style>
+
+</head>
+<body>
+ <br>
+ <ul class="thumbwrap">
+ <%{ my_navigation %>
+ <li>
+ <br>
+ <a href="<%= url %>">
+ <img class="wrimg" src="<%= thumbnail %>" />
+ </a>
+ <span class="caption"><%= title %></span>
+ </li>
+ <%} my_navigation %>
+ </ul>
+</body>
+</html>
diff --git a/res/raw/my_navigation_add.png b/res/raw/my_navigation_add.png
new file mode 100755
index 0000000..e11c88b
--- /dev/null
+++ b/res/raw/my_navigation_add.png
Binary files differ
diff --git a/res/raw/my_navigation_thumbnail_default.png b/res/raw/my_navigation_thumbnail_default.png
new file mode 100755
index 0000000..3be27ff
--- /dev/null
+++ b/res/raw/my_navigation_thumbnail_default.png
Binary files differ
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 7d0223c..341af97 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -400,6 +400,20 @@
<string name="accessibility_transition_navscreen" msgid="2734915619351519547">"标签页管理"</string>
<string name="accessibility_button_bookmarks_folder_up" msgid="9179389954714270505">"上一个文件夹"</string>
+ <!--Add for Navigation Feature -->
+ <string name="my_navigation_delete_label">删除我的导航</string>
+ <string name="my_navigation_edit_label">编辑我的导航</string>
+ <string name="my_navigation_add_label">添加我的导航</string>
+ <string name="my_navigation_add">添加</string>
+ <string name="my_navigation_delete_msg">删除此网站?</string>
+ <string name="my_navigation_name">名称</string>
+ <string name="my_navigation_address">地址</string>
+ <string name="website_needs_title">名称不能为空</string>
+ <string name="website_needs_url">地址不能为空</string>
+ <string name="my_navigation_cannot_save_url">该网址可能不正确,请重新输入</string>
+ <string name="my_navigation_duplicate_url">该网址已经存在,请重新输入</string>
+ <string name="my_navigation_page_title">我的导航</string>
+
<!-- Add for Carrier Feature.Content description for AV save/play prompt dialog -->
<string name="http_video_msg">请选择以下操作</string>
<string name="video_save">保存</string>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
old mode 100644
new mode 100755
index 5e3ec8b..3171305
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -21,6 +21,12 @@
<dimen name="max_tab_width">300dp</dimen>
<dimen name="bookmarkThumbnailWidth">90dip</dimen>
<dimen name="bookmarkThumbnailHeight">80dip</dimen>
+ <!--Add for Navigation Feature -->
+ <dimen name="myNavigationThumbnailWidth">90dip</dimen>
+ <dimen name="myNavigationThumbnailHeight">80dip</dimen>
+ <dimen name="mynav_item_width">80px</dimen>
+ <dimen name="mynav_item_width_portrait">80px</dimen>
+ <dimen name="mynav_max_width">480px</dimen>
<!-- Height determined by measuring the TableLayout in
browser_add_bookmark_content and matching that. -->
<dimen name="folder_selector_height">181dip</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
old mode 100755
new mode 100644
index dab4f51..0fe9599
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1013,6 +1013,19 @@
<!-- Content description for navigating up in the bookmark folder hierarchy [CHAR LIMIT=NONE] -->
<string name="accessibility_button_bookmarks_folder_up">Previous folder</string>
+ <!--Add for Navigation Feature -->
+ <string name="my_navigation_delete_label">Delete My Navigation</string>
+ <string name="my_navigation_edit_label">Edit My Navigation</string>
+ <string name="my_navigation_add_label">Add My Navigation</string>
+ <string name="my_navigation_add">add</string>
+ <string name="my_navigation_delete_msg">Delete this item?</string>
+ <string name="my_navigation_name">Name</string>
+ <string name="my_navigation_address">Address</string>
+ <string name="website_needs_title">"Website must have a name."</string>
+ <string name="website_needs_url">"Website must have a location."</string>
+ <string name="my_navigation_cannot_save_url">This URL cannot be website.</string>
+ <string name="my_navigation_duplicate_url">This URL has already existed.</string>
+ <string name="my_navigation_page_title">My Navigation</string>
<!-- Add for Carrier Feature.Content description for AV save/play prompt dialog -->
<string name="http_video_msg">Please choose a following operation</string>