diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-09-08 21:41:36 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-09-08 21:41:36 +0000 |
commit | d668dfb497f1e0bb31f9cd0337cf3be0a2a5b888 (patch) | |
tree | 31d8f75857fdc485d7f93604f873b8623d7caacd /src/com/android/launcher3/util | |
parent | 5ee1b214c3c05e58230d21e2a961beb8f119c124 (diff) | |
parent | 2100c78bd903456a11a0ed03602419b21f6a2766 (diff) | |
download | android_packages_apps_Trebuchet-d668dfb497f1e0bb31f9cd0337cf3be0a2a5b888.tar.gz android_packages_apps_Trebuchet-d668dfb497f1e0bb31f9cd0337cf3be0a2a5b888.tar.bz2 android_packages_apps_Trebuchet-d668dfb497f1e0bb31f9cd0337cf3be0a2a5b888.zip |
Launcher restore state fixes:
am: 2100c78bd9
Change-Id: I8de4f0c98cff8764a764c06efeade9d6a26319dd
Diffstat (limited to 'src/com/android/launcher3/util')
-rw-r--r-- | src/com/android/launcher3/util/ActivityResultInfo.java | 70 | ||||
-rw-r--r-- | src/com/android/launcher3/util/PendingRequestArgs.java | 127 |
2 files changed, 197 insertions, 0 deletions
diff --git a/src/com/android/launcher3/util/ActivityResultInfo.java b/src/com/android/launcher3/util/ActivityResultInfo.java new file mode 100644 index 000000000..2261bee8c --- /dev/null +++ b/src/com/android/launcher3/util/ActivityResultInfo.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2016 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.launcher3.util; + +import android.content.Intent; +import android.os.Parcel; +import android.os.Parcelable; + +/** + * Utility class which stores information from onActivityResult + */ +public class ActivityResultInfo implements Parcelable { + + public final int requestCode; + public final int resultCode; + public final Intent data; + + public ActivityResultInfo(int requestCode, int resultCode, Intent data) { + this.requestCode = requestCode; + this.resultCode = resultCode; + this.data = data; + } + + private ActivityResultInfo(Parcel parcel) { + requestCode = parcel.readInt(); + resultCode = parcel.readInt(); + data = parcel.readInt() != 0 ? Intent.CREATOR.createFromParcel(parcel) : null; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(requestCode); + dest.writeInt(resultCode); + if (data != null) { + dest.writeInt(1); + data.writeToParcel(dest, flags); + } else { + dest.writeInt(0); + } + } + + public static final Parcelable.Creator<ActivityResultInfo> CREATOR = + new Parcelable.Creator<ActivityResultInfo>() { + public ActivityResultInfo createFromParcel(Parcel source) { + return new ActivityResultInfo(source); + } + + public ActivityResultInfo[] newArray(int size) { + return new ActivityResultInfo[size]; + } + }; +} diff --git a/src/com/android/launcher3/util/PendingRequestArgs.java b/src/com/android/launcher3/util/PendingRequestArgs.java new file mode 100644 index 000000000..4e402f348 --- /dev/null +++ b/src/com/android/launcher3/util/PendingRequestArgs.java @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2016 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.launcher3.util; + +import android.content.ContentValues; +import android.content.Intent; +import android.os.Parcel; +import android.os.Parcelable; + +import com.android.launcher3.ItemInfo; +import com.android.launcher3.LauncherAppWidgetProviderInfo; + +/** + * Utility class to store information regarding a pending request made by launcher. This information + * can be saved across launcher instances. + */ +public class PendingRequestArgs extends ItemInfo implements Parcelable { + + private static final int TYPE_NONE = 0; + private static final int TYPE_INTENT = 1; + private static final int TYPE_APP_WIDGET = 2; + + private final int mArg1; + private final int mObjectType; + private final Parcelable mObject; + + public PendingRequestArgs(ItemInfo info) { + mArg1 = 0; + mObjectType = TYPE_NONE; + mObject = null; + + copyFrom(info); + } + + private PendingRequestArgs(int arg1, int objectType, Parcelable object) { + mArg1 = arg1; + mObjectType = objectType; + mObject = object; + } + + public PendingRequestArgs(Parcel parcel) { + readFromValues(ContentValues.CREATOR.createFromParcel(parcel)); + + mArg1 = parcel.readInt(); + mObjectType = parcel.readInt(); + if (parcel.readInt() != 0) { + mObject = mObjectType == TYPE_INTENT + ? Intent.CREATOR.createFromParcel(parcel) + : new LauncherAppWidgetProviderInfo(parcel); + } else { + mObject = null; + } + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + ContentValues itemValues = new ContentValues(); + writeToValues(itemValues); + + dest.writeInt(mArg1); + dest.writeInt(mObjectType); + if (mObject != null) { + dest.writeInt(1); + mObject.writeToParcel(dest, flags); + } else { + dest.writeInt(0); + } + } + + public LauncherAppWidgetProviderInfo getWidgetProvider() { + return mObjectType == TYPE_APP_WIDGET ? (LauncherAppWidgetProviderInfo) mObject : null; + } + + public int getWidgetId() { + return mObjectType == TYPE_APP_WIDGET ? mArg1 : 0; + } + + public Intent getPendingIntent() { + return mObjectType == TYPE_INTENT ? (Intent) mObject : null; + } + + public int getRequestCode() { + return mObjectType == TYPE_INTENT ? mArg1 : 0; + } + + public static PendingRequestArgs forWidgetInfo( + int appWidgetId, LauncherAppWidgetProviderInfo widgetInfo, ItemInfo info) { + PendingRequestArgs args = new PendingRequestArgs(appWidgetId, TYPE_APP_WIDGET, widgetInfo); + args.copyFrom(info); + return args; + } + + public static PendingRequestArgs forIntent(int requestCode, Intent intent, ItemInfo info) { + PendingRequestArgs args = new PendingRequestArgs(requestCode, TYPE_INTENT, intent); + args.copyFrom(info); + return args; + } + + public static final Parcelable.Creator<PendingRequestArgs> CREATOR = + new Parcelable.Creator<PendingRequestArgs>() { + public PendingRequestArgs createFromParcel(Parcel source) { + return new PendingRequestArgs(source); + } + + public PendingRequestArgs[] newArray(int size) { + return new PendingRequestArgs[size]; + } + }; +} |