Esempio n. 1
0
		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;
		}
Esempio n. 2
0
		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;
		}
Esempio n. 3
0
		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;
		}
Esempio n. 4
0
		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;
		}