Merge changes Ib8b18f1b,I0d799d82,Ia6222322
* changes: Always give ContentResolver a valid Context. Define failed connections column, and reset. Add method to get process group.
This commit is contained in:
@@ -21512,6 +21512,7 @@ package android.test.mock {
|
||||
|
||||
public class MockContentResolver extends android.content.ContentResolver {
|
||||
ctor public MockContentResolver();
|
||||
ctor public MockContentResolver(android.content.Context);
|
||||
method public void addProvider(java.lang.String, android.content.ContentProvider);
|
||||
}
|
||||
|
||||
|
||||
@@ -187,7 +187,8 @@ public final class ActivityThread {
|
||||
= new ArrayList<Application>();
|
||||
// set of instantiated backup agents, keyed by package name
|
||||
final HashMap<String, BackupAgent> mBackupAgents = new HashMap<String, BackupAgent>();
|
||||
static final ThreadLocal<ActivityThread> sThreadLocal = new ThreadLocal<ActivityThread>();
|
||||
/** Reference to singleton {@link ActivityThread} */
|
||||
private static ActivityThread sCurrentActivityThread;
|
||||
Instrumentation mInstrumentation;
|
||||
String mInstrumentationAppDir = null;
|
||||
String mInstrumentationAppLibraryDir = null;
|
||||
@@ -1564,7 +1565,7 @@ public final class ActivityThread {
|
||||
}
|
||||
|
||||
public static ActivityThread currentActivityThread() {
|
||||
return sThreadLocal.get();
|
||||
return sCurrentActivityThread;
|
||||
}
|
||||
|
||||
public static String currentPackageName() {
|
||||
@@ -4894,7 +4895,7 @@ public final class ActivityThread {
|
||||
}
|
||||
|
||||
private void attach(boolean system) {
|
||||
sThreadLocal.set(this);
|
||||
sCurrentActivityThread = this;
|
||||
mSystemThread = system;
|
||||
if (!system) {
|
||||
ViewRootImpl.addFirstDrawHandler(new Runnable() {
|
||||
|
||||
@@ -1085,6 +1085,7 @@ public class DownloadManager {
|
||||
values.put(Downloads.Impl.COLUMN_TOTAL_BYTES, -1);
|
||||
values.putNull(Downloads.Impl._DATA);
|
||||
values.put(Downloads.Impl.COLUMN_STATUS, Downloads.Impl.STATUS_PENDING);
|
||||
values.put(Downloads.Impl.COLUMN_FAILED_CONNECTIONS, 0);
|
||||
mResolver.update(mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids));
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import dalvik.system.CloseGuard;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.app.ActivityManagerNative;
|
||||
import android.app.ActivityThread;
|
||||
import android.app.AppGlobals;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.res.AssetFileDescriptor;
|
||||
@@ -206,8 +207,8 @@ public abstract class ContentResolver {
|
||||
private final Random mRandom = new Random(); // guarded by itself
|
||||
|
||||
public ContentResolver(Context context) {
|
||||
mContext = context;
|
||||
mPackageName = context.getPackageName();
|
||||
mContext = context != null ? context : ActivityThread.currentApplication();
|
||||
mPackageName = mContext.getPackageName();
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
|
||||
@@ -806,7 +806,15 @@ public class Process {
|
||||
*/
|
||||
public static final native void setProcessGroup(int pid, int group)
|
||||
throws IllegalArgumentException, SecurityException;
|
||||
|
||||
|
||||
/**
|
||||
* Return the scheduling group of requested process.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static final native int getProcessGroup(int pid)
|
||||
throws IllegalArgumentException, SecurityException;
|
||||
|
||||
/**
|
||||
* Set the priority of the calling thread, based on Linux priorities. See
|
||||
* {@link #setThreadPriority(int, int)} for more information.
|
||||
|
||||
@@ -407,6 +407,9 @@ public final class Downloads {
|
||||
*/
|
||||
public static final String COLUMN_LAST_UPDATESRC = "lastUpdateSrc";
|
||||
|
||||
/** The column that is used to count retries */
|
||||
public static final String COLUMN_FAILED_CONNECTIONS = "numfailed";
|
||||
|
||||
/**
|
||||
* default value for {@link #COLUMN_LAST_UPDATESRC}.
|
||||
* This value is used when this column's value is not relevant.
|
||||
|
||||
@@ -268,6 +268,15 @@ void android_os_Process_setProcessGroup(JNIEnv* env, jobject clazz, int pid, jin
|
||||
closedir(d);
|
||||
}
|
||||
|
||||
jint android_os_Process_getProcessGroup(JNIEnv* env, jobject clazz, jint pid)
|
||||
{
|
||||
SchedPolicy sp;
|
||||
if (get_sched_policy(pid, &sp) != 0) {
|
||||
signalExceptionForGroupError(env, errno);
|
||||
}
|
||||
return (int) sp;
|
||||
}
|
||||
|
||||
static void android_os_Process_setCanSelfBackground(JNIEnv* env, jobject clazz, jboolean bgOk) {
|
||||
// Establishes the calling thread as illegal to put into the background.
|
||||
// Typically used only for the system process's main looper.
|
||||
@@ -991,7 +1000,8 @@ static const JNINativeMethod methods[] = {
|
||||
{"setThreadPriority", "(I)V", (void*)android_os_Process_setCallingThreadPriority},
|
||||
{"getThreadPriority", "(I)I", (void*)android_os_Process_getThreadPriority},
|
||||
{"setThreadGroup", "(II)V", (void*)android_os_Process_setThreadGroup},
|
||||
{"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup},
|
||||
{"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup},
|
||||
{"getProcessGroup", "(I)I", (void*)android_os_Process_getProcessGroup},
|
||||
{"setOomAdj", "(II)Z", (void*)android_os_Process_setOomAdj},
|
||||
{"setArgV0", "(Ljava/lang/String;)V", (void*)android_os_Process_setArgV0},
|
||||
{"setUid", "(I)I", (void*)android_os_Process_setUid},
|
||||
|
||||
@@ -54,12 +54,20 @@ import java.util.Map;
|
||||
public class MockContentResolver extends ContentResolver {
|
||||
Map<String, ContentProvider> mProviders;
|
||||
|
||||
/*
|
||||
* Creates a local map of providers. This map is used instead of the global map when an
|
||||
* API call tries to acquire a provider.
|
||||
/**
|
||||
* Creates a local map of providers. This map is used instead of the global
|
||||
* map when an API call tries to acquire a provider.
|
||||
*/
|
||||
public MockContentResolver() {
|
||||
super(null);
|
||||
this(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a local map of providers. This map is used instead of the global
|
||||
* map when an API call tries to acquire a provider.
|
||||
*/
|
||||
public MockContentResolver(Context context) {
|
||||
super(context);
|
||||
mProviders = Maps.newHashMap();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user