package com.lody.virtual.helper.compat;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import mirror.android.app.ActivityManagerNative;
import mirror.android.app.IActivityManagerICS;
import mirror.android.app.IActivityManagerL;
import mirror.android.app.IActivityManagerN;
/**
* @author Lody
*/
public class ActivityManagerCompat {
/** Type for IActivityManager.serviceDoneExecuting: anonymous operation */
public static final int SERVICE_DONE_EXECUTING_ANON = 0;
/** Type for IActivityManager.serviceDoneExecuting: done with an onStart call */
public static final int SERVICE_DONE_EXECUTING_START = 1;
/** Type for IActivityManager.serviceDoneExecuting: done stopping (destroying) service */
public static final int SERVICE_DONE_EXECUTING_STOP = 2;
/**
* Result for IActivityManager.startActivity: an error where the
* given Intent could not be resolved to an activity.
*/
public static final int START_INTENT_NOT_RESOLVED = -1;
/**
* Result for IActivityManager.startActivity: trying to start a background user
* activity that shouldn't be displayed for all users.
*/
public static final int START_NOT_CURRENT_USER_ACTIVITY = -8;
/**
* Result for IActivityManaqer.startActivity: activity wasn't really started, but
* a task was simply brought to the foreground.
*/
public static final int START_TASK_TO_FRONT = 2;
/**
* Type for IActivityManaqer.getIntentSender: this PendingIntent is
* for a sendBroadcast operation.
*/
public static final int INTENT_SENDER_BROADCAST = 1;
/**
* Type for IActivityManaqer.getIntentSender: this PendingIntent is
* for a startActivity operation.
*/
public static final int INTENT_SENDER_ACTIVITY = 2;
/**
* Type for IActivityManaqer.getIntentSender: this PendingIntent is
* for an activity result operation.
*/
public static final int INTENT_SENDER_ACTIVITY_RESULT = 3;
/**
* Type for IActivityManaqer.getIntentSender: this PendingIntent is
* for a startService operation.
*/
public static final int INTENT_SENDER_SERVICE = 4;
/** User operation call: success! */
public static final int USER_OP_SUCCESS = 0;
public static boolean finishActivity(IBinder token, int code, Intent data) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return IActivityManagerN.finishActivity.call(
ActivityManagerNative.getDefault.call(),
token, code, data, 0);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
return IActivityManagerL.finishActivity.call(
ActivityManagerNative.getDefault.call(),
token, code, data, false);
} else {
IActivityManagerICS.finishActivity.call(
ActivityManagerNative.getDefault.call(),
token, code, data
);
}
return false;
}
}