package org.solovyev.android.calculator.view; import android.view.View; import org.solovyev.android.calculator.*; import javax.annotation.Nonnull; import static android.text.TextUtils.isEmpty; public class EditorLongClickEraser extends BaseLongClickEraser { @Nonnull private final Editor editor; @Nonnull private final Calculator calculator; private boolean wasCalculatingOnFly; private EditorLongClickEraser(@Nonnull View view, boolean vibrateOnKeypress, @Nonnull Editor editor, @Nonnull Calculator calculator) { super(view, vibrateOnKeypress); this.editor = editor; this.calculator = calculator; } @Nonnull public static EditorLongClickEraser attachTo(@Nonnull View view, boolean vibrateOnKeypress, @Nonnull Editor editor, @Nonnull Calculator calculator) { return new EditorLongClickEraser(view, vibrateOnKeypress, editor, calculator); } protected boolean erase() { final EditorState state = editor.erase(); return !isEmpty(state.text); } @Override protected void onStartErase() { wasCalculatingOnFly = calculator.isCalculateOnFly(); if (wasCalculatingOnFly) { calculator.setCalculateOnFly(false); } } @Override protected void onStopErase() { if (wasCalculatingOnFly) { calculator.setCalculateOnFly(true); } } }