Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5fd6ace authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add IIncidentCompanion binder API."

parents 1f34244f 2927da9a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -99,8 +99,9 @@ cc_defaults {
        "utils.cpp",
    ],
    static_libs: [
        "libincidentcompanion",
        "libdumpsys",
        "libserviceutils"
        "libserviceutils",
    ],
}

+48 −0
Original line number Diff line number Diff line
/**
 * 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.
 */

filegroup {
    name: "incidentcompanion_aidl",
    srcs: [
        "binder/android/os/IIncidentAuthListener.aidl",
        "binder/android/os/IIncidentCompanion.aidl",
    ],
    path: "binder",
}

cc_library_static {
    name: "libincidentcompanion",
    shared_libs: [
        "libbinder",
        "libutils",
    ],
    aidl: {
        local_include_dirs: ["binder"],
        export_aidl_headers: true,
    },
    srcs: [
        ":incidentcompanion_aidl",
    ],
    export_include_dirs: ["binder"],
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-missing-field-initializers",
        "-Wno-unused-variable",
        "-Wunused-parameter",
    ],
}
+34 −0
Original line number Diff line number Diff line
/**
 * 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.os;

/**
 * Callback for IIncidentCompanion.
 *
 * @hide
 */
oneway interface IIncidentAuthListener {
    /**
     * The user approved the incident or bug report to be sent.
     */
    void onReportApproved();

    /**
     * The user did not approve the incident or bug report to be sent.
     */
    void onReportDenied();
}
+72 −0
Original line number Diff line number Diff line
/**
 * 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.os;

import android.os.IIncidentAuthListener;

/**
 * Helper service for incidentd and dumpstated to provide user feedback
 * and authorization for bug and inicdent reports to be taken.
 *
 * @hide
 */
interface IIncidentCompanion {
    /**
     * Request an authorization for an incident or bug report.
     * // TODO(b/111441001): Add the permission
     * <p>
     * This function requires the ___ permission.
     *
     * @param callingUid The original application that requested the report.  This function
     *      returns via the callback whether the application should be trusted.  It is up
     *      to the caller to actually implement the restriction to take or not take
     *      the incident or bug report.
     * @param flags FLAG_CONFIRMATION_DIALOG (0x1) - to show this as a dialog.  Otherwise
     *      a dialog will be shown as a notification.
     * @param callback Interface to receive results.  The results may not come back for
     *      a long (user's choice) time, or ever (if they never respond to the notification).
     *      Authorization requests are not persisted across reboot.  It is up to the calling
     *      service to request another authorization after reboot if they still would like
     *      to send their report.
     */
    oneway void authorizeReport(int callingUid, String callingPackage,
            int flags, IIncidentAuthListener callback);

    /**
     * Cancel an authorization.
     */
    oneway void cancelAuthorization(IIncidentAuthListener callback);

    /**
     * Return the list of pending approvals.
     */
    List<String> getPendingReports();

    /**
     * The user has authorized the report to be shared.
     *
     * @param uri the report.
     */
    void approveReport(String uri);

    /**
     * The user has denied the report from being shared.
     *
     * @param uri the report.
     */
    void denyReport(String uri);
}