public void evaluateClick() { if (entity.getFormula().equals("")) return; isEvalClick = true; int res = evaluate(entity.getFormula()); if (res == NAN) { entity.setFormula(""); entity.getView().setTextViewText(R.id.widget_result, getText(R.string.error_nan)); } else if (res == RESULT) { entity.setFormula(entity.getResult()); entity.getView().setTextViewText(R.id.widget_formula, entity.getResult()); } else { entity.setFormula(""); entity.getView().setTextViewText(R.id.widget_formula, getText(R.string.error_syntax)); entity.getView().setTextViewText(R.id.widget_result, ""); } AppWidgetManager.getInstance(this).updateAppWidget(entity.getViewId(), entity.getView()); }
@Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); Log.i(TAG, "intent=" + intent); if (intent == null) { return; } int widgetId = intent.getIntExtra("widgetId", -1); if (widgetId == -1) { return; } entity = queryEntityById(widgetId); if (entity != null) {} if (entity == null) { return; } if (mTokenizer == null) { mTokenizer = new CalculatorExpressionTokenizer(this); } if (mSymbols == null) { mSymbols = new Symbols(); } Uri data = intent.getData(); if (data != null) { int index = Integer.parseInt(data.getSchemeSpecificPart()); if (isEvalClick) { if (index <= BUTTON_INDEX_9) { entity.setFormula(""); } isEvalClick = false; } checkInput(index); if (index == BUTTON_INDEX_EQUAL) return; } if (entity.getView() != null) { int res = evaluate(entity.getFormula()); entity.getView().setTextViewText(R.id.widget_formula, entity.getFormula()); if (res == RESULT) { entity.getView().setTextViewText(R.id.widget_result, entity.getResult()); } else { entity.getView().setTextViewText(R.id.widget_result, ""); } AppWidgetManager.getInstance(this).updateAppWidget(widgetId, entity.getView()); } }