Merge changes from topics "pans", "pans-permission" am: 601d16a336
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1561317 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I72035b6d5d6504cece1df472ae317e865ceb7882
This commit is contained in:
@@ -4886,15 +4886,6 @@ public class ConnectivityManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference) {
|
|
||||||
try {
|
|
||||||
mService.setOemNetworkPreference(preference);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "setOemNetworkPreference() failed for preference: " + preference.toString());
|
|
||||||
throw e.rethrowFromSystemServer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private final List<QosCallbackConnection> mQosCallbackConnections = new ArrayList<>();
|
private final List<QosCallbackConnection> mQosCallbackConnections = new ArrayList<>();
|
||||||
|
|
||||||
@@ -5096,4 +5087,60 @@ public class ConnectivityManager {
|
|||||||
sendRequestForNetwork(nc, networkCallback, 0, BACKGROUND_REQUEST,
|
sendRequestForNetwork(nc, networkCallback, 0, BACKGROUND_REQUEST,
|
||||||
TYPE_NONE, handler == null ? getDefaultHandler() : new CallbackHandler(handler));
|
TYPE_NONE, handler == null ? getDefaultHandler() : new CallbackHandler(handler));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listener for {@link #setOemNetworkPreference(OemNetworkPreferences, Executor,
|
||||||
|
* OnSetOemNetworkPreferenceListener)}.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
public interface OnSetOemNetworkPreferenceListener {
|
||||||
|
/**
|
||||||
|
* Called when setOemNetworkPreference() successfully completes.
|
||||||
|
*/
|
||||||
|
void onComplete();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used by automotive devices to set the network preferences used to direct traffic at an
|
||||||
|
* application level as per the given OemNetworkPreferences. An example use-case would be an
|
||||||
|
* automotive OEM wanting to provide connectivity for applications critical to the usage of a
|
||||||
|
* vehicle via a particular network.
|
||||||
|
*
|
||||||
|
* Calling this will overwrite the existing preference.
|
||||||
|
*
|
||||||
|
* @param preference {@link OemNetworkPreferences} The application network preference to be set.
|
||||||
|
* @param executor the executor on which listener will be invoked.
|
||||||
|
* @param listener {@link OnSetOemNetworkPreferenceListener} optional listener used to
|
||||||
|
* communicate completion of setOemNetworkPreference(). This will only be
|
||||||
|
* called once upon successful completion of setOemNetworkPreference().
|
||||||
|
* @throws IllegalArgumentException if {@code preference} contains invalid preference values.
|
||||||
|
* @throws SecurityException if missing the appropriate permissions.
|
||||||
|
* @throws UnsupportedOperationException if called on a non-automotive device.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
@RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
|
||||||
|
public void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
|
||||||
|
@Nullable @CallbackExecutor final Executor executor,
|
||||||
|
@Nullable final OnSetOemNetworkPreferenceListener listener) {
|
||||||
|
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
||||||
|
if (null != listener) {
|
||||||
|
Objects.requireNonNull(executor, "Executor must be non-null");
|
||||||
|
}
|
||||||
|
final IOnSetOemNetworkPreferenceListener listenerInternal = listener == null ? null :
|
||||||
|
new IOnSetOemNetworkPreferenceListener.Stub() {
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
executor.execute(listener::onComplete);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
mService.setOemNetworkPreference(preference, listenerInternal);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "setOemNetworkPreference() failed for preference: " + preference.toString());
|
||||||
|
throw e.rethrowFromSystemServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.app.PendingIntent;
|
|||||||
import android.net.ConnectionInfo;
|
import android.net.ConnectionInfo;
|
||||||
import android.net.ConnectivityDiagnosticsManager;
|
import android.net.ConnectivityDiagnosticsManager;
|
||||||
import android.net.IConnectivityDiagnosticsCallback;
|
import android.net.IConnectivityDiagnosticsCallback;
|
||||||
|
import android.net.IOnSetOemNetworkPreferenceListener;
|
||||||
import android.net.IQosCallback;
|
import android.net.IQosCallback;
|
||||||
import android.net.ISocketKeepaliveCallback;
|
import android.net.ISocketKeepaliveCallback;
|
||||||
import android.net.LinkProperties;
|
import android.net.LinkProperties;
|
||||||
@@ -245,5 +246,6 @@ interface IConnectivityManager
|
|||||||
void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
|
void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
|
||||||
void unregisterQosCallback(in IQosCallback callback);
|
void unregisterQosCallback(in IQosCallback callback);
|
||||||
|
|
||||||
void setOemNetworkPreference(in OemNetworkPreferences preference);
|
void setOemNetworkPreference(in OemNetworkPreferences preference,
|
||||||
|
in IOnSetOemNetworkPreferenceListener listener);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user