summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp2
-rw-r--r--api/current.txt10
-rw-r--r--core/java/android/app/slice/ISliceManager.aidl2
-rw-r--r--core/java/android/app/slice/SliceManager.java6
-rw-r--r--services/autofill/java/com/android/server/autofill/RemoteFillService.java3
-rw-r--r--services/autofill/java/com/android/server/autofill/Session.java3
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerShellCommand.java42
-rw-r--r--services/core/java/com/android/server/slice/SliceManagerService.java10
-rw-r--r--services/print/java/com/android/server/print/RemotePrintSpooler.java6
-rw-r--r--services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java3
-rw-r--r--telecomm/java/android/telecom/CallRedirectionService.java167
-rw-r--r--telecomm/java/com/android/internal/telecom/ICallRedirectionAdapter.aidl35
-rw-r--r--telecomm/java/com/android/internal/telecom/ICallRedirectionService.aidl34
-rw-r--r--telephony/java/android/telephony/CarrierConfigManager.java9
-rw-r--r--telephony/java/com/android/internal/telephony/ISmsImplBase.java (renamed from telephony/java/com/android/internal/telephony/ISmsBaseImpl.java)82
15 files changed, 334 insertions, 80 deletions
diff --git a/Android.bp b/Android.bp
index 459f179ea584..3957f7e164ca 100644
--- a/Android.bp
+++ b/Android.bp
@@ -479,6 +479,8 @@ java_library {
"media/java/android/media/tv/ITvRemoteServiceInput.aidl",
"media/java/android/service/media/IMediaBrowserService.aidl",
"media/java/android/service/media/IMediaBrowserServiceCallbacks.aidl",
+ "telecomm/java/com/android/internal/telecom/ICallRedirectionAdapter.aidl",
+ "telecomm/java/com/android/internal/telecom/ICallRedirectionService.aidl",
"telecomm/java/com/android/internal/telecom/ICallScreeningAdapter.aidl",
"telecomm/java/com/android/internal/telecom/ICallScreeningService.aidl",
"telecomm/java/com/android/internal/telecom/IVideoCallback.aidl",
diff --git a/api/current.txt b/api/current.txt
index e3db2566af48..9f37db22cd0c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -40959,6 +40959,16 @@ package android.telecom {
field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5
}
+ public abstract class CallRedirectionService extends android.app.Service {
+ ctor public CallRedirectionService();
+ method public final void cancelCall();
+ method public android.os.IBinder onBind(android.content.Intent);
+ method public abstract void onPlaceCall(android.net.Uri, android.telecom.PhoneAccountHandle);
+ method public final void placeCallUnmodified();
+ method public final void redirectCall(android.net.Uri, android.telecom.PhoneAccountHandle);
+ field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.CallRedirectionService";
+ }
+
public abstract class CallScreeningService extends android.app.Service {
ctor public CallScreeningService();
method public android.os.IBinder onBind(android.content.Intent);
diff --git a/core/java/android/app/slice/ISliceManager.aidl b/core/java/android/app/slice/ISliceManager.aidl
index 69852f3ce745..6f73d02caa12 100644
--- a/core/java/android/app/slice/ISliceManager.aidl
+++ b/core/java/android/app/slice/ISliceManager.aidl
@@ -33,7 +33,7 @@ interface ISliceManager {
// Perms.
void grantSlicePermission(String callingPkg, String toPkg, in Uri uri);
void revokeSlicePermission(String callingPkg, String toPkg, in Uri uri);
- int checkSlicePermission(in Uri uri, String pkg, int pid, int uid,
+ int checkSlicePermission(in Uri uri, String callingPkg, String pkg, int pid, int uid,
in String[] autoGrantPermissions);
void grantPermissionFromUser(in Uri uri, String pkg, String callingPkg, boolean allSlices);
}
diff --git a/core/java/android/app/slice/SliceManager.java b/core/java/android/app/slice/SliceManager.java
index 26498e81253a..955093d3380e 100644
--- a/core/java/android/app/slice/SliceManager.java
+++ b/core/java/android/app/slice/SliceManager.java
@@ -430,7 +430,8 @@ public class SliceManager {
*/
public @PermissionResult int checkSlicePermission(@NonNull Uri uri, int pid, int uid) {
try {
- return mService.checkSlicePermission(uri, null, pid, uid, null);
+ return mService.checkSlicePermission(uri, mContext.getPackageName(), null, pid, uid,
+ null);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -487,7 +488,8 @@ public class SliceManager {
if (pkg == null) {
throw new SecurityException("No pkg specified");
}
- int result = mService.checkSlicePermission(uri, pkg, pid, uid, autoGrantPermissions);
+ int result = mService.checkSlicePermission(uri, mContext.getPackageName(), pkg, pid,
+ uid, autoGrantPermissions);
if (result == PERMISSION_DENIED) {
throw new SecurityException("User " + uid + " does not have slice permission for "
+ uri + ".");
diff --git a/services/autofill/java/com/android/server/autofill/RemoteFillService.java b/services/autofill/java/com/android/server/autofill/RemoteFillService.java
index 65ad5960ea9c..ad80cc261bb3 100644
--- a/services/autofill/java/com/android/server/autofill/RemoteFillService.java
+++ b/services/autofill/java/com/android/server/autofill/RemoteFillService.java
@@ -123,8 +123,7 @@ final class RemoteFillService implements DeathRecipient {
}
public void destroy() {
- mHandler.sendMessage(obtainMessage(
- RemoteFillService::handleDestroy, this));
+ mHandler.sendMessage(obtainMessage(RemoteFillService::handleDestroy, this));
}
private void handleDestroy() {
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index 18255c5c39d4..8f59ca9c4b8d 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -839,7 +839,8 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
// FillServiceCallbacks
@Override
public void onServiceDied(RemoteFillService service) {
- // TODO(b/337565347): implement
+ Slog.w(TAG, "removing session because service died");
+ forceRemoveSelfLocked();
}
// AutoFillUiCallback
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index d06437e562ed..5878762e2272 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -2419,30 +2419,30 @@ class PackageManagerShellCommand extends ShellCommand {
private int doWriteSplit(int sessionId, String inPath, long sizeBytes, String splitName,
boolean logSuccess) throws RemoteException {
- final PrintWriter pw = getOutPrintWriter();
- final ParcelFileDescriptor fd;
- if (STDIN_PATH.equals(inPath)) {
- fd = new ParcelFileDescriptor(getInFileDescriptor());
- } else if (inPath != null) {
- fd = openFileForSystem(inPath, "r");
- if (fd == null) {
- return -1;
+ PackageInstaller.Session session = null;
+ try {
+ final PrintWriter pw = getOutPrintWriter();
+ final ParcelFileDescriptor fd;
+ if (STDIN_PATH.equals(inPath)) {
+ fd = ParcelFileDescriptor.dup(getInFileDescriptor());
+ } else if (inPath != null) {
+ fd = openFileForSystem(inPath, "r");
+ if (fd == null) {
+ return -1;
+ }
+ sizeBytes = fd.getStatSize();
+ if (sizeBytes < 0) {
+ getErrPrintWriter().println("Unable to get size of: " + inPath);
+ return -1;
+ }
+ } else {
+ fd = ParcelFileDescriptor.dup(getInFileDescriptor());
}
- sizeBytes = fd.getStatSize();
- if (sizeBytes < 0) {
- getErrPrintWriter().println("Unable to get size of: " + inPath);
- return -1;
+ if (sizeBytes <= 0) {
+ getErrPrintWriter().println("Error: must specify a APK size");
+ return 1;
}
- } else {
- fd = new ParcelFileDescriptor(getInFileDescriptor());
- }
- if (sizeBytes <= 0) {
- getErrPrintWriter().println("Error: must specify a APK size");
- return 1;
- }
- PackageInstaller.Session session = null;
- try {
session = new PackageInstaller.Session(
mInterface.getPackageInstaller().openSession(sessionId));
session.write(splitName, 0, sizeBytes, fd);
diff --git a/services/core/java/com/android/server/slice/SliceManagerService.java b/services/core/java/com/android/server/slice/SliceManagerService.java
index ded2c1536bb8..73775b4387b9 100644
--- a/services/core/java/com/android/server/slice/SliceManagerService.java
+++ b/services/core/java/com/android/server/slice/SliceManagerService.java
@@ -219,12 +219,12 @@ public class SliceManagerService extends ISliceManager.Stub {
}
@Override
- public int checkSlicePermission(Uri uri, String pkg, int pid, int uid,
+ public int checkSlicePermission(Uri uri, String callingPkg, String pkg, int pid, int uid,
String[] autoGrantPermissions) {
int userId = UserHandle.getUserId(uid);
if (pkg == null) {
for (String p : mContext.getPackageManager().getPackagesForUid(uid)) {
- if (checkSlicePermission(uri, p, pid, uid, autoGrantPermissions)
+ if (checkSlicePermission(uri, callingPkg, p, pid, uid, autoGrantPermissions)
== PERMISSION_GRANTED) {
return PERMISSION_GRANTED;
}
@@ -237,9 +237,9 @@ public class SliceManagerService extends ISliceManager.Stub {
if (mPermissions.hasPermission(pkg, userId, uri)) {
return PackageManager.PERMISSION_GRANTED;
}
- if (autoGrantPermissions != null) {
+ if (autoGrantPermissions != null && callingPkg != null) {
// Need to own the Uri to call in with permissions to grant.
- enforceOwner(pkg, uri, userId);
+ enforceOwner(callingPkg, uri, userId);
for (String perm : autoGrantPermissions) {
if (mContext.checkPermission(perm, pid, uid) == PERMISSION_GRANTED) {
int providerUser = ContentProvider.getUserIdFromUri(uri, userId);
@@ -391,7 +391,7 @@ public class SliceManagerService extends ISliceManager.Stub {
}
protected int checkAccess(String pkg, Uri uri, int uid, int pid) {
- return checkSlicePermission(uri, pkg, uid, pid, null);
+ return checkSlicePermission(uri, null, pkg, uid, pid, null);
}
private String getProviderPkg(Uri uri, int user) {
diff --git a/services/print/java/com/android/server/print/RemotePrintSpooler.java b/services/print/java/com/android/server/print/RemotePrintSpooler.java
index c1c32c28cb6b..774a3bc23e2b 100644
--- a/services/print/java/com/android/server/print/RemotePrintSpooler.java
+++ b/services/print/java/com/android/server/print/RemotePrintSpooler.java
@@ -708,8 +708,10 @@ final class RemotePrintSpooler {
@Override
public void onServiceDisconnected(ComponentName name) {
synchronized (mLock) {
- clearClientLocked();
- mRemoteInstance = null;
+ if (mRemoteInstance != null) {
+ clearClientLocked();
+ mRemoteInstance = null;
+ }
}
}
}
diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java
index 1db89673d600..6d4f5f891dc1 100644
--- a/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/slice/SliceManagerServiceTest.java
@@ -120,7 +120,8 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
.thenReturn(PERMISSION_DENIED);
when(mContextSpy.checkPermission("perm2", Process.myPid(), Process.myUid()))
.thenReturn(PERMISSION_GRANTED);
- mService.checkSlicePermission(TEST_URI, mContext.getPackageName(), Process.myPid(),
+ mService.checkSlicePermission(TEST_URI, mContext.getPackageName(),
+ mContext.getPackageName(), Process.myPid(),
Process.myUid(), testPerms);
verify(mContextSpy).checkPermission(eq("perm1"), eq(Process.myPid()), eq(Process.myUid()));
diff --git a/telecomm/java/android/telecom/CallRedirectionService.java b/telecomm/java/android/telecom/CallRedirectionService.java
new file mode 100644
index 000000000000..9c874bf305b1
--- /dev/null
+++ b/telecomm/java/android/telecom/CallRedirectionService.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package android.telecom;
+
+import android.annotation.SdkConstant;
+import android.app.Service;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.RemoteException;
+
+import com.android.internal.os.SomeArgs;
+import com.android.internal.telecom.ICallRedirectionService;
+import com.android.internal.telecom.ICallRedirectionAdapter;
+
+/**
+ * This service can be implemented to interact between Telecom and its implementor
+ * for making outgoing call with optional redirection/cancellation purposes.
+ *
+ * <p>
+ * Below is an example manifest registration for a {@code CallRedirectionService}.
+ * <pre>
+ * {@code
+ * <service android:name="your.package.YourCallRedirectionServiceImplementation"
+ * android:permission="android.permission.BIND_REDIRECTION_SERVICE">
+ * <intent-filter>
+ * <action android:name="android.telecom.CallRedirectionService"/>
+ * </intent-filter>
+ * </service>
+ * }
+ * </pre>
+ */
+public abstract class CallRedirectionService extends Service {
+ /**
+ * The {@link Intent} that must be declared as handled by the service.
+ */
+ @SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION)
+ public static final String SERVICE_INTERFACE = "android.telecom.CallRedirectionService";
+
+ /**
+ * An adapter to inform Telecom the response from the implementor of the Call
+ * Redirection service
+ */
+ private ICallRedirectionAdapter mCallRedirectionAdapter;
+
+ /**
+ * Telecom calls this method to inform the implemented {@link CallRedirectionService} of
+ * a new outgoing call which is being placed.
+ * @param handle the phone number dialed by the user
+ * @param targetPhoneAccount the {@link PhoneAccountHandle} on which the call will be placed.
+ */
+ public abstract void onPlaceCall(Uri handle, PhoneAccountHandle targetPhoneAccount);
+
+ /**
+ * The implemented {@link CallRedirectionService} calls this method to response a request
+ * received via {@link #onPlaceCall(Uri, PhoneAccountHandle)} to inform Telecom that no changes
+ * are required to the outgoing call, and that the call should be placed as-is.
+ */
+ public final void placeCallUnmodified() {
+ try {
+ mCallRedirectionAdapter.placeCallUnmodified();
+ } catch (RemoteException e) {
+ }
+ }
+
+ /**
+ * The implemented {@link CallRedirectionService} calls this method to response a request
+ * received via {@link #onPlaceCall(Uri, PhoneAccountHandle)} to inform Telecom that changes
+ * are required to the phone number or/and {@link PhoneAccountHandle} for the outgoing call.
+ * @param handle the new phone number to dial
+ * @param targetPhoneAccount the {@link PhoneAccountHandle} to use when placing the call.
+ * If {@code null}, no change will be made to the
+ * {@link PhoneAccountHandle} used to place the call.
+ */
+ public final void redirectCall(Uri handle, PhoneAccountHandle targetPhoneAccount) {
+ try {
+ mCallRedirectionAdapter.redirectCall(handle, targetPhoneAccount);
+ } catch (RemoteException e) {
+ }
+ }
+
+ /**
+ * The implemented {@link CallRedirectionService} calls this method to response a request
+ * received via {@link #onPlaceCall(Uri, PhoneAccountHandle)} to inform Telecom that an outgoing
+ * call should be canceled entirely.
+ */
+ public final void cancelCall() {
+ try {
+ mCallRedirectionAdapter.cancelCall();
+ } catch (RemoteException e) {
+ }
+ }
+
+ /**
+ * A handler message to process the attempt to place call with redirection service from Telecom
+ */
+ private static final int MSG_PLACE_CALL = 1;
+
+ /**
+ * A handler to process the attempt to place call with redirection service from Telecom
+ */
+ private final Handler mHandler = new Handler(Looper.getMainLooper()) {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_PLACE_CALL:
+ SomeArgs args = (SomeArgs) msg.obj;
+ try {
+ mCallRedirectionAdapter = (ICallRedirectionAdapter) args.arg1;
+ onPlaceCall((Uri) args.arg2, (PhoneAccountHandle) args.arg3);
+ } finally {
+ args.recycle();
+ }
+ break;
+ }
+ }
+ };
+
+ private final class CallRedirectionBinder extends ICallRedirectionService.Stub {
+
+ /**
+ * Telecom calls this method to inform the CallRedirectionService of a new outgoing call
+ * which is about to be placed.
+ * @param handle the phone number dialed by the user
+ * @param targetPhoneAccount the URI of the number the user dialed
+ */
+ @Override
+ public void placeCall(ICallRedirectionAdapter adapter, Uri handle,
+ PhoneAccountHandle targetPhoneAccount) {
+ Log.v(this, "placeCall");
+ SomeArgs args = SomeArgs.obtain();
+ args.arg1 = adapter;
+ args.arg2 = handle;
+ args.arg3 = targetPhoneAccount;
+ mHandler.obtainMessage(MSG_PLACE_CALL, args).sendToTarget();
+ }
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ Log.v(this, "onBind");
+ return new CallRedirectionBinder();
+ }
+
+ @Override
+ public boolean onUnbind(Intent intent) {
+ Log.v(this, "onUnbind");
+ return false;
+ }
+}
diff --git a/telecomm/java/com/android/internal/telecom/ICallRedirectionAdapter.aidl b/telecomm/java/com/android/internal/telecom/ICallRedirectionAdapter.aidl
new file mode 100644
index 000000000000..46bf983f52a2
--- /dev/null
+++ b/telecomm/java/com/android/internal/telecom/ICallRedirectionAdapter.aidl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.telecom;
+
+import android.net.Uri;
+import android.telecom.PhoneAccountHandle;
+
+/**
+ * Internal remote callback interface for call redirection services.
+ *
+ * @see android.telecom.CallRedirectionService
+ *
+ * {@hide}
+ */
+oneway interface ICallRedirectionAdapter {
+ void cancelCall();
+
+ void placeCallUnmodified();
+
+ void redirectCall(in Uri handle, in PhoneAccountHandle targetPhoneAccount);
+}
diff --git a/telecomm/java/com/android/internal/telecom/ICallRedirectionService.aidl b/telecomm/java/com/android/internal/telecom/ICallRedirectionService.aidl
new file mode 100644
index 000000000000..d8d360beb64d
--- /dev/null
+++ b/telecomm/java/com/android/internal/telecom/ICallRedirectionService.aidl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.telecom;
+
+import android.net.Uri;
+import android.telecom.PhoneAccountHandle;
+
+import com.android.internal.telecom.ICallRedirectionAdapter;
+
+/**
+ * Internal remote interface for a call redirection service.
+ *
+ * @see android.telecom.CallRedirectionService
+ *
+ * @hide
+ */
+oneway interface ICallRedirectionService {
+ void placeCall(in ICallRedirectionAdapter adapter, in Uri handle,
+ in PhoneAccountHandle targetPhoneAccount);
+}
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index cabf444ade16..2a680447a86b 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -2012,6 +2012,15 @@ public class CarrierConfigManager {
public static final String KEY_UNDELIVERED_SMS_MESSAGE_EXPIRATION_TIME =
"undelivered_sms_message_expiration_time";
+ /**
+ * Specifies a carrier-defined {@link CallRedirectionService} which Telecom will bind
+ * to for outgoing calls. An empty string indicates that no carrier-defined
+ * {@link CallRedirectionService} is specified.
+ * @hide
+ */
+ public static final String KEY_CALL_REDIRECTION_SERVICE_COMPONENT_NAME_STRING =
+ "call_redirection_service_component_name_string";
+
/** The default value for every variable. */
private final static PersistableBundle sDefaults;
diff --git a/telephony/java/com/android/internal/telephony/ISmsBaseImpl.java b/telephony/java/com/android/internal/telephony/ISmsImplBase.java
index cc1d105ae29e..1cdf44d897b2 100644
--- a/telephony/java/com/android/internal/telephony/ISmsBaseImpl.java
+++ b/telephony/java/com/android/internal/telephony/ISmsImplBase.java
@@ -1,4 +1,5 @@
-/* Copyright (C) 2018 The Android Open Source Project
+/*
+ * Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,17 +12,19 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
*/
package com.android.internal.telephony;
import android.app.PendingIntent;
import android.net.Uri;
-import java.lang.UnsupportedOperationException;
+
import java.util.List;
-public class ISmsBaseImpl extends ISms.Stub {
+/**
+ * Base class for ISms that facilitates forward compatibility with new features.
+ */
+public class ISmsImplBase extends ISms.Stub {
@Override
public List<SmsRawData> getAllMessagesFromIccEfForSubscriber(int subId, String callingPkg) {
@@ -29,45 +32,42 @@ public class ISmsBaseImpl extends ISms.Stub {
}
@Override
- public boolean updateMessageOnIccEfForSubscriber(int subId, String callingPkg,
- int messageIndex, int newStatus, byte[] pdu) throws UnsupportedOperationException {
+ public boolean updateMessageOnIccEfForSubscriber(int subId, String callingPkg, int messageIndex,
+ int newStatus, byte[] pdu) {
throw new UnsupportedOperationException();
}
@Override
public boolean copyMessageToIccEfForSubscriber(int subId, String callingPkg, int status,
- byte[] pdu, byte[] smsc) throws UnsupportedOperationException {
+ byte[] pdu, byte[] smsc) {
throw new UnsupportedOperationException();
}
@Override
public void sendDataForSubscriber(int subId, String callingPkg, String destAddr,
String scAddr, int destPort, byte[] data, PendingIntent sentIntent,
- PendingIntent deliveryIntent) throws UnsupportedOperationException {
+ PendingIntent deliveryIntent) {
throw new UnsupportedOperationException();
}
@Override
public void sendDataForSubscriberWithSelfPermissions(int subId, String callingPkg,
- String destAddr, String scAddr, int destPort, byte[] data,
- PendingIntent sentIntent, PendingIntent deliveryIntent)
- throws UnsupportedOperationException {
+ String destAddr, String scAddr, int destPort, byte[] data, PendingIntent sentIntent,
+ PendingIntent deliveryIntent) {
throw new UnsupportedOperationException();
}
@Override
public void sendTextForSubscriber(int subId, String callingPkg, String destAddr,
String scAddr, String text, PendingIntent sentIntent,
- PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp)
- throws UnsupportedOperationException {
+ PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp) {
throw new UnsupportedOperationException();
}
@Override
public void sendTextForSubscriberWithSelfPermissions(int subId, String callingPkg,
String destAddr, String scAddr, String text, PendingIntent sentIntent,
- PendingIntent deliveryIntent, boolean persistMessage)
- throws UnsupportedOperationException {
+ PendingIntent deliveryIntent, boolean persistMessage) {
throw new UnsupportedOperationException();
}
@@ -75,15 +75,13 @@ public class ISmsBaseImpl extends ISms.Stub {
public void sendTextForSubscriberWithOptions(int subId, String callingPkg, String destAddr,
String scAddr, String text, PendingIntent sentIntent,
PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp,
- int priority, boolean expectMore, int validityPeriod)
- throws UnsupportedOperationException {
+ int priority, boolean expectMore, int validityPeriod) {
throw new UnsupportedOperationException();
}
@Override
public void injectSmsPduForSubscriber(
- int subId, byte[] pdu, String format, PendingIntent receivedIntent)
- throws UnsupportedOperationException {
+ int subId, byte[] pdu, String format, PendingIntent receivedIntent) {
throw new UnsupportedOperationException();
}
@@ -91,8 +89,7 @@ public class ISmsBaseImpl extends ISms.Stub {
public void sendMultipartTextForSubscriber(int subId, String callingPkg,
String destinationAddress, String scAddress,
List<String> parts, List<PendingIntent> sentIntents,
- List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp)
- throws UnsupportedOperationException {
+ List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp) {
throw new UnsupportedOperationException();
}
@@ -101,99 +98,94 @@ public class ISmsBaseImpl extends ISms.Stub {
String destinationAddress, String scAddress,
List<String> parts, List<PendingIntent> sentIntents,
List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp,
- int priority, boolean expectMore, int validityPeriod)
- throws UnsupportedOperationException {
+ int priority, boolean expectMore, int validityPeriod) {
throw new UnsupportedOperationException();
}
@Override
- public boolean enableCellBroadcastForSubscriber(int subId, int messageIdentifier, int ranType)
- throws UnsupportedOperationException {
+ public boolean enableCellBroadcastForSubscriber(int subId, int messageIdentifier, int ranType) {
throw new UnsupportedOperationException();
}
@Override
- public boolean disableCellBroadcastForSubscriber(int subId, int messageIdentifier, int ranType)
- throws UnsupportedOperationException {
+ public boolean disableCellBroadcastForSubscriber(int subId, int messageIdentifier,
+ int ranType) {
throw new UnsupportedOperationException();
}
@Override
public boolean enableCellBroadcastRangeForSubscriber(int subId, int startMessageId,
- int endMessageId, int ranType) throws UnsupportedOperationException {
+ int endMessageId, int ranType) {
throw new UnsupportedOperationException();
}
@Override
public boolean disableCellBroadcastRangeForSubscriber(int subId, int startMessageId,
- int endMessageId, int ranType) throws UnsupportedOperationException {
+ int endMessageId, int ranType) {
throw new UnsupportedOperationException();
}
@Override
- public int getPremiumSmsPermission(String packageName) throws UnsupportedOperationException {
+ public int getPremiumSmsPermission(String packageName) {
throw new UnsupportedOperationException();
}
@Override
- public int getPremiumSmsPermissionForSubscriber(int subId, String packageName)
- throws UnsupportedOperationException {
+ public int getPremiumSmsPermissionForSubscriber(int subId, String packageName) {
throw new UnsupportedOperationException();
}
@Override
- public void setPremiumSmsPermission(String packageName, int permission) throws UnsupportedOperationException {
+ public void setPremiumSmsPermission(String packageName, int permission) {
throw new UnsupportedOperationException();
}
@Override
public void setPremiumSmsPermissionForSubscriber(int subId, String packageName,
- int permission) throws UnsupportedOperationException {
+ int permission) {
throw new UnsupportedOperationException();
}
@Override
- public boolean isImsSmsSupportedForSubscriber(int subId) throws UnsupportedOperationException {
+ public boolean isImsSmsSupportedForSubscriber(int subId) {
throw new UnsupportedOperationException();
}
@Override
- public boolean isSmsSimPickActivityNeeded(int subId) throws UnsupportedOperationException {
+ public boolean isSmsSimPickActivityNeeded(int subId) {
throw new UnsupportedOperationException();
}
@Override
- public int getPreferredSmsSubscription() throws UnsupportedOperationException {
+ public int getPreferredSmsSubscription() {
throw new UnsupportedOperationException();
}
@Override
- public String getImsSmsFormatForSubscriber(int subId) throws UnsupportedOperationException {
+ public String getImsSmsFormatForSubscriber(int subId) {
throw new UnsupportedOperationException();
}
@Override
- public boolean isSMSPromptEnabled() throws UnsupportedOperationException {
+ public boolean isSMSPromptEnabled() {
throw new UnsupportedOperationException();
}
@Override
public void sendStoredText(int subId, String callingPkg, Uri messageUri, String scAddress,
- PendingIntent sentIntent, PendingIntent deliveryIntent)
- throws UnsupportedOperationException {
+ PendingIntent sentIntent, PendingIntent deliveryIntent) {
throw new UnsupportedOperationException();
}
@Override
public void sendStoredMultipartText(int subId, String callingPkg, Uri messageUri,
- String scAddress, List<PendingIntent> sentIntents,
- List<PendingIntent> deliveryIntents) throws UnsupportedOperationException {
+ String scAddress, List<PendingIntent> sentIntents,
+ List<PendingIntent> deliveryIntents) {
throw new UnsupportedOperationException();
}
@Override
- public String createAppSpecificSmsToken(int subId, String callingPkg, PendingIntent intent)
- throws UnsupportedOperationException {
+ public String createAppSpecificSmsToken(int subId, String callingPkg, PendingIntent intent) {
throw new UnsupportedOperationException();
}
}