DO NOT MERGE - fix AFM.getComponentNameFromContext()
This method broke on O-MR1 when I3abf999eb6056c1df7982780bae43b58337c0668
was chery-picked from master.
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases \
-t android.autofillservice.cts.AttachedContextActivityTest#testAutofill
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases
Also individually ran tests that failed (due to flakiness) when ran in a suite:
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases \
-t android.autofillservice.cts.OptionalSaveActivityTest#testDontShowSaveUiWhenUserManuallyFilled_oneDatasetAllRequiredFields
Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.PreSimpleSaveActivityTest #testTapLink_tapBack_thenStartOverBySayingYesAndManualRequest
Fixes: 71960322
Change-Id: Ia093dcefe6699dc9493c46d671e48c2000214b31
Merged-In: I3abf999eb6056c1df7982780bae43b58337c0668
This commit is contained in:
@@ -5871,6 +5871,16 @@ public class Activity extends ContextThemeWrapper
|
||||
return mComponent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Temporary method on O-MR1 only.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Override
|
||||
public ComponentName getComponentNameForAutofill() {
|
||||
return mComponent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a {@link SharedPreferences} object for accessing preferences
|
||||
* that are private to this activity. This simply calls the underlying
|
||||
|
||||
@@ -24,7 +24,6 @@ import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemService;
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -387,6 +386,13 @@ public final class AutofillManager {
|
||||
* Runs the specified action on the UI thread.
|
||||
*/
|
||||
void runOnUiThread(Runnable action);
|
||||
|
||||
/**
|
||||
* Gets the complete component name of this client.
|
||||
*
|
||||
* <p>Temporary method on O-MR1 only.
|
||||
*/
|
||||
ComponentName getComponentNameForAutofill();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -943,11 +949,8 @@ public final class AutofillManager {
|
||||
return mContext.getAutofillClient();
|
||||
}
|
||||
|
||||
private ComponentName getComponentNameFromContext() {
|
||||
if (mContext instanceof Activity) {
|
||||
return ((Activity) mContext).getComponentName();
|
||||
}
|
||||
return null;
|
||||
private ComponentName getComponentNameFromContext(AutofillClient client) {
|
||||
return client == null ? null : client.getComponentNameForAutofill();
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -1000,7 +1003,8 @@ public final class AutofillManager {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
final ComponentName componentName = getComponentNameFromContext();
|
||||
final AutofillClient client = getClientLocked();
|
||||
final ComponentName componentName = getComponentNameFromContext(client);
|
||||
if (componentName == null) {
|
||||
Log.w(TAG, "startSessionLocked(): context is not activity: " + mContext);
|
||||
return;
|
||||
@@ -1011,7 +1015,6 @@ public final class AutofillManager {
|
||||
if (mSessionId != NO_SESSION) {
|
||||
mState = STATE_ACTIVE;
|
||||
}
|
||||
final AutofillClient client = getClientLocked();
|
||||
if (client != null) {
|
||||
client.autofillCallbackResetableStateAvailable();
|
||||
}
|
||||
@@ -1065,7 +1068,8 @@ public final class AutofillManager {
|
||||
|
||||
try {
|
||||
if (restartIfNecessary) {
|
||||
final ComponentName componentName = getComponentNameFromContext();
|
||||
final AutofillClient client = getClientLocked();
|
||||
final ComponentName componentName = getComponentNameFromContext(client);
|
||||
if (componentName == null) {
|
||||
Log.w(TAG, "startSessionLocked(): context is not activity: " + mContext);
|
||||
return;
|
||||
@@ -1077,7 +1081,6 @@ public final class AutofillManager {
|
||||
if (sDebug) Log.d(TAG, "Session restarted: " + mSessionId + "=>" + newId);
|
||||
mSessionId = newId;
|
||||
mState = (mSessionId == NO_SESSION) ? STATE_UNKNOWN : STATE_ACTIVE;
|
||||
final AutofillClient client = getClientLocked();
|
||||
if (client != null) {
|
||||
client.autofillCallbackResetableStateAvailable();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user