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

Commit dbb4ecff authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Fix issue #3258849: Grab thumbnail when exiting an app via back"

parents 1b198ea6 d2835935
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -24439,6 +24439,17 @@
 visibility="public"
>
</field>
<field name="RECENT_IGNORE_UNAVAILABLE"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="RECENT_WITH_EXCLUDED"
 type="int"
 transient="false"
@@ -24450,6 +24461,17 @@
 visibility="public"
>
</field>
<field name="TASKS_GET_THUMBNAILS"
 type="int"
 transient="false"
 volatile="false"
 value="4096"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<class name="ActivityManager.MemoryInfo"
 extends="java.lang.Object"
@@ -24818,6 +24840,16 @@
 visibility="public"
>
</field>
<field name="description"
 type="java.lang.CharSequence"
 transient="false"
 volatile="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="id"
 type="int"
 transient="false"
@@ -24838,6 +24870,16 @@
 visibility="public"
>
</field>
<field name="thumbnail"
 type="android.graphics.Bitmap"
 transient="false"
 volatile="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<class name="ActivityManager.RunningAppProcessInfo"
 extends="java.lang.Object"
+38 −4
Original line number Diff line number Diff line
@@ -94,6 +94,17 @@ public class ActivityManager {
         */
        public ComponentName origActivity;

        /**
         * Thumbnail representation of the task's last state.  Must
         * use {@link ActivityManager#TASKS_GET_THUMBNAILS} to have this set.
         */
        public Bitmap thumbnail;

        /**
         * Description of the task's last state.
         */
        public CharSequence description;
        
        public RecentTaskInfo() {
        }

@@ -110,6 +121,14 @@ public class ActivityManager {
                dest.writeInt(0);
            }
            ComponentName.writeToParcel(origActivity, dest);
            if (thumbnail != null) {
                dest.writeInt(1);
                thumbnail.writeToParcel(dest, 0);
            } else {
                dest.writeInt(0);
            }
            TextUtils.writeToParcel(description, dest,
                    Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
        }

        public void readFromParcel(Parcel source) {
@@ -120,6 +139,12 @@ public class ActivityManager {
                baseIntent = null;
            }
            origActivity = ComponentName.readFromParcel(source);
            if (source.readInt() != 0) {
                thumbnail = Bitmap.CREATOR.createFromParcel(source);
            } else {
                thumbnail = null;
            }
            description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
        }
        
        public static final Creator<RecentTaskInfo> CREATOR
@@ -145,12 +170,17 @@ public class ActivityManager {
    public static final int RECENT_WITH_EXCLUDED = 0x0001;
    
    /**
     * @hide
     * TODO: Make this public.  Provides a list that does not contain any
     * Provides a list that does not contain any
     * recent tasks that currently are not available to the user.
     */
    public static final int RECENT_IGNORE_UNAVAILABLE = 0x0002;

    /**
     * Flag for use with {@link #getRecentTasks}: also return the thumbnail
     * bitmap (if available) for each recent task.
     */
    public static final int TASKS_GET_THUMBNAILS = 0x0001000;
    
    /**
     * Return a list of the tasks that the user has recently launched, with
     * the most recent being first and older ones after in order.
@@ -158,6 +188,9 @@ public class ActivityManager {
     * @param maxNum The maximum number of entries to return in the list.  The
     * actual number returned may be smaller, depending on how many tasks the
     * user has started and the maximum number the system can remember.
     * @param flags Information about what to return.  May be any combination
     * of {@link #RECENT_WITH_EXCLUDED}, {@link #RECENT_IGNORE_UNAVAILABLE},
     * and {@link #TASKS_GET_THUMBNAILS}.
     * 
     * @return Returns a list of RecentTaskInfo records describing each of
     * the recent tasks.
@@ -203,7 +236,8 @@ public class ActivityManager {
        public ComponentName topActivity;

        /**
         * Thumbnail representation of the task's current state.
         * Thumbnail representation of the task's current state.  Must
         * use {@link ActivityManager#TASKS_GET_THUMBNAILS} to have this set.
         */
        public Bitmap thumbnail;

+12 −6
Original line number Diff line number Diff line
@@ -233,19 +233,25 @@ final class BackStackRecord extends FragmentTransaction implements
            Op op = mHead;
            int num = 0;
            while (op != null) {
                writer.print(prefix); writer.print("  #"); writer.print(num);
                        writer.print(" "); writer.print(op); writer.println(":");
                writer.print(prefix); writer.print("  Op #"); writer.print(num);
                        writer.println(":");
                writer.print(innerPrefix); writer.print("cmd="); writer.print(op.cmd);
                        writer.println("fragment="); writer.println(op.fragment);
                        writer.print(" fragment="); writer.println(op.fragment);
                if (op.enterAnim != 0 || op.exitAnim != 0) {
                    writer.print(prefix); writer.print("enterAnim="); writer.print(op.enterAnim);
                            writer.print(" exitAnim="); writer.println(op.exitAnim);
                }
                if (op.removed != null && op.removed.size() > 0) {
                    for (int i=0; i<op.removed.size(); i++) {
                        writer.print(innerPrefix); writer.println("Removed:");
                        writer.print(innerPrefix);
                        if (op.removed.size() == 1) {
                            writer.print("Removed: ");
                        } else {
                            writer.println("Removed:");
                            writer.print(innerPrefix); writer.print("  #"); writer.print(num);
                                writer.print(": "); writer.println(op.removed.get(i));
                                    writer.print(": "); 
                        }
                        writer.println(op.removed.get(i));
                    }
                }
                op = op.next;
+10 −1
Original line number Diff line number Diff line
@@ -526,7 +526,16 @@ public class Fragment implements ComponentCallbacks, OnCreateContextMenuListener
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(128);
        sb.append("Fragment{");
        String simpleName = getClass().getSimpleName();
        if (simpleName == null || simpleName.isEmpty()) {
            simpleName = getClass().getName();
            int end = simpleName.lastIndexOf('.');
            if (end > 0) {
                simpleName = simpleName.substring(end+1);
            }
        }
        sb.append(simpleName);
        sb.append("{");
        sb.append(Integer.toHexString(System.identityHashCode(this)));
        if (mIndex >= 0) {
            sb.append(" #");
+3 −1
Original line number Diff line number Diff line
@@ -293,7 +293,7 @@ final class FragmentManagerState implements Parcelable {
 * Container for fragments associated with an activity.
 */
final class FragmentManagerImpl extends FragmentManager {
    static final boolean DEBUG = true;
    static final boolean DEBUG = false;
    static final String TAG = "FragmentManager";
    
    static final String TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state";
@@ -562,6 +562,7 @@ final class FragmentManagerImpl extends FragmentManager {
                        }
                    }
                    f.mActivity = mActivity;
                    f.mFragmentManager = mActivity.mFragments;
                    f.mCalled = false;
                    f.onAttach(mActivity);
                    if (!f.mCalled) {
@@ -737,6 +738,7 @@ final class FragmentManagerImpl extends FragmentManager {
                        }
                        f.mImmediateActivity = null;
                        f.mActivity = null;
                        f.mFragmentManager = null;
                    }
            }
        }
Loading