Example usage for android.animation ObjectAnimator setDuration

List of usage examples for android.animation ObjectAnimator setDuration

Introduction

In this page you can find the example usage for android.animation ObjectAnimator setDuration.

Prototype

@Override
@NonNull
public ObjectAnimator setDuration(long duration) 

Source Link

Document

Sets the length of the animation.

Usage

From source file:com.xandy.calendar.AllInOneActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Time t = null;//from  w w w .ja v a2  s.c  o m
    int viewType = ViewType.CURRENT;
    long extras = CalendarController.EXTRA_GOTO_TIME;
    final int itemId = item.getItemId();
    if (itemId == R.id.action_refresh) {
        mController.refreshCalendars();
        return true;
    } else if (itemId == R.id.action_today) {
        viewType = ViewType.CURRENT;
        t = new Time(mTimeZone);
        t.setToNow();
        extras |= CalendarController.EXTRA_GOTO_TODAY;
    } else if (itemId == R.id.action_create_event) {
        t = new Time();
        t.set(mController.getTime());
        if (t.minute > 30) {
            t.hour++;
            t.minute = 0;
        } else if (t.minute > 0 && t.minute < 30) {
            t.minute = 30;
        }
        mController.sendEventRelatedEvent(this, EventType.CREATE_EVENT, -1, t.toMillis(true), 0, 0, 0, -1);
        return true;
    } else if (itemId == R.id.action_select_visible_calendars) {
        mController.sendEvent(this, EventType.LAUNCH_SELECT_VISIBLE_CALENDARS, null, null, 0, 0);
        return true;
    } else if (itemId == R.id.action_settings) {
        mController.sendEvent(this, EventType.LAUNCH_SETTINGS, null, null, 0, 0);
        return true;
    } else if (itemId == R.id.action_hide_controls) {
        mHideControls = !mHideControls;
        Utils.setSharedPreference(this, GeneralPreferences.KEY_SHOW_CONTROLS, !mHideControls);
        item.setTitle(mHideControls ? mShowString : mHideString);
        if (!mHideControls) {
            mMiniMonth.setVisibility(View.VISIBLE);
            mCalendarsList.setVisibility(View.VISIBLE);
            mMiniMonthContainer.setVisibility(View.VISIBLE);
        }
        final ObjectAnimator slideAnimation = ObjectAnimator.ofInt(this, "controlsOffset",
                mHideControls ? 0 : mControlsAnimateWidth, mHideControls ? mControlsAnimateWidth : 0);
        slideAnimation.setDuration(mCalendarControlsAnimationTime);
        ObjectAnimator.setFrameDelay(0);
        slideAnimation.start();
        return true;
    } else if (itemId == R.id.action_search) {
        return false;
    } else {
        return mExtensions.handleItemSelected(item, this);
    }
    mController.sendEvent(this, EventType.GO_TO, t, null, t, -1, viewType, extras, null, null);
    return true;
}

From source file:com.android.incallui.CallCardFragment.java

/**
 * Animator that performs the upwards shrinking animation of the blue call card scrim.
 * At the start of the animation, each child view is moved downwards by a pre-specified amount
 * and then translated upwards together with the scrim.
 *///from w  ww.j av  a 2s  . com
private Animator getShrinkAnimator(int startHeight, int endHeight) {
    final ObjectAnimator shrinkAnimator = ObjectAnimator.ofInt(mPrimaryCallCardContainer, "bottom", startHeight,
            endHeight);
    shrinkAnimator.setDuration(mShrinkAnimationDuration);
    shrinkAnimator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationStart(Animator animation) {
            mFloatingActionButton.setEnabled(true);
        }
    });
    shrinkAnimator.setInterpolator(AnimUtils.EASE_IN);
    return shrinkAnimator;
}

From source file:org.sufficientlysecure.keychain.ui.keyview.ViewKeyActivity.java

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    /* TODO better error handling? May cause problems when a key is deleted,
     * because the notification triggers faster than the activity closes.
     *///from w  w w .  ja v a  2s  . co  m

    // Swap the new cursor in. (The framework will take care of closing the
    // old cursor once we return.)
    switch (loader.getId()) {
    case LOADER_ID_UNIFIED: {
        // Avoid NullPointerExceptions...
        if (data.getCount() == 0) {
            return;
        }

        if (data.moveToFirst()) {
            // get name, email, and comment from USER_ID

            String name = data.getString(INDEX_NAME);

            mCollapsingToolbarLayout.setTitle(name != null ? name : getString(R.string.user_id_no_name));

            mMasterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
            mFingerprint = data.getBlob(INDEX_FINGERPRINT);
            mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
            mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0;
            mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
            mIsExpired = data.getInt(INDEX_IS_EXPIRED) != 0;
            mIsSecure = data.getInt(INDEX_IS_SECURE) == 1;
            mIsVerified = data.getInt(INDEX_VERIFIED) > 0;

            // queue showing of the main fragment
            showMainFragment();

            // if the refresh animation isn't playing
            if (!mRotate.hasStarted() && !mRotateSpin.hasStarted()) {
                // re-create options menu based on mIsSecret, mIsVerified
                supportInvalidateOptionsMenu();
                // this is done at the end of the animation otherwise
            }

            AsyncTask<Long, Void, Bitmap> photoTask = new AsyncTask<Long, Void, Bitmap>() {
                protected Bitmap doInBackground(Long... mMasterKeyId) {
                    return new ContactHelper(ViewKeyActivity.this).loadPhotoByMasterKeyId(mMasterKeyId[0],
                            true);
                }

                protected void onPostExecute(Bitmap photo) {
                    if (photo == null) {
                        return;
                    }

                    mPhoto.setImageBitmap(photo);
                    mPhoto.setColorFilter(getResources().getColor(R.color.toolbar_photo_tint),
                            PorterDuff.Mode.SRC_ATOP);
                    mPhotoLayout.setVisibility(View.VISIBLE);
                }
            };

            boolean showStatusText = mIsSecure && !mIsExpired && !mIsRevoked;
            if (showStatusText) {
                mStatusText.setVisibility(View.VISIBLE);

                if (mIsSecret) {
                    mStatusText.setText(R.string.view_key_my_key);
                } else if (mIsVerified) {
                    mStatusText.setText(R.string.view_key_verified);
                } else {
                    mStatusText.setText(R.string.view_key_unverified);
                }
            } else {
                mStatusText.setVisibility(View.GONE);
            }

            // Note: order is important
            int color;
            if (mIsRevoked) {
                mStatusImage.setVisibility(View.VISIBLE);
                KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.REVOKED, R.color.icons,
                        true);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_red);

                mActionEncryptFile.setVisibility(View.INVISIBLE);
                mActionEncryptText.setVisibility(View.INVISIBLE);
                hideFab();
                mQrCodeLayout.setVisibility(View.GONE);
            } else if (!mIsSecure) {
                mStatusImage.setVisibility(View.VISIBLE);
                KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.INSECURE,
                        R.color.icons, true);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_red);

                mActionEncryptFile.setVisibility(View.INVISIBLE);
                mActionEncryptText.setVisibility(View.INVISIBLE);
                hideFab();
                mQrCodeLayout.setVisibility(View.GONE);
            } else if (mIsExpired) {
                mStatusImage.setVisibility(View.VISIBLE);
                KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.EXPIRED, R.color.icons,
                        true);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_red);

                mActionEncryptFile.setVisibility(View.INVISIBLE);
                mActionEncryptText.setVisibility(View.INVISIBLE);
                hideFab();
                mQrCodeLayout.setVisibility(View.GONE);
            } else if (mIsSecret) {
                mStatusImage.setVisibility(View.GONE);
                // noinspection deprecation, fix requires api level 23
                color = getResources().getColor(R.color.key_flag_green);
                // reload qr code only if the fingerprint changed
                if (!Arrays.equals(mFingerprint, mQrCodeLoaded)) {
                    loadQrCode(mFingerprint);
                }
                photoTask.execute(mMasterKeyId);
                mQrCodeLayout.setVisibility(View.VISIBLE);

                // and place leftOf qr code
                //                        RelativeLayout.LayoutParams nameParams = (RelativeLayout.LayoutParams)
                //                                mName.getLayoutParams();
                //                        // remove right margin
                //                        nameParams.setMargins(FormattingUtils.dpToPx(this, 48), 0, 0, 0);
                //                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                //                            nameParams.setMarginEnd(0);
                //                        }
                //                        nameParams.addRule(RelativeLayout.LEFT_OF, R.id.view_key_qr_code_layout);
                //                        mName.setLayoutParams(nameParams);

                RelativeLayout.LayoutParams statusParams = (RelativeLayout.LayoutParams) mStatusText
                        .getLayoutParams();
                statusParams.setMargins(FormattingUtils.dpToPx(this, 48), 0, 0, 0);
                if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                    statusParams.setMarginEnd(0);
                }
                statusParams.addRule(RelativeLayout.LEFT_OF, R.id.view_key_qr_code_layout);
                mStatusText.setLayoutParams(statusParams);

                mActionEncryptFile.setVisibility(View.VISIBLE);
                mActionEncryptText.setVisibility(View.VISIBLE);

                showFab();
                // noinspection deprecation (no getDrawable with theme at current minApi level 15!)
                mFab.setImageDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_24dp));
            } else {
                mActionEncryptFile.setVisibility(View.VISIBLE);
                mActionEncryptText.setVisibility(View.VISIBLE);
                mQrCodeLayout.setVisibility(View.GONE);

                if (mIsVerified) {
                    mStatusText.setText(R.string.view_key_verified);
                    mStatusImage.setVisibility(View.VISIBLE);
                    KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.VERIFIED,
                            R.color.icons, true);
                    // noinspection deprecation, fix requires api level 23
                    color = getResources().getColor(R.color.key_flag_green);
                    photoTask.execute(mMasterKeyId);

                    hideFab();
                } else {
                    mStatusText.setText(R.string.view_key_unverified);
                    mStatusImage.setVisibility(View.VISIBLE);
                    KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.UNVERIFIED,
                            R.color.icons, true);
                    // noinspection deprecation, fix requires api level 23
                    color = getResources().getColor(R.color.key_flag_orange);

                    showFab();
                }
            }

            if (mPreviousColor == 0 || mPreviousColor == color) {
                mAppBarLayout.setBackgroundColor(color);
                mCollapsingToolbarLayout.setContentScrimColor(color);
                mCollapsingToolbarLayout.setStatusBarScrimColor(getStatusBarBackgroundColor(color));
                mPreviousColor = color;
            } else {
                ObjectAnimator colorFade = ObjectAnimator.ofObject(mAppBarLayout, "backgroundColor",
                        new ArgbEvaluator(), mPreviousColor, color);
                mCollapsingToolbarLayout.setContentScrimColor(color);
                mCollapsingToolbarLayout.setStatusBarScrimColor(getStatusBarBackgroundColor(color));

                colorFade.setDuration(1200);
                colorFade.start();
                mPreviousColor = color;
            }

            //noinspection deprecation
            mStatusImage.setAlpha(80);

            break;
        }
    }
    }
}

From source file:com.klinker.android.sliding.MultiShrinkScroller.java

/**
 * Expand to maximum size./*from   w w  w  .  j a v a 2  s.  c o  m*/
 */
private void expandHeader() {
    if (getHeaderHeight() != maximumHeaderHeight) {
        final ObjectAnimator animator = ObjectAnimator.ofInt(this, "headerHeight", maximumHeaderHeight);
        animator.setDuration(ANIMATION_DURATION);
        animator.start();
        // Scroll nested scroll view to its top
        if (scrollView.getScrollY() != 0) {
            ObjectAnimator.ofInt(scrollView, "scrollY", -scrollView.getScrollY()).start();
        }
    }
}

From source file:com.android.launcher3.Folder.java

public void animateOpen() {
    if (!(getParent() instanceof DragLayer))
        return;//  w  ww  .  j a  v a 2s.  c  o  m

    Animator openFolderAnim = null;
    final Runnable onCompleteRunnable;
    if (!Utilities.isLmpOrAbove()) {
        positionAndSizeAsIcon();
        centerAboutIcon();

        PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1);
        PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.0f);
        PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 1.0f);
        final ObjectAnimator oa = LauncherAnimUtils.ofPropertyValuesHolder(this, alpha, scaleX, scaleY);
        oa.setDuration(mExpandDuration);
        openFolderAnim = oa;

        setLayerType(LAYER_TYPE_HARDWARE, null);
        onCompleteRunnable = new Runnable() {
            @Override
            public void run() {
                setLayerType(LAYER_TYPE_NONE, null);
            }
        };
    } else {
        prepareReveal();
        centerAboutIcon();

        int width = getPaddingLeft() + getPaddingRight() + mContent.getDesiredWidth();
        int height = getFolderHeight();

        float transX = -0.075f * (width / 2 - getPivotX());
        float transY = -0.075f * (height / 2 - getPivotY());
        setTranslationX(transX);
        setTranslationY(transY);
        PropertyValuesHolder tx = PropertyValuesHolder.ofFloat("translationX", transX, 0);
        PropertyValuesHolder ty = PropertyValuesHolder.ofFloat("translationY", transY, 0);

        int rx = (int) Math.max(Math.max(width - getPivotX(), 0), getPivotX());
        int ry = (int) Math.max(Math.max(height - getPivotY(), 0), getPivotY());
        float radius = (float) Math.sqrt(rx * rx + ry * ry);
        AnimatorSet anim = LauncherAnimUtils.createAnimatorSet();
        Animator reveal = LauncherAnimUtils.createCircularReveal(this, (int) getPivotX(), (int) getPivotY(), 0,
                radius);
        reveal.setDuration(mMaterialExpandDuration);
        reveal.setInterpolator(new LogDecelerateInterpolator(100, 0));

        mContent.setAlpha(0f);
        Animator iconsAlpha = LauncherAnimUtils.ofFloat(mContent, "alpha", 0f, 1f);
        iconsAlpha.setDuration(mMaterialExpandDuration);
        iconsAlpha.setStartDelay(mMaterialExpandStagger);
        iconsAlpha.setInterpolator(new AccelerateInterpolator(1.5f));

        mFolderName.setAlpha(0f);
        Animator textAlpha = LauncherAnimUtils.ofFloat(mFolderName, "alpha", 0f, 1f);
        textAlpha.setDuration(mMaterialExpandDuration);
        textAlpha.setStartDelay(mMaterialExpandStagger);
        textAlpha.setInterpolator(new AccelerateInterpolator(1.5f));

        Animator drift = LauncherAnimUtils.ofPropertyValuesHolder(this, tx, ty);
        drift.setDuration(mMaterialExpandDuration);
        drift.setStartDelay(mMaterialExpandStagger);
        drift.setInterpolator(new LogDecelerateInterpolator(60, 0));

        anim.play(drift);
        anim.play(iconsAlpha);
        anim.play(textAlpha);
        anim.play(reveal);

        openFolderAnim = anim;

        mContent.setLayerType(LAYER_TYPE_HARDWARE, null);
        onCompleteRunnable = new Runnable() {
            @Override
            public void run() {
                mContent.setLayerType(LAYER_TYPE_NONE, null);
            }
        };
    }
    openFolderAnim.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationStart(Animator animation) {
            sendCustomAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED,
                    String.format(getContext().getString(R.string.folder_opened), mContent.getCountX(),
                            mContent.getCountY()));
            mState = STATE_ANIMATING;
        }

        @Override
        public void onAnimationEnd(Animator animation) {
            mState = STATE_OPEN;

            if (onCompleteRunnable != null) {
                onCompleteRunnable.run();
            }

            setFocusOnFirstChild();
        }
    });
    openFolderAnim.start();

    // Make sure the folder picks up the last drag move even if the finger doesn't move.
    if (mDragController.isDragging()) {
        mDragController.forceTouchMove();
    }
}

From source file:com.xandy.calendar.AllInOneActivity.java

@Override
public void handleEvent(EventInfo event) {
    long displayTime = -1;
    if (event.eventType == EventType.GO_TO) {
        if ((event.extraLong & CalendarController.EXTRA_GOTO_BACK_TO_PREVIOUS) != 0) {
            mBackToPreviousView = true;// ww w.j  a  v  a 2  s. com
        } else if (event.viewType != mController.getPreviousViewType() && event.viewType != ViewType.EDIT) {
            // Clear the flag is change to a different view type
            mBackToPreviousView = false;
        }

        setMainPane(null, R.id.main_pane, event.viewType, event.startTime.toMillis(false), false);
        if (mSearchView != null) {
            mSearchView.clearFocus();
        }
        if (mShowCalendarControls) {
            int animationSize = (mOrientation == Configuration.ORIENTATION_LANDSCAPE) ? mControlsAnimateWidth
                    : mControlsAnimateHeight;
            boolean noControlsView = event.viewType == ViewType.MONTH || event.viewType == ViewType.AGENDA;
            if (mControlsMenu != null) {
                mControlsMenu.setVisible(!noControlsView);
                mControlsMenu.setEnabled(!noControlsView);
            }
            if (noControlsView || mHideControls) {
                // hide minimonth and calendar frag
                mShowSideViews = false;
                if (!mHideControls) {
                    final ObjectAnimator slideAnimation = ObjectAnimator.ofInt(this, "controlsOffset", 0,
                            animationSize);
                    slideAnimation.addListener(mSlideAnimationDoneListener);
                    slideAnimation.setDuration(mCalendarControlsAnimationTime);
                    ObjectAnimator.setFrameDelay(0);
                    slideAnimation.start();
                } else {
                    mMiniMonth.setVisibility(View.GONE);
                    mCalendarsList.setVisibility(View.GONE);
                    mMiniMonthContainer.setVisibility(View.GONE);
                }
            } else {
                // show minimonth and calendar frag
                mShowSideViews = true;
                mMiniMonth.setVisibility(View.VISIBLE);
                mCalendarsList.setVisibility(View.VISIBLE);
                mMiniMonthContainer.setVisibility(View.VISIBLE);
                if (!mHideControls && (mController.getPreviousViewType() == ViewType.MONTH
                        || mController.getPreviousViewType() == ViewType.AGENDA)) {
                    final ObjectAnimator slideAnimation = ObjectAnimator.ofInt(this, "controlsOffset",
                            animationSize, 0);
                    slideAnimation.setDuration(mCalendarControlsAnimationTime);
                    ObjectAnimator.setFrameDelay(0);
                    slideAnimation.start();
                }
            }
        }
        displayTime = event.selectedTime != null ? event.selectedTime.toMillis(true)
                : event.startTime.toMillis(true);
        if (!mIsTabletConfig) {
            mActionBarMenuSpinnerAdapter.setTime(displayTime);
        }
    } else if (event.eventType == EventType.VIEW_EVENT) {

        // If in Agenda view and "show_event_details_with_agenda" is "true",
        // do not create the event info fragment here, it will be created by the Agenda
        // fragment

        if (mCurrentView == ViewType.AGENDA && mShowEventDetailsWithAgenda) {
            if (event.startTime != null && event.endTime != null) {
                // Event is all day , adjust the goto time to local time
                if (event.isAllDay()) {
                    Utils.convertAlldayUtcToLocal(event.startTime, event.startTime.toMillis(false), mTimeZone);
                    Utils.convertAlldayUtcToLocal(event.endTime, event.endTime.toMillis(false), mTimeZone);
                }
                mController.sendEvent(this, EventType.GO_TO, event.startTime, event.endTime, event.selectedTime,
                        event.id, ViewType.AGENDA, CalendarController.EXTRA_GOTO_TIME, null, null);
            } else if (event.selectedTime != null) {
                mController.sendEvent(this, EventType.GO_TO, event.selectedTime, event.selectedTime, event.id,
                        ViewType.AGENDA);
            }
        } else {
            // TODO Fix the temp hack below: && mCurrentView !=
            // ViewType.AGENDA
            if (event.selectedTime != null && mCurrentView != ViewType.AGENDA) {
                mController.sendEvent(this, EventType.GO_TO, event.selectedTime, event.selectedTime, -1,
                        ViewType.CURRENT);
            }
            int response = event.getResponse();
            if ((mCurrentView == ViewType.AGENDA && mShowEventInfoFullScreenAgenda)
                    || ((mCurrentView == ViewType.DAY || (mCurrentView == ViewType.WEEK)
                            || mCurrentView == ViewType.MONTH) && mShowEventInfoFullScreen)) {
                // start event info as activity
                Intent intent = new Intent(Intent.ACTION_VIEW);
                Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, event.id);
                intent.setData(eventUri);
                intent.setClass(this, EventInfoActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
                intent.putExtra(EXTRA_EVENT_BEGIN_TIME, event.startTime.toMillis(false));
                intent.putExtra(EXTRA_EVENT_END_TIME, event.endTime.toMillis(false));
                intent.putExtra(ATTENDEE_STATUS, response);
                startActivity(intent);
            } else {
                // start event info as a dialog
                EventInfoFragment fragment = new EventInfoFragment(this, event.id,
                        event.startTime.toMillis(false), event.endTime.toMillis(false), response, true,
                        EventInfoFragment.DIALOG_WINDOW_STYLE, null /* No reminders to explicitly pass in. */);
                fragment.setDialogParams(event.x, event.y, mActionBar.getHeight());
                //                    FragmentManager fm = getFragmentManager();
                FragmentManager fm = getSupportFragmentManager();
                FragmentTransaction ft = fm.beginTransaction();
                // if we have an old popup replace it
                Fragment fOld = fm.findFragmentByTag(EVENT_INFO_FRAGMENT_TAG);
                if (fOld != null && fOld.isAdded()) {
                    ft.remove(fOld);
                }
                ft.add(fragment, EVENT_INFO_FRAGMENT_TAG);
                ft.commit();
            }
        }
        displayTime = event.startTime.toMillis(true);
    } else if (event.eventType == EventType.UPDATE_TITLE) {
        setTitleInActionBar(event);
        if (!mIsTabletConfig) {
            mActionBarMenuSpinnerAdapter.setTime(mController.getTime());
        }
    }
    updateSecondaryTitleFields(displayTime);
}

From source file:com.fairphone.fplauncher3.Folder.java

public void animateOpen() {
    if (!(getParent() instanceof DragLayer)) {
        return;//  w ww .  ja  v a 2 s  .  c  o  m
    }

    Animator openFolderAnim;
    final Runnable onCompleteRunnable;
    if (!Utilities.isLmpOrAbove()) {
        positionAndSizeAsIcon();
        centerAboutIcon();

        PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1f);
        PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 1.0f);
        PropertyValuesHolder scaleY = PropertyValuesHolder.ofFloat("scaleY", 1.0f);
        final ObjectAnimator oa = LauncherAnimUtils.ofPropertyValuesHolder(this, alpha, scaleX, scaleY);
        oa.setDuration(mExpandDuration);
        openFolderAnim = oa;

        setLayerType(LAYER_TYPE_HARDWARE, null);
        onCompleteRunnable = new Runnable() {
            @Override
            public void run() {
                setLayerType(LAYER_TYPE_NONE, null);
            }
        };
    } else {
        prepareReveal();
        centerAboutIcon();

        int width = getPaddingLeft() + getPaddingRight() + mContent.getDesiredWidth();
        int height = getFolderHeight();

        float transX = -0.075f * (width / 2 - getPivotX());
        float transY = -0.075f * (height / 2 - getPivotY());
        final float endTransX = 0;
        final float endTransY = 0;

        setTranslationX(transX);
        setTranslationY(transY);
        PropertyValuesHolder tx = PropertyValuesHolder.ofFloat("translationX", transX, endTransX);
        PropertyValuesHolder ty = PropertyValuesHolder.ofFloat("translationY", transY, endTransY);

        int rx = (int) Math.max(Math.max(width - getPivotX(), 0), getPivotX());
        int ry = (int) Math.max(Math.max(height - getPivotY(), 0), getPivotY());
        float radius = (float) Math.sqrt(rx * rx + ry * ry);
        AnimatorSet anim = LauncherAnimUtils.createAnimatorSet();
        Animator reveal = LauncherAnimUtils.createCircularReveal(this, (int) getPivotX(), (int) getPivotY(), 0,
                radius);
        reveal.setDuration(mMaterialExpandDuration);
        reveal.setInterpolator(new LogDecelerateInterpolator(100, 0));

        View[] alphaViewSet = new View[] { mContent, mFolderName };
        for (View view : alphaViewSet) {
            Animator alphaAnimator = setupAlphaAnimator(view, 0f, 1f, mMaterialExpandDuration,
                    mMaterialExpandStagger);
            anim.play(alphaAnimator);
        }

        /* mContent.setAlpha(0f);
         Animator iconsAlpha = LauncherAnimUtils.ofFloat(mContent, "alpha", 0f, 1f);
         iconsAlpha.setDuration(mMaterialExpandDuration);
         iconsAlpha.setStartDelay(mMaterialExpandStagger);
         iconsAlpha.setInterpolator(new AccelerateInterpolator(1.5f));
                
         mFolderName.setAlpha(0f);
         Animator textAlpha = LauncherAnimUtils.ofFloat(mFolderName, "alpha", 0f, 1f);
         textAlpha.setDuration(mMaterialExpandDuration);
         textAlpha.setStartDelay(mMaterialExpandStagger);
         textAlpha.setInterpolator(new AccelerateInterpolator(1.5f));*/

        Animator drift = LauncherAnimUtils.ofPropertyValuesHolder(this, tx, ty);
        drift.setDuration(mMaterialExpandDuration);
        drift.setStartDelay(mMaterialExpandStagger);
        drift.setInterpolator(new LogDecelerateInterpolator(60, 0));
        drift.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                // in low power mode the animation doesn't play, so set the end value here
                Folder.this.setTranslationX(endTransX);
                Folder.this.setTranslationY(endTransY);
            }
        });

        anim.play(drift);
        /* anim.play(iconsAlpha);
         anim.play(textAlpha);*/
        anim.play(reveal);

        openFolderAnim = anim;

        mContent.setLayerType(LAYER_TYPE_HARDWARE, null);
        onCompleteRunnable = new Runnable() {
            @Override
            public void run() {
                mContent.setLayerType(LAYER_TYPE_NONE, null);
            }
        };
    }
    openFolderAnim.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationStart(Animator animation) {
            sendCustomAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED,
                    String.format(getContext().getString(R.string.folder_opened), mContent.getCountX(),
                            mContent.getCountY()));
            mState = STATE_ANIMATING;
        }

        @Override
        public void onAnimationEnd(Animator animation) {
            mState = STATE_OPEN;

            if (onCompleteRunnable != null) {
                onCompleteRunnable.run();
            }

            setFocusOnFirstChild();
        }
    });
    openFolderAnim.start();

    // Make sure the folder picks up the last drag move even if the finger doesn't move.
    if (mDragController.isDragging()) {
        mDragController.forceTouchMove();
    }
}

From source file:com.mishiranu.dashchan.ui.navigator.NavigatorActivity.java

private void performNavigation(final PageHolder.Content content, final String chanName, final String boardName,
        final String threadNumber, final String postNumber, final String threadTitle, final String searchQuery,
        final boolean fromCache, boolean animated, final boolean returnable) {
    PageHolder pageHolder = pageManager.getCurrentPage();
    if (pageHolder != null && pageHolder.is(chanName, boardName, threadNumber, content)
            && searchQuery == null) {
        // Page could be deleted from stack during clearStack (when home button pressed, for example)
        pageHolder.returnable &= returnable;
        pageManager.moveCurrentPageTop();
        page.updatePageConfiguration(postNumber, threadTitle);
        drawerForm.invalidateItems(true, false);
        invalidateHomeUpState();/*from w w w .j  a va 2 s  .  c  o m*/
        return;
    }
    switchView(ListPage.ViewType.LIST, null);
    listView.getWrapper().cancelBusyState();
    listView.getWrapper().setPullSides(PullableWrapper.Side.NONE);
    ClickableToast.cancel(this);
    requestStoreExtraAndPosition();
    cleanupPage();
    handler.removeCallbacks(queuedHandler);
    setActionBarLocked(LOCKER_HANDLE, true);
    if (animated) {
        queuedHandler = () -> {
            queuedHandler = null;
            if (listView.getAnimation() != null) {
                listView.getAnimation().cancel();
            }
            listView.setAlpha(1f);
            handleDataAfterAnimation(content, chanName, boardName, threadNumber, postNumber, threadTitle,
                    searchQuery, fromCache, true, returnable);
        };
        handler.postDelayed(queuedHandler, 300);
        ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(listView, View.ALPHA, 1f, 0f);
        alphaAnimator.setupStartValues();
        alphaAnimator.setStartDelay(150);
        alphaAnimator.setDuration(150);
        startListAnimator(alphaAnimator);
    } else {
        handleDataAfterAnimation(content, chanName, boardName, threadNumber, postNumber, threadTitle,
                searchQuery, fromCache, false, returnable);
    }
}

From source file:com.android.calendar.AllInOneActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Time t = null;// ww w .ja  v a  2 s . com
    int viewType = ViewType.CURRENT;
    long extras = CalendarController.EXTRA_GOTO_TIME;
    final int itemId = item.getItemId();
    if (itemId == R.id.action_refresh) {
        mController.refreshCalendars();
        return true;
    } else if (itemId == R.id.action_today) {
        viewType = ViewType.CURRENT;
        t = new Time(mTimeZone);
        t.setToNow();
        extras |= CalendarController.EXTRA_GOTO_TODAY;
    } else if (itemId == R.id.action_goto) {
        Time todayTime;
        t = new Time(mTimeZone);
        t.set(mController.getTime());
        todayTime = new Time(mTimeZone);
        todayTime.setToNow();
        if (todayTime.month == t.month) {
            t = todayTime;
        }

        DatePickerDialog datePickerDialog = DatePickerDialog
                .newInstance(new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
                        Time selectedTime = new Time(mTimeZone);
                        selectedTime.year = year;
                        selectedTime.month = monthOfYear;
                        selectedTime.monthDay = dayOfMonth;
                        long extras = CalendarController.EXTRA_GOTO_TIME | CalendarController.EXTRA_GOTO_DATE;
                        mController.sendEvent(this, EventType.GO_TO, selectedTime, null, selectedTime, -1,
                                ViewType.CURRENT, extras, null, null);
                    }
                }, t.year, t.month, t.monthDay);
        datePickerDialog.show(getFragmentManager(), "datePickerDialog");

    } else if (itemId == R.id.action_hide_controls) {
        mHideControls = !mHideControls;
        Utils.setSharedPreference(this, GeneralPreferences.KEY_SHOW_CONTROLS, !mHideControls);
        item.setTitle(mHideControls ? mShowString : mHideString);
        if (!mHideControls) {
            mMiniMonth.setVisibility(View.VISIBLE);
            mCalendarsList.setVisibility(View.VISIBLE);
            mMiniMonthContainer.setVisibility(View.VISIBLE);
        }
        final ObjectAnimator slideAnimation = ObjectAnimator.ofInt(this, "controlsOffset",
                mHideControls ? 0 : mControlsAnimateWidth, mHideControls ? mControlsAnimateWidth : 0);
        slideAnimation.setDuration(mCalendarControlsAnimationTime);
        ObjectAnimator.setFrameDelay(0);
        slideAnimation.start();
        return true;
    } else if (itemId == R.id.action_search) {
        return false;
    } else if (itemId == R.id.action_import) {
        ImportActivity.pickImportFile(this);
    } else {
        return mExtensions.handleItemSelected(item, this);
    }
    mController.sendEvent(this, EventType.GO_TO, t, null, t, -1, viewType, extras, null, null);
    return true;
}

From source file:com.klinker.android.sliding.MultiShrinkScroller.java

public void runExpansionAnimation() {

    final Interpolator interpolator;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        interpolator = AnimationUtils.loadInterpolator(getContext(), android.R.interpolator.linear_out_slow_in);
    } else {//from   w w  w.j a  va 2  s  .  c  om
        interpolator = new DecelerateInterpolator();
    }

    WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int screenHeight = size.y;
    int screenWidth = size.x;

    final ValueAnimator heightExpansion = ValueAnimator.ofInt(expansionViewHeight, getHeight());
    heightExpansion.setInterpolator(interpolator);
    heightExpansion.setDuration(ANIMATION_DURATION);
    heightExpansion.addUpdateListener(new AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            int val = (int) animation.getAnimatedValue();

            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = val;
            setLayoutParams(params);
        }
    });
    heightExpansion.start();

    final ValueAnimator widthExpansion = ValueAnimator.ofInt(expansionViewWidth, getWidth());
    widthExpansion.setInterpolator(interpolator);
    widthExpansion.setDuration(ANIMATION_DURATION);
    widthExpansion.addUpdateListener(new AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            int val = (int) animation.getAnimatedValue();

            ViewGroup.LayoutParams params = getLayoutParams();
            params.width = val;
            setLayoutParams(params);
        }
    });
    widthExpansion.start();

    ObjectAnimator translationX = ObjectAnimator.ofFloat(this, View.TRANSLATION_X, expansionLeftOffset, 0f);
    translationX.setInterpolator(interpolator);
    translationX.setDuration(ANIMATION_DURATION);
    translationX.start();

    ObjectAnimator translationY = ObjectAnimator.ofFloat(this, View.TRANSLATION_Y, expansionTopOffset, 0f);
    translationY.setInterpolator(interpolator);
    translationY.setDuration(ANIMATION_DURATION);
    translationY.start();
}