Yohei Yukawa 5f183f0671 L API proposal: Introduce IS_RTL flag
This CL introduces CursorAnchorInfo.FLAG_IS_RTL for better
RTL support. This CL also renames *CharacterRect() with
*CharacterBounds() so that they can look more consistent
with other existing APIs.

Rationale:

CursorAnchorInfo.FLAG_IS_RTL addresses following issues.
1. There is no way to associate the RTL information with
   the insertion marker.
2. Returning mirrored (right < left) RectF for RTL in
   CursorAnchorInfo#getCharacterRect() is turned out
   to be bug-prone. Such usage of RectF is not fully
   supported. For example, RectF#isEmpty() always returns
   false when right < left.
3. There is no reliable to provide the RTL information
   when CursorAnchorInfo#getCharacterRect() returns an
   empty (right == left) RectF. Perhaps we could use +0.0
   and -0.0, but I'm afraid that it is also bug-prone.

BUG: 17365414
BUG: 17335734
Change-Id: Ic8c6fab58c01206872a34e7ee604cdda1581364d
2014-09-08 02:17:54 +00:00

76 lines
2.8 KiB
Plaintext

package android.media {
public class AudioFormat {
ctor public AudioFormat();
}
}
package android.os {
public final class PowerManager {
method public void goToSleep(long);
method public deprecated void userActivity(long, boolean);
method public void wakeUp(long);
}
public class UserManager {
method public android.graphics.drawable.Drawable getBadgedDrawableForUser(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
method public android.graphics.drawable.Drawable getBadgedIconForUser(android.graphics.drawable.Drawable, android.os.UserHandle);
method public java.lang.CharSequence getBadgedLabelForUser(java.lang.CharSequence, android.os.UserHandle);
}
}
package android.service.notification {
public static class NotificationListenerService.Ranking {
method public boolean meetsInterruptionFilter();
}
}
package android.view {
public static class WindowManager.LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.Parcelable {
field public static final int TYPE_KEYGUARD = 2004; // 0x7d4
}
}
package android.view.inputmethod {
public class BaseInputConnection implements android.view.inputmethod.InputConnection {
method public final boolean requestUpdateCursorAnchorInfo(int);
}
public final class CursorAnchorInfo implements android.os.Parcelable {
method public android.graphics.RectF getCharacterRect(int);
method public int getCharacterRectFlags(int);
method public boolean isInsertionMarkerClipped();
field public static final int CHARACTER_RECT_TYPE_FULLY_VISIBLE = 1; // 0x1
field public static final int CHARACTER_RECT_TYPE_INVISIBLE = 3; // 0x3
field public static final int CHARACTER_RECT_TYPE_MASK = 15; // 0xf
field public static final int CHARACTER_RECT_TYPE_NOT_FEASIBLE = 4; // 0x4
field public static final int CHARACTER_RECT_TYPE_PARTIALLY_VISIBLE = 2; // 0x2
field public static final int CHARACTER_RECT_TYPE_UNSPECIFIED = 0; // 0x0
}
public static final class CursorAnchorInfo.Builder {
method public android.view.inputmethod.CursorAnchorInfo.Builder addCharacterRect(int, float, float, float, float, int);
method public android.view.inputmethod.CursorAnchorInfo.Builder setInsertionMarkerLocation(float, float, float, float, boolean);
}
public abstract interface InputConnection {
method public abstract boolean requestUpdateCursorAnchorInfo(int);
field public static final int REQUEST_UPDATE_CURSOR_ANCHOR_INFO_MONITOR = 2; // 0x2
field public static final int REQUEST_UPDATE_CURSOR_UPDATE_IMMEDIATE = 1; // 0x1
}
public class InputConnectionWrapper implements android.view.inputmethod.InputConnection {
method public final boolean requestUpdateCursorAnchorInfo(int);
}
}