SWE UI cleanup

- ActionBar color and styling for KK
- Use High Res icon for bookmarks
- Edge Nav setting string
- Combo view cleanup
- Tablet UI cleanup

Change-Id: I1859226e80d9943ee6af30c2cc9a5bd9ce5b9399
diff --git a/src/com/android/browser/Bookmarks.java b/src/com/android/browser/Bookmarks.java
index dc1052f..afc99c3 100644
--- a/src/com/android/browser/Bookmarks.java
+++ b/src/com/android/browser/Bookmarks.java
@@ -177,13 +177,9 @@
             return null;
         }
 
-        url = eatTrailingSlash(url);
-
         // If originalUrl is null, just set it to url.
         if (originalUrl == null) {
             originalUrl = url;
-        } else {
-            originalUrl = eatTrailingSlash(originalUrl);
         }
 
         // Look for both the original url and the actual url. This takes in to
@@ -240,6 +236,14 @@
                             updateImages(cr, cursor.getString(0), values);
                         } while (cursor.moveToNext());
                     }
+
+                    cursor = queryCombinedForUrl(cr, eatTrailingSlash(originalUrl),
+                            eatTrailingSlash(url));
+                    if (cursor != null && cursor.moveToFirst()) {
+                        do {
+                            updateImages(cr, cursor.getString(0), values);
+                        } while (cursor.moveToNext());
+                    }
                 } catch (IllegalStateException e) {
                     // Ignore
                 } catch (SQLiteException s) {
diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java
index d9bfcea..38e07e0 100644
--- a/src/com/android/browser/BrowserBookmarksAdapter.java
+++ b/src/com/android/browser/BrowserBookmarksAdapter.java
@@ -136,8 +136,13 @@
             item = new BrowserBookmarksAdapterItem();
         }
         Bitmap thumbnail = item.thumbnail != null ? item.thumbnail.getBitmap() : null;
+
         thumbnail = BrowserBookmarksPage.getBitmap(c,
-                BookmarksLoader.COLUMN_INDEX_THUMBNAIL, thumbnail);
+                BookmarksLoader.COLUMN_INDEX_TOUCH_ICON, thumbnail);
+        if (thumbnail == null) {
+            thumbnail = BrowserBookmarksPage.getBitmap(c,
+                    BookmarksLoader.COLUMN_INDEX_THUMBNAIL, thumbnail);
+        }
         item.has_thumbnail = thumbnail != null;
         if (thumbnail != null
                 && (item.thumbnail == null || item.thumbnail.getBitmap() != thumbnail)) {
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
index e2c831b..f0cec84 100644
--- a/src/com/android/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -31,6 +31,8 @@
 import android.content.Loader;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.database.Cursor;
 import android.database.DataSetObserver;
 import android.graphics.BitmapFactory;
@@ -237,6 +239,14 @@
         return mRoot;
     }
 
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        Resources res = getActivity().getResources();
+        int paddingTop = (int) res.getDimension(R.dimen.combo_paddingTop);
+        mRoot.setPadding(0, paddingTop, 0, 0);
+    }
+
     private void inflateSinglePane() {
         mHistoryList = (ExpandableListView) mRoot.findViewById(R.id.history);
         mHistoryList.setAdapter(mAdapter);
diff --git a/src/com/android/browser/BrowserSnapshotPage.java b/src/com/android/browser/BrowserSnapshotPage.java
index e2194d1..afa0269 100644
--- a/src/com/android/browser/BrowserSnapshotPage.java
+++ b/src/com/android/browser/BrowserSnapshotPage.java
@@ -26,6 +26,8 @@
 import android.content.Context;
 import android.content.CursorLoader;
 import android.content.Loader;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -82,6 +84,8 @@
     CombinedBookmarksCallbacks mCallback;
     long mAnimateId;
 
+    View mRoot;
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -100,6 +104,7 @@
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.snapshots, container, false);
+        mRoot = view;
         mEmpty = view.findViewById(android.R.id.empty);
         mGrid = (GridView) view.findViewById(R.id.grid);
         setupGrid(inflater);
@@ -108,6 +113,14 @@
     }
 
     @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        Resources res = getActivity().getResources();
+        int paddingTop = (int) res.getDimension(R.dimen.combo_paddingTop);
+        mRoot.setPadding(0, paddingTop, 0, 0);
+    }
+
+    @Override
     public void onDestroyView() {
         super.onDestroyView();
         getLoaderManager().destroyLoader(LOADER_SNAPSHOTS);
diff --git a/src/com/android/browser/ComboTabsAdapter.java b/src/com/android/browser/ComboTabsAdapter.java
index f73a88c..2490047 100644
--- a/src/com/android/browser/ComboTabsAdapter.java
+++ b/src/com/android/browser/ComboTabsAdapter.java
@@ -41,29 +41,29 @@
  */
 public class ComboTabsAdapter extends FragmentPagerAdapter
     implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
-        private final Context mContext;
-        private final ActionBar mActionBar;
-        private final ViewPager mViewPager;
-        private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
+    private final Context mContext;
+    private final ActionBar mActionBar;
+    private final ViewPager mViewPager;
+    private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
 
-        static final class TabInfo {
-            private final Class<?> clss;
-            private final Bundle args;
+    static final class TabInfo {
+        private final Class<?> clss;
+        private final Bundle args;
 
-            TabInfo(Class<?> _class, Bundle _args) {
-                clss = _class;
-                args = _args;
-            }
+        TabInfo(Class<?> _class, Bundle _args) {
+            clss = _class;
+            args = _args;
         }
+    }
 
-        public ComboTabsAdapter(Activity activity, ViewPager pager) {
-            super(activity.getFragmentManager());
-            mContext = activity;
-            mActionBar = activity.getActionBar();
-            mViewPager = pager;
-            mViewPager.setAdapter(this);
-            mViewPager.setOnPageChangeListener(this);
-        }
+    public ComboTabsAdapter(Activity activity, ViewPager pager) {
+        super(activity.getFragmentManager());
+        mContext = activity;
+        mActionBar = activity.getActionBar();
+        mViewPager = pager;
+        mViewPager.setAdapter(this);
+        mViewPager.setOnPageChangeListener(this);
+    }
 
     public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
         TabInfo info = new TabInfo(clss, args);
@@ -74,6 +74,11 @@
         notifyDataSetChanged();
     }
 
+    public void removeAllTabs() {
+        mActionBar.removeAllTabs();
+        notifyDataSetChanged();
+    }
+
     @Override
     public int getCount() {
         return mTabs.size();
diff --git a/src/com/android/browser/ComboView.java b/src/com/android/browser/ComboView.java
index 01ff54f..3dabb50 100644
--- a/src/com/android/browser/ComboView.java
+++ b/src/com/android/browser/ComboView.java
@@ -37,7 +37,8 @@
 import java.util.Iterator;
 import java.util.Set;
 
-public class ComboView extends LinearLayout implements CombinedBookmarksCallbacks, View.OnLayoutChangeListener {
+public class ComboView extends LinearLayout
+        implements CombinedBookmarksCallbacks, View.OnLayoutChangeListener {
 
     private Activity mActivity;
     private ViewPager mViewPager;
@@ -140,6 +141,7 @@
 
         // Compare the items in args with old args and recreate the fragments if they don't match.
         if (mExtraArgs != null && !compareArgs(mExtraArgs, args)) {
+            mTabsAdapter.removeAllTabs();
             mTabsAdapter = null;
         }
 
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index 753e362..d247066 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -125,19 +125,21 @@
 
     public void setLock(Drawable d, Tab.SecurityState securityState) {
         mSecurityState = securityState;
-        switch (mSecurityState) {
-            case SECURITY_STATE_SECURE:
-                mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_good);
-                break;
-            case SECURITY_STATE_MIXED:
-                mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_warning);
-                break;
-            case SECURITY_STATE_BAD_CERTIFICATE:
-                mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_severe);
-                break;
-            case SECURITY_STATE_NOT_SECURE:
-            default:
-                mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_normal);
+        if (mFaviconBadge != null) {
+            switch (mSecurityState) {
+                case SECURITY_STATE_SECURE:
+                    mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_good);
+                    break;
+                case SECURITY_STATE_MIXED:
+                    mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_warning);
+                    break;
+                case SECURITY_STATE_BAD_CERTIFICATE:
+                    mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_severe);
+                    break;
+                case SECURITY_STATE_NOT_SECURE:
+                default:
+                    mFaviconBadge.setImageResource(R.drawable.ic_fav_overlay_normal);
+            }
         }
         if (mLockIcon == null) return;
         if (d == null) {
@@ -287,7 +289,7 @@
             bundle.putInt(SiteSpecificPreferencesFragment.EXTRA_SECURITY_CERT_ERR, certError);
         }
 
-        Bitmap favicon = mUiController.getCurrentTab().getFavicon();
+        Bitmap favicon = mUiController.getCurrentTopWebView().getFavicon();
         if (favicon != null) {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             favicon.compress(Bitmap.CompressFormat.PNG, 50, baos);
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index addbf72..254e73d 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -141,6 +141,19 @@
     }
 
     @Override
+    public void onProgressChanged(Tab tab) {
+        super.onProgressChanged(tab);
+        if (mComboView != null && !mComboView.isShowing()) {
+            mActionBar = mActivity.getActionBar();
+            setupActionBar();
+            if (mActionBar != null)
+                mActionBar.show();
+            if (mNavBar != null)
+                mNavBar.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
     public void onDestroy() {
         hideTitleBar();
     }
@@ -268,6 +281,7 @@
     public void setFavicon(Tab tab) {
         super.setFavicon(tab);
         mTabBar.onFavicon(tab, tab.getFavicon());
+/*
         if (mActiveTab == tab) {
             int color = NavigationBarBase.getSiteIconColor(tab.getUrl());
             if (tab.hasFavicon()) {
@@ -275,6 +289,7 @@
             }
             mActionBar.setBackgroundDrawable(new ColorDrawable(color));
         }
+*/
     }
 
     @Override
diff --git a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
index cadc924..8d1ce6b 100644
--- a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
@@ -84,10 +84,14 @@
 
             String value = BrowserSettings.getInstance().getEdgeSwipeAction();
 
-            for (int i = 0; i < options.length; i++) {
-                if (value.equals(options[i])) {
-                    edgeSwipePref.setValueIndex(i);
-                    break;
+            if (value.equals(mFragment.getString(R.string.value_unknown_edge_swipe))) {
+                edgeSwipePref.setSummary(mFragment.getString(R.string.pref_edge_swipe_unknown));
+            } else {
+                for (int i = 0; i < options.length; i++) {
+                    if (value.equals(options[i])) {
+                        edgeSwipePref.setValueIndex(i);
+                        break;
+                    }
                 }
             }
         }
diff --git a/src/com/android/browser/preferences/SWEPreferenceFragment.java b/src/com/android/browser/preferences/SWEPreferenceFragment.java
index 79781da..77c39c7 100644
--- a/src/com/android/browser/preferences/SWEPreferenceFragment.java
+++ b/src/com/android/browser/preferences/SWEPreferenceFragment.java
@@ -29,16 +29,19 @@
 
 package com.android.browser.preferences;
 
+import android.app.ActionBar;
+import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
 import android.preference.PreferenceFragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.WindowManager;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.Switch;
 
+import com.android.browser.R;
+
 public abstract class SWEPreferenceFragment extends PreferenceFragment  {
 
     @Override
@@ -76,6 +79,16 @@
         return view;
     }
 
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        ActionBar bar = getActivity().getActionBar();
+        if (bar != null) {
+            bar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.accent)));
+        }
+    }
+
     private final void findAndResizeSwitchPreferenceWidget(View parent) {
         LinearLayout layout = (LinearLayout) parent.findViewById(android.R.id.widget_frame);
         if (layout != null) {
diff --git a/src/com/android/browser/preferences/SiteSpecificPreferencesFragment.java b/src/com/android/browser/preferences/SiteSpecificPreferencesFragment.java
index 68c3ebc..329f66c 100644
--- a/src/com/android/browser/preferences/SiteSpecificPreferencesFragment.java
+++ b/src/com/android/browser/preferences/SiteSpecificPreferencesFragment.java
@@ -433,8 +433,15 @@
             mSecurityViews.appendText(SiteSecurityViewFactory.ViewType.WARNING, warningText);
         }
 
-        showPermission("distracting_contents", PermissionsServiceFactory.PermissionType.WEBREFINER,
+        permission = showPermission("distracting_contents",
+                PermissionsServiceFactory.PermissionType.WEBREFINER,
                 R.string.pref_security_allowed, R.string.pref_security_not_allowed);
+        pref = findPreference("distracting_contents");
+        if (permission == PermissionsServiceFactory.Permission.BLOCK) {
+            ((TwoStatePreference) pref).setChecked(true);
+        } else {
+            ((TwoStatePreference) pref).setChecked(false);
+        }
 
         showPermission("popup_windows", PermissionsServiceFactory.PermissionType.POPUP,
                 R.string.pref_security_allowed, R.string.pref_security_not_allowed);
@@ -451,7 +458,9 @@
                     findPreference("site_specific_prefs");
 
             pref = findPreference("site_security_info_title");
-            screen.removePreference(pref);
+            if (pref != null && screen != null) {
+                screen.removePreference(pref);
+            }
         }
 
     }
@@ -643,13 +652,13 @@
         } else if (pref.getKey().toString().equalsIgnoreCase("distracting_contents")) {
             WebRefiner refiner = WebRefiner.getInstance();
             if (refiner != null) {
-                boolean enable = (boolean) objValue;
+                boolean disable = (boolean) objValue;
                 String[] origins = new String[1];
                 origins[0] = mOriginInfo.getOrigin();
-                if (enable) {
-                    refiner.enableRulesForDomains(WebRefiner.CATEGORY_ALL, origins);
-                } else {
+                if (disable) {
                     refiner.disableRulesForDomains(WebRefiner.CATEGORY_ALL, origins);
+                } else {
+                    refiner.enableRulesForDomains(WebRefiner.CATEGORY_ALL, origins);
                 }
             }
             updateTwoStatePreference(pref,
diff --git a/src/com/android/browser/preferences/WebsiteSettingsFragment.java b/src/com/android/browser/preferences/WebsiteSettingsFragment.java
index 7ffb5c1..6c032d9 100644
--- a/src/com/android/browser/preferences/WebsiteSettingsFragment.java
+++ b/src/com/android/browser/preferences/WebsiteSettingsFragment.java
@@ -193,10 +193,6 @@
             }
 
             notifyDataSetChanged();
-
-            if (getCount() == 0) {
-                finish(); // we close the screen
-            }
         }
 
         @Override