Change SWE app properties back to stock Android

- Changed project package name from com.android.swe.browser
back to com.android.browser along with code references to
old package name.
- Changes to AndroidManifest making it conform closer to stock
browser manifest.
- Changed app and apk name back to Browser.

Change-Id: I778ee1d1197bd50bd4a4850eef6d1d7f4ef0ad0b
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
new file mode 100644
index 0000000..8dd31d8
--- /dev/null
+++ b/src/com/android/browser/XLargeUi.java
@@ -0,0 +1,308 @@
+/*
+ * 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.
+ */
+
+package com.android.browser;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
+import android.graphics.drawable.PaintDrawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.util.Log;
+import android.view.ActionMode;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import org.codeaurora.swe.WebView;
+
+import com.android.browser.R;
+
+import java.util.List;
+
+/**
+ * Ui for xlarge screen sizes
+ */
+public class XLargeUi extends BaseUi {
+
+    private static final String LOGTAG = "XLargeUi";
+
+    private PaintDrawable mFaviconBackground;
+
+    private ActionBar mActionBar;
+    private TabBar mTabBar;
+
+    private NavigationBarTablet mNavBar;
+
+    private Handler mHandler;
+
+    /**
+     * @param browser
+     * @param controller
+     */
+    public XLargeUi(Activity browser, UiController controller) {
+        super(browser, controller);
+        mHandler = new Handler();
+        mNavBar = (NavigationBarTablet) mTitleBar.getNavigationBar();
+        mTabBar = new TabBar(mActivity, mUiController, this);
+        mActionBar = mActivity.getActionBar();
+        setupActionBar();
+        setUseQuickControls(BrowserSettings.getInstance().useQuickControls());
+    }
+
+    private void setupActionBar() {
+        mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+        mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        mActionBar.setCustomView(mTabBar);
+    }
+
+    public void showComboView(ComboViews startWith, Bundle extras) {
+        super.showComboView(startWith, extras);
+        if (mUseQuickControls) {
+            mActionBar.show();
+        }
+    }
+
+    @Override
+    public void setUseQuickControls(boolean useQuickControls) {
+        super.setUseQuickControls(useQuickControls);
+        checkHideActionBar();
+        if (!useQuickControls) {
+            mActionBar.show();
+        }
+        mTabBar.setUseQuickControls(mUseQuickControls);
+        // We need to update the tabs with this change
+        for (Tab t : mTabControl.getTabs()) {
+            t.updateShouldCaptureThumbnails();
+        }
+    }
+
+    private void checkHideActionBar() {
+        if (mUseQuickControls) {
+            mHandler.post(new Runnable() {
+                public void run() {
+                    mActionBar.hide();
+                }
+            });
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mNavBar.clearCompletions();
+        checkHideActionBar();
+    }
+
+    @Override
+    public void onDestroy() {
+        hideTitleBar();
+    }
+
+    void stopWebViewScrolling() {
+        BrowserWebView web = (BrowserWebView) mUiController.getCurrentWebView();
+        if (web != null) {
+            web.stopScroll();
+        }
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        MenuItem bm = menu.findItem(R.id.bookmarks_menu_id);
+        if (bm != null) {
+            bm.setVisible(false);
+        }
+        return true;
+    }
+
+
+    // WebView callbacks
+
+    @Override
+    public void addTab(Tab tab) {
+        mTabBar.onNewTab(tab);
+    }
+
+    protected void onAddTabCompleted(Tab tab) {
+        checkHideActionBar();
+    }
+
+    @Override
+    public void setActiveTab(final Tab tab) {
+        mTitleBar.cancelTitleBarAnimation(true);
+        mTitleBar.setSkipTitleBarAnimations(true);
+        super.setActiveTab(tab);
+        BrowserWebView view = (BrowserWebView) tab.getWebView();
+        // TabControl.setCurrentTab has been called before this,
+        // so the tab is guaranteed to have a webview
+        if (view == null) {
+            Log.e(LOGTAG, "active tab with no webview detected");
+            return;
+        }
+        mTabBar.onSetActiveTab(tab);
+        updateLockIconToLatest(tab);
+        mTitleBar.setSkipTitleBarAnimations(false);
+    }
+
+    @Override
+    public void updateTabs(List<Tab> tabs) {
+        mTabBar.updateTabs(tabs);
+        checkHideActionBar();
+    }
+
+    @Override
+    public void removeTab(Tab tab) {
+        mTitleBar.cancelTitleBarAnimation(true);
+        mTitleBar.setSkipTitleBarAnimations(true);
+        super.removeTab(tab);
+        mTabBar.onRemoveTab(tab);
+        mTitleBar.setSkipTitleBarAnimations(false);
+    }
+
+    protected void onRemoveTabCompleted(Tab tab) {
+        checkHideActionBar();
+    }
+
+    int getContentWidth() {
+        if (mContentView != null) {
+            return mContentView.getWidth();
+        }
+        return 0;
+    }
+
+    @Override
+    public void editUrl(boolean clearInput, boolean forceIME) {
+        if (mUseQuickControls) {
+            mTitleBar.setShowProgressOnly(false);
+        }
+        super.editUrl(clearInput, forceIME);
+    }
+
+    // action mode callbacks
+
+    @Override
+    public void onActionModeStarted(ActionMode mode) {
+        if (!mTitleBar.isEditingUrl()) {
+            // hide the title bar when CAB is shown
+            hideTitleBar();
+        }
+    }
+
+    @Override
+    public void onActionModeFinished(boolean inLoad) {
+        checkHideActionBar();
+        if (inLoad) {
+            // the titlebar was removed when the CAB was shown
+            // if the page is loading, show it again
+            if (mUseQuickControls) {
+                mTitleBar.setShowProgressOnly(true);
+            }
+            showTitleBar();
+        }
+    }
+
+    @Override
+    protected void updateNavigationState(Tab tab) {
+        mNavBar.updateNavigationState(tab);
+    }
+
+    @Override
+    public void setUrlTitle(Tab tab) {
+        super.setUrlTitle(tab);
+        mTabBar.onUrlAndTitle(tab, tab.getUrl(), tab.getTitle());
+    }
+
+    // Set the favicon in the title bar.
+    @Override
+    public void setFavicon(Tab tab) {
+        super.setFavicon(tab);
+        mTabBar.onFavicon(tab, tab.getFavicon());
+    }
+
+    @Override
+    public void onHideCustomView() {
+        super.onHideCustomView();
+        checkHideActionBar();
+    }
+
+    @Override
+    public boolean dispatchKey(int code, KeyEvent event) {
+        if (mActiveTab != null) {
+            WebView web = mActiveTab.getWebView();
+            if (event.getAction() == KeyEvent.ACTION_DOWN) {
+                switch (code) {
+                    case KeyEvent.KEYCODE_TAB:
+                    case KeyEvent.KEYCODE_DPAD_UP:
+                    case KeyEvent.KEYCODE_DPAD_LEFT:
+                        if ((web != null) && web.hasFocus() && !mTitleBar.hasFocus()) {
+                            editUrl(false, false);
+                            return true;
+                        }
+                }
+                boolean ctrl = event.hasModifiers(KeyEvent.META_CTRL_ON);
+                if (!ctrl && isTypingKey(event) && !mTitleBar.isEditingUrl()) {
+                    editUrl(true, false);
+                    return mContentView.dispatchKeyEvent(event);
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean isTypingKey(KeyEvent evt) {
+        return evt.getUnicodeChar() > 0;
+    }
+
+    TabBar getTabBar() {
+        return mTabBar;
+    }
+
+    @Override
+    public boolean shouldCaptureThumbnails() {
+        return mUseQuickControls;
+    }
+
+    private Drawable getFaviconBackground() {
+        if (mFaviconBackground == null) {
+            mFaviconBackground = new PaintDrawable();
+            Resources res = mActivity.getResources();
+            mFaviconBackground.getPaint().setColor(
+                    res.getColor(R.color.tabFaviconBackground));
+            mFaviconBackground.setCornerRadius(
+                    res.getDimension(R.dimen.tab_favicon_corner_radius));
+        }
+        return mFaviconBackground;
+    }
+
+    @Override
+    public Drawable getFaviconDrawable(Bitmap icon) {
+        Drawable[] array = new Drawable[2];
+        array[0] = getFaviconBackground();
+        if (icon == null) {
+            array[1] = mGenericFavicon;
+        } else {
+            array[1] = new BitmapDrawable(mActivity.getResources(), icon);
+        }
+        LayerDrawable d = new LayerDrawable(array);
+        d.setLayerInset(1, 2, 2, 2, 2);
+        return d;
+    }
+
+}