Loading api/3.xml +2 −2 Original line number Diff line number Diff line Loading @@ -88575,7 +88575,7 @@ deprecated="not deprecated" visibility="public" > <parameter name="predicates" type="com.android.internal.util.Predicate..."> <parameter name="predicates" type="com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>..."> </parameter> </method> <method name="build" Loading Loading @@ -169353,7 +169353,7 @@ > <parameter name="loader" type="java.lang.ClassLoader"> </parameter> <parameter name="interfaces" type="java.lang.Class..."> <parameter name="interfaces" type="java.lang.Class<?>..."> </parameter> <exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException"> </exception> api/current.xml +180 −36 Original line number Diff line number Diff line Loading @@ -3100,6 +3100,17 @@ visibility="public" > </field> <field name="fillEnabled" type="int" transient="false" volatile="false" value="16843349" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="fillViewport" type="int" transient="false" Loading Loading @@ -3859,6 +3870,17 @@ visibility="public" > </field> <field name="isScrollContainer" type="int" transient="false" volatile="false" value="16843348" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="isSticky" type="int" transient="false" Loading Loading @@ -56395,6 +56417,8 @@ deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="getCurrentInputBinding" return="android.view.inputmethod.InputBinding" Loading Loading @@ -56693,6 +56717,19 @@ <parameter name="event" type="android.view.KeyEvent"> </parameter> </method> <method name="onShowRequested" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="onStartInput" return="void" abstract="false" Loading Loading @@ -56964,6 +57001,8 @@ deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="startInput" return="void" Loading Loading @@ -72058,7 +72097,7 @@ synchronized="false" static="true" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="port" type="int"> Loading Loading @@ -96698,7 +96737,7 @@ deprecated="not deprecated" visibility="public" > <parameter name="predicates" type="com.android.internal.util.Predicate..."> <parameter name="predicates" type="com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>..."> </parameter> </method> <method name="build" Loading Loading @@ -119356,6 +119395,17 @@ visibility="protected" > </method> <method name="onCheckIsTextEditor" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="onCreateContextMenu" return="void" abstract="false" Loading Loading @@ -125692,6 +125742,19 @@ visibility="public" > </method> <method name="mayUseInputMethod" return="boolean" abstract="false" native="false" synchronized="false" static="true" final="false" deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="setTitle" return="void" abstract="false" Loading Loading @@ -125961,17 +126024,6 @@ visibility="public" > </field> <field name="FLAG_RESTORED_STATE" type="int" transient="false" volatile="false" value="524288" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="FLAG_SCALED" type="int" transient="false" Loading Loading @@ -126159,6 +126211,17 @@ visibility="public" > </field> <field name="SOFT_INPUT_IS_FORWARD_NAVIGATION" type="int" transient="false" volatile="false" value="256" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="SOFT_INPUT_MASK_ADJUST" type="int" transient="false" Loading Loading @@ -126192,11 +126255,11 @@ visibility="public" > </field> <field name="SOFT_INPUT_STATE_FIRST_VISIBLE" <field name="SOFT_INPUT_STATE_ALWAYS_VISIBLE" type="int" transient="false" volatile="false" value="3" value="4" static="true" final="true" deprecated="not deprecated" Loading Loading @@ -126240,7 +126303,7 @@ type="int" transient="false" volatile="false" value="4" value="3" static="true" final="true" deprecated="not deprecated" Loading Loading @@ -127025,6 +127088,17 @@ <parameter name="parentHeight" type="int"> </parameter> </method> <method name="isFillEnabled" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="isInitialized" return="boolean" abstract="false" Loading Loading @@ -127144,6 +127218,19 @@ <parameter name="fillBefore" type="boolean"> </parameter> </method> <method name="setFillEnabled" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="fillEnabled" type="boolean"> </parameter> </method> <method name="setInterpolator" return="void" abstract="false" Loading Loading @@ -130030,6 +130117,8 @@ deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="startInput" return="void" Loading Loading @@ -130077,6 +130166,17 @@ visibility="public" > </field> <field name="SHOW_EXPLICIT" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </interface> <interface name="InputMethod.SessionCallback" abstract="true" Loading Loading @@ -130353,6 +130453,8 @@ > <parameter name="token" type="android.os.IBinder"> </parameter> <parameter name="flags" type="int"> </parameter> </method> <method name="hideSoftInputFromWindow" return="void" Loading @@ -130366,6 +130468,8 @@ > <parameter name="windowToken" type="android.os.IBinder"> </parameter> <parameter name="flags" type="int"> </parameter> </method> <method name="isAcceptingText" return="boolean" Loading Loading @@ -130415,25 +130519,6 @@ <parameter name="view" type="android.view.View"> </parameter> </method> <method name="onWindowFocus" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="focusedView" type="android.view.View"> </parameter> <parameter name="softInputMode" type="int"> </parameter> <parameter name="first" type="boolean"> </parameter> <parameter name="windowFlags" type="int"> </parameter> </method> <method name="restartInput" return="void" abstract="false" Loading Loading @@ -130485,6 +130570,8 @@ > <parameter name="view" type="android.view.View"> </parameter> <parameter name="flags" type="int"> </parameter> </method> <method name="updateCursor" return="void" Loading Loading @@ -130560,6 +130647,28 @@ <parameter name="iconPackage" type="java.lang.String"> </parameter> </method> <field name="HIDE_IMPLICIT_ONLY" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="SHOW_IMPLICIT" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </class> <interface name="InputMethodSession" abstract="true" Loading Loading @@ -137741,6 +137850,17 @@ <parameter name="defStyle" type="int"> </parameter> </constructor> <method name="clearListSelection" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="convertSelectionToString" return="java.lang.CharSequence" abstract="false" Loading Loading @@ -137820,6 +137940,17 @@ visibility="public" > </method> <method name="getListSelection" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getOnItemClickListener" return="android.widget.AdapterView.OnItemClickListener" abstract="false" Loading Loading @@ -137964,6 +138095,19 @@ <parameter name="hint" type="java.lang.CharSequence"> </parameter> </method> <method name="setListSelection" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="position" type="int"> </parameter> </method> <method name="setOnItemClickListener" return="void" abstract="false" Loading Loading @@ -183719,7 +183863,7 @@ > <parameter name="loader" type="java.lang.ClassLoader"> </parameter> <parameter name="interfaces" type="java.lang.Class..."> <parameter name="interfaces" type="java.lang.Class<?>..."> </parameter> <exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException"> </exception> cmds/runtime/Android.mk +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ LOCAL_SHARED_LIBRARIES := \ libcutils \ libui \ libsystem_server \ libhardware libhardware_legacy LOCAL_C_INCLUDES := \ $(JNI_H_INCLUDE) Loading core/java/android/app/ActivityThread.java +25 −6 Original line number Diff line number Diff line Loading @@ -1072,6 +1072,7 @@ public final class ActivityThread { List<Intent> pendingIntents; boolean startsNotResumed; boolean isForward; ActivityRecord() { parent = null; Loading Loading @@ -1225,8 +1226,8 @@ public final class ActivityThread { token); } public final void scheduleResumeActivity(IBinder token) { queueOrSendMessage(H.RESUME_ACTIVITY, token); public final void scheduleResumeActivity(IBinder token, boolean isForward) { queueOrSendMessage(H.RESUME_ACTIVITY, token, isForward ? 1 : 0); } public final void scheduleSendResult(IBinder token, List<ResultInfo> results) { Loading @@ -1240,7 +1241,7 @@ public final class ActivityThread { // activity itself back to the activity manager. (matters more with ipc) public final void scheduleLaunchActivity(Intent intent, IBinder token, ActivityInfo info, Bundle state, List<ResultInfo> pendingResults, List<Intent> pendingNewIntents, boolean notResumed) { List<Intent> pendingNewIntents, boolean notResumed, boolean isForward) { ActivityRecord r = new ActivityRecord(); r.token = token; Loading @@ -1252,6 +1253,7 @@ public final class ActivityThread { r.pendingIntents = pendingNewIntents; r.startsNotResumed = notResumed; r.isForward = isForward; queueOrSendMessage(H.LAUNCH_ACTIVITY, r); } Loading Loading @@ -1604,7 +1606,8 @@ public final class ActivityThread { handleWindowVisibility((IBinder)msg.obj, false); break; case RESUME_ACTIVITY: handleResumeActivity((IBinder)msg.obj, true); handleResumeActivity((IBinder)msg.obj, true, msg.arg1 != 0); break; case SEND_RESULT: handleSendResult((ResultData)msg.obj); Loading Loading @@ -2167,7 +2170,7 @@ public final class ActivityThread { Activity a = performLaunchActivity(r); if (a != null) { handleResumeActivity(r.token, false); handleResumeActivity(r.token, false, r.isForward); if (!r.activity.mFinished && r.startsNotResumed) { // The activity manager actually wants this one to start out Loading Loading @@ -2522,7 +2525,7 @@ public final class ActivityThread { return r; } final void handleResumeActivity(IBinder token, boolean clearHide) { final void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward) { // If we are getting ready to gc after going to the background, well // we are back active so skip it. unscheduleGcIdler(); Loading @@ -2537,6 +2540,9 @@ public final class ActivityThread { a.mStartedActivity + ", hideForNow: " + r.hideForNow + ", finished: " + a.mFinished); final int forwardBit = isForward ? WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION : 0; // If the window hasn't yet been added to the window manager, // and this guy didn't finish itself or start another activity, // then go ahead and add the window. Loading @@ -2548,6 +2554,7 @@ public final class ActivityThread { WindowManager.LayoutParams l = r.window.getAttributes(); a.mDecor = decor; l.type = WindowManager.LayoutParams.TYPE_BASE_APPLICATION; l.softInputMode |= forwardBit; wm.addView(decor, l); // If the window has already been added, but during resume Loading @@ -2567,6 +2574,18 @@ public final class ActivityThread { performConfigurationChanged(r.activity, r.newConfig); r.newConfig = null; } Log.v(TAG, "Resuming " + r + " with isForward=" + isForward); WindowManager.LayoutParams l = r.window.getAttributes(); if ((l.softInputMode & WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION) != forwardBit) { l.softInputMode = (l.softInputMode & (~WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION)) | forwardBit; ViewManager wm = a.getWindowManager(); View decor = r.window.getDecorView(); wm.updateViewLayout(decor, l); } r.activity.mDecor.setVisibility(View.VISIBLE); mNumVisibleActivities++; } Loading core/java/android/app/AlertDialog.java +10 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.os.Bundle; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.Button; import android.widget.ListAdapter; Loading @@ -41,6 +42,15 @@ import com.android.internal.app.AlertController; * FrameLayout fl = (FrameLayout) findViewById(R.id.body); * fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT)); * </pre> * * <p>The AlertDialog class takes care of automatically setting * {@link WindowManager.LayoutParams#FLAG_ALT_FOCUSABLE_IM * WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM} for you based on whether * any views in the dialog return true from {@link View#onCheckIsTextEditor() * View.onCheckIsTextEditor()}. Generally you want this set for a Dialog * without text editors, so that it will be placed on top of the current * input method UI. You can modify this behavior by forcing the flag to your * desired mode after calling {@link #onCreate}. */ public class AlertDialog extends Dialog implements DialogInterface { private AlertController mAlert; Loading Loading
api/3.xml +2 −2 Original line number Diff line number Diff line Loading @@ -88575,7 +88575,7 @@ deprecated="not deprecated" visibility="public" > <parameter name="predicates" type="com.android.internal.util.Predicate..."> <parameter name="predicates" type="com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>..."> </parameter> </method> <method name="build" Loading Loading @@ -169353,7 +169353,7 @@ > <parameter name="loader" type="java.lang.ClassLoader"> </parameter> <parameter name="interfaces" type="java.lang.Class..."> <parameter name="interfaces" type="java.lang.Class<?>..."> </parameter> <exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException"> </exception>
api/current.xml +180 −36 Original line number Diff line number Diff line Loading @@ -3100,6 +3100,17 @@ visibility="public" > </field> <field name="fillEnabled" type="int" transient="false" volatile="false" value="16843349" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="fillViewport" type="int" transient="false" Loading Loading @@ -3859,6 +3870,17 @@ visibility="public" > </field> <field name="isScrollContainer" type="int" transient="false" volatile="false" value="16843348" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="isSticky" type="int" transient="false" Loading Loading @@ -56395,6 +56417,8 @@ deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="getCurrentInputBinding" return="android.view.inputmethod.InputBinding" Loading Loading @@ -56693,6 +56717,19 @@ <parameter name="event" type="android.view.KeyEvent"> </parameter> </method> <method name="onShowRequested" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="onStartInput" return="void" abstract="false" Loading Loading @@ -56964,6 +57001,8 @@ deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="startInput" return="void" Loading Loading @@ -72058,7 +72097,7 @@ synchronized="false" static="true" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="port" type="int"> Loading Loading @@ -96698,7 +96737,7 @@ deprecated="not deprecated" visibility="public" > <parameter name="predicates" type="com.android.internal.util.Predicate..."> <parameter name="predicates" type="com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>..."> </parameter> </method> <method name="build" Loading Loading @@ -119356,6 +119395,17 @@ visibility="protected" > </method> <method name="onCheckIsTextEditor" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="onCreateContextMenu" return="void" abstract="false" Loading Loading @@ -125692,6 +125742,19 @@ visibility="public" > </method> <method name="mayUseInputMethod" return="boolean" abstract="false" native="false" synchronized="false" static="true" final="false" deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="setTitle" return="void" abstract="false" Loading Loading @@ -125961,17 +126024,6 @@ visibility="public" > </field> <field name="FLAG_RESTORED_STATE" type="int" transient="false" volatile="false" value="524288" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="FLAG_SCALED" type="int" transient="false" Loading Loading @@ -126159,6 +126211,17 @@ visibility="public" > </field> <field name="SOFT_INPUT_IS_FORWARD_NAVIGATION" type="int" transient="false" volatile="false" value="256" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="SOFT_INPUT_MASK_ADJUST" type="int" transient="false" Loading Loading @@ -126192,11 +126255,11 @@ visibility="public" > </field> <field name="SOFT_INPUT_STATE_FIRST_VISIBLE" <field name="SOFT_INPUT_STATE_ALWAYS_VISIBLE" type="int" transient="false" volatile="false" value="3" value="4" static="true" final="true" deprecated="not deprecated" Loading Loading @@ -126240,7 +126303,7 @@ type="int" transient="false" volatile="false" value="4" value="3" static="true" final="true" deprecated="not deprecated" Loading Loading @@ -127025,6 +127088,17 @@ <parameter name="parentHeight" type="int"> </parameter> </method> <method name="isFillEnabled" return="boolean" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="isInitialized" return="boolean" abstract="false" Loading Loading @@ -127144,6 +127218,19 @@ <parameter name="fillBefore" type="boolean"> </parameter> </method> <method name="setFillEnabled" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="fillEnabled" type="boolean"> </parameter> </method> <method name="setInterpolator" return="void" abstract="false" Loading Loading @@ -130030,6 +130117,8 @@ deprecated="not deprecated" visibility="public" > <parameter name="flags" type="int"> </parameter> </method> <method name="startInput" return="void" Loading Loading @@ -130077,6 +130166,17 @@ visibility="public" > </field> <field name="SHOW_EXPLICIT" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </interface> <interface name="InputMethod.SessionCallback" abstract="true" Loading Loading @@ -130353,6 +130453,8 @@ > <parameter name="token" type="android.os.IBinder"> </parameter> <parameter name="flags" type="int"> </parameter> </method> <method name="hideSoftInputFromWindow" return="void" Loading @@ -130366,6 +130468,8 @@ > <parameter name="windowToken" type="android.os.IBinder"> </parameter> <parameter name="flags" type="int"> </parameter> </method> <method name="isAcceptingText" return="boolean" Loading Loading @@ -130415,25 +130519,6 @@ <parameter name="view" type="android.view.View"> </parameter> </method> <method name="onWindowFocus" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="focusedView" type="android.view.View"> </parameter> <parameter name="softInputMode" type="int"> </parameter> <parameter name="first" type="boolean"> </parameter> <parameter name="windowFlags" type="int"> </parameter> </method> <method name="restartInput" return="void" abstract="false" Loading Loading @@ -130485,6 +130570,8 @@ > <parameter name="view" type="android.view.View"> </parameter> <parameter name="flags" type="int"> </parameter> </method> <method name="updateCursor" return="void" Loading Loading @@ -130560,6 +130647,28 @@ <parameter name="iconPackage" type="java.lang.String"> </parameter> </method> <field name="HIDE_IMPLICIT_ONLY" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="SHOW_IMPLICIT" type="int" transient="false" volatile="false" value="1" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> </class> <interface name="InputMethodSession" abstract="true" Loading Loading @@ -137741,6 +137850,17 @@ <parameter name="defStyle" type="int"> </parameter> </constructor> <method name="clearListSelection" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="convertSelectionToString" return="java.lang.CharSequence" abstract="false" Loading Loading @@ -137820,6 +137940,17 @@ visibility="public" > </method> <method name="getListSelection" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > </method> <method name="getOnItemClickListener" return="android.widget.AdapterView.OnItemClickListener" abstract="false" Loading Loading @@ -137964,6 +138095,19 @@ <parameter name="hint" type="java.lang.CharSequence"> </parameter> </method> <method name="setListSelection" return="void" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public" > <parameter name="position" type="int"> </parameter> </method> <method name="setOnItemClickListener" return="void" abstract="false" Loading Loading @@ -183719,7 +183863,7 @@ > <parameter name="loader" type="java.lang.ClassLoader"> </parameter> <parameter name="interfaces" type="java.lang.Class..."> <parameter name="interfaces" type="java.lang.Class<?>..."> </parameter> <exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException"> </exception>
cmds/runtime/Android.mk +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ LOCAL_SHARED_LIBRARIES := \ libcutils \ libui \ libsystem_server \ libhardware libhardware_legacy LOCAL_C_INCLUDES := \ $(JNI_H_INCLUDE) Loading
core/java/android/app/ActivityThread.java +25 −6 Original line number Diff line number Diff line Loading @@ -1072,6 +1072,7 @@ public final class ActivityThread { List<Intent> pendingIntents; boolean startsNotResumed; boolean isForward; ActivityRecord() { parent = null; Loading Loading @@ -1225,8 +1226,8 @@ public final class ActivityThread { token); } public final void scheduleResumeActivity(IBinder token) { queueOrSendMessage(H.RESUME_ACTIVITY, token); public final void scheduleResumeActivity(IBinder token, boolean isForward) { queueOrSendMessage(H.RESUME_ACTIVITY, token, isForward ? 1 : 0); } public final void scheduleSendResult(IBinder token, List<ResultInfo> results) { Loading @@ -1240,7 +1241,7 @@ public final class ActivityThread { // activity itself back to the activity manager. (matters more with ipc) public final void scheduleLaunchActivity(Intent intent, IBinder token, ActivityInfo info, Bundle state, List<ResultInfo> pendingResults, List<Intent> pendingNewIntents, boolean notResumed) { List<Intent> pendingNewIntents, boolean notResumed, boolean isForward) { ActivityRecord r = new ActivityRecord(); r.token = token; Loading @@ -1252,6 +1253,7 @@ public final class ActivityThread { r.pendingIntents = pendingNewIntents; r.startsNotResumed = notResumed; r.isForward = isForward; queueOrSendMessage(H.LAUNCH_ACTIVITY, r); } Loading Loading @@ -1604,7 +1606,8 @@ public final class ActivityThread { handleWindowVisibility((IBinder)msg.obj, false); break; case RESUME_ACTIVITY: handleResumeActivity((IBinder)msg.obj, true); handleResumeActivity((IBinder)msg.obj, true, msg.arg1 != 0); break; case SEND_RESULT: handleSendResult((ResultData)msg.obj); Loading Loading @@ -2167,7 +2170,7 @@ public final class ActivityThread { Activity a = performLaunchActivity(r); if (a != null) { handleResumeActivity(r.token, false); handleResumeActivity(r.token, false, r.isForward); if (!r.activity.mFinished && r.startsNotResumed) { // The activity manager actually wants this one to start out Loading Loading @@ -2522,7 +2525,7 @@ public final class ActivityThread { return r; } final void handleResumeActivity(IBinder token, boolean clearHide) { final void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward) { // If we are getting ready to gc after going to the background, well // we are back active so skip it. unscheduleGcIdler(); Loading @@ -2537,6 +2540,9 @@ public final class ActivityThread { a.mStartedActivity + ", hideForNow: " + r.hideForNow + ", finished: " + a.mFinished); final int forwardBit = isForward ? WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION : 0; // If the window hasn't yet been added to the window manager, // and this guy didn't finish itself or start another activity, // then go ahead and add the window. Loading @@ -2548,6 +2554,7 @@ public final class ActivityThread { WindowManager.LayoutParams l = r.window.getAttributes(); a.mDecor = decor; l.type = WindowManager.LayoutParams.TYPE_BASE_APPLICATION; l.softInputMode |= forwardBit; wm.addView(decor, l); // If the window has already been added, but during resume Loading @@ -2567,6 +2574,18 @@ public final class ActivityThread { performConfigurationChanged(r.activity, r.newConfig); r.newConfig = null; } Log.v(TAG, "Resuming " + r + " with isForward=" + isForward); WindowManager.LayoutParams l = r.window.getAttributes(); if ((l.softInputMode & WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION) != forwardBit) { l.softInputMode = (l.softInputMode & (~WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION)) | forwardBit; ViewManager wm = a.getWindowManager(); View decor = r.window.getDecorView(); wm.updateViewLayout(decor, l); } r.activity.mDecor.setVisibility(View.VISIBLE); mNumVisibleActivities++; } Loading
core/java/android/app/AlertDialog.java +10 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.os.Bundle; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.Button; import android.widget.ListAdapter; Loading @@ -41,6 +42,15 @@ import com.android.internal.app.AlertController; * FrameLayout fl = (FrameLayout) findViewById(R.id.body); * fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT)); * </pre> * * <p>The AlertDialog class takes care of automatically setting * {@link WindowManager.LayoutParams#FLAG_ALT_FOCUSABLE_IM * WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM} for you based on whether * any views in the dialog return true from {@link View#onCheckIsTextEditor() * View.onCheckIsTextEditor()}. Generally you want this set for a Dialog * without text editors, so that it will be placed on top of the current * input method UI. You can modify this behavior by forcing the flag to your * desired mode after calling {@link #onCreate}. */ public class AlertDialog extends Dialog implements DialogInterface { private AlertController mAlert; Loading