Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6000a6c6 authored by Christopher Tate's avatar Christopher Tate Committed by Android (Google) Code Review
Browse files

Merge "Run the task manager service at startup"

parents 2f6da3e7 8f64f808
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ LOCAL_SRC_FILES += \
	core/java/android/app/IServiceConnection.aidl \
	core/java/android/app/IStopUserCallback.aidl \
	core/java/android/app/task/ITaskCallback.aidl \
	core/java/android/app/task/ITaskManager.aidl \
	core/java/android/app/task/ITaskService.aidl \
	core/java/android/app/IThumbnailRetriever.aidl \
	core/java/android/app/ITransientNotification.aidl \
+52 −49
Original line number Diff line number Diff line
@@ -5352,6 +5352,57 @@ package android.app.maintenance {
package android.app.task {
  public class Task implements android.os.Parcelable {
    method public int describeContents();
    method public int getBackoffPolicy();
    method public android.os.Bundle getExtras();
    method public long getInitialBackoffMillis();
    method public long getIntervalMillis();
    method public long getMaxExecutionDelayMillis();
    method public long getMinLatencyMillis();
    method public int getNetworkCapabilities();
    method public android.content.ComponentName getService();
    method public int getTaskId();
    method public boolean isPeriodic();
    method public boolean isRequireCharging();
    method public boolean isRequireDeviceIdle();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator CREATOR;
  }
  public static abstract interface Task.BackoffPolicy {
    field public static final int EXPONENTIAL = 1; // 0x1
    field public static final int LINEAR = 0; // 0x0
  }
  public final class Task.Builder {
    ctor public Task.Builder(int, android.content.ComponentName);
    method public android.app.task.Task build();
    method public android.app.task.Task.Builder setBackoffCriteria(long, int);
    method public android.app.task.Task.Builder setExtras(android.os.Bundle);
    method public android.app.task.Task.Builder setMinimumLatency(long);
    method public android.app.task.Task.Builder setOverrideDeadline(long);
    method public android.app.task.Task.Builder setPeriodic(long);
    method public android.app.task.Task.Builder setRequiredNetworkCapabilities(int);
    method public android.app.task.Task.Builder setRequiresCharging(boolean);
    method public android.app.task.Task.Builder setRequiresDeviceIdle(boolean);
  }
  public static abstract interface Task.NetworkType {
    field public static final int ANY = 0; // 0x0
    field public static final int UNMETERED = 1; // 0x1
  }
  public abstract class TaskManager {
    ctor public TaskManager();
    method public abstract void cancel(int);
    method public abstract void cancelAll();
    method public abstract java.util.List<android.app.task.Task> getAllPendingTasks();
    method public abstract int schedule(android.app.task.Task);
    field public static final int RESULT_INVALID_PARAMETERS = -1; // 0xffffffff
    field public static final int RESULT_OVER_QUOTA = -2; // 0xfffffffe
  }
  public class TaskParams implements android.os.Parcelable {
    method public int describeContents();
    method public android.os.Bundle getExtras();
@@ -6975,6 +7026,7 @@ package android.content {
    field public static final java.lang.String SEARCH_SERVICE = "search";
    field public static final java.lang.String SENSOR_SERVICE = "sensor";
    field public static final java.lang.String STORAGE_SERVICE = "storage";
    field public static final java.lang.String TASK_SERVICE = "task";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
@@ -7913,55 +7965,6 @@ package android.content {
    method public abstract void onStatusChanged(int);
  }
  public class Task implements android.os.Parcelable {
    method public int describeContents();
    method public int getBackoffPolicy();
    method public android.os.Bundle getExtras();
    method public long getInitialBackoffMillis();
    method public long getIntervalMillis();
    method public long getMaxExecutionDelayMillis();
    method public long getMinLatencyMillis();
    method public int getNetworkCapabilities();
    method public android.content.ComponentName getService();
    method public int getTaskId();
    method public boolean isPeriodic();
    method public boolean isRequireCharging();
    method public boolean isRequireDeviceIdle();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator CREATOR;
  }
  public static abstract interface Task.BackoffPolicy {
    field public static final int EXPONENTIAL = 1; // 0x1
    field public static final int LINEAR = 0; // 0x0
  }
  public final class Task.Builder {
    ctor public Task.Builder(int, android.content.ComponentName);
    method public android.content.Task build();
    method public android.content.Task.Builder setBackoffCriteria(long, int);
    method public android.content.Task.Builder setExtras(android.os.Bundle);
    method public android.content.Task.Builder setMinimumLatency(long);
    method public android.content.Task.Builder setOverrideDeadline(long);
    method public android.content.Task.Builder setPeriodic(long);
    method public android.content.Task.Builder setRequiredNetworkCapabilities(int);
    method public android.content.Task.Builder setRequiresCharging(boolean);
    method public android.content.Task.Builder setRequiresDeviceIdle(boolean);
  }
  public static abstract interface Task.NetworkType {
    field public static final int ANY = 0; // 0x0
    field public static final int UNMETERED = 1; // 0x1
  }
  public abstract class TaskManager {
    ctor public TaskManager();
    method public abstract void cancel(int);
    method public abstract void cancelAll();
    method public abstract java.util.List<android.content.Task> getAllPendingTasks();
    method public abstract int schedule(android.content.Task);
  }
  public class UriMatcher {
    ctor public UriMatcher(int);
    method public void addURI(java.lang.String, java.lang.String, int);
+8 −0
Original line number Diff line number Diff line
@@ -133,10 +133,12 @@ import android.view.textservice.TextServicesManager;
import android.accounts.AccountManager;
import android.accounts.IAccountManager;
import android.app.admin.DevicePolicyManager;
import android.app.task.ITaskManager;
import android.app.trust.TrustManager;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IAppOpsService;
import com.android.internal.appwidget.IAppWidgetService.Stub;
import com.android.internal.os.IDropBoxManagerService;

import java.io.File;
@@ -693,6 +695,12 @@ class ContextImpl extends Context {
                public Object createService(ContextImpl ctx) {
                return new UsageStatsManager(ctx.getOuterContext());
        }});

        registerService(TASK_SERVICE, new ServiceFetcher() {
            public Object createService(ContextImpl ctx) {
                IBinder b = ServiceManager.getService(TASK_SERVICE);
                return new TaskManagerImpl(ITaskManager.Stub.asInterface(b));
            }});
    }

    static ContextImpl getImpl(Context context) {
+62 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// in android.app so ContextImpl has package access
package android.app;

import android.app.task.ITaskManager;
import android.app.task.Task;
import android.app.task.TaskManager;

import java.util.List;


/**
 * Concrete implementation of the TaskManager interface
 * @hide 
 */
public class TaskManagerImpl extends TaskManager {
    ITaskManager mBinder;

    /* package */ TaskManagerImpl(ITaskManager binder) {
        mBinder = binder;
    }

    @Override
    public int schedule(Task task) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public void cancel(int taskId) {
        // TODO Auto-generated method stub

    }

    @Override
    public void cancelAll() {
        // TODO Auto-generated method stub

    }

    @Override
    public List<Task> getAllPendingTasks() {
        // TODO Auto-generated method stub
        return null;
    }

}
+30 −0
Original line number Diff line number Diff line
/**
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.app.task;

import android.app.task.Task;

 /**
  * IPC interface that supports the app-facing {@link #TaskManager} api.
  * {@hide}
  */
interface ITaskManager {
    int schedule(in Task task);
    void cancel(int taskId);
    void cancelAll();
    List<Task> getAllPendingTasks();
}
Loading