You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.0 KiB

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import android.content.Context;
import android.media.AudioManager;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Binder;
import android.os.RemoteException;
import android.support.annotation.UiThread;
class Binders {
Binder b;
void doTransact() throws RemoteException {
b.transact(0, null, null, 0);
}
void doOneWayTransact() throws RemoteException {
b.transact(0, null, null, 1);
}
// assert happens after bad call so thread status is still unknown
void FN_interBad() throws RemoteException {
b.transact(0, null, null, 0);
forceMainThread();
}
void interBad() throws RemoteException {
forceMainThread();
b.transact(0, null, null, 0);
}
void intraBad() throws RemoteException {
OurThreadUtils.assertMainThread();
doTransact();
}
@UiThread
void annotationBad() throws RemoteException {
doTransact();
}
void intraOk() throws RemoteException {
b.transact(0, null, null, 0);
}
void interOk() throws RemoteException {
doTransact();
}
void oneWayOk() throws RemoteException {
OurThreadUtils.assertMainThread();
doOneWayTransact();
}
void forceMainThread() {
OurThreadUtils.assertMainThread();
}
@UiThread
void getActiveNetworkInfoBad(ConnectivityManager c) {
c.getActiveNetworkInfo();
}
@UiThread
int doGetStreamVolumeBad(AudioManager a) {
return a.getStreamVolume(0);
}
@UiThread
int doGetRingerModeBad(AudioManager a) {
return a.getRingerMode();
}
@UiThread
int doCheckPermissionBad(Context c) {
return c.checkPermission("", 0, 0);
}
@UiThread
int doCheckSelfPermissionBad(Context c) {
return c.checkSelfPermission("");
}
@UiThread
void doGetConnectionInfoBad(WifiManager w) {
w.getConnectionInfo();
}
}