Loading src/com/android/calculator2/Calculator.java +5 −0 Original line number Diff line number Diff line Loading @@ -940,6 +940,10 @@ public class Calculator extends Activity mResultText.onReevaluate(index); } public void onMemoryStateChanged() { mFormulaText.onMemoryStateChanged(); } @Override public void onTextSizeChanged(final TextView textView, float oldSize) { if (mCurrentState != CalculatorState.INPUT) { Loading Loading @@ -1236,6 +1240,7 @@ public class Calculator extends Activity // TODO: It's not clear what we should really do here. This is an initial hack. // May want to make onClearAnimationEnd() private if/when we fix this. onClearAnimationEnd(); onMemoryStateChanged(); onBackPressed(); } else if (fragment.getTag() == Evaluator.TIMEOUT_DIALOG_TAG) { // Timeout extension request. Loading src/com/android/calculator2/CalculatorFormula.java +19 −16 Original line number Diff line number Diff line Loading @@ -55,9 +55,9 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen private final ClipboardManager mClipboardManager; private int mWidthConstraint = -1; private ActionMode mActionMode; protected ActionMode mActionMode; private ActionMode.Callback mPasteActionModeCallback; private ContextMenu mContextMenu; protected ContextMenu mContextMenu; private OnTextSizeChangeListener mOnTextSizeChangeListener; private OnFormulaContextMenuClickListener mOnContextMenuClickListener; private Calculator.OnDisplayMemoryOperationsListener mOnDisplayMemoryOperationsListener; Loading Loading @@ -331,9 +331,7 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen } private boolean createContextMenu(MenuInflater inflater, Menu menu) { final ClipboardManager clipboard = (ClipboardManager) getContext() .getSystemService(Context.CLIPBOARD_SERVICE); final boolean isPasteEnabled = clipboard.hasPrimaryClip(); final boolean isPasteEnabled = isPasteEnabled(); final boolean isMemoryEnabled = isMemoryEnabled(); if (!isPasteEnabled && !isMemoryEnabled) { return false; Loading @@ -349,9 +347,7 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen } private void paste() { final ClipboardManager clipboard = (ClipboardManager) getContext() .getSystemService(Context.CLIPBOARD_SERVICE); final ClipData primaryClip = clipboard.getPrimaryClip(); final ClipData primaryClip = mClipboardManager.getPrimaryClip(); if (primaryClip != null && mOnContextMenuClickListener != null) { mOnContextMenuClickListener.onPaste(primaryClip); } Loading @@ -373,10 +369,22 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen @Override public void onPrimaryClipChanged() { setLongClickable(isPasteEnabled() || isMemoryEnabled()); } public void onMemoryStateChanged() { setLongClickable(isPasteEnabled() || isMemoryEnabled()); } private boolean isMemoryEnabled() { return !(mOnDisplayMemoryOperationsListener == null || mOnContextMenuClickListener == null) && mOnDisplayMemoryOperationsListener.shouldDisplayMemory(); } private boolean isPasteEnabled() { final ClipData clip = mClipboardManager.getPrimaryClip(); if (clip == null || clip.getItemCount() == 0) { setLongClickable(isMemoryEnabled()); return; return false; } CharSequence clipText = null; try { Loading @@ -384,12 +392,7 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen } catch (Exception e) { Log.i("Calculator", "Error reading clipboard:", e); } setLongClickable(!TextUtils.isEmpty(clipText) || isMemoryEnabled()); } private boolean isMemoryEnabled() { return !(mOnDisplayMemoryOperationsListener == null || mOnContextMenuClickListener == null) && mOnDisplayMemoryOperationsListener.shouldDisplayMemory(); return !TextUtils.isEmpty(clipText); } public interface OnTextSizeChangeListener { Loading src/com/android/calculator2/Evaluator.java +7 −6 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { // estimating exponent size for truncating short representation. private static final int EXP_COST = 3; private final Activity mActivity; private final Calculator mCalculator; // A hopefully unique name associated with mSaved. private String mSavedName; Loading Loading @@ -335,12 +335,12 @@ public class Evaluator implements CalculatorExpr.ExprResolver { } Evaluator(Calculator calculator) { mActivity = calculator; mCalculator = calculator; setMainExpr(new ExprInfo(new CalculatorExpr(), false)); mSavedName = "none"; mTimeoutHandler = new Handler(); mExprDB = new ExpressionDB(mActivity); mExprDB = new ExpressionDB(mCalculator); mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(calculator); mMainExpr.mDegreeMode = mSharedPrefs.getBoolean(KEY_PREF_DEGREE_MODE, false); long savedIndex = mSharedPrefs.getLong(KEY_PREF_SAVED_INDEX, 0L); Loading Loading @@ -406,7 +406,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { } private void displayCancelledMessage() { AlertDialogFragment.showMessageDialog(mActivity, 0, R.string.cancelled, 0, null); AlertDialogFragment.showMessageDialog(mCalculator, 0, R.string.cancelled, 0, null); } // Timeout handling. Loading Loading @@ -455,7 +455,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { private static final int QUICK_MAX_RESULT_BITS = 150000; private void displayTimeoutMessage(boolean longTimeout) { AlertDialogFragment.showMessageDialog(mActivity, R.string.dialog_timeout, AlertDialogFragment.showMessageDialog(mCalculator, R.string.dialog_timeout, R.string.timeout, longTimeout ? 0 : R.string.ok_remove_timeout, TIMEOUT_DIALOG_TAG); } Loading Loading @@ -1637,6 +1637,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { * The expression at index is presumed to have been evaluated. */ public void copyToMemory(long index) { mCalculator.onMemoryStateChanged(); setMemoryIndex((index == MAIN_INDEX) ? preserve(false) : index); } Loading Loading @@ -1865,7 +1866,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { } public Spannable getExprAsSpannable(long index) { return getExpr(index).toSpannableStringBuilder(mActivity); return getExpr(index).toSpannableStringBuilder(mCalculator); } /** Loading Loading
src/com/android/calculator2/Calculator.java +5 −0 Original line number Diff line number Diff line Loading @@ -940,6 +940,10 @@ public class Calculator extends Activity mResultText.onReevaluate(index); } public void onMemoryStateChanged() { mFormulaText.onMemoryStateChanged(); } @Override public void onTextSizeChanged(final TextView textView, float oldSize) { if (mCurrentState != CalculatorState.INPUT) { Loading Loading @@ -1236,6 +1240,7 @@ public class Calculator extends Activity // TODO: It's not clear what we should really do here. This is an initial hack. // May want to make onClearAnimationEnd() private if/when we fix this. onClearAnimationEnd(); onMemoryStateChanged(); onBackPressed(); } else if (fragment.getTag() == Evaluator.TIMEOUT_DIALOG_TAG) { // Timeout extension request. Loading
src/com/android/calculator2/CalculatorFormula.java +19 −16 Original line number Diff line number Diff line Loading @@ -55,9 +55,9 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen private final ClipboardManager mClipboardManager; private int mWidthConstraint = -1; private ActionMode mActionMode; protected ActionMode mActionMode; private ActionMode.Callback mPasteActionModeCallback; private ContextMenu mContextMenu; protected ContextMenu mContextMenu; private OnTextSizeChangeListener mOnTextSizeChangeListener; private OnFormulaContextMenuClickListener mOnContextMenuClickListener; private Calculator.OnDisplayMemoryOperationsListener mOnDisplayMemoryOperationsListener; Loading Loading @@ -331,9 +331,7 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen } private boolean createContextMenu(MenuInflater inflater, Menu menu) { final ClipboardManager clipboard = (ClipboardManager) getContext() .getSystemService(Context.CLIPBOARD_SERVICE); final boolean isPasteEnabled = clipboard.hasPrimaryClip(); final boolean isPasteEnabled = isPasteEnabled(); final boolean isMemoryEnabled = isMemoryEnabled(); if (!isPasteEnabled && !isMemoryEnabled) { return false; Loading @@ -349,9 +347,7 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen } private void paste() { final ClipboardManager clipboard = (ClipboardManager) getContext() .getSystemService(Context.CLIPBOARD_SERVICE); final ClipData primaryClip = clipboard.getPrimaryClip(); final ClipData primaryClip = mClipboardManager.getPrimaryClip(); if (primaryClip != null && mOnContextMenuClickListener != null) { mOnContextMenuClickListener.onPaste(primaryClip); } Loading @@ -373,10 +369,22 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen @Override public void onPrimaryClipChanged() { setLongClickable(isPasteEnabled() || isMemoryEnabled()); } public void onMemoryStateChanged() { setLongClickable(isPasteEnabled() || isMemoryEnabled()); } private boolean isMemoryEnabled() { return !(mOnDisplayMemoryOperationsListener == null || mOnContextMenuClickListener == null) && mOnDisplayMemoryOperationsListener.shouldDisplayMemory(); } private boolean isPasteEnabled() { final ClipData clip = mClipboardManager.getPrimaryClip(); if (clip == null || clip.getItemCount() == 0) { setLongClickable(isMemoryEnabled()); return; return false; } CharSequence clipText = null; try { Loading @@ -384,12 +392,7 @@ public class CalculatorFormula extends AlignedTextView implements MenuItem.OnMen } catch (Exception e) { Log.i("Calculator", "Error reading clipboard:", e); } setLongClickable(!TextUtils.isEmpty(clipText) || isMemoryEnabled()); } private boolean isMemoryEnabled() { return !(mOnDisplayMemoryOperationsListener == null || mOnContextMenuClickListener == null) && mOnDisplayMemoryOperationsListener.shouldDisplayMemory(); return !TextUtils.isEmpty(clipText); } public interface OnTextSizeChangeListener { Loading
src/com/android/calculator2/Evaluator.java +7 −6 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { // estimating exponent size for truncating short representation. private static final int EXP_COST = 3; private final Activity mActivity; private final Calculator mCalculator; // A hopefully unique name associated with mSaved. private String mSavedName; Loading Loading @@ -335,12 +335,12 @@ public class Evaluator implements CalculatorExpr.ExprResolver { } Evaluator(Calculator calculator) { mActivity = calculator; mCalculator = calculator; setMainExpr(new ExprInfo(new CalculatorExpr(), false)); mSavedName = "none"; mTimeoutHandler = new Handler(); mExprDB = new ExpressionDB(mActivity); mExprDB = new ExpressionDB(mCalculator); mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(calculator); mMainExpr.mDegreeMode = mSharedPrefs.getBoolean(KEY_PREF_DEGREE_MODE, false); long savedIndex = mSharedPrefs.getLong(KEY_PREF_SAVED_INDEX, 0L); Loading Loading @@ -406,7 +406,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { } private void displayCancelledMessage() { AlertDialogFragment.showMessageDialog(mActivity, 0, R.string.cancelled, 0, null); AlertDialogFragment.showMessageDialog(mCalculator, 0, R.string.cancelled, 0, null); } // Timeout handling. Loading Loading @@ -455,7 +455,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { private static final int QUICK_MAX_RESULT_BITS = 150000; private void displayTimeoutMessage(boolean longTimeout) { AlertDialogFragment.showMessageDialog(mActivity, R.string.dialog_timeout, AlertDialogFragment.showMessageDialog(mCalculator, R.string.dialog_timeout, R.string.timeout, longTimeout ? 0 : R.string.ok_remove_timeout, TIMEOUT_DIALOG_TAG); } Loading Loading @@ -1637,6 +1637,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { * The expression at index is presumed to have been evaluated. */ public void copyToMemory(long index) { mCalculator.onMemoryStateChanged(); setMemoryIndex((index == MAIN_INDEX) ? preserve(false) : index); } Loading Loading @@ -1865,7 +1866,7 @@ public class Evaluator implements CalculatorExpr.ExprResolver { } public Spannable getExprAsSpannable(long index) { return getExpr(index).toSpannableStringBuilder(mActivity); return getExpr(index).toSpannableStringBuilder(mCalculator); } /** Loading