diff options
Diffstat (limited to 'main/aidl/com/google/android/setupcompat/portal')
6 files changed, 227 insertions, 0 deletions
diff --git a/main/aidl/com/google/android/setupcompat/portal/IPortalProgressCallback.aidl b/main/aidl/com/google/android/setupcompat/portal/IPortalProgressCallback.aidl new file mode 100644 index 0000000..13303d8 --- /dev/null +++ b/main/aidl/com/google/android/setupcompat/portal/IPortalProgressCallback.aidl @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2020 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.google.android.setupcompat.portal; + +import android.os.Bundle; + +/** + * Interface for progress service to update progress to SUW. Clients should + * update progress at least once a minute, or set a pending reason to stop + * update progress. Without progress update and pending reason. We considering + * the progress service is no response will suspend it and unbinde service. + */ +interface IPortalProgressCallback { + /** + * Sets completed amount. + */ + Bundle setProgressCount(int completed, int failed, int total) = 0; + + /** + * Sets completed percentage. + */ + Bundle setProgressPercentage(int percentage) = 1; + + /** + * Sets the summary shows on portal activity. + */ + Bundle setSummary(String summary) = 2; + + /** + * Let SUW knows the progress is pending now, and stop update progress. + * @param reasonResId The resource identifier. + * @param quantity The number used to get the correct string for the current language's + * plural rules + * @param formatArgs The format arguments that will be used for substitution. + */ + Bundle setPendingReason(int reasonResId, int quantity, in int[] formatArgs, int reason) = 3; + + /** + * Once the progress completed, and service can be destroy. Call this function. + * SUW will unbind the service. + * @param resId The resource identifier. + * @param quantity The number used to get the correct string for the current language's + * plural rules + * @param formatArgs The format arguments that will be used for substitution. + */ + Bundle setComplete(int resId, int quantity, in int[] formatArgs) = 4; + + /** + * Once the progress failed, and not able to finish the progress. Should call + * this function. SUW will unbind service after receive setFailure. Client can + * registerProgressService again once the service is ready to execute. + * @param resId The resource identifier. + * @param quantity The number used to get the correct string for the current language's + * plural rules + * @param formatArgs The format arguments that will be used for substitution. + */ + Bundle setFailure(int resId, int quantity, in int[] formatArgs) = 5; +}
\ No newline at end of file diff --git a/main/aidl/com/google/android/setupcompat/portal/IPortalProgressService.aidl b/main/aidl/com/google/android/setupcompat/portal/IPortalProgressService.aidl new file mode 100644 index 0000000..d741125 --- /dev/null +++ b/main/aidl/com/google/android/setupcompat/portal/IPortalProgressService.aidl @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2020 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.google.android.setupcompat.portal; + +import android.os.Bundle; +import com.google.android.setupcompat.portal.IPortalProgressCallback; + +/** + * Interface of progress service, all servics needs to run during onboarding, and would like + * to consolidate notifications with SetupNotificationService, should implement this interface. + * So that SetupNotificationService can bind the progress service and run below + * SetupNotificationService. + */ +interface IPortalProgressService { + /** + * Called when the Portal notification is started. + */ + oneway void onPortalSessionStart() = 0; + + /** + * Provides a non-null callback after service connected. + */ + oneway void onSetCallback(IPortalProgressCallback callback) = 1; + + /** + * Called when progress timed out. + */ + oneway void onSuspend() = 2; + + /** + * User clicks "User mobile data" on portal activity. + * All running progress should agree to use mobile data. + */ + oneway void onAllowMobileData(boolean allowed) = 3; + + /** + * Portal service calls to get remaining downloading size(MB) from progress service. + */ + @nullable + Bundle onGetRemainingValues() = 4; +}
\ No newline at end of file diff --git a/main/aidl/com/google/android/setupcompat/portal/IPortalRegisterResultListener.aidl b/main/aidl/com/google/android/setupcompat/portal/IPortalRegisterResultListener.aidl new file mode 100644 index 0000000..56d39e5 --- /dev/null +++ b/main/aidl/com/google/android/setupcompat/portal/IPortalRegisterResultListener.aidl @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2020 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.google.android.setupcompat.portal; + +/** Listener to listen the result of registerProgressService */ +interface IPortalRegisterResultListener { + void onResult(in Bundle result) = 0; +}
\ No newline at end of file diff --git a/main/aidl/com/google/android/setupcompat/portal/ISetupNotificationService.aidl b/main/aidl/com/google/android/setupcompat/portal/ISetupNotificationService.aidl new file mode 100644 index 0000000..9f9b1d8 --- /dev/null +++ b/main/aidl/com/google/android/setupcompat/portal/ISetupNotificationService.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2020 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.google.android.setupcompat.portal; + +import android.os.UserHandle; +import com.google.android.setupcompat.portal.IPortalRegisterResultListener; +import com.google.android.setupcompat.portal.NotificationComponent; +import com.google.android.setupcompat.portal.ProgressServiceComponent; + +/** + * Declares the interface for notification related service methods. + */ +interface ISetupNotificationService { + /** Register a notification without progress service */ + boolean registerNotification(in NotificationComponent component) = 0; + void unregisterNotification(in NotificationComponent component) = 1; + + /** Register a progress service */ + void registerProgressService(in ProgressServiceComponent component, in UserHandle userHandle, IPortalRegisterResultListener listener) = 2; + + /** Checks the progress connection still alive or not. */ + boolean isProgressServiceAlive(in ProgressServiceComponent component, in UserHandle userHandle) = 3; + + /** Checks portal avaailable or not. */ + boolean isPortalAvailable() = 4; +}
\ No newline at end of file diff --git a/main/aidl/com/google/android/setupcompat/portal/NotificationComponent.aidl b/main/aidl/com/google/android/setupcompat/portal/NotificationComponent.aidl new file mode 100644 index 0000000..5de3f76 --- /dev/null +++ b/main/aidl/com/google/android/setupcompat/portal/NotificationComponent.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2020 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.google.android.setupcompat.portal; + +parcelable NotificationComponent;
\ No newline at end of file diff --git a/main/aidl/com/google/android/setupcompat/portal/ProgressServiceComponent.aidl b/main/aidl/com/google/android/setupcompat/portal/ProgressServiceComponent.aidl new file mode 100644 index 0000000..6a6e120 --- /dev/null +++ b/main/aidl/com/google/android/setupcompat/portal/ProgressServiceComponent.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2020 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.google.android.setupcompat.portal; + + parcelable ProgressServiceComponent;
\ No newline at end of file |