mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-09-12 19:48:45 +01:00
65 lines
1.6 KiB
Java
65 lines
1.6 KiB
Java
package org.thoughtcrime.securesms.mediasend;
|
|
|
|
import android.content.Context;
|
|
import android.util.AttributeSet;
|
|
import android.view.MotionEvent;
|
|
import android.view.animation.Animation;
|
|
import android.view.animation.AnimationUtils;
|
|
|
|
import androidx.appcompat.widget.AppCompatButton;
|
|
|
|
import org.thoughtcrime.securesms.R;
|
|
|
|
public final class CameraButtonView extends AppCompatButton {
|
|
|
|
private Animation shrinkAnimation;
|
|
private Animation growAnimation;
|
|
|
|
public CameraButtonView(Context context) {
|
|
super(context);
|
|
init(context);
|
|
}
|
|
|
|
public CameraButtonView(Context context, AttributeSet attrs) {
|
|
super(context, attrs);
|
|
init(context);
|
|
}
|
|
|
|
public CameraButtonView(Context context, AttributeSet attrs, int defStyleAttr) {
|
|
super(context, attrs, defStyleAttr);
|
|
init(context);
|
|
}
|
|
|
|
public void init(Context context) {
|
|
shrinkAnimation = AnimationUtils.loadAnimation(context, R.anim.camera_capture_button_shrink);
|
|
growAnimation = AnimationUtils.loadAnimation(context, R.anim.camera_capture_button_grow);
|
|
|
|
shrinkAnimation.setFillAfter(true);
|
|
shrinkAnimation.setFillEnabled(true);
|
|
|
|
growAnimation.setFillAfter(true);
|
|
growAnimation.setFillEnabled(true);
|
|
}
|
|
|
|
@Override
|
|
public boolean onTouchEvent(MotionEvent event) {
|
|
switch (event.getAction()) {
|
|
case MotionEvent.ACTION_DOWN:
|
|
if (isEnabled()) {
|
|
startAnimation(shrinkAnimation);
|
|
performClick();
|
|
}
|
|
return true;
|
|
case MotionEvent.ACTION_UP:
|
|
startAnimation(growAnimation);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean performClick() {
|
|
return super.performClick();
|
|
}
|
|
}
|