diff options
author | 2020-02-12 18:23:59 +0000 | |
---|---|---|
committer | 2020-02-12 18:23:59 +0000 | |
commit | 0fe79c3fe24cea6f56528dc699260177d7f1883b (patch) | |
tree | 6d26a15151732ce4338061ecdb5da8e2b3b5cd6a | |
parent | 53e0762358eb7b335dd246daa8e9678ec97a0ccf (diff) | |
parent | 9c99325b8730a83c9e27b0ef1b95f729d44e895a (diff) |
Merge "Revert "System API used by telephony to bind to WapPushManager app.""
-rwxr-xr-x | api/system-current.txt | 14 | ||||
-rw-r--r-- | core/java/android/telephony/WapPushManagerConnector.java | 178 | ||||
-rw-r--r-- | core/java/com/android/internal/telephony/WapPushManagerParams.java | 72 | ||||
-rw-r--r-- | packages/WAPPushManager/Android.bp | 1 | ||||
-rw-r--r-- | telephony/java/com/android/internal/telephony/IWapPushManager.aidl (renamed from core/java/com/android/internal/telephony/IWapPushManager.aidl) | 13 |
5 files changed, 9 insertions, 269 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index c0f5e149e6a0..838d23fde434 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -12626,20 +12626,6 @@ package android.telephony { method public static final void setSmsFilterSettings(android.content.Context, android.telecom.PhoneAccountHandle, android.telephony.VisualVoicemailSmsFilterSettings); } - public final class WapPushManagerConnector { - ctor public WapPushManagerConnector(@NonNull android.content.Context); - method public boolean bindToWapPushManagerService(); - method @Nullable public String getConnectedWapPushManagerServicePackage(); - method public int processMessage(@NonNull String, @NonNull String, @NonNull android.content.Intent); - method public void unbindWapPushManagerService(); - field public static final int RESULT_APP_QUERY_FAILED = 2; // 0x2 - field public static final int RESULT_EXCEPTION_CAUGHT = 16; // 0x10 - field public static final int RESULT_FURTHER_PROCESSING = 32768; // 0x8000 - field public static final int RESULT_INVALID_RECEIVER_NAME = 8; // 0x8 - field public static final int RESULT_MESSAGE_HANDLED = 1; // 0x1 - field public static final int RESULT_SIGNATURE_NO_MATCH = 4; // 0x4 - } - } package android.telephony.cdma { diff --git a/core/java/android/telephony/WapPushManagerConnector.java b/core/java/android/telephony/WapPushManagerConnector.java deleted file mode 100644 index a9df50685d5d..000000000000 --- a/core/java/android/telephony/WapPushManagerConnector.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (C) 2019 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.telephony; - -import android.annotation.IntDef; -import android.annotation.NonNull; -import android.annotation.Nullable; -import android.annotation.SdkConstant; -import android.annotation.SystemApi; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.ServiceConnection; -import android.os.IBinder; -import android.os.RemoteException; - -import com.android.internal.telephony.IWapPushManager; -import com.android.internal.util.Preconditions; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -/** - * APIs for platform to connect to the WAP push manager service. - * - * <p>To start connection, {@link #bindToWapPushManagerService} should be called. - * - * <p>Upon completion {@link #unbindWapPushManagerService} should be called to unbind the service. - * - * @hide - */ -@SystemApi -public final class WapPushManagerConnector { - private final Context mContext; - - private volatile WapPushManagerConnection mConnection; - private volatile IWapPushManager mWapPushManager; - private String mWapPushManagerPackage; - - /** - * The {@link android.content.Intent} that must be declared as handled by the - * WAP push manager service. - * @hide - */ - @SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION) - public static final String SERVICE_INTERFACE = - "com.android.internal.telephony.IWapPushManager"; - - /** @hide */ - @IntDef(flag = true, prefix = {"RESULT_"}, value = { - RESULT_MESSAGE_HANDLED, - RESULT_APP_QUERY_FAILED, - RESULT_SIGNATURE_NO_MATCH, - RESULT_INVALID_RECEIVER_NAME, - RESULT_EXCEPTION_CAUGHT, - RESULT_FURTHER_PROCESSING, - }) - @Retention(RetentionPolicy.SOURCE) - public @interface ProcessMessageResult{} - - /** {@link #processMessage} return value: Message is handled. */ - public static final int RESULT_MESSAGE_HANDLED = 0x1; - /** {@link #processMessage} return value: Application ID or content type was not found. */ - public static final int RESULT_APP_QUERY_FAILED = 0x2; - /** {@link #processMessage} return value: Receiver application signature check failed. */ - public static final int RESULT_SIGNATURE_NO_MATCH = 0x4; - /** {@link #processMessage} return value: Receiver application was not found. */ - public static final int RESULT_INVALID_RECEIVER_NAME = 0x8; - /** {@link #processMessage} return value: Unknown exception. */ - public static final int RESULT_EXCEPTION_CAUGHT = 0x10; - /** {@link #processMessage} return value: further processing needed. */ - public static final int RESULT_FURTHER_PROCESSING = 0x8000; - - /** The application package name of the WAP push manager service. */ - private static final String SERVICE_PACKAGE = "com.android.smspush"; - - public WapPushManagerConnector(@NonNull Context context) { - mContext = context; - } - - /** - * Binds to the WAP push manager service. This method should be called exactly once. - * - * @return {@code true} upon successfully binding to a service, {@code false} otherwise - */ - public boolean bindToWapPushManagerService() { - Preconditions.checkState(mConnection == null); - - Intent intent = new Intent(SERVICE_INTERFACE); - ComponentName component = intent.resolveSystemService(mContext.getPackageManager(), 0); - intent.setComponent(component); - mConnection = new WapPushManagerConnection(); - if (component != null - && mContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE)) { - mWapPushManagerPackage = component.getPackageName(); - return true; - } - return false; - } - - /** - * Returns the package name of WAP push manager service application connected to, - * or {@code null} if not connected. - */ - @Nullable - public String getConnectedWapPushManagerServicePackage() { - return mWapPushManagerPackage; - } - - /** - * Processes WAP push message and triggers the {@code intent}. - * - * @see RESULT_MESSAGE_HANDLED - * @see RESULT_APP_QUERY_FAILED - * @see RESULT_SIGNATURE_NO_MATCH - * @see RESULT_INVALID_RECEIVER_NAME - * @see RESULT_EXCEPTION_CAUGHT - * @see RESULT_FURTHER_PROCESSING - */ - @ProcessMessageResult - public int processMessage( - @NonNull String applicationId, @NonNull String contentType, @NonNull Intent intent) { - try { - return mWapPushManager.processMessage(applicationId, contentType, intent); - } catch (NullPointerException | RemoteException e) { - return RESULT_EXCEPTION_CAUGHT; - } - } - - /** - * Unbinds the WAP push manager service. This method should be called exactly once. - */ - public void unbindWapPushManagerService() { - Preconditions.checkNotNull(mConnection); - - mContext.unbindService(mConnection); - mConnection = null; - } - - private class WapPushManagerConnection implements ServiceConnection { - @Override - public void onServiceConnected(ComponentName name, IBinder service) { - // Because we have bound to an explicit - // service that is running in our own process, we can - // cast its IBinder to a concrete class and directly access it. - mWapPushManager = IWapPushManager.Stub.asInterface(service); - } - - @Override - public void onServiceDisconnected(ComponentName name) { - mWapPushManager = null; - } - - @Override - public void onNullBinding(ComponentName name) { - onServiceDisconnected(name); - } - - @Override - public void onBindingDied(ComponentName name) { - onServiceDisconnected(name); - } - } -} diff --git a/core/java/com/android/internal/telephony/WapPushManagerParams.java b/core/java/com/android/internal/telephony/WapPushManagerParams.java deleted file mode 100644 index eafb8f1b423f..000000000000 --- a/core/java/com/android/internal/telephony/WapPushManagerParams.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2010 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.telephony; - -import android.telephony.WapPushManagerConnector; - -/** - * WapPushManager constant value definitions. - * @hide - */ -public class WapPushManagerParams { - /** - * Application type activity - */ - public static final int APP_TYPE_ACTIVITY = 0; - - /** - * Application type service - */ - public static final int APP_TYPE_SERVICE = 1; - - /** - * Process Message return value - * Message is handled - */ - public static final int MESSAGE_HANDLED = WapPushManagerConnector.RESULT_MESSAGE_HANDLED; - - /** - * Process Message return value - * Application ID or content type was not found in the application ID table - */ - public static final int APP_QUERY_FAILED = WapPushManagerConnector.RESULT_APP_QUERY_FAILED; - - /** - * Process Message return value - * Receiver application signature check failed - */ - public static final int SIGNATURE_NO_MATCH = WapPushManagerConnector.RESULT_SIGNATURE_NO_MATCH; - - /** - * Process Message return value - * Receiver application was not found - */ - public static final int INVALID_RECEIVER_NAME = - WapPushManagerConnector.RESULT_INVALID_RECEIVER_NAME; - - /** - * Process Message return value - * Unknown exception - */ - public static final int EXCEPTION_CAUGHT = WapPushManagerConnector.RESULT_EXCEPTION_CAUGHT; - - /** - * Process Message return value - * Need further processing after WapPushManager message processing - */ - public static final int FURTHER_PROCESSING = WapPushManagerConnector.RESULT_FURTHER_PROCESSING; -} diff --git a/packages/WAPPushManager/Android.bp b/packages/WAPPushManager/Android.bp index cd804b2c8514..083dac944936 100644 --- a/packages/WAPPushManager/Android.bp +++ b/packages/WAPPushManager/Android.bp @@ -4,6 +4,7 @@ android_app { name: "WAPPushManager", srcs: ["src/**/*.java"], platform_apis: true, + libs: ["telephony-common"], static_libs: ["android-common"], optimize: { proguard_flags_files: ["proguard.flags"], diff --git a/core/java/com/android/internal/telephony/IWapPushManager.aidl b/telephony/java/com/android/internal/telephony/IWapPushManager.aidl index 9f6851b8c254..1c3df65336f8 100644 --- a/core/java/com/android/internal/telephony/IWapPushManager.aidl +++ b/telephony/java/com/android/internal/telephony/IWapPushManager.aidl @@ -18,7 +18,6 @@ package com.android.internal.telephony; import android.content.Intent; -/** @hide */ interface IWapPushManager { /** * Processes WAP push message and triggers the receiver application registered @@ -27,10 +26,11 @@ interface IWapPushManager { int processMessage(String app_id, String content_type, in Intent intent); /** - * Adds receiver application into the application ID table. - * Returns true if inserting the information is successful. Inserting duplicated + * Add receiver application into the application ID table. + * Returns true if inserting the information is successfull. Inserting the duplicated * record in the application ID table is not allowed. Use update/delete method. */ + @UnsupportedAppUsage boolean addPackage(String x_app_id, String content_type, String package_name, String class_name, int app_type, boolean need_signature, boolean further_processing); @@ -39,14 +39,17 @@ interface IWapPushManager { * Updates receiver application that is last added. * Returns true if updating the information is successfull. */ + @UnsupportedAppUsage boolean updatePackage(String x_app_id, String content_type, String package_name, String class_name, int app_type, boolean need_signature, boolean further_processing); /** - * Deletes receiver application information. + * Delites receiver application information. * Returns true if deleting is successfull. */ + @UnsupportedAppUsage boolean deletePackage(String x_app_id, String content_type, - String package_name, String class_name); + String package_name, String class_name); } + |