Number formatting
This commit is contained in:
parent
fc48886929
commit
52cc460451
@ -1,6 +1,7 @@
|
||||
package org.solovyev.android.calculator;
|
||||
|
||||
import dagger.Component;
|
||||
import org.solovyev.android.calculator.converter.ConverterFragment;
|
||||
import org.solovyev.android.calculator.errors.FixableErrorFragment;
|
||||
import org.solovyev.android.calculator.errors.FixableErrorsActivity;
|
||||
import org.solovyev.android.calculator.functions.EditFunctionFragment;
|
||||
@ -35,6 +36,7 @@ public interface AppComponent {
|
||||
void inject(FunctionsFragment fragment);
|
||||
void inject(VariablesFragment fragment);
|
||||
void inject(OperatorsFragment fragment);
|
||||
void inject(ConverterFragment fragment);
|
||||
void inject(CalculatorActivity activity);
|
||||
void inject(FixableErrorsActivity activity);
|
||||
void inject(CalculatorReceiver receiver);
|
||||
|
@ -19,6 +19,7 @@ import android.widget.*;
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
import org.solovyev.android.calculator.App;
|
||||
import org.solovyev.android.calculator.AppComponent;
|
||||
import org.solovyev.android.calculator.BaseDialogFragment;
|
||||
import org.solovyev.android.calculator.R;
|
||||
|
||||
@ -27,11 +28,15 @@ import javax.measure.unit.Dimension;
|
||||
import javax.measure.unit.NonSI;
|
||||
import javax.measure.unit.SI;
|
||||
import javax.measure.unit.Unit;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.*;
|
||||
|
||||
public class ConverterFragment extends BaseDialogFragment
|
||||
implements AdapterView.OnItemSelectedListener, View.OnFocusChangeListener, TextView.OnEditorActionListener, View.OnClickListener, TextWatcher {
|
||||
|
||||
@Nonnull
|
||||
private static final DecimalFormat formatter = new DecimalFormat("0.#####E0");
|
||||
@NonNull
|
||||
private static final Set<String> excludedUnits = new HashSet<>(Arrays.asList("year_sidereal", "year_calendar", "day_sidereal", "foot_survey_us"));
|
||||
@NonNull
|
||||
@ -113,7 +118,11 @@ public class ConverterFragment extends BaseDialogFragment
|
||||
|
||||
@Override
|
||||
protected void onPrepareDialog(@NonNull AlertDialog.Builder builder) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void inject(@NonNull AppComponent component) {
|
||||
super.inject(component);
|
||||
}
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
@ -264,13 +273,13 @@ public class ConverterFragment extends BaseDialogFragment
|
||||
}
|
||||
|
||||
try {
|
||||
final Double fromValue = Double.valueOf(value);
|
||||
final Double fromValue = formatter.parse(value).doubleValue();
|
||||
final Unit<?> from = adapterFrom.getItem(spinnerFrom.getSelectedItemPosition());
|
||||
final Unit<?> to = adapterTo.getItem(spinnerTo.getSelectedItemPosition());
|
||||
final double toValue = from.getConverterTo(to).convert(fromValue);
|
||||
editTextTo.setText(String.valueOf(toValue));
|
||||
editTextTo.setText(formatter.format(toValue));
|
||||
clearError(labelFrom);
|
||||
} catch (RuntimeException e) {
|
||||
} catch (RuntimeException | ParseException e) {
|
||||
if (validate) {
|
||||
setError(labelFrom, e.getLocalizedMessage());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user