Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0bd82a1 authored by Nagendra Prasad Nagarle Basavaraju's avatar Nagendra Prasad Nagarle Basavaraju Committed by Android (Google) Code Review
Browse files

Merge "Expose Country & CountryDetector API's"

parents 796ac1f1 9fe25438
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -5555,6 +5555,28 @@ package android.location {
    method @NonNull public android.location.CorrelationVector.Builder setSamplingWidthMeters(@FloatRange(from=0.0f, fromInclusive=false) double);
  }
  public final class Country implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public String getCountryIso();
    method public int getSource();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int COUNTRY_SOURCE_LOCALE = 3; // 0x3
    field public static final int COUNTRY_SOURCE_LOCATION = 1; // 0x1
    field public static final int COUNTRY_SOURCE_NETWORK = 0; // 0x0
    field public static final int COUNTRY_SOURCE_SIM = 2; // 0x2
    field @NonNull public static final android.os.Parcelable.Creator<android.location.Country> CREATOR;
  }
  public class CountryDetector {
    method public void addCountryListener(@NonNull android.location.CountryListener, @Nullable android.os.Looper);
    method @Nullable public android.location.Country detectCountry();
    method public void removeCountryListener(@NonNull android.location.CountryListener);
  }
  public interface CountryListener {
    method public void onCountryDetected(@NonNull android.location.Country);
  }
  public final class GnssCapabilities implements android.os.Parcelable {
    method @Deprecated public boolean hasMeasurementCorrectionsReflectingPane();
    method @Deprecated public boolean hasNavMessages();
+6 −0
Original line number Diff line number Diff line
@@ -3,6 +3,10 @@ ArrayReturn: android.view.contentcapture.ViewNode#getAutofillOptions():
    Method should return Collection<CharSequence> (or subclass) instead of raw array; was `java.lang.CharSequence[]`


ExecutorRegistration: android.location.CountryDetector#addCountryListener(android.location.CountryListener, android.os.Looper):
    Registration methods should have overload that accepts delivery Executor: `addCountryListener`


GenericException: android.app.prediction.AppPredictor#finalize():
    Methods must not throw generic exceptions (`java.lang.Throwable`)
GenericException: android.hardware.location.ContextHubClient#finalize():
@@ -127,6 +131,8 @@ SamShouldBeLast: android.content.pm.PackageItemInfo#dumpFront(android.util.Print
    SAM-compatible parameters (such as parameter 1, "pw", in android.content.pm.PackageItemInfo.dumpFront) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.content.pm.ResolveInfo#dump(android.util.Printer, String):
    SAM-compatible parameters (such as parameter 1, "pw", in android.content.pm.ResolveInfo.dump) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.location.CountryDetector#addCountryListener(android.location.CountryListener, android.os.Looper):
    SAM-compatible parameters (such as parameter 1, "listener", in android.location.CountryDetector.addCountryListener) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.location.Location#dump(android.util.Printer, String):
    SAM-compatible parameters (such as parameter 1, "pw", in android.location.Location.dump) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.location.LocationManager#addNmeaListener(android.location.OnNmeaMessageListener, android.os.Handler):
+24 −9
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package android.location;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.os.Parcelable;
@@ -28,7 +31,8 @@ import java.util.Locale;
 *
 * @hide
 */
public class Country implements Parcelable {
@SystemApi(client = SystemApi.Client.PRIVILEGED_APPS)
public final class Country implements Parcelable {
    /**
     * The country code came from the mobile network
     */
@@ -78,6 +82,8 @@ public class Country implements Parcelable {
     *        <li>{@link #COUNTRY_SOURCE_SIM}</li>
     *        <li>{@link #COUNTRY_SOURCE_LOCALE}</li>
     *        </ul>
     *
     * @hide
     */
    @UnsupportedAppUsage
    public Country(final String countryIso, final int source) {
@@ -100,6 +106,7 @@ public class Country implements Parcelable {
        mTimestamp = timestamp;
    }

    /** @hide */
    public Country(Country country) {
        mCountryIso = country.mCountryIso;
        mSource = country.mSource;
@@ -109,8 +116,8 @@ public class Country implements Parcelable {
    /**
     * @return the ISO 3166-1 two letters country code
     */
    @UnsupportedAppUsage
    public final String getCountryIso() {
    @NonNull
    public String getCountryIso() {
        return mCountryIso;
    }

@@ -124,20 +131,22 @@ public class Country implements Parcelable {
     *         <li>{@link #COUNTRY_SOURCE_LOCALE}</li>
     *         </ul>
     */
    @UnsupportedAppUsage
    public final int getSource() {
    public int getSource() {
        return mSource;
    }

    /**
     * Returns the time that this object was created (which we assume to be the time that the source
     * was consulted).
     *
     * @hide
     */
    public final long getTimestamp() {
    public long getTimestamp() {
        return mTimestamp;
    }

    public static final @android.annotation.NonNull Parcelable.Creator<Country> CREATOR = new Parcelable.Creator<Country>() {
    @android.annotation.NonNull
    public static final Parcelable.Creator<Country> CREATOR = new Parcelable.Creator<Country>() {
        public Country createFromParcel(Parcel in) {
            return new Country(in.readString(), in.readInt(), in.readLong());
        }
@@ -147,11 +156,13 @@ public class Country implements Parcelable {
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel parcel, int flags) {
    @Override
    public void writeToParcel(@NonNull Parcel parcel, int flags) {
        parcel.writeString(mCountryIso);
        parcel.writeInt(mSource);
        parcel.writeLong(mTimestamp);
@@ -161,9 +172,10 @@ public class Country implements Parcelable {
     * Returns true if this {@link Country} is equivalent to the given object. This ignores
     * the timestamp value and just checks for equivalence of countryIso and source values.
     * Returns false otherwise.
     *
     */
    @Override
    public boolean equals(Object object) {
    public boolean equals(@Nullable Object object) {
        if (object == this) {
            return true;
        }
@@ -194,12 +206,15 @@ public class Country implements Parcelable {
     * @param country the country to compare
     * @return true if the specified country's countryIso field is equal to this
     *         country's, false otherwise.
     *
     * @hide
     */
    public boolean equalsIgnoreSource(Country country) {
        return country != null && mCountryIso.equals(country.getCountryIso());
    }

    @Override
    @NonNull
    public String toString() {
        return "Country {ISO=" + mCountryIso + ", source=" + mSource + ", time=" + mTimestamp + "}";
    }
+7 −5
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package android.location;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
@@ -47,6 +50,7 @@ import java.util.HashMap;
 *
 * @hide
 */
@SystemApi(client = SystemApi.Client.PRIVILEGED_APPS)
@SystemService(Context.COUNTRY_DETECTOR)
public class CountryDetector {

@@ -101,7 +105,7 @@ public class CountryDetector {
     * @return the country if it is available immediately, otherwise null will
     *         be returned.
     */
    @UnsupportedAppUsage
    @Nullable
    public Country detectCountry() {
        try {
            return mService.detectCountry();
@@ -120,8 +124,7 @@ public class CountryDetector {
     *        implement the callback mechanism. If looper is null then the
     *        callbacks will be called on the main thread.
     */
    @UnsupportedAppUsage
    public void addCountryListener(CountryListener listener, Looper looper) {
    public void addCountryListener(@NonNull CountryListener listener, @Nullable Looper looper) {
        synchronized (mListeners) {
            if (!mListeners.containsKey(listener)) {
                ListenerTransport transport = new ListenerTransport(listener, looper);
@@ -138,8 +141,7 @@ public class CountryDetector {
    /**
     * Remove the listener
     */
    @UnsupportedAppUsage
    public void removeCountryListener(CountryListener listener) {
    public void removeCountryListener(@NonNull CountryListener listener) {
        synchronized (mListeners) {
            ListenerTransport transport = mListeners.get(listener);
            if (transport != null) {
+5 −3
Original line number Diff line number Diff line
@@ -16,7 +16,8 @@

package android.location;

import android.compat.annotation.UnsupportedAppUsage;
import android.annotation.NonNull;
import android.annotation.SystemApi;

/**
 * The listener for receiving the notification when the country is detected or
@@ -24,10 +25,11 @@ import android.compat.annotation.UnsupportedAppUsage;
 *
 * @hide
 */
@SystemApi(client = SystemApi.Client.PRIVILEGED_APPS)
public interface CountryListener {
    /**
     * @param country the changed or detected country.
     *
     */
    @UnsupportedAppUsage
    void onCountryDetected(Country country);
    void onCountryDetected(@NonNull Country country);
}