protected void applyStyle(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){ getRippleManager().onCreate(this, context, attrs, defStyleAttr, defStyleRes); }
@Override public boolean onTouchEvent(@NonNull MotionEvent event) { boolean result = super.onTouchEvent(event); return mRippleManager.onTouchEvent(this, event) || result; }
protected RippleManager getRippleManager(){ if(mRippleManager == null){ synchronized (RippleManager.class){ if(mRippleManager == null) mRippleManager = new RippleManager(); } } return mRippleManager; }
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }
@Override public void onMovedToScrapHeap(View view) { RippleManager.cancelRipple(view); if(mRecyclerListener != null) mRecyclerListener.onMovedToScrapHeap(view); }
/** * Should be called in the construction method of view to create a RippleDrawable. * @param v * @param context * @param attrs * @param defStyleAttr * @param defStyleRes */ public void onCreate(View v, Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){ if(v.isInEditMode()) return; TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RippleView, defStyleAttr, defStyleRes); int rippleStyle = a.getResourceId(R.styleable.RippleView_rd_style, 0); RippleDrawable drawable = null; if(rippleStyle != 0) drawable = new RippleDrawable.Builder(context, rippleStyle).backgroundDrawable(getBackground(v)).build(); else{ boolean rippleEnable = a.getBoolean(R.styleable.RippleView_rd_enable, false); if(rippleEnable) drawable = new RippleDrawable.Builder(context, attrs, defStyleAttr, defStyleRes).backgroundDrawable(getBackground(v)).build(); } a.recycle(); if(drawable != null) ViewUtil.setBackground(v, drawable); }
@Override public void onClick(View v) { Drawable background = v.getBackground(); long delay = 0; if(background != null) { if (background instanceof RippleDrawable) delay = ((RippleDrawable) background).getClickDelayTime(); else if (background instanceof ToolbarRippleDrawable) delay = ((ToolbarRippleDrawable) background).getClickDelayTime(); } if(delay > 0 && v.getHandler() != null) { if(!mClickScheduled){ mClickScheduled = true; v.getHandler().postDelayed(new ClickRunnable(v), delay); } } else dispatchClickEvent(v); }
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }
@Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); RippleManager.cancelRipple(this); if(mStyleId != 0) ThemeManager.getInstance().unregisterOnThemeChangedListener(this); }
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }
@Override public boolean onTouchEvent(@NonNull MotionEvent event) { int action = event.getActionMasked(); if(action == MotionEvent.ACTION_DOWN && ! mBackground.isPointerOver(event.getX(), event.getY())) return false; boolean result = super.onTouchEvent(event); return getRippleManager().onTouchEvent(this, event) || result; }
protected void applyStyle(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){ getRippleManager().onCreate(this, context, attrs, defStyleAttr, defStyleRes); }
@Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); RippleManager.cancelRipple(this); if(mStyleId != 0) ThemeManager.getInstance().unregisterOnThemeChangedListener(this); }
protected RippleManager getRippleManager(){ if(mRippleManager == null){ synchronized (RippleManager.class){ if(mRippleManager == null) mRippleManager = new RippleManager(); } } return mRippleManager; }
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }
@Override public boolean onTouchEvent(@NonNull MotionEvent event) { boolean result = super.onTouchEvent(event); return getRippleManager().onTouchEvent(this, event) || result; }
protected void applyStyle(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){ getRippleManager().onCreate(this, context, attrs, defStyleAttr, defStyleRes); }
@Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); RippleManager.cancelRipple(this); if(mStyleId != 0) ThemeManager.getInstance().unregisterOnThemeChangedListener(this); }
protected RippleManager getRippleManager(){ if(mRippleManager == null){ synchronized (RippleManager.class){ if(mRippleManager == null) mRippleManager = new RippleManager(); } } return mRippleManager; }
@Override public void setOnClickListener(OnClickListener l) { RippleManager rippleManager = getRippleManager(); if (l == rippleManager) super.setOnClickListener(l); else { rippleManager.setOnClickListener(l); setOnClickListener(rippleManager); } }