Search in sources :

Example 11 with IRemoteCallback

use of android.os.IRemoteCallback in project android_frameworks_base by crdroidandroid.

the class EphemeralResolverService method onBind.

@Override
public final IBinder onBind(Intent intent) {
    return new IEphemeralResolver.Stub() {

        @Override
        public void getEphemeralResolveInfoList(IRemoteCallback callback, int[] digestPrefix, int prefixMask, int sequence) {
            final Message msg = mHandler.obtainMessage(ServiceHandler.MSG_GET_EPHEMERAL_RESOLVE_INFO, prefixMask, sequence, callback);
            final Bundle data = new Bundle();
            data.putIntArray(EXTRA_PREFIX, digestPrefix);
            msg.setData(data);
            msg.sendToTarget();
        }
    };
}
Also used : IRemoteCallback(android.os.IRemoteCallback) Message(android.os.Message) Bundle(android.os.Bundle)

Example 12 with IRemoteCallback

use of android.os.IRemoteCallback in project android_frameworks_base by crdroidandroid.

the class UserController method dispatchUserSwitch.

void dispatchUserSwitch(final UserState uss, final int oldUserId, final int newUserId) {
    Slog.d(TAG, "Dispatch onUserSwitching oldUser #" + oldUserId + " newUser #" + newUserId);
    final int observerCount = mUserSwitchObservers.beginBroadcast();
    if (observerCount > 0) {
        final ArraySet<String> curWaitingUserSwitchCallbacks = new ArraySet<>();
        synchronized (mService) {
            uss.switching = true;
            mCurWaitingUserSwitchCallbacks = curWaitingUserSwitchCallbacks;
        }
        final AtomicInteger waitingCallbacksCount = new AtomicInteger(observerCount);
        final long dispatchStartedTime = SystemClock.elapsedRealtime();
        for (int i = 0; i < observerCount; i++) {
            try {
                // Prepend with unique prefix to guarantee that keys are unique
                final String name = "#" + i + " " + mUserSwitchObservers.getBroadcastCookie(i);
                synchronized (mService) {
                    curWaitingUserSwitchCallbacks.add(name);
                }
                final IRemoteCallback callback = new IRemoteCallback.Stub() {

                    @Override
                    public void sendResult(Bundle data) throws RemoteException {
                        synchronized (mService) {
                            long delay = SystemClock.elapsedRealtime() - dispatchStartedTime;
                            if (delay > USER_SWITCH_TIMEOUT) {
                                Slog.wtf(TAG, "User switch timeout: observer " + name + " sent result after " + delay + " ms");
                            }
                            // Early return if this session is no longer valid
                            if (curWaitingUserSwitchCallbacks != mCurWaitingUserSwitchCallbacks) {
                                return;
                            }
                            curWaitingUserSwitchCallbacks.remove(name);
                            // Continue switching if all callbacks have been notified
                            if (waitingCallbacksCount.decrementAndGet() == 0) {
                                sendContinueUserSwitchLocked(uss, oldUserId, newUserId);
                            }
                        }
                    }
                };
                mUserSwitchObservers.getBroadcastItem(i).onUserSwitching(newUserId, callback);
            } catch (RemoteException e) {
            }
        }
    } else {
        synchronized (mService) {
            sendContinueUserSwitchLocked(uss, oldUserId, newUserId);
        }
    }
    mUserSwitchObservers.finishBroadcast();
}
Also used : ArraySet(android.util.ArraySet) IRemoteCallback(android.os.IRemoteCallback) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Bundle(android.os.Bundle) RemoteException(android.os.RemoteException)

Example 13 with IRemoteCallback

use of android.os.IRemoteCallback in project android_frameworks_base by crdroidandroid.

the class AppTransition method createAspectScaledThumbnailFreeformAnimationLocked.

private AnimationSet createAspectScaledThumbnailFreeformAnimationLocked(Rect sourceFrame, Rect destFrame, @Nullable Rect surfaceInsets, boolean enter) {
    final float sourceWidth = sourceFrame.width();
    final float sourceHeight = sourceFrame.height();
    final float destWidth = destFrame.width();
    final float destHeight = destFrame.height();
    final float scaleH = enter ? sourceWidth / destWidth : destWidth / sourceWidth;
    final float scaleV = enter ? sourceHeight / destHeight : destHeight / sourceHeight;
    AnimationSet set = new AnimationSet(true);
    final int surfaceInsetsH = surfaceInsets == null ? 0 : surfaceInsets.left + surfaceInsets.right;
    final int surfaceInsetsV = surfaceInsets == null ? 0 : surfaceInsets.top + surfaceInsets.bottom;
    // We want the scaling to happen from the center of the surface. In order to achieve that,
    // we need to account for surface insets that will be used to enlarge the surface.
    final float scaleHCenter = ((enter ? destWidth : sourceWidth) + surfaceInsetsH) / 2;
    final float scaleVCenter = ((enter ? destHeight : sourceHeight) + surfaceInsetsV) / 2;
    final ScaleAnimation scale = enter ? new ScaleAnimation(scaleH, 1, scaleV, 1, scaleHCenter, scaleVCenter) : new ScaleAnimation(1, scaleH, 1, scaleV, scaleHCenter, scaleVCenter);
    final int sourceHCenter = sourceFrame.left + sourceFrame.width() / 2;
    final int sourceVCenter = sourceFrame.top + sourceFrame.height() / 2;
    final int destHCenter = destFrame.left + destFrame.width() / 2;
    final int destVCenter = destFrame.top + destFrame.height() / 2;
    final int fromX = enter ? sourceHCenter - destHCenter : destHCenter - sourceHCenter;
    final int fromY = enter ? sourceVCenter - destVCenter : destVCenter - sourceVCenter;
    final TranslateAnimation translation = enter ? new TranslateAnimation(fromX, 0, fromY, 0) : new TranslateAnimation(0, fromX, 0, fromY);
    set.addAnimation(scale);
    set.addAnimation(translation);
    final IRemoteCallback callback = mAnimationFinishedCallback;
    if (callback != null) {
        set.setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mService.mH.obtainMessage(H.DO_ANIMATION_CALLBACK, callback).sendToTarget();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
    }
    return set;
}
Also used : IRemoteCallback(android.os.IRemoteCallback) CurvedTranslateAnimation(com.android.server.wm.animation.CurvedTranslateAnimation) TranslateAnimation(android.view.animation.TranslateAnimation) ScaleAnimation(android.view.animation.ScaleAnimation) WindowAnimation_wallpaperCloseExitAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperCloseExitAnimation) CurvedTranslateAnimation(com.android.server.wm.animation.CurvedTranslateAnimation) WindowAnimation_activityOpenEnterAnimation(com.android.internal.R.styleable.WindowAnimation_activityOpenEnterAnimation) WindowAnimation_wallpaperOpenExitAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperOpenExitAnimation) WindowAnimation_taskToBackEnterAnimation(com.android.internal.R.styleable.WindowAnimation_taskToBackEnterAnimation) WindowAnimation_activityOpenExitAnimation(com.android.internal.R.styleable.WindowAnimation_activityOpenExitAnimation) TranslateAnimation(android.view.animation.TranslateAnimation) Animation(android.view.animation.Animation) ClipRectAnimation(android.view.animation.ClipRectAnimation) WindowAnimation_wallpaperOpenEnterAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperOpenEnterAnimation) WindowAnimation_launchTaskBehindTargetAnimation(com.android.internal.R.styleable.WindowAnimation_launchTaskBehindTargetAnimation) WindowAnimation_launchTaskBehindSourceAnimation(com.android.internal.R.styleable.WindowAnimation_launchTaskBehindSourceAnimation) WindowAnimation_taskCloseExitAnimation(com.android.internal.R.styleable.WindowAnimation_taskCloseExitAnimation) AlphaAnimation(android.view.animation.AlphaAnimation) WindowAnimation_wallpaperIntraCloseEnterAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperIntraCloseEnterAnimation) WindowAnimation_taskToBackExitAnimation(com.android.internal.R.styleable.WindowAnimation_taskToBackExitAnimation) WindowAnimation_activityCloseEnterAnimation(com.android.internal.R.styleable.WindowAnimation_activityCloseEnterAnimation) WindowAnimation_taskCloseEnterAnimation(com.android.internal.R.styleable.WindowAnimation_taskCloseEnterAnimation) WindowAnimation_taskOpenEnterAnimation(com.android.internal.R.styleable.WindowAnimation_taskOpenEnterAnimation) WindowAnimation_wallpaperIntraCloseExitAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperIntraCloseExitAnimation) ClipRectTBAnimation(com.android.server.wm.animation.ClipRectTBAnimation) WindowAnimation_taskOpenExitAnimation(com.android.internal.R.styleable.WindowAnimation_taskOpenExitAnimation) ClipRectLRAnimation(com.android.server.wm.animation.ClipRectLRAnimation) WindowAnimation_activityCloseExitAnimation(com.android.internal.R.styleable.WindowAnimation_activityCloseExitAnimation) WindowAnimation_taskToFrontEnterAnimation(com.android.internal.R.styleable.WindowAnimation_taskToFrontEnterAnimation) WindowAnimation_wallpaperIntraOpenEnterAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpenEnterAnimation) WindowAnimation_wallpaperIntraOpenExitAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpenExitAnimation) WindowAnimation_taskToFrontExitAnimation(com.android.internal.R.styleable.WindowAnimation_taskToFrontExitAnimation) WindowAnimation_wallpaperCloseEnterAnimation(com.android.internal.R.styleable.WindowAnimation_wallpaperCloseEnterAnimation) AnimationSet(android.view.animation.AnimationSet) ScaleAnimation(android.view.animation.ScaleAnimation)

Example 14 with IRemoteCallback

use of android.os.IRemoteCallback in project android_frameworks_base by AOSPA.

the class EphemeralResolverService method onBind.

@Override
public final IBinder onBind(Intent intent) {
    return new IEphemeralResolver.Stub() {

        @Override
        public void getEphemeralResolveInfoList(IRemoteCallback callback, int[] digestPrefix, int prefixMask, int sequence) {
            final Message msg = mHandler.obtainMessage(ServiceHandler.MSG_GET_EPHEMERAL_RESOLVE_INFO, prefixMask, sequence, callback);
            final Bundle data = new Bundle();
            data.putIntArray(EXTRA_PREFIX, digestPrefix);
            msg.setData(data);
            msg.sendToTarget();
        }
    };
}
Also used : IRemoteCallback(android.os.IRemoteCallback) Message(android.os.Message) Bundle(android.os.Bundle)

Example 15 with IRemoteCallback

use of android.os.IRemoteCallback in project android_frameworks_base by DirtyUnicorns.

the class EphemeralResolverService method onBind.

@Override
public final IBinder onBind(Intent intent) {
    return new IEphemeralResolver.Stub() {

        @Override
        public void getEphemeralResolveInfoList(IRemoteCallback callback, int[] digestPrefix, int prefixMask, int sequence) {
            final Message msg = mHandler.obtainMessage(ServiceHandler.MSG_GET_EPHEMERAL_RESOLVE_INFO, prefixMask, sequence, callback);
            final Bundle data = new Bundle();
            data.putIntArray(EXTRA_PREFIX, digestPrefix);
            msg.setData(data);
            msg.sendToTarget();
        }
    };
}
Also used : IRemoteCallback(android.os.IRemoteCallback) Message(android.os.Message) Bundle(android.os.Bundle)

Aggregations

IRemoteCallback (android.os.IRemoteCallback)30 Bundle (android.os.Bundle)14 RemoteException (android.os.RemoteException)14 Point (android.graphics.Point)9 Message (android.os.Message)8 IUserSwitchObserver (android.app.IUserSwitchObserver)5 PendingIntent (android.app.PendingIntent)5 BroadcastReceiver (android.content.BroadcastReceiver)5 Context (android.content.Context)5 Intent (android.content.Intent)5 IntentFilter (android.content.IntentFilter)5 ArraySet (android.util.ArraySet)4 AlphaAnimation (android.view.animation.AlphaAnimation)4 Animation (android.view.animation.Animation)4 AnimationSet (android.view.animation.AnimationSet)4 ClipRectAnimation (android.view.animation.ClipRectAnimation)4 ScaleAnimation (android.view.animation.ScaleAnimation)4 TranslateAnimation (android.view.animation.TranslateAnimation)4 WindowAnimation_activityCloseEnterAnimation (com.android.internal.R.styleable.WindowAnimation_activityCloseEnterAnimation)4 WindowAnimation_activityCloseExitAnimation (com.android.internal.R.styleable.WindowAnimation_activityCloseExitAnimation)4