private android.graphics.drawable.Drawable getCachedDrawable(android.util.LongSparseArray <[email protected]<android.graphics.drawable.Drawable.ConstantState>> drawableCache, long key) { lock (mTmpValue) { [email protected]<android.graphics.drawable.Drawable.ConstantState> wr = drawableCache.get(key); if (wr != null) { // we have the key android.graphics.drawable.Drawable.ConstantState entry = wr.get(); if (entry != null) { //Log.i(TAG, "Returning cached drawable @ #" + // Integer.toHexString(((Integer)key).intValue()) // + " in " + this + ": " + entry); return entry.newDrawable(this); } else { // our entry has been purged drawableCache.delete(key); } } } return null; }
private bool deleteLine(android.view.View view, android.text.Editable content) { if (view is android.widget.TextView) { android.text.Layout layout = ((android.widget.TextView)view).getLayout(); if (layout != null) { int line = layout.getLineForOffset(android.text.Selection.getSelectionStart(content )); int start = layout.getLineStart(line); int end = layout.getLineEnd(line); if (end != start) { content.delete(start, end); return true; } } } return false; }
private bool backspaceOrForwardDelete(android.view.View view, android.text.Editable content, int keyCode, android.view.KeyEvent @event, bool isForwardDelete) { // Ensure the key event does not have modifiers except ALT or SHIFT. if (!android.view.KeyEvent.metaStateHasNoModifiers(@event.getMetaState() & ~(android.view.KeyEvent .META_SHIFT_MASK | android.view.KeyEvent.META_ALT_MASK))) { return false; } // If there is a current selection, delete it. if (deleteSelection(view, content)) { return true; } // Alt+Backspace or Alt+ForwardDelete deletes the current line, if possible. if (@event.isAltPressed() || getMetaState(content, META_ALT_ON) == 1) { if (deleteLine(view, content)) { return true; } } // Delete a character. int start = android.text.Selection.getSelectionEnd(content); int end; if (isForwardDelete || @event.isShiftPressed() || getMetaState(content, META_SHIFT_ON ) == 1) { end = android.text.TextUtils.getOffsetAfter(content, start); } else { end = android.text.TextUtils.getOffsetBefore(content, start); } if (start != end) { content.delete(System.Math.Min(start, end), System.Math.Max(start, end)); return true; } return false; }
private bool deleteSelection(android.view.View view, android.text.Editable content ) { int selectionStart = android.text.Selection.getSelectionStart(content); int selectionEnd = android.text.Selection.getSelectionEnd(content); if (selectionEnd < selectionStart) { int temp = selectionEnd; selectionEnd = selectionStart; selectionStart = temp; } if (selectionStart != selectionEnd) { content.delete(selectionStart, selectionEnd); return true; } return false; }