PinWidgetFlowHandler.java revision 8a0dc38aebdc7624db3de2cdfecb9d11e2baee04
18a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal/* 28a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * Copyright (C) 2017 The Android Open Source Project 38a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * 48a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * Licensed under the Apache License, Version 2.0 (the "License"); 58a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * you may not use this file except in compliance with the License. 68a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * You may obtain a copy of the License at 78a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * 88a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * http://www.apache.org/licenses/LICENSE-2.0 98a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * 108a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * Unless required by applicable law or agreed to in writing, software 118a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * distributed under the License is distributed on an "AS IS" BASIS, 128a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * See the License for the specific language governing permissions and 148a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * limitations under the License. 158a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal */ 168a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 178a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalpackage com.android.launcher3.dragndrop; 188a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 198a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport android.appwidget.AppWidgetManager; 208a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport android.appwidget.AppWidgetProviderInfo; 218a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport android.os.Bundle; 228a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport android.os.Parcel; 238a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport android.os.Parcelable; 248a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 258a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport com.android.launcher3.ItemInfo; 268a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport com.android.launcher3.Launcher; 278a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport com.android.launcher3.compat.PinItemRequestCompat; 288a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalimport com.android.launcher3.widget.WidgetAddFlowHandler; 298a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 308a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal/** 318a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * Extension of WidgetAddFlowHandler to handle pin item request behavior. 328a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * 338a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * No config activity is shown even if it is defined in widget config. And a callback is sent when 348a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal * the widget is bound. 358a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal */ 368a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyalpublic class PinWidgetFlowHandler extends WidgetAddFlowHandler implements Parcelable { 378a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 388a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal private final PinItemRequestCompat mRequest; 398a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 408a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public PinWidgetFlowHandler(AppWidgetProviderInfo providerInfo, PinItemRequestCompat request) { 418a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal super(providerInfo); 428a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal mRequest = request; 438a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 448a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 458a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal protected PinWidgetFlowHandler(Parcel parcel) { 468a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal super(parcel); 478a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal mRequest = PinItemRequestCompat.CREATOR.createFromParcel(parcel); 488a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 498a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 508a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal @Override 518a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public void writeToParcel(Parcel parcel, int i) { 528a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal super.writeToParcel(parcel, i); 538a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal mRequest.writeToParcel(parcel, i); 548a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 558a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 568a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal @Override 578a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public boolean startConfigActivity(Launcher launcher, int appWidgetId, ItemInfo info, 588a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal int requestCode) { 598a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal Bundle extras = new Bundle(); 608a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal extras.putInt(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 618a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal mRequest.accept(extras); 628a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal return false; 638a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 648a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 658a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal @Override 668a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public boolean needsConfigure() { 678a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal return false; 688a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 698a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 708a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public static final Parcelable.Creator<PinWidgetFlowHandler> CREATOR = 718a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal new Parcelable.Creator<PinWidgetFlowHandler>() { 728a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public PinWidgetFlowHandler createFromParcel(Parcel source) { 738a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal return new PinWidgetFlowHandler(source); 748a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 758a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal 768a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal public PinWidgetFlowHandler[] newArray(int size) { 778a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal return new PinWidgetFlowHandler[size]; 788a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal } 798a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal }; 808a0dc38aebdc7624db3de2cdfecb9d11e2baee04Sunny Goyal} 81