android.os.RemoteCallbackList Java Examples
The following examples show how to use
android.os.RemoteCallbackList.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: WallpaperVisibilityListeners.java From android_9.0.0_r45 with Apache License 2.0 | 7 votes |
void notifyWallpaperVisibilityChanged(DisplayContent displayContent) { final int displayId = displayContent.getDisplayId(); final boolean visible = displayContent.mWallpaperController.isWallpaperVisible(); RemoteCallbackList<IWallpaperVisibilityListener> displayListeners = mDisplayListeners.get(displayId); // No listeners for this display. if (displayListeners == null) { return; } int i = displayListeners.beginBroadcast(); while (i > 0) { i--; IWallpaperVisibilityListener listener = displayListeners.getBroadcastItem(i); try { listener.onWallpaperVisibilityChanged(visible, displayId); } catch (RemoteException e) { // Nothing to do in here, RemoteCallbackListener will clean it up. } } displayListeners.finishBroadcast(); }
Example #2
Source File: ExternalOpenVPNService.java From android with GNU General Public License v3.0 | 6 votes |
@Override public void handleMessage(Message msg) { RemoteCallbackList<IOpenVPNStatusCallback> callbacks; switch (msg.what) { case SEND_TOALL: if (service == null || service.get() == null) return; callbacks = service.get().mCallbacks; // Broadcast to all clients the new value. final int N = callbacks.beginBroadcast(); for (int i = 0; i < N; i++) { try { sendUpdate(callbacks.getBroadcastItem(i), (UpdateMessage) msg.obj); } catch (RemoteException e) { // The RemoteCallbackList will take care of removing // the dead object for us. } } callbacks.finishBroadcast(); break; } }
Example #3
Source File: ImConnectionAdapter.java From Zom-Android-XMPP with GNU General Public License v3.0 | 6 votes |
public ImConnectionAdapter(long providerId, long accountId, ImConnection connection, RemoteImService service) { mProviderId = providerId; mAccountId = accountId; mConnection = connection; mService = service; mConnectionListener = new ConnectionListenerAdapter(); mConnection.addConnectionListener(mConnectionListener); if ((connection.getCapability() & ImConnection.CAPABILITY_GROUP_CHAT) != 0) { mGroupManager = mConnection.getChatGroupManager(); mInvitationListener = new InvitationListenerAdapter(); mGroupManager.setInvitationListener(mInvitationListener); } mChatSessionManager = new ChatSessionManagerAdapter(this); mContactListManager = new ContactListManagerAdapter(this); mRemoteConnListeners = new RemoteCallbackList<>(); }
Example #4
Source File: PlayControlImpl.java From Musicoco with Apache License 2.0 | 6 votes |
public PlayControlImpl(Context context) { this.context = context; this.mSongChangeListeners = new RemoteCallbackList<>(); this.mStatusChangeListeners = new RemoteCallbackList<>(); this.mPlayListChangeListeners = new RemoteCallbackList<>(); this.mDataIsReadyListeners = new RemoteCallbackList<>(); this.sessionManager = new MediaSessionManager(context, this); this.focusManager = new AudioFocusManager(context, this); this.manager = PlayController.getMediaController( context, focusManager, sessionManager, new NotifyStatusChange(), new NotifySongChange(), new NotifyPlayListChange()); }
Example #5
Source File: NetworkScoreService.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
private void sendCacheUpdateCallback(BiConsumer<INetworkScoreCache, Object> consumer, Collection<RemoteCallbackList<INetworkScoreCache>> remoteCallbackLists) { for (RemoteCallbackList<INetworkScoreCache> callbackList : remoteCallbackLists) { synchronized (callbackList) { // Ensure only one active broadcast per RemoteCallbackList final int count = callbackList.beginBroadcast(); try { for (int i = 0; i < count; i++) { consumer.accept(callbackList.getBroadcastItem(i), callbackList.getBroadcastCookie(i)); } } finally { callbackList.finishBroadcast(); } } } }
Example #6
Source File: NetworkScoreService.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
@Override public void unregisterNetworkScoreCache(int networkType, INetworkScoreCache scoreCache) { enforceSystemOnly(); final long token = Binder.clearCallingIdentity(); try { synchronized (mScoreCaches) { RemoteCallbackList<INetworkScoreCache> callbackList = mScoreCaches.get(networkType); if (callbackList == null || !callbackList.unregister(scoreCache)) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "Unable to unregister NetworkScoreCache for type " + networkType); } } else if (callbackList.getRegisteredCallbackCount() == 0) { mScoreCaches.remove(networkType); } } } finally { Binder.restoreCallingIdentity(token); } }
Example #7
Source File: NetworkScoreService.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
@Override public void registerNetworkScoreCache(int networkType, INetworkScoreCache scoreCache, int filterType) { enforceSystemOnly(); final long token = Binder.clearCallingIdentity(); try { synchronized (mScoreCaches) { RemoteCallbackList<INetworkScoreCache> callbackList = mScoreCaches.get(networkType); if (callbackList == null) { callbackList = new RemoteCallbackList<>(); mScoreCaches.put(networkType, callbackList); } if (!callbackList.register(scoreCache, filterType)) { if (callbackList.getRegisteredCallbackCount() == 0) { mScoreCaches.remove(networkType); } if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "Unable to register NetworkScoreCache for type " + networkType); } } } } finally { Binder.restoreCallingIdentity(token); } }
Example #8
Source File: OpenVPNStatusService.java From bitmask_android with GNU General Public License v3.0 | 5 votes |
@Override public void handleMessage(Message msg) { RemoteCallbackList<IStatusCallbacks> callbacks; if (service == null || service.get() == null) return; callbacks = service.get().mCallbacks; // Broadcast to all clients the new value. final int N = callbacks.beginBroadcast(); for (int i = 0; i < N; i++) { try { IStatusCallbacks broadcastItem = callbacks.getBroadcastItem(i); switch (msg.what) { case SEND_NEW_LOGITEM: broadcastItem.newLogItem((LogItem) msg.obj); break; case SEND_NEW_BYTECOUNT: Pair<Long, Long> inout = (Pair<Long, Long>) msg.obj; broadcastItem.updateByteCount(inout.first, inout.second); break; case SEND_NEW_STATE: sendUpdate(broadcastItem, (UpdateMessage) msg.obj); break; case SEND_NEW_CONNECTED_VPN: broadcastItem.connectedVPN((String) msg.obj); break; } } catch (RemoteException e) { // The RemoteCallbackList will take care of removing // the dead object for us. } } callbacks.finishBroadcast(); }
Example #9
Source File: WallpaperVisibilityListeners.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
void registerWallpaperVisibilityListener(IWallpaperVisibilityListener listener, int displayId) { RemoteCallbackList<IWallpaperVisibilityListener> listeners = mDisplayListeners.get(displayId); if (listeners == null) { listeners = new RemoteCallbackList<>(); mDisplayListeners.append(displayId, listeners); } listeners.register(listener); }
Example #10
Source File: AndroidRipperService.java From AndroidRipper with GNU Affero General Public License v3.0 | 5 votes |
@Override public void onCreate() { super.onCreate(); Log.v("AndroidRipperService", "onCreate()"); mCallbacks = new RemoteCallbackList<IAnrdoidRipperServiceCallback>(); ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); mBinder = new AndroidRipperServiceStub(this, activityManager); server = new Server(this.mHandler); server.startServer(); }
Example #11
Source File: WallpaperManagerService.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
@Override public void unregisterWallpaperColorsCallback(IWallpaperManagerCallback cb, int userId) { userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(), userId, true, true, "unregisterWallpaperColorsCallback", null); synchronized (mLock) { final RemoteCallbackList<IWallpaperManagerCallback> userColorsChangedListeners = mColorsChangedListeners.get(userId); if (userColorsChangedListeners != null) { userColorsChangedListeners.unregister(cb); } } }
Example #12
Source File: WallpaperManagerService.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
@Override public void registerWallpaperColorsCallback(IWallpaperManagerCallback cb, int userId) { userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(), userId, true, true, "registerWallpaperColorsCallback", null); synchronized (mLock) { RemoteCallbackList<IWallpaperManagerCallback> userColorsChangedListeners = mColorsChangedListeners.get(userId); if (userColorsChangedListeners == null) { userColorsChangedListeners = new RemoteCallbackList<>(); mColorsChangedListeners.put(userId, userColorsChangedListeners); } userColorsChangedListeners.register(cb); } }
Example #13
Source File: WallpaperManagerService.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
private void notifyWallpaperColorsChanged(@NonNull WallpaperData wallpaper, int which) { boolean needsExtraction; synchronized (mLock) { final RemoteCallbackList<IWallpaperManagerCallback> currentUserColorListeners = mColorsChangedListeners.get(wallpaper.userId); final RemoteCallbackList<IWallpaperManagerCallback> userAllColorListeners = mColorsChangedListeners.get(UserHandle.USER_ALL); // No-op until someone is listening to it. if (emptyCallbackList(currentUserColorListeners) && emptyCallbackList(userAllColorListeners)) { return; } if (DEBUG) { Slog.v(TAG, "notifyWallpaperColorsChanged " + which); } needsExtraction = wallpaper.primaryColors == null; } // Let's notify the current values, it's fine if it's null, it just means // that we don't know yet. notifyColorListeners(wallpaper.primaryColors, which, wallpaper.userId); if (needsExtraction) { extractColors(wallpaper); synchronized (mLock) { // Don't need to notify if nothing changed. if (wallpaper.primaryColors == null) { return; } } notifyColorListeners(wallpaper.primaryColors, which, wallpaper.userId); } }
Example #14
Source File: WallpaperVisibilityListeners.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
void unregisterWallpaperVisibilityListener(IWallpaperVisibilityListener listener, int displayId) { RemoteCallbackList<IWallpaperVisibilityListener> listeners = mDisplayListeners.get(displayId); if (listeners == null) { return; } listeners.unregister(listener); }
Example #15
Source File: NetworkScoreService.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
@Override public boolean updateScores(ScoredNetwork[] networks) { if (!isCallerActiveScorer(getCallingUid())) { throw new SecurityException("Caller with UID " + getCallingUid() + " is not the active scorer."); } final long token = Binder.clearCallingIdentity(); try { // Separate networks by type. Map<Integer, List<ScoredNetwork>> networksByType = new ArrayMap<>(); for (ScoredNetwork network : networks) { List<ScoredNetwork> networkList = networksByType.get(network.networkKey.type); if (networkList == null) { networkList = new ArrayList<>(); networksByType.put(network.networkKey.type, networkList); } networkList.add(network); } // Pass the scores of each type down to the appropriate network scorer. for (final Map.Entry<Integer, List<ScoredNetwork>> entry : networksByType.entrySet()) { final RemoteCallbackList<INetworkScoreCache> callbackList; final boolean isEmpty; synchronized (mScoreCaches) { callbackList = mScoreCaches.get(entry.getKey()); isEmpty = callbackList == null || callbackList.getRegisteredCallbackCount() == 0; } if (isEmpty) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "No scorer registered for type " + entry.getKey() + ", discarding"); } continue; } final BiConsumer<INetworkScoreCache, Object> consumer = FilteringCacheUpdatingConsumer.create(mContext, entry.getValue(), entry.getKey()); sendCacheUpdateCallback(consumer, Collections.singleton(callbackList)); } return true; } finally { Binder.restoreCallingIdentity(token); } }
Example #16
Source File: PendingIntentRecord.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
public void registerCancelListenerLocked(IResultReceiver receiver) { if (mCancelCallbacks == null) { mCancelCallbacks = new RemoteCallbackList<>(); } mCancelCallbacks.register(receiver); }
Example #17
Source File: PendingIntentRecord.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
public RemoteCallbackList<IResultReceiver> detachCancelListenersLocked() { RemoteCallbackList<IResultReceiver> listeners = mCancelCallbacks; mCancelCallbacks = null; return listeners; }
Example #18
Source File: BaseVpnService.java From ShadowsocksRR with Apache License 2.0 | 4 votes |
public BaseVpnService() { callbacks = new RemoteCallbackList<>(); }
Example #19
Source File: BaseService.java From ShadowsocksRR with Apache License 2.0 | 4 votes |
public BaseService() { callbacks = new RemoteCallbackList<>(); }
Example #20
Source File: BaseVpnService.java From Maying with Apache License 2.0 | 4 votes |
public BaseVpnService() { callbacks = new RemoteCallbackList<>(); }
Example #21
Source File: BaseService.java From Maying with Apache License 2.0 | 4 votes |
public BaseService() { callbacks = new RemoteCallbackList<>(); }
Example #22
Source File: WallpaperManagerService.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
private static <T extends IInterface> boolean emptyCallbackList(RemoteCallbackList<T> list) { return (list == null || list.getRegisteredCallbackCount() == 0); }
Example #23
Source File: BluetoothManagerService.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
BluetoothManagerService(Context context) { mHandler = new BluetoothHandler(IoThread.get().getLooper()); mContext = context; mPermissionReviewRequired = context.getResources() .getBoolean(com.android.internal.R.bool.config_permissionReviewRequired); mCrashes = 0; mBluetooth = null; mBluetoothBinder = null; mBluetoothGatt = null; mBinding = false; mUnbinding = false; mEnable = false; mState = BluetoothAdapter.STATE_OFF; mQuietEnableExternal = false; mEnableExternal = false; mAddress = null; mName = null; mErrorRecoveryRetryCounter = 0; mContentResolver = context.getContentResolver(); // Observe BLE scan only mode settings change. registerForBleScanModeChange(); mCallbacks = new RemoteCallbackList<IBluetoothManagerCallback>(); mStateChangeCallbacks = new RemoteCallbackList<IBluetoothStateChangeCallback>(); // TODO: We need a more generic way to initialize the persist keys of FeatureFlagUtils boolean isHearingAidEnabled; String value = SystemProperties.get(FeatureFlagUtils.PERSIST_PREFIX + FeatureFlagUtils.HEARING_AID_SETTINGS); if (!TextUtils.isEmpty(value)) { isHearingAidEnabled = Boolean.parseBoolean(value); Log.v(TAG, "set feature flag HEARING_AID_SETTINGS to " + isHearingAidEnabled); FeatureFlagUtils.setEnabled(context, FeatureFlagUtils.HEARING_AID_SETTINGS, isHearingAidEnabled); } IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED); filter.addAction(BluetoothAdapter.ACTION_BLUETOOTH_ADDRESS_CHANGED); filter.addAction(Intent.ACTION_SETTING_RESTORED); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); mContext.registerReceiver(mReceiver, filter); loadStoredNameAndAddress(); if (isBluetoothPersistedStateOn()) { if (DBG) { Slog.d(TAG, "Startup: Bluetooth persisted state is ON."); } mEnableExternal = true; } String airplaneModeRadios = Settings.Global.getString(mContentResolver, Settings.Global.AIRPLANE_MODE_RADIOS); if (airplaneModeRadios == null || airplaneModeRadios.contains( Settings.Global.RADIO_BLUETOOTH)) { mContentResolver.registerContentObserver( Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON), true, mAirplaneModeObserver); } int systemUiUid = -1; try { // Check if device is configured with no home screen, which implies no SystemUI. boolean noHome = mContext.getResources().getBoolean(R.bool.config_noHomeScreen); if (!noHome) { systemUiUid = mContext.getPackageManager() .getPackageUidAsUser("com.android.systemui", PackageManager.MATCH_SYSTEM_ONLY, UserHandle.USER_SYSTEM); } Slog.d(TAG, "Detected SystemUiUid: " + Integer.toString(systemUiUid)); } catch (PackageManager.NameNotFoundException e) { // Some platforms, such as wearables do not have a system ui. Slog.w(TAG, "Unable to resolve SystemUI's UID.", e); } mSystemUiUid = systemUiUid; }
Example #24
Source File: NetworkScoreService.java From android_9.0.0_r45 with Apache License 2.0 | 2 votes |
/** * Returns a {@link Collection} of all {@link RemoteCallbackList}s that are currently active. * * <p>May be used to perform an action on all score caches without potentially strange behavior * if a new scorer is registered during that action's execution. */ private Collection<RemoteCallbackList<INetworkScoreCache>> getScoreCacheLists() { synchronized (mScoreCaches) { return new ArrayList<>(mScoreCaches.values()); } }
Example #25
Source File: AndroidRipperService.java From AndroidRipper with GNU Affero General Public License v3.0 | 2 votes |
/** * Unregister all CallBacks. * * @param cb */ synchronized public void unregisterAll() { mCallbacks.kill(); mCallbacks = new RemoteCallbackList<IAnrdoidRipperServiceCallback>(); }