diff options
| -rw-r--r-- | core/java/android/app/Activity.java | 10 | ||||
| -rw-r--r-- | core/java/android/view/autofill/AutofillManager.java | 23 | 
2 files changed, 23 insertions, 10 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 2c04f8ff9548..8dc558ccf755 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -5872,6 +5872,16 @@ public class Activity extends ContextThemeWrapper      }      /** +     * 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       * {@link #getSharedPreferences(String, int)} method by passing in this activity's diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index b399661eaf8e..aa4bbb27e84a 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -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();                      }  |