Update the fallback logic in BaseInputConnection#getSurroundingText()

Update the implementation of BaseInputConnection#getSurroundingText()
to fallback to use previous APIs for retrieving surrounding when there's
no valid editable. This will make the API when editor provides custom
InputConnection exends from BaseInputConnection (e.g. WebView & Google
Docs).

Also, update the fallback implementation to return null instead of empty
string when getTextBeforeCursor() or getTextAfterCursor() returns null,
to make IME is able to distinguish the two cases.

Test: atest CtsInputMethodTestCases:BaseInputConnectionTest
Test: verified manually

Bug: 167947745
Bug: 181303771
Bug: 182426649

Change-Id: I70527eb954a741640b728b4b7bb6c74e0e6496b7
2 files changed