Cleanup custom_screen layout

Removes ErrorConsloe
Removes FixedTitleBarContainer

Change-Id: Ib5b3fb74d33851fddf983e3ac4b205b2457a9381
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index e6e9337..4d8c5a7 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -92,14 +92,11 @@
 
     protected FrameLayout mContentView;
     protected FrameLayout mCustomViewContainer;
-    private FrameLayout mFixedTitlebarContainer;
 
     private View mCustomView;
     private CustomViewCallback mCustomViewCallback;
     private int mOriginalOrientation;
 
-    private LinearLayout mErrorConsoleContainer = null;
-
     private UrlBarAutoShowManager mUrlBarAutoShowManager;
 
     private Toast mStopToast;
@@ -128,14 +125,10 @@
                 .getDecorView().findViewById(android.R.id.content);
         LayoutInflater.from(mActivity)
                 .inflate(R.layout.custom_screen, frameLayout);
-        mFixedTitlebarContainer = (FrameLayout) frameLayout.findViewById(
-                R.id.fixed_titlebar_container);
         mContentView = (FrameLayout) frameLayout.findViewById(
                 R.id.main_content);
         mCustomViewContainer = (FrameLayout) frameLayout.findViewById(
                 R.id.fullscreen_custom_content);
-        mErrorConsoleContainer = (LinearLayout) frameLayout
-                .findViewById(R.id.error_console);
         setFullscreen(BrowserSettings.getInstance().useFullscreen());
         mTitleBar = new TitleBar(mActivity, mUiController, this,
                 mContentView);
@@ -316,7 +309,6 @@
         }
         mTitleBar.bringToFront();
         tab.getTopWindow().requestFocus();
-        setShouldShowErrorConsole(tab, mUiController.shouldShowErrorConsole());
         onTabDataChanged(tab);
         onProgressChanged(tab);
         mNavigationBar.setIncognitoMode(tab.isPrivateBrowsingEnabled());
@@ -456,10 +448,6 @@
         mContentView.removeView(container);
         mUiController.endActionMode();
         mUiController.removeSubWindow(tab);
-        ErrorConsoleView errorConsole = tab.getErrorConsole(false);
-        if (errorConsole != null) {
-            mErrorConsoleContainer.removeView(errorConsole);
-        }
     }
 
     @Override
@@ -603,7 +591,6 @@
             callback.onCustomViewHidden();
             return;
         }
-
         mOriginalOrientation = mActivity.getRequestedOrientation();
         FrameLayout decor = (FrameLayout) mActivity.getWindow().getDecorView();
         decor.addView(view, COVER_SCREEN_PARAMS);
@@ -745,33 +732,6 @@
     public void onContextMenuClosed(Menu menu, boolean inLoad) {
     }
 
-    // error console
-
-    @Override
-    public void setShouldShowErrorConsole(Tab tab, boolean flag) {
-        if (tab == null) return;
-        ErrorConsoleView errorConsole = tab.getErrorConsole(true);
-        if (flag) {
-            // Setting the show state of the console will cause it's the layout
-            // to be inflated.
-            if (errorConsole.numberOfErrors() > 0) {
-                errorConsole.showConsole(ErrorConsoleView.SHOW_MINIMIZED);
-            } else {
-                errorConsole.showConsole(ErrorConsoleView.SHOW_NONE);
-            }
-            if (errorConsole.getParent() != null) {
-                mErrorConsoleContainer.removeView(errorConsole);
-            }
-            // Now we can add it to the main view.
-            mErrorConsoleContainer.addView(errorConsole,
-                    new LinearLayout.LayoutParams(
-                            ViewGroup.LayoutParams.MATCH_PARENT,
-                            ViewGroup.LayoutParams.WRAP_CONTENT));
-        } else {
-            mErrorConsoleContainer.removeView(errorConsole);
-        }
-    }
-
     // -------------------------------------------------------------------------
     // Helper function for WebChromeClient
     // -------------------------------------------------------------------------
@@ -861,8 +821,6 @@
         }
     }
 
-
-
     public void translateTitleBar(float topControlsOffsetYPix) {
         if (mTitleBar != null && !mInActionMode) {
             if (topControlsOffsetYPix != 0.0) {
@@ -958,8 +916,8 @@
     }
 
     public void setContentViewMarginTop(int margin) {
-        LinearLayout.LayoutParams params =
-                (LinearLayout.LayoutParams) mContentView.getLayoutParams();
+        FrameLayout.LayoutParams params =
+                (FrameLayout.LayoutParams) mContentView.getLayoutParams();
         if (params.topMargin != margin) {
             params.topMargin = margin;
             mContentView.setLayoutParams(params);
@@ -996,7 +954,6 @@
 
         if (mTitleBar.isFixed()) {
             int fixedTbarHeight = mTitleBar.calculateEmbeddedHeight();
-            mFixedTitlebarContainer.setY(fixedTbarHeight);
             setContentViewMarginTop(fixedTbarHeight);
         } else {
             mTitleBar.setTranslationY(getActionModeHeight());
@@ -1007,7 +964,6 @@
     public void onActionModeFinished(boolean inLoad) {
         mInActionMode = false;
         if (mTitleBar.isFixed()) {
-            mFixedTitlebarContainer.setY(0);
             setContentViewMarginTop(0);
         } else {
             mTitleBar.setTranslationY(0);
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 975ae89..81af49d 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -344,10 +344,6 @@
     private void syncSharedSettings() {
         mNeedsSharedSync = false;
         CookieManager.getInstance().setAcceptCookie(acceptCookies());
-
-        if (mController != null) {
-            mController.setShouldShowErrorConsole(enableJavascriptConsole());
-        }
     }
 
     private void syncManagedSettings() {
@@ -839,13 +835,6 @@
         return mPrefs.getBoolean(PREF_ENABLE_CPU_UPLOAD_PATH, false);
     }
 
-    public boolean enableJavascriptConsole() {
-        if (!isDebugEnabled()) {
-            return false;
-        }
-        return mPrefs.getBoolean(PREF_JAVASCRIPT_CONSOLE, true);
-    }
-
     public boolean isSmallScreen() {
         if (!isDebugEnabled()) {
             return false;
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 62f3e10..33ef8ce 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -197,7 +197,6 @@
 
     private Message mAutoFillSetupMessage;
 
-    private boolean mShouldShowErrorConsole;
     private boolean mNetworkShouldNotify = true;
 
     // FIXME, temp address onPrepareMenu performance problem.
@@ -856,25 +855,6 @@
     }
 
     @Override
-    public boolean shouldShowErrorConsole() {
-        return mShouldShowErrorConsole;
-    }
-
-    protected void setShouldShowErrorConsole(boolean show) {
-        if (show == mShouldShowErrorConsole) {
-            // Nothing to do.
-            return;
-        }
-        mShouldShowErrorConsole = show;
-        Tab t = mTabControl.getCurrentTab();
-        if (t == null) {
-            // There is no current tab so we cannot toggle the error console
-            return;
-        }
-        mUi.setShouldShowErrorConsole(t, show);
-    }
-
-    @Override
     public void stopLoading() {
         mLoadStopped = true;
         Tab tab = mTabControl.getCurrentTab();
diff --git a/src/com/android/browser/ErrorConsoleView.java b/src/com/android/browser/ErrorConsoleView.java
deleted file mode 100644
index bcee7b5..0000000
--- a/src/com/android/browser/ErrorConsoleView.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Copyright (C) 2009 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.content.Context;
-import android.database.DataSetObserver;
-import android.graphics.Color;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.webkit.ConsoleMessage;
-import org.codeaurora.swe.WebView;
-
-import com.android.browser.R;
-
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.widget.TwoLineListItem;
-
-import java.util.Vector;
-
-/* package */ class ErrorConsoleView extends LinearLayout {
-
-    /**
-     * Define some constants to describe the visibility of the error console.
-     */
-    public static final int SHOW_MINIMIZED = 0;
-    public static final int SHOW_MAXIMIZED = 1;
-    public static final int SHOW_NONE      = 2;
-
-    private TextView mConsoleHeader;
-    private ErrorConsoleListView mErrorList;
-    private LinearLayout mEvalJsViewGroup;
-    private EditText mEvalEditText;
-    private Button mEvalButton;
-    private WebView mWebView;
-    private int mCurrentShowState = SHOW_NONE;
-
-    private boolean mSetupComplete = false;
-
-    // Before we've been asked to display the console, cache any messages that should
-    // be added to the console. Then when we do display the console, add them to the view
-    // then.
-    private Vector<ConsoleMessage> mErrorMessageCache;
-
-    public ErrorConsoleView(Context context) {
-        super(context);
-    }
-
-    public ErrorConsoleView(Context context, AttributeSet attributes) {
-        super(context, attributes);
-    }
-
-    private void commonSetupIfNeeded() {
-        if (mSetupComplete) {
-            return;
-        }
-
-        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-        inflater.inflate(R.layout.error_console, this);
-
-        // Get references to each ui element.
-        mConsoleHeader = (TextView) findViewById(R.id.error_console_header_id);
-        mErrorList = (ErrorConsoleListView) findViewById(R.id.error_console_list_id);
-        mEvalJsViewGroup = (LinearLayout) findViewById(R.id.error_console_eval_view_group_id);
-        mEvalEditText = (EditText) findViewById(R.id.error_console_eval_text_id);
-        mEvalButton = (Button) findViewById(R.id.error_console_eval_button_id);
-
-        mEvalButton.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                // Send the javascript to be evaluated to webkit as a javascript: url
-                // TODO: Can we expose access to webkit's JS interpreter here and evaluate it that
-                // way? Note that this is called on the UI thread so we will need to post a message
-                // to the WebCore thread to implement this.
-                if (mWebView != null) {
-                    mWebView.loadUrl("javascript:" + mEvalEditText.getText());
-                }
-
-                mEvalEditText.setText("");
-            }
-        });
-
-        // Make clicking on the console title bar min/maximse it.
-        mConsoleHeader.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                if (mCurrentShowState == SHOW_MINIMIZED) {
-                    showConsole(SHOW_MAXIMIZED);
-                } else {
-                    showConsole(SHOW_MINIMIZED);
-                }
-            }
-        });
-
-        // Add any cached messages to the list now that we've assembled the view.
-        if (mErrorMessageCache != null) {
-            for (ConsoleMessage msg : mErrorMessageCache) {
-                mErrorList.addErrorMessage(msg);
-            }
-            mErrorMessageCache.clear();
-        }
-
-        mSetupComplete = true;
-    }
-
-    /**
-     * Adds a message to the set of messages the console uses.
-     */
-    public void addErrorMessage(ConsoleMessage consoleMessage) {
-        if (mSetupComplete) {
-            mErrorList.addErrorMessage(consoleMessage);
-        } else {
-            if (mErrorMessageCache == null) {
-                mErrorMessageCache = new Vector<ConsoleMessage>();
-            }
-            mErrorMessageCache.add(consoleMessage);
-        }
-    }
-
-    /**
-     * Removes all error messages from the console.
-     */
-    public void clearErrorMessages() {
-        if (mSetupComplete) {
-            mErrorList.clearErrorMessages();
-        } else if (mErrorMessageCache != null) {
-            mErrorMessageCache.clear();
-        }
-    }
-
-    /**
-     * Returns the current number of errors displayed in the console.
-     */
-    public int numberOfErrors() {
-        if (mSetupComplete) {
-            return mErrorList.getCount();
-        } else {
-            return (mErrorMessageCache == null) ? 0 : mErrorMessageCache.size();
-        }
-    }
-
-    /**
-     * Sets the webview that this console is associated with. Currently this is used so
-     * we can call into webkit to evaluate JS expressions in the console.
-     */
-    public void setWebView(WebView webview) {
-        mWebView = webview;
-    }
-
-    /**
-     * Sets the visibility state of the console.
-     */
-    public void showConsole(int show_state) {
-        commonSetupIfNeeded();
-        switch (show_state) {
-            case SHOW_MINIMIZED:
-                mConsoleHeader.setVisibility(View.VISIBLE);
-                mConsoleHeader.setText(R.string.error_console_header_text_minimized);
-                mErrorList.setVisibility(View.GONE);
-                mEvalJsViewGroup.setVisibility(View.GONE);
-                break;
-
-            case SHOW_MAXIMIZED:
-                mConsoleHeader.setVisibility(View.VISIBLE);
-                mConsoleHeader.setText(R.string.error_console_header_text_maximized);
-                mErrorList.setVisibility(View.VISIBLE);
-                mEvalJsViewGroup.setVisibility(View.VISIBLE);
-                break;
-
-            case SHOW_NONE:
-                mConsoleHeader.setVisibility(View.GONE);
-                mErrorList.setVisibility(View.GONE);
-                mEvalJsViewGroup.setVisibility(View.GONE);
-                break;
-        }
-        mCurrentShowState = show_state;
-    }
-
-    /**
-     * Returns the current visibility state of the console.
-     */
-    public int getShowState() {
-        if (mSetupComplete) {
-            return mCurrentShowState;
-        } else {
-            return SHOW_NONE;
-        }
-    }
-
-    /**
-     * This class extends ListView to implement the View that will actually display the set of
-     * errors encountered on the current page.
-     */
-    private static class ErrorConsoleListView extends ListView {
-        // An adapter for this View that contains a list of error messages.
-        private ErrorConsoleMessageList mConsoleMessages;
-
-        public ErrorConsoleListView(Context context, AttributeSet attributes) {
-            super(context, attributes);
-            mConsoleMessages = new ErrorConsoleMessageList(context);
-            setAdapter(mConsoleMessages);
-        }
-
-        public void addErrorMessage(ConsoleMessage consoleMessage) {
-            mConsoleMessages.add(consoleMessage);
-            setSelection(mConsoleMessages.getCount());
-        }
-
-        public void clearErrorMessages() {
-            mConsoleMessages.clear();
-        }
-
-        /**
-         * This class is an adapter for ErrorConsoleListView that contains the error console
-         * message data.
-         */
-        private static class ErrorConsoleMessageList extends android.widget.BaseAdapter
-                implements android.widget.ListAdapter {
-
-            private Vector<ConsoleMessage> mMessages;
-            private LayoutInflater mInflater;
-
-            public ErrorConsoleMessageList(Context context) {
-                mMessages = new Vector<ConsoleMessage>();
-                mInflater = (LayoutInflater)context.getSystemService(
-                        Context.LAYOUT_INFLATER_SERVICE);
-            }
-
-            /**
-             * Add a new message to the list and update the View.
-             */
-            public void add(ConsoleMessage consoleMessage) {
-                mMessages.add(consoleMessage);
-                notifyDataSetChanged();
-            }
-
-            /**
-             * Remove all messages from the list and update the view.
-             */
-            public void clear() {
-                mMessages.clear();
-                notifyDataSetChanged();
-            }
-
-            @Override
-            public boolean areAllItemsEnabled() {
-                return false;
-            }
-
-            @Override
-            public boolean isEnabled(int position) {
-                return false;
-            }
-
-            public long getItemId(int position) {
-                return position;
-            }
-
-            public Object getItem(int position) {
-                return mMessages.get(position);
-            }
-
-            public int getCount() {
-                return mMessages.size();
-            }
-
-            @Override
-            public boolean hasStableIds() {
-                return true;
-            }
-
-            /**
-             * Constructs a TwoLineListItem for the error at position.
-             */
-            public View getView(int position, View convertView, ViewGroup parent) {
-                View view;
-                ConsoleMessage error = mMessages.get(position);
-
-                if (error == null) {
-                    return null;
-                }
-
-                if (convertView == null) {
-                    view = mInflater.inflate(android.R.layout.two_line_list_item, parent, false);
-                } else {
-                    view = convertView;
-                }
-
-                TextView headline = (TextView) view.findViewById(android.R.id.text1);
-                TextView subText = (TextView) view.findViewById(android.R.id.text2);
-                headline.setText(error.sourceId() + ":" + error.lineNumber());
-                subText.setText(error.message());
-                switch (error.messageLevel()) {
-                    case ERROR:
-                        subText.setTextColor(Color.RED);
-                        break;
-                    case WARNING:
-                        // Orange
-                        subText.setTextColor(Color.rgb(255,192,0));
-                        break;
-                    case TIP:
-                        subText.setTextColor(Color.BLUE);
-                        break;
-                    default:
-                        subText.setTextColor(Color.LTGRAY);
-                        break;
-                }
-                return view;
-            }
-
-        }
-    }
-}
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index ea6b1d6..bb63f04 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -72,7 +72,6 @@
     static final String PREF_ENABLE_TRACING = "enable_tracing";
     static final String PREF_ENABLE_VISUAL_INDICATOR = "enable_visual_indicator";
     static final String PREF_ENABLE_CPU_UPLOAD_PATH = "enable_cpu_upload_path";
-    static final String PREF_JAVASCRIPT_CONSOLE = "javascript_console";
     static final String PREF_JS_ENGINE_FLAGS = "js_engine_flags";
     static final String PREF_NORMAL_LAYOUT = "normal_layout";
     static final String PREF_SMALL_SCREEN = "small_screen";
diff --git a/src/com/android/browser/PreloadController.java b/src/com/android/browser/PreloadController.java
index ebb3523..12dc156 100644
--- a/src/com/android/browser/PreloadController.java
+++ b/src/com/android/browser/PreloadController.java
@@ -192,12 +192,6 @@
     }
 
     @Override
-    public boolean shouldShowErrorConsole() {
-        if (LOGD_ENABLED) Log.d(LOGTAG, "shouldShowErrorConsole()");
-        return false;
-    }
-
-    @Override
     public void onUpdatedSecurityState(Tab tab) {
         if (LOGD_ENABLED) Log.d(LOGTAG, "onUpdatedSecurityState()");
     }
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 3b57d9e..b7be6a5 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -178,10 +178,6 @@
     private boolean mCloseOnBack;
     // flag to indicate if the tab was opened from an intent
     private boolean mDerivedFromIntent = false;
-    // Keep the original url around to avoid killing the old WebView if the url
-    // has not changed.
-    // Error console for the tab
-    private ErrorConsoleView mErrorConsole;
     // The listener that gets invoked when a download is started from the
     // mMainView
     private final BrowserDownloadListener mDownloadListener;
@@ -396,14 +392,6 @@
                 mTouchIconLoader = null;
             }
 
-            // reset the error console
-            if (mErrorConsole != null) {
-                mErrorConsole.clearErrorMessages();
-                if (mWebViewController.shouldShowErrorConsole()) {
-                    mErrorConsole.showConsole(ErrorConsoleView.SHOW_NONE);
-                }
-            }
-
             // finally update the UI in the activity if it is in the foreground
             mWebViewController.onPageStarted(Tab.this, view, favicon);
 
@@ -1053,17 +1041,6 @@
          */
         @Override
         public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
-            if (mInForeground) {
-                // call getErrorConsole(true) so it will create one if needed
-                ErrorConsoleView errorConsole = getErrorConsole(true);
-                errorConsole.addErrorMessage(consoleMessage);
-                if (mWebViewController.shouldShowErrorConsole()
-                        && errorConsole.getShowState() !=
-                            ErrorConsoleView.SHOW_MAXIMIZED) {
-                    errorConsole.showConsole(ErrorConsoleView.SHOW_MINIMIZED);
-                }
-            }
-
             // Don't log console messages in private browsing mode
             if (isPrivateBrowsingEnabled()) return true;
 
@@ -1833,22 +1810,6 @@
     }
 
     /**
-     * Return the tab's error console. Creates the console if createIfNEcessary
-     * is true and we haven't already created the console.
-     * @param createIfNecessary Flag to indicate if the console should be
-     *            created if it has not been already.
-     * @return The tab's error console, or null if one has not been created and
-     *         createIfNecessary is false.
-     */
-    ErrorConsoleView getErrorConsole(boolean createIfNecessary) {
-        if (createIfNecessary && mErrorConsole == null) {
-            mErrorConsole = new ErrorConsoleView(mContext);
-            mErrorConsole.setWebView(mMainView);
-        }
-        return mErrorConsole;
-    }
-
-    /**
      * Sets the security state, clears the SSL certificate error and informs
      * the controller.
      */
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index 5aefd0b..e916a35 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -115,8 +115,6 @@
 
     public void onActionModeFinished(boolean inLoad);
 
-    public void setShouldShowErrorConsole(Tab tab, boolean show);
-
     // returns if the web page is clear of any overlays (not including sub windows)
     public boolean isWebShowing();
 
diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java
index 446083a..cf989e8 100644
--- a/src/com/android/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -73,8 +73,6 @@
 
     void handleNewIntent(Intent intent);
 
-    boolean shouldShowErrorConsole();
-
     void hideCustomView();
 
     void attachSubWindow(Tab tab);
diff --git a/src/com/android/browser/WebViewController.java b/src/com/android/browser/WebViewController.java
index 373d72c..e68f9bf 100644
--- a/src/com/android/browser/WebViewController.java
+++ b/src/com/android/browser/WebViewController.java
@@ -90,8 +90,6 @@
 
     void onUserCanceledSsl(Tab tab);
 
-    boolean shouldShowErrorConsole();
-
     void onUpdatedSecurityState(Tab tab);
 
     void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture);
diff --git a/src/com/android/browser/view/CustomScreenLinearLayout.java b/src/com/android/browser/view/CustomScreenLinearLayout.java
deleted file mode 100644
index f5341e8..0000000
--- a/src/com/android/browser/view/CustomScreenLinearLayout.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2012 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.view;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.LinearLayout;
-
-
-public class CustomScreenLinearLayout extends LinearLayout {
-
-    public CustomScreenLinearLayout(Context context) {
-        super(context);
-        setChildrenDrawingOrderEnabled(true);
-    }
-
-    public CustomScreenLinearLayout(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        setChildrenDrawingOrderEnabled(true);
-    }
-
-    public CustomScreenLinearLayout(Context context, AttributeSet attrs,
-            int defStyle) {
-        super(context, attrs, defStyle);
-        setChildrenDrawingOrderEnabled(true);
-    }
-
-    @Override
-    protected int getChildDrawingOrder(int childCount, int i) {
-        return childCount - i - 1;
-    }
-
-}