diff options
author | Kulanthaivel Palanichamy <kulanthaivel@codeaurora.org> | 2014-12-12 18:16:24 -0800 |
---|---|---|
committer | WebTech Code Review <code-review@localhost> | 2015-01-14 17:19:01 -0800 |
commit | 033af09636218904a8d65f65d40bc702d3a7c9c7 (patch) | |
tree | 7cf69033c48f2889758f87bb9aa02aab57b0622b /src/com | |
parent | 055e6d855337d209c1799a59d57480ffa4616515 (diff) | |
download | android_packages_apps_Gello-033af09636218904a8d65f65d40bc702d3a7c9c7.tar.gz android_packages_apps_Gello-033af09636218904a8d65f65d40bc702d3a7c9c7.tar.bz2 android_packages_apps_Gello-033af09636218904a8d65f65d40bc702d3a7c9c7.zip |
Cleanup custom_screen layout
Removes ErrorConsloe
Removes FixedTitleBarContainer
Change-Id: Ib5b3fb74d33851fddf983e3ac4b205b2457a9381
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/browser/BaseUi.java | 48 | ||||
-rw-r--r-- | src/com/android/browser/BrowserSettings.java | 11 | ||||
-rw-r--r-- | src/com/android/browser/Controller.java | 20 | ||||
-rw-r--r-- | src/com/android/browser/ErrorConsoleView.java | 332 | ||||
-rw-r--r-- | src/com/android/browser/PreferenceKeys.java | 1 | ||||
-rw-r--r-- | src/com/android/browser/PreloadController.java | 6 | ||||
-rw-r--r-- | src/com/android/browser/Tab.java | 39 | ||||
-rw-r--r-- | src/com/android/browser/UI.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/UiController.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/WebViewController.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/view/CustomScreenLinearLayout.java | 48 |
11 files changed, 2 insertions, 509 deletions
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index e6e93377..4d8c5a7a 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -92,14 +92,11 @@ public abstract class BaseUi implements UI { 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 @@ public abstract class BaseUi implements UI { .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 @@ public abstract class BaseUi implements UI { } mTitleBar.bringToFront(); tab.getTopWindow().requestFocus(); - setShouldShowErrorConsole(tab, mUiController.shouldShowErrorConsole()); onTabDataChanged(tab); onProgressChanged(tab); mNavigationBar.setIncognitoMode(tab.isPrivateBrowsingEnabled()); @@ -456,10 +448,6 @@ public abstract class BaseUi implements UI { mContentView.removeView(container); mUiController.endActionMode(); mUiController.removeSubWindow(tab); - ErrorConsoleView errorConsole = tab.getErrorConsole(false); - if (errorConsole != null) { - mErrorConsoleContainer.removeView(errorConsole); - } } @Override @@ -603,7 +591,6 @@ public abstract class BaseUi implements UI { callback.onCustomViewHidden(); return; } - mOriginalOrientation = mActivity.getRequestedOrientation(); FrameLayout decor = (FrameLayout) mActivity.getWindow().getDecorView(); decor.addView(view, COVER_SCREEN_PARAMS); @@ -745,33 +732,6 @@ public abstract class BaseUi implements UI { 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 abstract class BaseUi implements UI { } } - - public void translateTitleBar(float topControlsOffsetYPix) { if (mTitleBar != null && !mInActionMode) { if (topControlsOffsetYPix != 0.0) { @@ -958,8 +916,8 @@ public abstract class BaseUi implements UI { } 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 @@ public abstract class BaseUi implements UI { if (mTitleBar.isFixed()) { int fixedTbarHeight = mTitleBar.calculateEmbeddedHeight(); - mFixedTitlebarContainer.setY(fixedTbarHeight); setContentViewMarginTop(fixedTbarHeight); } else { mTitleBar.setTranslationY(getActionModeHeight()); @@ -1007,7 +964,6 @@ public abstract class BaseUi implements UI { 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 975ae89b..81af49d6 100644 --- a/src/com/android/browser/BrowserSettings.java +++ b/src/com/android/browser/BrowserSettings.java @@ -344,10 +344,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, private void syncSharedSettings() { mNeedsSharedSync = false; CookieManager.getInstance().setAcceptCookie(acceptCookies()); - - if (mController != null) { - mController.setShouldShowErrorConsole(enableJavascriptConsole()); - } } private void syncManagedSettings() { @@ -839,13 +835,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, 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 62f3e107..33ef8cec 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -197,7 +197,6 @@ public class Controller private Message mAutoFillSetupMessage; - private boolean mShouldShowErrorConsole; private boolean mNetworkShouldNotify = true; // FIXME, temp address onPrepareMenu performance problem. @@ -856,25 +855,6 @@ public class Controller } @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 bcee7b5f..00000000 --- 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 ea6b1d63..bb63f044 100644 --- a/src/com/android/browser/PreferenceKeys.java +++ b/src/com/android/browser/PreferenceKeys.java @@ -72,7 +72,6 @@ public interface PreferenceKeys { 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 ebb3523a..12dc1562 100644 --- a/src/com/android/browser/PreloadController.java +++ b/src/com/android/browser/PreloadController.java @@ -192,12 +192,6 @@ public class PreloadController implements WebViewController { } @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 3b57d9ee..b7be6a50 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -178,10 +178,6 @@ class Tab implements PictureListener { 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 @@ class Tab implements PictureListener { 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 @@ class Tab implements PictureListener { */ @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 @@ class Tab implements PictureListener { } /** - * 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 5aefd0b2..e916a35c 100644 --- a/src/com/android/browser/UI.java +++ b/src/com/android/browser/UI.java @@ -115,8 +115,6 @@ public interface UI { 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 446083ad..cf989e8e 100644 --- a/src/com/android/browser/UiController.java +++ b/src/com/android/browser/UiController.java @@ -73,8 +73,6 @@ public interface UiController { 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 373d72c6..e68f9bfd 100644 --- a/src/com/android/browser/WebViewController.java +++ b/src/com/android/browser/WebViewController.java @@ -90,8 +90,6 @@ public interface WebViewController { 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 f5341e8d..00000000 --- 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; - } - -} |