package net.momodalo.app.vimtouch;
import android.annotation.TargetApi;
import android.os.Build;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
/**
* Created by kvorobyev on 11/26/14.
*/
@TargetApi(Build.VERSION_CODES.FROYO)
public class ScaleDetectorCompat implements ScaleGestureDetector.OnScaleGestureListener {
private final TermView view;
private final ScaleGestureDetector scaleDetector;
public ScaleDetectorCompat(TermView view) {
this.view = view;
this.scaleDetector = new ScaleGestureDetector(view.getContext(), this);
}
public boolean onScale(ScaleGestureDetector detector) {
float span = detector.getCurrentSpan()/view.mScaleSpan;
view.setScale(span, span, 0.0f, detector.getFocusY());
view.invalidate();
return true;
}
public boolean onScaleBegin(ScaleGestureDetector detector){
view.setZoom(false);
view.mScaleSpan = detector.getCurrentSpan();
return true;
}
public void onScaleEnd(ScaleGestureDetector detector){
float span = detector.getCurrentSpan()/view.mScaleSpan;
view.setScale(1.0f, 1.0f, 0.0f, 0.0f);
view.mScaleSpan = -1.0f;
int size = (int)(view.mSettings.getFontSize()*span);
if (size < 2) size = 2;
view.mSettings.setFontSize(size);
view.updatePrefs(view.mSettings);
}
public boolean onTouchEvent(MotionEvent ev) {
return scaleDetector.onTouchEvent(ev);
}
}