diff options
| -rw-r--r-- | core/java/android/telephony/TelephonyRegistryManager.java | 10 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 86 |
2 files changed, 20 insertions, 76 deletions
diff --git a/core/java/android/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java index c1fcd664f6fa..542de3fad8b0 100644 --- a/core/java/android/telephony/TelephonyRegistryManager.java +++ b/core/java/android/telephony/TelephonyRegistryManager.java @@ -239,10 +239,8 @@ public class TelephonyRegistryManager { * @param events Events * @param notifyNow Whether to notify instantly */ - public void listenFromListener(int subId, @NonNull boolean renounceFineLocationAccess, - @NonNull boolean renounceCoarseLocationAccess, @NonNull String pkg, - @NonNull String featureId, @NonNull PhoneStateListener listener, - @NonNull int events, boolean notifyNow) { + public void listenFromListener(int subId, @NonNull String pkg, @NonNull String featureId, + @NonNull PhoneStateListener listener, @NonNull int events, boolean notifyNow) { if (listener == null) { throw new IllegalStateException("telephony service is null."); } @@ -259,8 +257,8 @@ public class TelephonyRegistryManager { } else if (listener.mSubId != null) { subId = listener.mSubId; } - sRegistry.listenWithEventList(renounceFineLocationAccess, renounceCoarseLocationAccess, - subId, pkg, featureId, listener.callback, eventsList, notifyNow); + sRegistry.listenWithEventList(false, false, subId, pkg, featureId, + listener.callback, eventsList, notifyNow); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index c26cb6842ade..390ffc751498 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -48,7 +48,6 @@ import android.compat.annotation.EnabledAfter; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; -import android.content.ContextParams; import android.content.Intent; import android.database.Cursor; import android.net.ConnectivityManager; @@ -141,7 +140,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.Set; import java.util.UUID; import java.util.concurrent.Executor; import java.util.concurrent.RejectedExecutionException; @@ -379,8 +377,16 @@ public class TelephonyManager { @UnsupportedAppUsage public TelephonyManager(Context context, int subId) { mSubId = subId; - mContext = mergeAttributionAndRenouncedPermissions(context.getApplicationContext(), - context); + Context appContext = context.getApplicationContext(); + if (appContext != null) { + if (Objects.equals(context.getAttributionTag(), appContext.getAttributionTag())) { + mContext = appContext; + } else { + mContext = appContext.createAttributionContext(context.getAttributionTag()); + } + } else { + mContext = context; + } mSubscriptionManager = SubscriptionManager.from(mContext); } @@ -401,34 +407,6 @@ public class TelephonyManager { return sInstance; } - // This method takes the Application context and adds the attributionTag - // and renouncedPermissions from the given context. - private Context mergeAttributionAndRenouncedPermissions(Context to, Context from) { - Context contextToReturn = from; - if (to != null) { - if (!Objects.equals(from.getAttributionTag(), to.getAttributionTag())) { - contextToReturn = to.createAttributionContext(from.getAttributionTag()); - } else { - contextToReturn = to; - } - - Set<String> renouncedPermissions = - from.getAttributionSource().getRenouncedPermissions(); - if (!renouncedPermissions.isEmpty()) { - if (to.getParams() != null) { - contextToReturn = contextToReturn.createContext( - new ContextParams.Builder(to.getParams()) - .setRenouncedPermissions(renouncedPermissions).build()); - } else { - contextToReturn = contextToReturn.createContext( - new ContextParams.Builder() - .setRenouncedPermissions(renouncedPermissions).build()); - } - } - } - return contextToReturn; - } - private String getOpPackageName() { // For legacy reasons the TelephonyManager has API for getting // a static instance with no context set preventing us from @@ -459,16 +437,6 @@ public class TelephonyManager { return null; } - private Set<String> getRenouncedPermissions() { - // For legacy reasons the TelephonyManager has API for getting - // a static instance with no context set preventing us from - // getting the attribution source. - if (mContext != null) { - return mContext.getAttributionSource().getRenouncedPermissions(); - } - return Collections.emptySet(); - } - /** * Post a runnable to the BackgroundThread. * @@ -6170,14 +6138,8 @@ public class TelephonyManager { (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistry != null) { - Set<String> renouncedPermissions = getRenouncedPermissions(); - boolean renounceFineLocationAccess = renouncedPermissions - .contains(Manifest.permission.ACCESS_FINE_LOCATION); - boolean renounceCoarseLocationAccess = renouncedPermissions - .contains(Manifest.permission.ACCESS_COARSE_LOCATION); - telephonyRegistry.listenFromListener(mSubId, renounceFineLocationAccess, - renounceCoarseLocationAccess, getOpPackageName(), getAttributionTag(), - listener, events, notifyNow); + telephonyRegistry.listenFromListener(mSubId, getOpPackageName(), + getAttributionTag(), listener, events, notifyNow); } else { Rlog.w(TAG, "telephony registry not ready."); } @@ -11640,10 +11602,7 @@ public class TelephonyManager { Manifest.permission.ACCESS_COARSE_LOCATION }) public @Nullable ServiceState getServiceState() { - return getServiceState(getRenouncedPermissions() - .contains(Manifest.permission.ACCESS_FINE_LOCATION), - getRenouncedPermissions() - .contains(Manifest.permission.ACCESS_COARSE_LOCATION)); + return getServiceState(false, false); } /** @@ -11655,11 +11614,6 @@ public class TelephonyManager { * If you want continuous updates of service state info, register a {@link PhoneStateListener} * via {@link #listen} with the {@link PhoneStateListener#LISTEN_SERVICE_STATE} event. * - * There's another way to renounce permissions with a custom context - * {@link AttributionSource.Builder#setRenouncedPermissions(Set<String>)} but only for system - * apps. To avoid confusion, calling this method supersede renouncing permissions with a - * custom context. - * * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} * or that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}) * and {@link android.Manifest.permission#ACCESS_COARSE_LOCATION}. @@ -11703,7 +11657,8 @@ public class TelephonyManager { ITelephony service = getITelephony(); if (service != null) { return service.getServiceStateForSubscriber(subId, renounceFineLocationAccess, - renounceCoarseLocationAccess, getOpPackageName(), getAttributionTag()); + renounceCoarseLocationAccess, + getOpPackageName(), getAttributionTag()); } } catch (RemoteException e) { Log.e(TAG, "Error calling ITelephony#getServiceStateForSubscriber", e); @@ -15539,10 +15494,7 @@ public class TelephonyManager { */ public void registerTelephonyCallback(@NonNull @CallbackExecutor Executor executor, @NonNull TelephonyCallback callback) { - registerTelephonyCallback( - getRenouncedPermissions().contains(Manifest.permission.ACCESS_FINE_LOCATION), - getRenouncedPermissions().contains(Manifest.permission.ACCESS_COARSE_LOCATION), - executor, callback); + registerTelephonyCallback(false, false, executor, callback); } /** @@ -15572,12 +15524,6 @@ public class TelephonyManager { * instability. If a process has registered too many callbacks without unregistering them, it * may encounter an {@link IllegalStateException} when trying to register more callbacks. * - * <p> - * There's another way to renounce permissions with a custom context - * {@link AttributionSource.Builder#setRenouncedPermissions(Set<String>)} but only for system - * apps. To avoid confusion, calling this method supersede renouncing permissions with a - * custom context. - * * @param renounceFineLocationAccess Set this to true if the caller would not like to receive * location related information which will be sent if the caller already possess * {@link android.Manifest.permission#ACCESS_FINE_LOCATION} and do not renounce the permissions. |