summaryrefslogtreecommitdiff
path: root/core/java/android/content/UndoManager.java
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Revert "Migrate unsafe parcel APIs in framework-minus-apex""Bernardo Rufino2022-01-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 331be9a6431d6489f8d1e1b80cb510d0ee073c50. Reintroducing ag/16366278 since it seems unrelated to b/214053959 (more details on b/214053959#comment55). Original commit message: Migrate unsafe parcel APIs in framework-minus-apex Migrate the following unsafe parcel APIs in framework-minus-apex: * Parcel.readSerializable() * Parcel.readArrayList() * Parcel.readList() * Parcel.readParcelable() * Parcel.readParcelableList() * Parcel.readSparseArray() This CL was generated by applying lint fixes that infer the expected type from the caller code and provide that as the type parameter (ag/16365240). A few observations: * In some classes we couldn't migrate because the class also belonged to another build module whose min SDK wasn't current (as is the case for framework-minus-apex), hence I suppressed the lint check (since I'll eventually submit the lint check to the tree). * In some cases, I needed to do the cast in https://stackoverflow.com/a/1080525/5765705 to make the compiler happy since there isn't another way of providing a class of type Class<MyClassWithGenerics<T>>. * In the readSerializable() case, the new API also requires the class loader, that was inferred to by InferredClass.class.getClassLoader(). * Note that automatic formatting and import rely on running hooked up to the IDE, which wasn't the case here. Bug: 195622897 Change-Id: I272432e6e082a973f7a50492ec35d79c2b577c93 Test: TH passes
* Revert "Migrate unsafe parcel APIs in framework-minus-apex"Bernardo Rufino2022-01-121-1/+1
| | | | | | | | This reverts commit 90bb3709dc75f7e44914222114752de5bce133d4. Reason for revert: b/214053959 Change-Id: Ic271bab1d3eaf677a5989dda9deb944ee2ad6850
* Migrate unsafe parcel APIs in framework-minus-apexBernardo Rufino2021-12-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Migrate the following unsafe parcel APIs in framework-minus-apex: * Parcel.readSerializable() * Parcel.readArrayList() * Parcel.readList() * Parcel.readParcelable() * Parcel.readParcelableList() * Parcel.readSparseArray() This CL was generated by applying lint fixes that infer the expected type from the caller code and provide that as the type parameter (ag/16365240). A few observations: * In some classes we couldn't migrate because the class also belonged to another build module whose min SDK wasn't current (as is the case for framework-minus-apex), hence I suppressed the lint check (since I'll eventually submit the lint check to the tree). * In some cases, I needed to do the cast in https://stackoverflow.com/a/1080525/5765705 to make the compiler happy since there isn't another way of providing a class of type Class<MyClassWithGenerics<T>>. * In the readSerializable() case, the new API also requires the class loader, that was inferred to by InferredClass.class.getClassLoader(). * Note that automatic formatting and import rely on running hooked up to the IDE, which wasn't the case here. Bug: 195622897 Test: TH passes Change-Id: I11a27b9bdab7959ee86e90aa1e1cbebd7aaf883c
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-291-17/+18
| | | | | | | | | | | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. This is a resubmit of ag/12929664 with some APIs excluded that caused test failures; see bugs 171886397, 171888296, 171864568. APIs excluded: Landroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord; Landroid/os/Process;->myPpid()I Landroid/os/SharedMemory;->getFd()I Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I Bug: 170729553 Test: Treehugger Change-Id: I8285daa8530260251ecad6f3f38f98e263629ca7
* Revert "Add maxTargetSdk restriction to unused APIs."Hongwei Wang2020-10-281-18/+17
| | | | | | | | | This reverts commit 72f07d6a8a32db4a0dedd7682a0b3385be2b9cd6. Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?testMethod=testAppZygotePreload&testClass=android.app.cts.ServiceTest&atpConfigName=suite%2Ftest-mapping-presubmit-retry_cloud-tf&testModule=CtsAppTestCases&fkbb=6936597&lkbb=6936969&lkgb=6936551&testResults=true&branch=git_master&target=cf_x86_phone-userdebug>, bug b/171886397 Bug: 171886397 Change-Id: Ibe0f0430a3451477c1ee8ef56a596e91ea1e7672
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-271-17/+18
| | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. Bug: 170729553 Test: Treehugger Change-Id: I4c8fd0006f950de9955242e93968fb0996ceb372
* Use new UnsupportedAppUsage annotation.Artur Satayev2019-12-181-1/+1
| | | | | | | | Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library. Bug: 145132366 Test: m && diff unsupportedappusage_index.csv Change-Id: I6ab53570aca580fbee1fcc927871caa09780f58f
* Add @UnsupportedAppUsage annotations for greylist.Artur Satayev2019-11-191-2/+4
| | | | | | | | | | | | | go/cleanup-greylist-txt These have already been greylisted, however due to bugs/omissions in the tooling have been kept in go/greylist-txt instead of being annotated in the code. This is partial merge of aosp/Id6c1f5e403a0e66edb1102ee45f3bf19f244fb09. Telephony greylist cleanup has been done separately. Note that annotations outside of frameworks/base/ have been merged from AOSP. Bug: 137350495 Test: m Exempt-From-Owner-Approval: merge Change-Id: I015c466e8b69cc0fed5e9d394ba865aad11d8ba6
* Add @UnsupportedAppUsage annotationsMathew Inwood2018-08-151-0/+17
| | | | | | | | | | | | | | | | | | | | | | For packages: android.content.res android.content.pm.split android.content.pm.permission android.content.pm.dex android.content.pm android.content.om android.content This is an automatically generated CL. See go/UnsupportedAppUsage for more details. Exempted-From-Owner-Approval: Mechanical changes to the codebase which have been approved by Android API council and announced on android-eng@ Bug: 110868826 Test: m Change-Id: Ia79256a3d04e16dd78331a61af0dcddc5fc1599b
* Fix: UndoManager#saveInstanceState.Keisuke Kuroyanagi2016-06-071-1/+0
| | | | | | | | The number of redo states was stored to Parcel in saveInstanceState; however, there wasn't corresponding read in restoreInstanceState. Bug: 29113655 Change-Id: I95298f43dd206e0318a80f1643d2129d1199cc9e
* Improve undo support for text entered with IMEJames Cook2015-03-181-14/+15
| | | | | | | | | | | | | | | | | | | | | Use span properties to detect: * Composing text - don't record undo operations * Completing a composition - record an insert undo operation * Canceling a composition - don't record Save the composition state on parcel/unparcel. Stop using begin/end batch edit to try to detect when a TextWatcher is modifying the text. IMEs trigger multiple InputFilter passes in a single batch edit. Use SpannableStringBuilder to determine when we're in a TextWatcher callback because it is the authority on that state. Fix a bug in undo manager where it doesn't forget undos correctly if there are more than one in the stack. Bug: 19332904 Change-Id: Iaa9b0b2a7bf6683302cc85e7616e5d5fcc9fa202
* Fix crash in UndoManager after parceling TextViewJames Cook2015-03-021-0/+3
| | | | | | | | | | | | UndoOwner maintains a manual reference count of the number of undo operations it is associated with, but this count is not restored (and hence becomes zero) when UndoManager is parceled and unparceled. This can cause the count to underflow on subsequent text editing. A test for this will land separately in CTS. Bug: 19568283 Change-Id: Ic50890828db9679c7cef805388957d66dc75422d
* Reland: Add basic support for Ctrl-Z to editable TextViewsJames Cook2015-02-271-4/+2
| | | | | | | | | | | | | | | | | | | | | 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
* Change UndoManager mOwners from HashMap to ArrayMapJames Cook2015-02-231-2/+4
| | | | | | | | The number of undo operation owners is small (and usually one), so save memory by switching to ArrayMap. Bug: 19332904 Change-Id: Ic32cd49c292db2eaab1739cea8e8e518e68bd826
* Fix issue #10461600: KLP API Review: UndoManagerDianne Hackborn2013-09-041-0/+2
| | | | | | Hide, hide, hide! Change-Id: Ie04825723d9392a4258e2d738828201ee387f7c6
* New UndoManager.Dianne Hackborn2013-05-071-0/+932
Basic implementation of an undo manager. Supports multi-level undo/redo, building on the top undo state as edits occur, managing multiple distinct entities in the undo state (such as embedded objects in a document), and saving/restoring the full undo state. Still some work remaining on correctly dealing with dependencies between undo states that hold multiple owners. Also do a simple implementation of undo state in TextView to see how things actually work. The implementation here is very primitive: it needs a lot more work to correctly identify when to merge undo ops, is not trying to do anything smart with style spans, etc. Change-Id: Ie30f4e133351e2f569ffb48c6c44a2b19cadee27