108889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal/* 208889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * Copyright (C) 2015 The Android Open Source Project 308889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * 408889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * Licensed under the Apache License, Version 2.0 (the "License"); 508889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * you may not use this file except in compliance with the License. 608889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * You may obtain a copy of the License at 708889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * 808889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * http://www.apache.org/licenses/LICENSE-2.0 908889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * 1008889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * Unless required by applicable law or agreed to in writing, software 1108889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * distributed under the License is distributed on an "AS IS" BASIS, 1208889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1308889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * See the License for the specific language governing permissions and 1408889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * limitations under the License. 1508889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal */ 1608889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal 1708889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysalpackage android.support.customtabs; 1808889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal 1908889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysalimport android.content.ComponentName; 2008889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysalimport android.content.ServiceConnection; 2108889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysalimport android.os.IBinder; 2208889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal 2308889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal/** 2408889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * Abstract {@link ServiceConnection} to use while binding to a {@link CustomTabsService}. Any 2508889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * client implementing this is responsible for handling changes related with the lifetime of the 2608889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * connection like rebinding on disconnect. 2708889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal */ 2808889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysalpublic abstract class CustomTabsServiceConnection implements ServiceConnection { 2908889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal 3008889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal @Override 3108889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal public final void onServiceConnected(ComponentName name, IBinder service) { 3208889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal onCustomTabsServiceConnected(name, new CustomTabsClient( 3308889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal ICustomTabsService.Stub.asInterface(service), name) { 3408889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal }); 3508889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal } 3608889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal 3708889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal /** 3808889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * Called when a connection to the {@link CustomTabsService} has been established. 3908889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * @param name The concrete component name of the service that has been connected. 4008889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * @param client {@link CustomTabsClient} that contains the {@link IBinder} with which the 4108889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * connection have been established. All further communication should be initiated 4208889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal * using this client. 4308889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal */ 4408889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal public abstract void onCustomTabsServiceConnected(ComponentName name, CustomTabsClient client); 4508889acbc842c73b64f94a761910154d9d42ee4cYusuf Ozuysal} 46