package org.solovyev.android.calculator.keyboard; import android.app.Activity; import android.app.Application; import android.content.SharedPreferences; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; import org.solovyev.android.calculator.R; import org.solovyev.android.calculator.view.EditorLongClickEraser; import org.solovyev.android.views.dragbutton.DirectionDragButton; import javax.annotation.Nonnull; import javax.inject.Inject; import butterknife.Bind; import butterknife.ButterKnife; import static org.solovyev.android.calculator.Preferences.Gui.vibrateOnKeypress; import static org.solovyev.android.views.dragbutton.DragDirection.down; public class PartialKeyboardUi extends BaseKeyboardUi { @Nullable @Bind(R.id.cpp_button_right) DirectionDragButton rightButton; @Nullable @Bind(R.id.cpp_button_left) DirectionDragButton leftButton; @Nullable @Bind(R.id.cpp_button_clear) DirectionDragButton clearButton; @Nullable @Bind(R.id.cpp_button_erase) DirectionDragButton eraseButton; @Nullable @Bind(R.id.cpp_button_equals) DirectionDragButton equalsButton; @Nullable EditorLongClickEraser longClickEraser; @Inject public PartialKeyboardUi(@NonNull Application application) { super(application); } @Override public void onCreateView(@Nonnull Activity activity, @Nonnull View view) { super.onCreateView(activity, view); ButterKnife.bind(this, view); prepareButton(rightButton); prepareButton(leftButton); prepareButton(equalsButton); prepareButton(clearButton); if (eraseButton != null) { prepareButton(eraseButton); longClickEraser = EditorLongClickEraser.attachTo(eraseButton, keyboard.isVibrateOnKeypress(), editor, calculator); } if (isSimpleMode()) { hideText(equalsButton, down); } } @Override public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { super.onSharedPreferenceChanged(preferences, key); if (longClickEraser != null && vibrateOnKeypress.isSameKey(key)) { longClickEraser.setVibrateOnKeypress(vibrateOnKeypress.getPreference(preferences)); } } }