1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5  * except in compliance with the License. You may obtain a copy of the License at
6  *
7  *      http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the
10  * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11  * KIND, either express or implied. See the License for the specific language governing
12  * permissions and limitations under the License.
13  */
14 package com.android.systemui.plugins
15 
16 /** Listener for events from proxy types generated by [ProtectedPluginProcessor]. */
17 interface ProtectedPluginListener {
18     /**
19      * Called when a method call produces a [LinkageError] before returning. This callback is
20      * provided so that the host application can terminate the plugin or log the error as
21      * appropriate.
22      *
23      * @return true to terminate all methods within this object; false if the error is recoverable
24      *   and the proxied plugin should continue to operate as normal.
25      */
onFailnull26     fun onFail(className: String, methodName: String, failure: LinkageError): Boolean
27 }
28