From b7a284e37a0e2127c58722b44ea24176a0be86a2 Mon Sep 17 00:00:00 2001 From: Yohei Yukawa Date: Thu, 13 Dec 2018 15:53:16 -0800 Subject: [PATCH] Deprecate android.inputmethodservice.{Keyboard,KeyboardView} This CL deprecates the following two classes. * android.inputmethodservice.Keyboard * android.inputmethodservice.KeyboardView Most likely having these classes in the Android Framework does not make much sense anymore, because basically it is just one implementation of how keyboard-like UI can be implemented on top of public Android APIs. Source code of these classes have been available as part os AOSP. Thus it should not be that difficult for app developers to have their own copy of these classes in their project or re-implement a similar widget by themselves. Fix: 116815596 Test: make -j checkbuild Change-Id: Ie0cb0456c2cc4eacd4b188514508021774f60591 --- api/current.txt | 62 +++++----- .../android/inputmethodservice/Keyboard.java | 11 +- .../inputmethodservice/KeyboardView.java | 6 + core/res/res/values/attrs.xml | 106 ++++++++++++------ core/res/res/values/public.xml | 4 +- 5 files changed, 121 insertions(+), 68 deletions(-) diff --git a/api/current.txt b/api/current.txt index 1b6229efc0dd8..38ffef88f54d1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -415,7 +415,7 @@ package android { field public static final int clipOrientation = 16843274; // 0x101020a field public static final int clipToPadding = 16842987; // 0x10100eb field public static final int closeIcon = 16843905; // 0x1010481 - field public static final int codes = 16843330; // 0x1010242 + field public static final deprecated int codes = 16843330; // 0x1010242 field public static final int collapseColumns = 16843083; // 0x101014b field public static final int collapseContentDescription = 16843984; // 0x10104d0 field public static final int collapseIcon = 16844031; // 0x10104ff @@ -715,7 +715,7 @@ package android { field public static final int homeAsUpIndicator = 16843531; // 0x101030b field public static final int homeLayout = 16843549; // 0x101031d field public static final int horizontalDivider = 16843053; // 0x101012d - field public static final int horizontalGap = 16843327; // 0x101023f + field public static final deprecated int horizontalGap = 16843327; // 0x101023f field public static final int horizontalScrollViewStyle = 16843603; // 0x1010353 field public static final int horizontalSpacing = 16843028; // 0x1010114 field public static final int host = 16842792; // 0x1010028 @@ -723,7 +723,7 @@ package android { field public static final int hotSpotY = 16844056; // 0x1010518 field public static final int hyphenationFrequency = 16843998; // 0x10104de field public static final int icon = 16842754; // 0x1010002 - field public static final int iconPreview = 16843337; // 0x1010249 + field public static final deprecated int iconPreview = 16843337; // 0x1010249 field public static final int iconSpaceReserved = 16844129; // 0x1010561 field public static final int iconTint = 16844126; // 0x101055e field public static final int iconTintMode = 16844127; // 0x101055f @@ -784,12 +784,12 @@ package android { field public static final int isGame = 16843764; // 0x10103f4 field public static final int isIndicator = 16843079; // 0x1010147 field public static final int isLightTheme = 16844176; // 0x1010590 - field public static final int isModifier = 16843334; // 0x1010246 - field public static final int isRepeatable = 16843336; // 0x1010248 + field public static final deprecated int isModifier = 16843334; // 0x1010246 + field public static final deprecated int isRepeatable = 16843336; // 0x1010248 field public static final int isScrollContainer = 16843342; // 0x101024e field public static final int isSplitRequired = 16844177; // 0x1010591 field public static final int isStatic = 16844122; // 0x101055a - field public static final int isSticky = 16843335; // 0x1010247 + field public static final deprecated int isSticky = 16843335; // 0x1010247 field public static final int isolatedProcess = 16843689; // 0x10103a9 field public static final int isolatedSplits = 16844107; // 0x101054b field public static final int itemBackground = 16843056; // 0x1010130 @@ -799,27 +799,27 @@ package android { field public static final int justificationMode = 16844135; // 0x1010567 field public static final int keepScreenOn = 16843286; // 0x1010216 field public static final int key = 16843240; // 0x10101e8 - field public static final int keyBackground = 16843315; // 0x1010233 - field public static final int keyEdgeFlags = 16843333; // 0x1010245 - field public static final int keyHeight = 16843326; // 0x101023e - field public static final int keyIcon = 16843340; // 0x101024c - field public static final int keyLabel = 16843339; // 0x101024b - field public static final int keyOutputText = 16843338; // 0x101024a - field public static final int keyPreviewHeight = 16843321; // 0x1010239 - field public static final int keyPreviewLayout = 16843319; // 0x1010237 - field public static final int keyPreviewOffset = 16843320; // 0x1010238 + field public static final deprecated int keyBackground = 16843315; // 0x1010233 + field public static final deprecated int keyEdgeFlags = 16843333; // 0x1010245 + field public static final deprecated int keyHeight = 16843326; // 0x101023e + field public static final deprecated int keyIcon = 16843340; // 0x101024c + field public static final deprecated int keyLabel = 16843339; // 0x101024b + field public static final deprecated int keyOutputText = 16843338; // 0x101024a + field public static final deprecated int keyPreviewHeight = 16843321; // 0x1010239 + field public static final deprecated int keyPreviewLayout = 16843319; // 0x1010237 + field public static final deprecated int keyPreviewOffset = 16843320; // 0x1010238 field public static final int keySet = 16843739; // 0x10103db - field public static final int keyTextColor = 16843318; // 0x1010236 - field public static final int keyTextSize = 16843316; // 0x1010234 - field public static final int keyWidth = 16843325; // 0x101023d + field public static final deprecated int keyTextColor = 16843318; // 0x1010236 + field public static final deprecated int keyTextSize = 16843316; // 0x1010234 + field public static final deprecated int keyWidth = 16843325; // 0x101023d field public static final int keyboardLayout = 16843691; // 0x10103ab - field public static final int keyboardMode = 16843341; // 0x101024d + field public static final deprecated int keyboardMode = 16843341; // 0x101024d field public static final int keyboardNavigationCluster = 16844096; // 0x1010540 field public static final int keycode = 16842949; // 0x10100c5 field public static final int killAfterRestore = 16843420; // 0x101029c field public static final int label = 16842753; // 0x1010001 field public static final int labelFor = 16843718; // 0x10103c6 - field public static final int labelTextSize = 16843317; // 0x1010235 + field public static final deprecated int labelTextSize = 16843317; // 0x1010235 field public static final int languageTag = 16844040; // 0x1010508 field public static final int largeHeap = 16843610; // 0x101035a field public static final int largeScreens = 16843398; // 0x1010286 @@ -1043,12 +1043,12 @@ package android { field public static final int pointerIcon = 16844041; // 0x1010509 field public static final int popupAnimationStyle = 16843465; // 0x10102c9 field public static final int popupBackground = 16843126; // 0x1010176 - field public static final int popupCharacters = 16843332; // 0x1010244 + field public static final deprecated int popupCharacters = 16843332; // 0x1010244 field public static final int popupElevation = 16843916; // 0x101048c field public static final int popupEnterTransition = 16844063; // 0x101051f field public static final int popupExitTransition = 16844064; // 0x1010520 - field public static final int popupKeyboard = 16843331; // 0x1010243 - field public static final int popupLayout = 16843323; // 0x101023b + field public static final deprecated int popupKeyboard = 16843331; // 0x1010243 + field public static final deprecated int popupLayout = 16843323; // 0x101023b field public static final int popupMenuStyle = 16843520; // 0x1010300 field public static final int popupTheme = 16843945; // 0x10104a9 field public static final int popupWindowStyle = 16842870; // 0x1010076 @@ -1147,7 +1147,7 @@ package android { field public static final int roundIcon = 16844076; // 0x101052c field public static final int rowCount = 16843637; // 0x1010375 field public static final int rowDelay = 16843216; // 0x10101d0 - field public static final int rowEdgeFlags = 16843329; // 0x1010241 + field public static final deprecated int rowEdgeFlags = 16843329; // 0x1010241 field public static final int rowHeight = 16843058; // 0x1010132 field public static final int rowOrderPreserved = 16843638; // 0x1010376 field public static final int saveEnabled = 16842983; // 0x10100e7 @@ -1283,7 +1283,7 @@ package android { field public static final int state_focused = 16842908; // 0x101009c field public static final int state_hovered = 16843623; // 0x1010367 field public static final int state_last = 16842918; // 0x10100a6 - field public static final int state_long_pressable = 16843324; // 0x101023c + field public static final deprecated int state_long_pressable = 16843324; // 0x101023c field public static final int state_middle = 16842917; // 0x10100a5 field public static final int state_multiline = 16843597; // 0x101034d field public static final int state_pressed = 16842919; // 0x10100a7 @@ -1521,9 +1521,9 @@ package android { field public static final int versionCodeMajor = 16844150; // 0x1010576 field public static final int versionMajor = 16844151; // 0x1010577 field public static final int versionName = 16843292; // 0x101021c - field public static final int verticalCorrection = 16843322; // 0x101023a + field public static final deprecated int verticalCorrection = 16843322; // 0x101023a field public static final int verticalDivider = 16843054; // 0x101012e - field public static final int verticalGap = 16843328; // 0x1010240 + field public static final deprecated int verticalGap = 16843328; // 0x1010240 field public static final int verticalScrollbarPosition = 16843572; // 0x1010334 field public static final int verticalSpacing = 16843029; // 0x1010115 field public static final int viewportHeight = 16843779; // 0x1010403 @@ -1891,7 +1891,7 @@ package android { field public static final int input = 16908297; // 0x1020009 field public static final int inputArea = 16908318; // 0x102001e field public static final int inputExtractEditText = 16908325; // 0x1020025 - field public static final int keyboardView = 16908326; // 0x1020026 + field public static final deprecated int keyboardView = 16908326; // 0x1020026 field public static final int list = 16908298; // 0x102000a field public static final int list_container = 16908351; // 0x102003f field public static final int mask = 16908334; // 0x102002e @@ -2602,7 +2602,7 @@ package android { field public static final int Widget_Holo_WebView = 16973993; // 0x10300a9 field public static final int Widget_ImageButton = 16973862; // 0x1030026 field public static final int Widget_ImageWell = 16973861; // 0x1030025 - field public static final int Widget_KeyboardView = 16973911; // 0x1030057 + field public static final deprecated int Widget_KeyboardView = 16973911; // 0x1030057 field public static final int Widget_ListPopupWindow = 16973957; // 0x1030085 field public static final int Widget_ListView = 16973870; // 0x103002e field public static final int Widget_ListView_DropDown = 16973872; // 0x1030030 @@ -22267,7 +22267,7 @@ package android.inputmethodservice { field public int visibleTopInsets; } - public class Keyboard { + public deprecated class Keyboard { ctor public Keyboard(android.content.Context, int); ctor public Keyboard(android.content.Context, int, int, int, int); ctor public Keyboard(android.content.Context, int, int); @@ -22341,7 +22341,7 @@ package android.inputmethodservice { field public int verticalGap; } - public class KeyboardView extends android.view.View implements android.view.View.OnClickListener { + public deprecated class KeyboardView extends android.view.View implements android.view.View.OnClickListener { ctor public KeyboardView(android.content.Context, android.util.AttributeSet); ctor public KeyboardView(android.content.Context, android.util.AttributeSet, int); ctor public KeyboardView(android.content.Context, android.util.AttributeSet, int, int); diff --git a/core/java/android/inputmethodservice/Keyboard.java b/core/java/android/inputmethodservice/Keyboard.java index 51d33b2f1d4a5..3f25113874e87 100644 --- a/core/java/android/inputmethodservice/Keyboard.java +++ b/core/java/android/inputmethodservice/Keyboard.java @@ -16,8 +16,6 @@ package android.inputmethodservice; -import org.xmlpull.v1.XmlPullParserException; - import android.annotation.UnsupportedAppUsage; import android.annotation.XmlRes; import android.content.Context; @@ -27,10 +25,12 @@ import android.content.res.XmlResourceParser; import android.graphics.drawable.Drawable; import android.os.Build; import android.text.TextUtils; +import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; import android.util.Xml; -import android.util.DisplayMetrics; + +import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; @@ -59,7 +59,12 @@ import java.util.StringTokenizer; * @attr ref android.R.styleable#Keyboard_keyHeight * @attr ref android.R.styleable#Keyboard_horizontalGap * @attr ref android.R.styleable#Keyboard_verticalGap + * @deprecated This class is deprecated because this is just a convenient UI widget class that + * application developers can re-implement on top of existing public APIs. If you have + * already depended on this class, consider copying the implementation from AOSP into + * your project or re-implementing a similar widget by yourselves */ +@Deprecated public class Keyboard { static final String TAG = "Keyboard"; diff --git a/core/java/android/inputmethodservice/KeyboardView.java b/core/java/android/inputmethodservice/KeyboardView.java index 9ca804975b7a1..45f067b952986 100644 --- a/core/java/android/inputmethodservice/KeyboardView.java +++ b/core/java/android/inputmethodservice/KeyboardView.java @@ -65,7 +65,13 @@ import java.util.Map; * @attr ref android.R.styleable#KeyboardView_keyTextColor * @attr ref android.R.styleable#KeyboardView_verticalCorrection * @attr ref android.R.styleable#KeyboardView_popupLayout + * + * @deprecated This class is deprecated because this is just a convenient UI widget class that + * application developers can re-implement on top of existing public APIs. If you have + * already depended on this class, consider copying the implementation from AOSP into + * your project or re-implementing a similar widget by yourselves */ +@Deprecated public class KeyboardView extends View implements View.OnClickListener { /** diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 8dbea38962171..91faa5517860f 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -7632,103 +7632,143 @@ + - + + checkable+checked+pressed. + {@deprecated Copy this definition into your own application project.} --> - + - + - + - + - + - + - + - + + + + + key preview background. + {@deprecated Copy this definition into your own application project.} --> + - + - + - + - + + - + - + - + + requested keyboard mode, the row will be skipped. + {@deprecated Copy this definition into your own application project.} --> + - + - + - + - + - + - + - + - + - + - + - + - + - + + requested keyboard mode, the key will be skipped. + {@deprecated Copy this definition into your own application project.} --> diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index d480121fc998a..5da913acacc17 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -1067,7 +1067,8 @@ + an input method's input area. + {@deprecated Use Copy this definition into your own application project.} --> @@ -1082,6 +1083,7 @@ +