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>