Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b699be3e authored by Christine Franks's avatar Christine Franks Committed by Android (Google) Code Review
Browse files

Merge "Enable MR when MS after start without a pasteable clip" into ub-calculator-euler

parents 64921be0 61c0ed92
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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) {
@@ -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.
+19 −16
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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);
        }
@@ -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 {
@@ -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 {
+7 −6
Original line number Diff line number Diff line
@@ -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;
@@ -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);
@@ -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.
@@ -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);
    }
@@ -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);
    }

@@ -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);
    }

    /**