/*
* Copyright 2013 serso aka se.solovyev
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Contact details
*
* Email: se.solovyev@gmail.com
* Site: http://se.solovyev.org
*/
package org.solovyev.android.calculator.wizard;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;
import org.solovyev.android.calculator.Preferences;
import org.solovyev.android.calculator.R;
import org.solovyev.android.calculator.keyboard.BaseKeyboardUi;
import org.solovyev.android.views.Adjuster;
import org.solovyev.android.views.dragbutton.DirectionDragButton;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import static org.solovyev.android.calculator.App.cast;
import static org.solovyev.android.calculator.wizard.CalculatorMode.engineer;
import static org.solovyev.android.calculator.wizard.CalculatorMode.simple;
import static org.solovyev.android.views.dragbutton.DragDirection.*;
public class ChooseModeWizardStep extends WizardFragment implements AdapterView.OnItemSelectedListener {
private DirectionDragButton button;
private TextView description;
@Inject
Typeface typeface;
@Override
protected int getViewResId() {
return R.layout.cpp_wizard_step_choose_mode;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
cast(this).getComponent().inject(this);
}
@Override
public void onViewCreated(View root, Bundle savedInstanceState) {
super.onViewCreated(root, savedInstanceState);
final CalculatorMode mode = CalculatorMode.fromGuiLayout(Preferences.Gui.mode.getPreference(preferences));
final Spinner spinner = (Spinner) root.findViewById(R.id.wizard_mode_spinner);
spinner.setAdapter(WizardArrayAdapter.create(getActivity(), R.array.cpp_modes));
spinner.setSelection(mode == simple ? 0 : 1);
spinner.setOnItemSelectedListener(this);
button = (DirectionDragButton) root.findViewById(R.id.wizard_mode_button);
Adjuster.adjustText(button, BaseKeyboardUi.getTextScale(getActivity()));
description = (TextView) root.findViewById(R.id.wizard_mode_description);
updateDescription(mode);
}
private void updateDescription(@Nonnull CalculatorMode mode) {
boolean simple = mode == CalculatorMode.simple;
description.setText(simple ? R.string.cpp_wizard_mode_simple_description : R.string.cpp_wizard_mode_engineer_description);
if (simple) {
button.setText(up, "");
button.setText(down, "");
button.setText(left, "");
} else {
button.setText(up, "sin");
button.setText(down, "ln");
button.setText(left, "i");
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
final CalculatorMode mode = position == 0 ? simple : engineer;
mode.apply(preferences);
updateDescription(mode);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}