1d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk/* 2d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * Copyright (C) 2015 The Android Open Source Project 3d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * 4d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * Licensed under the Apache License, Version 2.0 (the "License"); 5d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * you may not use this file except in compliance with the License. 6d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * You may obtain a copy of the License at 7d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * 8d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * http://www.apache.org/licenses/LICENSE-2.0 9d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * 10d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * Unless required by applicable law or agreed to in writing, software 11d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * distributed under the License is distributed on an "AS IS" BASIS, 12d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * See the License for the specific language governing permissions and 14d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk * limitations under the License 15d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk */ 16d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monkpackage com.android.systemui.qs.external; 17d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 18d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monkimport android.os.IBinder; 19fe8f6826ce3c2beeb1fce54c67978ce69f849407Jason Monkimport android.service.quicksettings.IQSService; 20d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monkimport android.service.quicksettings.IQSTileService; 21d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monkimport android.service.quicksettings.Tile; 22d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monkimport android.util.Log; 23d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 24d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 25d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monkpublic class QSTileServiceWrapper { 26d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk private static final String TAG = "IQSTileServiceWrapper"; 27d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 28d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk private final IQSTileService mService; 29d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 30d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public QSTileServiceWrapper(IQSTileService service) { 31d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk mService = service; 32d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 33d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 34d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public IBinder asBinder() { 35d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return mService.asBinder(); 36d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 37d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 38d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public boolean onTileAdded() { 39d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk try { 40d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk mService.onTileAdded(); 41d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return true; 42d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } catch (Exception e) { 43d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk Log.d(TAG, "Caught exception from TileService", e); 44d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return false; 45d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 46d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 47d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 48d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public boolean onTileRemoved() { 49d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk try { 50d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk mService.onTileRemoved(); 51d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return true; 52d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } catch (Exception e) { 53d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk Log.d(TAG, "Caught exception from TileService", e); 54d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return false; 55d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 56d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 57d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 58d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public boolean onStartListening() { 59d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk try { 60d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk mService.onStartListening(); 61d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return true; 62d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } catch (Exception e) { 63d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk Log.d(TAG, "Caught exception from TileService", e); 64d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return false; 65d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 66d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 67d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 68d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public boolean onStopListening() { 69d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk try { 70d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk mService.onStopListening(); 71d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return true; 72d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } catch (Exception e) { 73d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk Log.d(TAG, "Caught exception from TileService", e); 74d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return false; 75d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 76d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 77d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk 78d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk public boolean onClick(IBinder token) { 79d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk try { 80d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk mService.onClick(token); 81d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return true; 82d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } catch (Exception e) { 83d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk Log.d(TAG, "Caught exception from TileService", e); 84d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk return false; 85d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 86d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk } 87fe8f6826ce3c2beeb1fce54c67978ce69f849407Jason Monk 889429513cc3ea6e58e330865bd621b57cb3477551Jason Monk public boolean onUnlockComplete() { 899429513cc3ea6e58e330865bd621b57cb3477551Jason Monk try { 909429513cc3ea6e58e330865bd621b57cb3477551Jason Monk mService.onUnlockComplete(); 919429513cc3ea6e58e330865bd621b57cb3477551Jason Monk return true; 929429513cc3ea6e58e330865bd621b57cb3477551Jason Monk } catch (Exception e) { 939429513cc3ea6e58e330865bd621b57cb3477551Jason Monk Log.d(TAG, "Caught exception from TileService", e); 949429513cc3ea6e58e330865bd621b57cb3477551Jason Monk return false; 959429513cc3ea6e58e330865bd621b57cb3477551Jason Monk } 969429513cc3ea6e58e330865bd621b57cb3477551Jason Monk } 97ee68fd889c2dfcd895b8e73fc39d7b97826dc3d8Jason Monk 98ee68fd889c2dfcd895b8e73fc39d7b97826dc3d8Jason Monk public IQSTileService getService() { 99ee68fd889c2dfcd895b8e73fc39d7b97826dc3d8Jason Monk return mService; 100ee68fd889c2dfcd895b8e73fc39d7b97826dc3d8Jason Monk } 101d5a204f16e7c71ffdbc6c8307a4134dcc1efd60dJason Monk} 102