diff options
author | James Cook <jamescook@google.com> | 2015-02-26 18:03:58 -0800 |
---|---|---|
committer | James Cook <jamescook@google.com> | 2015-02-27 10:04:08 -0800 |
commit | f59152cf00520d1bd36949b44faca2e1fcf6d28f (patch) | |
tree | 13343a7f5d90fb2448be52f42901e3ed940798f2 /core/java/android/content/UndoOwner.java | |
parent | 39df5fea2281161246cce37587d2a3c34f3dcf32 (diff) | |
download | frameworks_base-f59152cf00520d1bd36949b44faca2e1fcf6d28f.zip frameworks_base-f59152cf00520d1bd36949b44faca2e1fcf6d28f.tar.gz frameworks_base-f59152cf00520d1bd36949b44faca2e1fcf6d28f.tar.bz2 |
Reland: Add basic support for Ctrl-Z to editable TextViews
Reland 9201e797833f35b9afb219f88c10d3b6fda02a4e which was reverted in
c8f08e07a47cc259a25caed3f731ee7044328635.
Original description:
* Add an UndoManager to the Editor for each editable TextView
* Record operations as being owned by that Editor
* Parcel the undo state
* Wire hardware keyboard shortcuts Ctrl-Z for undo and Ctrl-Shift-Z
for redo into TextView shortcut handling.
* Expose IDs for "undo" and "redo" for symmetry with cut/copy/paste.
Additional fix:
* Ensure each UndoOwner always has a valid mManager, even after the
UndoManager is parceled and restored.
Bug: 19332904
Bug: 19505388
Change-Id: Iad4476e6e9ca952281e69bf22c07cca915dfa7bd
Diffstat (limited to 'core/java/android/content/UndoOwner.java')
-rw-r--r-- | core/java/android/content/UndoOwner.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/content/UndoOwner.java b/core/java/android/content/UndoOwner.java index d0cdc95..9106588 100644 --- a/core/java/android/content/UndoOwner.java +++ b/core/java/android/content/UndoOwner.java @@ -23,8 +23,8 @@ package android.content; */ public class UndoOwner { final String mTag; + final UndoManager mManager; - UndoManager mManager; Object mData; int mOpCount; @@ -32,8 +32,15 @@ public class UndoOwner { int mStateSeq; int mSavedIdx; - UndoOwner(String tag) { + UndoOwner(String tag, UndoManager manager) { + if (tag == null) { + throw new NullPointerException("tag can't be null"); + } + if (manager == null) { + throw new NullPointerException("manager can't be null"); + } mTag = tag; + mManager = manager; } /** |