Example usage for android.support.v4.content ContextCompat getDrawable

List of usage examples for android.support.v4.content ContextCompat getDrawable

Introduction

In this page you can find the example usage for android.support.v4.content ContextCompat getDrawable.

Prototype

public static final Drawable getDrawable(Context context, int i) 

Source Link

Usage

From source file:com.h6ah4i.android.example.advrecyclerview.demo_ds.DraggableSwipeableExampleFragment.java

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    //noinspection ConstantConditions
    mRecyclerView = (RecyclerView) getView().findViewById(R.id.recycler_view);
    mLayoutManager = new LinearLayoutManager(getContext());

    // touch guard manager  (this class is required to suppress scrolling while swipe-dismiss animation is running)
    mRecyclerViewTouchActionGuardManager = new RecyclerViewTouchActionGuardManager();
    mRecyclerViewTouchActionGuardManager.setInterceptVerticalScrollingWhileAnimationRunning(true);
    mRecyclerViewTouchActionGuardManager.setEnabled(true);

    // drag & drop manager
    mRecyclerViewDragDropManager = new RecyclerViewDragDropManager();
    mRecyclerViewDragDropManager.setDraggingItemShadowDrawable(
            (NinePatchDrawable) ContextCompat.getDrawable(getContext(), R.drawable.material_shadow_z3));

    // swipe manager
    mRecyclerViewSwipeManager = new RecyclerViewSwipeManager();

    //adapter//from   w ww  .  ja  v  a2  s.  c om
    final DraggableSwipeableExampleAdapter myItemAdapter = new DraggableSwipeableExampleAdapter(
            getDataProvider());
    myItemAdapter.setEventListener(new DraggableSwipeableExampleAdapter.EventListener() {
        @Override
        public void onItemRemoved(int position) {
            ((DraggableSwipeableExampleActivity) getActivity()).onItemRemoved(position);
        }

        @Override
        public void onItemPinned(int position) {
            ((DraggableSwipeableExampleActivity) getActivity()).onItemPinned(position);
        }

        @Override
        public void onItemViewClicked(View v, boolean pinned) {
            onItemViewClick(v, pinned);
        }
    });

    mAdapter = myItemAdapter;

    mWrappedAdapter = mRecyclerViewDragDropManager.createWrappedAdapter(myItemAdapter); // wrap for dragging
    mWrappedAdapter = mRecyclerViewSwipeManager.createWrappedAdapter(mWrappedAdapter); // wrap for swiping

    final GeneralItemAnimator animator = new SwipeDismissItemAnimator();

    // Change animations are enabled by default since support-v7-recyclerview v22.
    // Disable the change animation in order to make turning back animation of swiped item works properly.
    animator.setSupportsChangeAnimations(false);

    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mWrappedAdapter); // requires *wrapped* adapter
    mRecyclerView.setItemAnimator(animator);

    // additional decorations
    //noinspection StatementWithEmptyBody
    if (supportsViewElevation()) {
        // Lollipop or later has native drop shadow feature. ItemShadowDecorator is not required.
    } else {
        mRecyclerView.addItemDecoration(new ItemShadowDecorator(
                (NinePatchDrawable) ContextCompat.getDrawable(getContext(), R.drawable.material_shadow_z1)));
    }
    mRecyclerView.addItemDecoration(new SimpleListDividerDecorator(
            ContextCompat.getDrawable(getContext(), R.drawable.list_divider_h), true));

    // NOTE:
    // The initialization order is very important! This order determines the priority of touch event handling.
    //
    // priority: TouchActionGuard > Swipe > DragAndDrop
    mRecyclerViewTouchActionGuardManager.attachRecyclerView(mRecyclerView);
    mRecyclerViewSwipeManager.attachRecyclerView(mRecyclerView);
    mRecyclerViewDragDropManager.attachRecyclerView(mRecyclerView);

    // for debugging
    //        animator.setDebug(true);
    //        animator.setMoveDuration(2000);
    //        animator.setRemoveDuration(2000);
    //        mRecyclerViewSwipeManager.setMoveToOutsideWindowAnimationDuration(2000);
    //        mRecyclerViewSwipeManager.setReturnToDefaultPositionAnimationDuration(2000);
}

From source file:com.barak.pix.UserDetailActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_detail);

    Intent intent = getIntent();//from w  w w. j  av  a  2 s .  c  o  m
    mUserId = intent.getStringExtra(USER_ID_EXTRA_NAME);

    final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(
            R.id.collapsing_toolbar);
    // TODO: Investigate why initial toolbar title is activity name instead of blank.

    mPeopleRef = FirebaseUtil.getPeopleRef();
    final String currentUserId = FirebaseUtil.getCurrentUserId();

    final FloatingActionButton followUserFab = (FloatingActionButton) findViewById(R.id.follow_user_fab);
    mFollowingListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                followUserFab.setImageDrawable(
                        ContextCompat.getDrawable(UserDetailActivity.this, R.drawable.ic_done_24dp));
            } else {
                followUserFab.setImageDrawable(
                        ContextCompat.getDrawable(UserDetailActivity.this, R.drawable.ic_person_add_24dp));
            }
        }

        @Override
        public void onCancelled(DatabaseError firebaseError) {

        }
    };
    if (currentUserId != null) {
        mPeopleRef.child(currentUserId).child("following").child(mUserId)
                .addValueEventListener(mFollowingListener);
    }
    followUserFab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (currentUserId == null) {
                Toast.makeText(UserDetailActivity.this, "You need to sign in to follow someone.",
                        Toast.LENGTH_SHORT).show();
                return;
            }
            // TODO: Convert these to actually not be single value, for live updating when
            // current user follows.
            mPeopleRef.child(currentUserId).child("following").child(mUserId)
                    .addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            Map<String, Object> updatedUserData = new HashMap<>();
                            if (dataSnapshot.exists()) {
                                // Already following, need to unfollow
                                updatedUserData.put("people/" + currentUserId + "/following/" + mUserId, null);
                                updatedUserData.put("followers/" + mUserId + "/" + currentUserId, null);
                            } else {
                                updatedUserData.put("people/" + currentUserId + "/following/" + mUserId, true);
                                updatedUserData.put("followers/" + mUserId + "/" + currentUserId, true);
                            }
                            FirebaseUtil.getBaseRef().updateChildren(updatedUserData,
                                    new DatabaseReference.CompletionListener() {
                                        @Override
                                        public void onComplete(DatabaseError firebaseError,
                                                DatabaseReference firebase) {
                                            if (firebaseError != null) {
                                                Toast.makeText(UserDetailActivity.this,
                                                        R.string.follow_user_error, Toast.LENGTH_LONG).show();
                                                Log.d(TAG, getString(R.string.follow_user_error) + "\n"
                                                        + firebaseError.getMessage());
                                            }
                                        }
                                    });
                        }

                        @Override
                        public void onCancelled(DatabaseError firebaseError) {

                        }
                    });
        }
    });

    mRecyclerGrid = (RecyclerView) findViewById(R.id.user_posts_grid);
    mGridAdapter = new GridAdapter();
    mRecyclerGrid.setAdapter(mGridAdapter);
    mRecyclerGrid.setLayoutManager(new GridLayoutManager(this, GRID_NUM_COLUMNS));

    mPersonRef = FirebaseUtil.getPeopleRef().child(mUserId);
    mPersonInfoListener = mPersonRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Person person = dataSnapshot.getValue(Person.class);
            CircleImageView userPhoto = (CircleImageView) findViewById(R.id.user_detail_photo);
            GlideUtil.loadProfileIcon(person.getProfile_picture(), userPhoto);
            String name = person.getFull_name();
            if (name == null) {
                name = getString(R.string.user_info_no_name);
            }
            collapsingToolbar.setTitle(name);
            if (person.getFollowing() != null) {
                int numFollowing = person.getFollowing().size();
                ((TextView) findViewById(R.id.user_num_following)).setText(numFollowing + " following");
            }
            List<String> paths = new ArrayList<String>(person.getPosts().keySet());
            mGridAdapter.addPaths(paths);
            String firstPostKey = paths.get(0);

            FirebaseUtil.getPostsRef().child(firstPostKey)
                    .addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            Post post = dataSnapshot.getValue(Post.class);

                            ImageView imageView = (ImageView) findViewById(R.id.backdrop);
                            GlideUtil.loadImage(post.getFull_url(), imageView);
                        }

                        @Override
                        public void onCancelled(DatabaseError firebaseError) {

                        }
                    });
        }

        @Override
        public void onCancelled(DatabaseError firebaseError) {

        }
    });
    mFollowersRef = FirebaseUtil.getFollowersRef().child(mUserId);
    mFollowersListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            long numFollowers = dataSnapshot.getChildrenCount();
            ((TextView) findViewById(R.id.user_num_followers))
                    .setText(numFollowers + " follower" + (numFollowers == 1 ? "" : "s"));
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    };
    mFollowersRef.addValueEventListener(mFollowersListener);
}

From source file:com.jun.jokedaquan.widget.divider.DividerItemDecoration.java

/**
 * Construct a decoration with a specified resId and must be specify the orientation,
 *
 * @param context     Context/* w  w w .  j a  v  a  2s .c  o  m*/
 * @param resId       id of divider
 * @param orientation the orientation must be one of the {@link #VERTICAL_LIST} or {@link #HORIZONTAL_LIST}.
 */
public DividerItemDecoration(Context context, @DrawableRes int resId, int orientation) {
    mDivider = ContextCompat.getDrawable(context, resId);
    setOrientation(orientation);
}

From source file:com.example.evan.comp296.messaging.UserDetailActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_detail);

    Intent intent = getIntent();/*from w w w  . j a  va 2s . c  o  m*/
    mUserId = intent.getStringExtra(USER_ID_EXTRA_NAME);

    final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    final CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(
            R.id.collapsing_toolbar);
    // TODO: Investigate why initial toolbar title is activity name instead of blank.

    mPeopleRef = FirebaseUtil.getPeopleRef();
    final String currentUserId = FirebaseUtil.getCurrentUserId();

    final FloatingActionButton followUserFab = (FloatingActionButton) findViewById(R.id.follow_user_fab);
    mFollowingListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                followUserFab.setImageDrawable(
                        ContextCompat.getDrawable(UserDetailActivity.this, R.drawable.ic_done_24dp));
            } else {
                followUserFab.setImageDrawable(
                        ContextCompat.getDrawable(UserDetailActivity.this, R.drawable.ic_person_add_24dp));
            }
        }

        @Override
        public void onCancelled(DatabaseError firebaseError) {

        }
    };
    if (currentUserId != null) {
        mPeopleRef.child(currentUserId).child("following").child(mUserId)
                .addValueEventListener(mFollowingListener);
    }
    followUserFab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (currentUserId == null) {
                Toast.makeText(UserDetailActivity.this, "You need to sign in to follow someone.",
                        Toast.LENGTH_SHORT).show();
                return;
            }
            // TODO: Convert these to actually not be single value, for live updating when
            // current user follows.
            mPeopleRef.child(currentUserId).child("following").child(mUserId)
                    .addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            Map<String, Object> updatedUserData = new HashMap<>();
                            if (dataSnapshot.exists()) {
                                // Already following, need to unfollow
                                updatedUserData.put("people/" + currentUserId + "/following/" + mUserId, null);
                                updatedUserData.put("followers/" + mUserId + "/" + currentUserId, null);
                            } else {
                                updatedUserData.put("people/" + currentUserId + "/following/" + mUserId, true);
                                updatedUserData.put("followers/" + mUserId + "/" + currentUserId, true);
                            }
                            FirebaseUtil.getBaseRef().updateChildren(updatedUserData,
                                    new DatabaseReference.CompletionListener() {
                                        @Override
                                        public void onComplete(DatabaseError firebaseError,
                                                DatabaseReference firebase) {
                                            if (firebaseError != null) {
                                                Toast.makeText(UserDetailActivity.this,
                                                        R.string.follow_user_error, Toast.LENGTH_LONG).show();
                                                Log.d(TAG, getString(R.string.follow_user_error) + "\n"
                                                        + firebaseError.getMessage());
                                            }
                                        }
                                    });
                        }

                        @Override
                        public void onCancelled(DatabaseError firebaseError) {

                        }
                    });
        }
    });

    mRecyclerGrid = (RecyclerView) findViewById(R.id.user_posts_grid);
    mGridAdapter = new GridAdapter();
    mRecyclerGrid.setAdapter(mGridAdapter);
    mRecyclerGrid.setLayoutManager(new GridLayoutManager(this, GRID_NUM_COLUMNS));

    mPersonRef = FirebaseUtil.getPeopleRef().child(mUserId);
    mPersonInfoListener = mPersonRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Person person = dataSnapshot.getValue(Person.class);
            Log.w(TAG, "mPersonRef:" + mPersonRef.getKey());
            CircleImageView userPhoto = (CircleImageView) findViewById(R.id.user_detail_photo);
            GlideUtil.loadProfileIcon(person.getPhotoUrl(), userPhoto);
            String name = person.getDisplayName();
            if (name == null) {
                name = getString(R.string.user_info_no_name);
            }
            collapsingToolbar.setTitle(name);
            if (person.getFollowing() != null) {
                int numFollowing = person.getFollowing().size();
                ((TextView) findViewById(R.id.user_num_following)).setText(numFollowing + " following");
            }
            List<String> paths = new ArrayList<String>(person.getPosts().keySet());
            mGridAdapter.addPaths(paths);
            String firstPostKey = paths.get(0);

            FirebaseUtil.getPostsRef().child(firstPostKey)
                    .addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            Post post = dataSnapshot.getValue(Post.class);

                            ImageView imageView = (ImageView) findViewById(R.id.backdrop);
                            GlideUtil.loadImage(post.getFull_url(), imageView);
                        }

                        @Override
                        public void onCancelled(DatabaseError firebaseError) {

                        }
                    });
        }

        @Override
        public void onCancelled(DatabaseError firebaseError) {

        }
    });
    mFollowersRef = FirebaseUtil.getFollowersRef().child(mUserId);
    mFollowersListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            long numFollowers = dataSnapshot.getChildrenCount();
            ((TextView) findViewById(R.id.user_num_followers))
                    .setText(numFollowers + " follower" + (numFollowers == 1 ? "" : "s"));
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    };
    mFollowersRef.addValueEventListener(mFollowersListener);
}

From source file:com.fuzz.indicator.CutoutImageCell.java

/**
 * Attach the appropriate drawable, specified by {@code lp}, on {@link #itemView}.
 *
 * @param lp    the LayoutParams {@link #itemView} should be assumed to have
 * @return a resolved drawable, or null if none can be found
 * @see CutoutViewLayoutParams#indicatorDrawableId
 *///from   www  .java 2 s .c  o m
@Nullable
protected Drawable chooseDrawable(@NonNull CutoutViewLayoutParams lp) {
    Drawable chosen;
    if (latestResourceId != lp.indicatorDrawableId) {
        latestResourceId = lp.indicatorDrawableId;
        chosen = ContextCompat.getDrawable(itemView.getContext(), lp.indicatorDrawableId);
    } else {
        chosen = itemView.getDrawable();
    }
    return chosen;
}

From source file:com.binil.pushnotification.GcmIntentService.java

private void displayNotification(PendingIntent pi, String title, String msg) {

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setLargeIcon(((BitmapDrawable) ContextCompat.getDrawable(getApplication(), R.drawable.ic_launcher))
                    .getBitmap())// w w  w  . java  2  s  . c  om
            .setContentTitle(title).setContentText(msg).setContentIntent(pi).setTicker(msg)
            .setStyle(new NotificationCompat.BigTextStyle().bigText(msg)).setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL);

    NotificationManagerCompat manager = NotificationManagerCompat.from(getApplicationContext());
    manager.notify(NOTIFICATION_ID, mBuilder.build());
}

From source file:com.androidinspain.deskclock.alarms.dataadapter.ExpandedAlarmViewHolder.java

private ExpandedAlarmViewHolder(View itemView, boolean hasVibrator) {
    super(itemView);

    mHasVibrator = hasVibrator;//from  w  w  w.ja v a2s .  co  m

    delete = (TextView) itemView.findViewById(R.id.delete);
    repeat = (CheckBox) itemView.findViewById(R.id.repeat_onoff);
    vibrate = (CheckBox) itemView.findViewById(R.id.vibrate_onoff);
    ringtone = (TextView) itemView.findViewById(R.id.choose_ringtone);
    editLabel = (TextView) itemView.findViewById(R.id.edit_label);
    repeatDays = (LinearLayout) itemView.findViewById(R.id.repeat_days);
    hairLine = itemView.findViewById(R.id.hairline);

    final Context context = itemView.getContext();
    itemView.setBackground(new LayerDrawable(
            new Drawable[] { ContextCompat.getDrawable(context, R.drawable.alarm_background_expanded),
                    ThemeUtils.resolveDrawable(context, R.attr.selectableItemBackground) }));

    // Build button for each day.
    final LayoutInflater inflater = LayoutInflater.from(context);
    final List<Integer> weekdays = DataModel.getDataModel().getWeekdayOrder().getCalendarDays();
    for (int i = 0; i < 7; i++) {
        final View dayButtonFrame = inflater.inflate(R.layout.day_button, repeatDays, false /* attachToRoot */);
        final CompoundButton dayButton = (CompoundButton) dayButtonFrame.findViewById(R.id.day_button_box);
        final int weekday = weekdays.get(i);
        dayButton.setText(UiDataModel.getUiDataModel().getShortWeekday(weekday));
        dayButton.setContentDescription(UiDataModel.getUiDataModel().getLongWeekday(weekday));
        repeatDays.addView(dayButtonFrame);
        dayButtons[i] = dayButton;
    }

    // Cannot set in xml since we need compat functionality for API < 21
    final Drawable labelIcon = Utils.getVectorDrawable(context, R.drawable.ic_label);
    editLabel.setCompoundDrawablesRelativeWithIntrinsicBounds(labelIcon, null, null, null);
    final Drawable deleteIcon = Utils.getVectorDrawable(context, R.drawable.ic_delete_small);
    delete.setCompoundDrawablesRelativeWithIntrinsicBounds(deleteIcon, null, null, null);

    // Collapse handler
    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Events.sendAlarmEvent(R.string.action_collapse_implied, R.string.label_deskclock);
            getItemHolder().collapse();
        }
    });
    arrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Events.sendAlarmEvent(R.string.action_collapse, R.string.label_deskclock);
            getItemHolder().collapse();
        }
    });
    // Edit time handler
    clock.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAlarmTimeClickHandler().onClockClicked(getItemHolder().item);
        }
    });
    // Edit label handler
    editLabel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getAlarmTimeClickHandler().onEditLabelClicked(getItemHolder().item);
        }
    });
    // Vibrator checkbox handler
    vibrate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAlarmTimeClickHandler().setAlarmVibrationEnabled(getItemHolder().item,
                    ((CheckBox) v).isChecked());
        }
    });
    // Ringtone editor handler
    ringtone.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getAlarmTimeClickHandler().onRingtoneClicked(context, getItemHolder().item);
        }
    });
    // Delete alarm handler
    delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAlarmTimeClickHandler().onDeleteClicked(getItemHolder());
            v.announceForAccessibility(context.getString(R.string.alarm_deleted));
        }
    });
    // Repeat checkbox handler
    repeat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final boolean checked = ((CheckBox) view).isChecked();
            getAlarmTimeClickHandler().setAlarmRepeatEnabled(getItemHolder().item, checked);
            getItemHolder().notifyItemChanged(ANIMATE_REPEAT_DAYS);
        }
    });
    // Day buttons handler
    for (int i = 0; i < dayButtons.length; i++) {
        final int buttonIndex = i;
        dayButtons[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final boolean isChecked = ((CompoundButton) view).isChecked();
                getAlarmTimeClickHandler().setDayOfWeekEnabled(getItemHolder().item, isChecked, buttonIndex);
            }
        });
    }

    itemView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}

From source file:com.google.samples.apps.topeka.adapter.ScoreAdapter.java

/**
 * Convenience method to aid tintint of vector drawables at runtime.
 *
 * @param context The {@link Context} for this app.
 * @param drawableId The id of the drawable to load.
 * @param tintColor The tint to apply.//from w w w  .j av  a 2  s  . c o m
 * @return The tinted drawable.
 */
private Drawable loadAndTint(Context context, @DrawableRes int drawableId, @ColorRes int tintColor) {
    Drawable imageDrawable = ContextCompat.getDrawable(context, drawableId);
    if (imageDrawable == null) {
        throw new IllegalArgumentException("The drawable with id " + drawableId + " does not exist");
    }
    DrawableCompat.setTint(DrawableCompat.wrap(imageDrawable), tintColor);
    return imageDrawable;
}

From source file:com.android.example.leanback.fastlane.BackgroundHelper.java

protected void setDefaultBackground(int resourceId) {
    mDefaultBackground = ContextCompat.getDrawable(mActivity, resourceId);
}

From source file:com.hookedonplay.decoviewsample.SampleFit2Fragment.java

private void addAnimation(final DecoView arcView, int series, float moveTo, int delay,
        final ImageView imageView, final int imageId, final String format, final int color,
        final boolean restart) {

    DecoEvent.ExecuteEventListener listener = new DecoEvent.ExecuteEventListener() {
        @Override//w  w  w.  ja va2 s  .c om
        public void onEventStart(DecoEvent event) {
            imageView.setImageDrawable(ContextCompat.getDrawable(getActivity(), imageId));
            showAvatar(true, imageView);
            mProgress = format;
        }

        @Override
        public void onEventEnd(DecoEvent event) {
            showAvatar(false, imageView);
            if (restart) {
                setupEvents();
            }
        }
    };

    arcView.addEvent(new DecoEvent.Builder(moveTo).setIndex(series).setDelay(delay).setDuration(5000)
            .setListener(listener).setColor(color).build());
}