Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bdfb5312 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "ActionBar added to framework, integrated with Activity and styles....

Merge "ActionBar added to framework, integrated with Activity and styles. Added onClick attribute support to menus in MenuInflater."
parents 6df9720b 33b97439
Loading
Loading
Loading
Loading
+572 −1
Original line number Diff line number Diff line
@@ -3188,6 +3188,17 @@
 visibility="public"
>
</field>
<field name="customNavigationLayout"
 type="int"
 transient="false"
 volatile="false"
 value="16843539"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="cycles"
 type="int"
 transient="false"
@@ -3452,6 +3463,17 @@
 visibility="public"
>
</field>
<field name="displayOptions"
 type="int"
 transient="false"
 volatile="false"
 value="16843537"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="dither"
 type="int"
 transient="false"
@@ -6884,6 +6906,17 @@
 visibility="public"
>
</field>
<field name="navigationMode"
 type="int"
 transient="false"
 volatile="false"
 value="16843536"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="negativeButtonText"
 type="int"
 transient="false"
@@ -8930,6 +8963,17 @@
 visibility="public"
>
</field>
<field name="subtitle"
 type="int"
 transient="false"
 volatile="false"
 value="16843538"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="suggestActionMsg"
 type="int"
 transient="false"
@@ -10338,6 +10382,28 @@
 visibility="public"
>
</field>
<field name="windowActionBar"
 type="int"
 transient="false"
 volatile="false"
 value="16843534"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="windowActionBarStyle"
 type="int"
 transient="false"
 volatile="false"
 value="16843535"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="windowAnimationStyle"
 type="int"
 transient="false"
@@ -14218,6 +14284,17 @@
 visibility="public"
>
</field>
<field name="home"
 type="int"
 transient="false"
 volatile="false"
 value="16908353"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="icon"
 type="int"
 transient="false"
@@ -16388,6 +16465,17 @@
 visibility="public"
>
</field>
<field name="Theme_WithActionBar"
 type="int"
 transient="false"
 volatile="false"
 value="16973969"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="Widget"
 type="int"
 transient="false"
@@ -19210,6 +19298,454 @@
</package>
<package name="android.app"
>
<class name="ActionBar"
 extends="java.lang.Object"
 abstract="true"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<constructor name="ActionBar"
 type="android.app.ActionBar"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</constructor>
<method name="getCustomNavigationView"
 return="android.view.View"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getDisplayOptions"
 return="int"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getNavigationMode"
 return="int"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getSubtitle"
 return="java.lang.CharSequence"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getTitle"
 return="java.lang.CharSequence"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="setBackgroundDrawable"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="d" type="android.graphics.drawable.Drawable">
</parameter>
</method>
<method name="setCallback"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="callback" type="android.app.ActionBar.Callback">
</parameter>
</method>
<method name="setCustomNavigationView"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="view" type="android.view.View">
</parameter>
</method>
<method name="setDisplayOptions"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="options" type="int">
</parameter>
</method>
<method name="setDividerDrawable"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="d" type="android.graphics.drawable.Drawable">
</parameter>
</method>
<method name="setNavigationMode"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="mode" type="int">
</parameter>
</method>
<method name="setSubtitle"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="subtitle" type="java.lang.CharSequence">
</parameter>
</method>
<method name="setTitle"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="title" type="java.lang.CharSequence">
</parameter>
</method>
<method name="updateActionMenu"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<field name="DISPLAY_HIDE_HOME"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="DISPLAY_USE_LOGO"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="NAVIGATION_MODE_CUSTOM"
 type="int"
 transient="false"
 volatile="false"
 value="3"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="NAVIGATION_MODE_DROPDOWN_LIST"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="NAVIGATION_MODE_NORMAL"
 type="int"
 transient="false"
 volatile="false"
 value="0"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="NAVIGATION_MODE_TABS"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<interface name="ActionBar.Callback"
 abstract="true"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<method name="onActionItemSelected"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="item" type="android.view.MenuItem">
</parameter>
</method>
<method name="onContextItemSelected"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="modeId" type="int">
</parameter>
<parameter name="item" type="android.view.MenuItem">
</parameter>
</method>
<method name="onCreateActionMenu"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
<method name="onCreateContextMode"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="modeId" type="int">
</parameter>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
<method name="onPrepareContextMode"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="modeId" type="int">
</parameter>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
<method name="onUpdateActionMenu"
 return="boolean"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
</interface>
<class name="ActionBar.SimpleCallback"
 extends="java.lang.Object"
 abstract="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<implements name="android.app.ActionBar.Callback">
</implements>
<constructor name="ActionBar.SimpleCallback"
 type="android.app.ActionBar.SimpleCallback"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</constructor>
<method name="onActionItemSelected"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="item" type="android.view.MenuItem">
</parameter>
</method>
<method name="onContextItemSelected"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="modeId" type="int">
</parameter>
<parameter name="item" type="android.view.MenuItem">
</parameter>
</method>
<method name="onCreateActionMenu"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
<method name="onCreateContextMode"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="modeId" type="int">
</parameter>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
<method name="onPrepareContextMode"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="modeId" type="int">
</parameter>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
<method name="onUpdateActionMenu"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="menu" type="android.view.Menu">
</parameter>
</method>
</class>
<class name="Activity"
 extends="android.view.ContextThemeWrapper"
 abstract="false"
@@ -19433,6 +19969,17 @@
<parameter name="child" type="android.app.Activity">
</parameter>
</method>
<method name="getActionBar"
 return="android.app.ActionBar"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getApplication"
 return="android.app.Application"
 abstract="false"
@@ -63956,7 +64503,7 @@
<method name="drawText"
 return="void"
 abstract="false"
 native="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
@@ -186757,6 +187304,19 @@
 visibility="public"
>
</method>
<method name="hasFeature"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="feature" type="int">
</parameter>
</method>
<method name="hasSoftInputMode"
 return="boolean"
 abstract="false"
@@ -187407,6 +187967,17 @@
 visibility="protected"
>
</field>
<field name="FEATURE_ACTION_BAR"
 type="int"
 transient="false"
 volatile="false"
 value="9"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="FEATURE_CONTEXT_MENU"
 type="int"
 transient="false"
+253 −0
Original line number Diff line number Diff line
/*
 * 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 android.app;

import android.graphics.drawable.Drawable;
import android.view.ActionBarView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

/**
 * This is the public interface to the contextual ActionBar.
 * The ActionBar acts as a replacement for the title bar in Activities.
 * It provides facilities for creating toolbar actions as well as
 * methods of navigating around an application. 
 */
public abstract class ActionBar {
	/**
	 * Normal/standard navigation mode. Consists of either a logo or icon
	 * and title text with an optional subtitle. Clicking any of these elements
	 * will dispatch onActionItemSelected to the registered Callback with
	 * a MenuItem with item ID android.R.id.home.
	 */
    public static final int NAVIGATION_MODE_NORMAL = 0;
    
    /**
     * Dropdown list navigation mode. Instead of static title text this mode
     * presents a dropdown menu for navigation within the activity.
     */
    public static final int NAVIGATION_MODE_DROPDOWN_LIST = 1;
    
    /**
     * Tab navigation mode. Instead of static title text this mode
     * presents a series of tabs for navigation within the activity.
     */
    public static final int NAVIGATION_MODE_TABS = 2;
    
    /**
     * Custom navigation mode. This navigation mode is set implicitly whenever
     * a custom navigation view is set. See {@link #setCustomNavigationView(View)}.
     */
    public static final int NAVIGATION_MODE_CUSTOM = 3;

    /**
     * Use logo instead of icon if available. This flag will cause appropriate
     * navigation modes to use a wider logo in place of the standard icon.
     */
    public static final int DISPLAY_USE_LOGO = 0x1;
    
    /**
     * Hide 'home' elements in this action bar, leaving more space for other
     * navigation elements. This includes logo and icon.
     */
    public static final int DISPLAY_HIDE_HOME = 0x2;
    
    /**
     * Set the callback that the ActionBar will use to handle events
     * and populate menus.
     * @param callback Callback to use
     */
    public abstract void setCallback(Callback callback);
    
    /**
     * Set a custom navigation view.
     * 
     * Custom navigation views appear between the application icon and
     * any action buttons and may use any space available there. Common
     * use cases for custom navigation views might include an address bar
     * for a browser or other navigation mechanisms that do not translate
     * well to provided navigation modes.
     * 
     * Setting a non-null custom navigation view will also set the
     * navigation mode to NAVMODE_CUSTOM.
     * 
     * @param view Custom navigation view to place in the ActionBar.
     */
    public abstract void setCustomNavigationView(View view);
    
    /**
     * Set the ActionBar's title.
     * 
     * This is set automatically to the name of your Activity,
     * but may be changed here.
     * 
     * @param title Title text
     */
    public abstract void setTitle(CharSequence title);
    
    /**
     * Set the ActionBar's subtitle.
     * 
     * The subtitle is usually displayed as a second line of text
     * under the title. Good for extended descriptions of activity state.
     * 
     * @param subtitle Subtitle text. 
     */
    public abstract void setSubtitle(CharSequence subtitle);
    
    /**
     * Set the navigation mode.
     *
     * @param mode One of {@link #NAVIGATION_MODE_NORMAL}, {@link #NAVIGATION_MODE_DROPDOWN_LIST},
     * {@link #NAVIGATION_MODE_TABS}, or {@link #NAVIGATION_MODE_CUSTOM}.
     */
    public abstract void setNavigationMode(int mode);
    
    /**
     * Set display options.
     * 
     * @param options A combination of the bits defined by the DISPLAY_ constants
     *                defined in ActionBar.
     */
    public abstract void setDisplayOptions(int options);
    
    /**
     * Set the ActionBar's background.
     * 
     * @param d Background drawable
     */
    public abstract void setBackgroundDrawable(Drawable d);
    
    /**
     * Set a drawable to use as a divider between sections of the ActionBar.
     * 
     * @param d Divider drawable
     */
    public abstract void setDividerDrawable(Drawable d);
    
    /**
     * @return The current custom navigation view.
     */
    public abstract View getCustomNavigationView();
    
    /**
     * @return The current ActionBar title.
     */
    public abstract CharSequence getTitle();
    
    /**
     * @return The current ActionBar subtitle.
     */
    public abstract CharSequence getSubtitle();
    
    /**
     * @return The current navigation mode.
     */
    public abstract int getNavigationMode();
    
    /**
     * @return The current set of display options. 
     */
    public abstract int getDisplayOptions();
    
    /**
     * Request an update of the items in the action menu.
     * This will result in a call to Callback.onUpdateActionMenu(Menu)
     * and the ActionBar will update based on any changes made there.
     */
    public abstract void updateActionMenu();
    
    /**
     * Callback interface for ActionBar events. 
     */
    public interface Callback {
        /**
         * Initialize the always-visible contents of the action bar.
         * You should place your menu items into <var>menu</var>.
         * 
         * <p>This is only called once, the first time the action bar is displayed.
         *
         * @param menu The action menu in which to place your items.
         * @return You must return true for actions to be displayed;
         *         if you return false they will not be shown.
         *
         * @see #onActionItemSelected(MenuItem)
         */
        public boolean onCreateActionMenu(Menu menu);

        /**
         * Update the action bar. This is called in response to {@link #updateActionMenu()}
         * calls, which may be application-initiated or the result of changing fragment state.
         * 
         * @return true if the action bar should update based on altered menu contents,
         *         false if no changes are necessary.
         */
        public boolean onUpdateActionMenu(Menu menu);

        /**
         * This hook is called whenever an item in your action bar is selected.
         * The default implementation simply returns false to have the normal
         * processing happen (sending a message to its handler). You can use this
         * method for any items for which you would like to do processing without
         * those other facilities.
         * 
         * @param item The action bar item that was selected.
         * @return boolean Return false to allow normal menu processing to proceed,
         *         true to consume it here.
         */
        public boolean onActionItemSelected(MenuItem item);

        /*
         * In progress
         */
        public boolean onCreateContextMode(int modeId, Menu menu);
        public boolean onPrepareContextMode(int modeId, Menu menu);
        public boolean onContextItemSelected(int modeId, MenuItem item);
    }
    
    /**
     * Simple stub implementations of ActionBar.Callback methods.
     * Extend this if you only need a subset of Callback functionality.
     */
    public static class SimpleCallback implements Callback {
        public boolean onCreateActionMenu(Menu menu) {
            return false;
        }
        
        public boolean onUpdateActionMenu(Menu menu) {
            return false;
        }
        
        public boolean onActionItemSelected(MenuItem item) {
            return false;
        }
        
        public boolean onCreateContextMode(int modeId, Menu menu) {
            return false;
        }
        
        public boolean onPrepareContextMode(int modeId, Menu menu) {
            return false;
        }
        
        public boolean onContextItemSelected(int modeId, MenuItem item) {
            return false;
        }
    }

}
+47 −6
Original line number Diff line number Diff line
@@ -16,14 +16,16 @@

package android.app;

import com.android.internal.policy.PolicyManager;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.HashMap;

import android.content.ComponentCallbacks;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IIntentSender;
import android.content.Intent;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
@@ -50,6 +52,7 @@ import android.util.Config;
import android.util.EventLog;
import android.util.Log;
import android.util.SparseArray;
import android.view.ActionBarView;
import android.view.ContextMenu;
import android.view.ContextThemeWrapper;
import android.view.InflateException;
@@ -69,10 +72,10 @@ import android.view.View.OnCreateContextMenuListener;
import android.view.ViewGroup.LayoutParams;
import android.view.accessibility.AccessibilityEvent;
import android.widget.AdapterView;
import android.widget.LinearLayout;

import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.HashMap;
import com.android.internal.app.SplitActionBar;
import com.android.internal.policy.PolicyManager;

/**
 * An activity is a single, focused thing that the user can do.  Almost all
@@ -650,6 +653,7 @@ public class Activity extends ContextThemeWrapper
    /*package*/ boolean mWindowAdded = false;
    /*package*/ boolean mVisibleFromServer = false;
    /*package*/ boolean mVisibleFromClient = true;
    /*package*/ ActionBar mActionBar = null;

    private CharSequence mTitle;
    private int mTitleColor = 0;
@@ -1794,6 +1798,18 @@ public class Activity extends ContextThemeWrapper
        return getWindow().findViewById(id);
    }
    
    /**
     * Retrieve a reference to this activity's ActionBar.
     * 
     * <p><em>Note:</em> The ActionBar is initialized when a content view
     * is set. This function will return null if called before {@link #setContentView}
     * or {@link #addContentView}.
     * @return The Activity's ActionBar, or null if it does not have one.
     */
    public ActionBar getActionBar() {
        return mActionBar;
    }
    
    /**
     * Finds a fragment that was identified by the given id either when inflated
     * from XML or as the container ID when added in a transaction.  This only
@@ -1804,6 +1820,27 @@ public class Activity extends ContextThemeWrapper
        return mFragments.findFragmentById(id);
    }
    
    /**
     * Creates a new ActionBar, locates the inflated ActionBarView,
     * initializes the ActionBar with the view, and sets mActionBar.
     */
    private void initActionBar() {
        if (!getWindow().hasFeature(Window.FEATURE_ACTION_BAR)) {
            return;
        }
        
        ActionBarView view = (ActionBarView) findViewById(com.android.internal.R.id.action_bar);
        if (view != null) {
        	LinearLayout splitView = 
        		(LinearLayout) findViewById(com.android.internal.R.id.context_action_bar);
        	if (splitView != null) {
        		mActionBar = new SplitActionBar(view, splitView);
        	}
        } else {
            Log.e(TAG, "Could not create action bar; view not found in window decor.");
        }
    }
    
    /**
     * Set the activity content from a layout resource.  The resource will be
     * inflated, adding all top-level views to the activity.
@@ -1812,6 +1849,7 @@ public class Activity extends ContextThemeWrapper
     */
    public void setContentView(int layoutResID) {
        getWindow().setContentView(layoutResID);
        initActionBar();
    }

    /**
@@ -1823,6 +1861,7 @@ public class Activity extends ContextThemeWrapper
     */
    public void setContentView(View view) {
        getWindow().setContentView(view);
        initActionBar();
    }

    /**
@@ -1835,6 +1874,7 @@ public class Activity extends ContextThemeWrapper
     */
    public void setContentView(View view, ViewGroup.LayoutParams params) {
        getWindow().setContentView(view, params);
        initActionBar();
    }

    /**
@@ -1846,6 +1886,7 @@ public class Activity extends ContextThemeWrapper
     */
    public void addContentView(View view, ViewGroup.LayoutParams params) {
        getWindow().addContentView(view, params);
        initActionBar();
    }

    /**
+625 −0

File added.

Preview size limit exceeded, changes collapsed.

+47 −3

File changed.

Preview size limit exceeded, changes collapsed.

Loading