38 lines
1.5 KiB
Java
38 lines
1.5 KiB
Java
|
|
package org.torproject.android.service;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.text.TextUtils;
|
|
|
|
import org.torproject.android.service.util.Prefs;
|
|
|
|
|
|
public class StartTorReceiver extends BroadcastReceiver implements TorServiceConstants {
|
|
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
/* sanitize the Intent before forwarding it to TorService */
|
|
Prefs.setContext(context);
|
|
String action = intent.getAction();
|
|
if (TextUtils.equals(action, ACTION_START)) {
|
|
String packageName = intent.getStringExtra(EXTRA_PACKAGE_NAME);
|
|
if (Prefs.allowBackgroundStarts()) {
|
|
Intent startTorIntent = new Intent(context, TorService.class);
|
|
startTorIntent.setAction(action);
|
|
if (packageName != null)
|
|
startTorIntent.putExtra(EXTRA_PACKAGE_NAME, packageName);
|
|
context.startService(startTorIntent);
|
|
} else if (!TextUtils.isEmpty(packageName)) {
|
|
// let the requesting app know that the user has disabled
|
|
// starting via Intent
|
|
Intent startsDisabledIntent = new Intent(ACTION_STATUS);
|
|
startsDisabledIntent.putExtra(EXTRA_STATUS, STATUS_STARTS_DISABLED);
|
|
startsDisabledIntent.setPackage(packageName);
|
|
context.sendBroadcast(startsDisabledIntent);
|
|
}
|
|
}
|
|
}
|
|
}
|