1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/task_manager/android/task_manager_observer_android.h"
#include "base/android/jni_array.h"
#include "base/android/scoped_java_ref.h"
#include "base/time/time.h"
#include "chrome/browser/task_manager/internal/android/jni/TaskManagerObserver_jni.h"
#include "chrome/browser/task_manager/task_manager_interface.h"
#include "chrome/browser/task_manager/task_manager_observer.h"
namespace task_manager {
TaskManagerObserverAndroid::TaskManagerObserverAndroid(
JNIEnv* env,
const jni_zero::JavaRef<jobject>& obj,
int refresh_time_millis,
task_manager::RefreshType resources_flags)
: TaskManagerObserver(base::Milliseconds(refresh_time_millis),
resources_flags),
java_object_(env, obj) {
TaskManagerInterface::GetTaskManager()->AddObserver(this);
}
TaskManagerObserverAndroid::~TaskManagerObserverAndroid() {
TaskManagerInterface::GetTaskManager()->RemoveObserver(this);
}
void TaskManagerObserverAndroid::OnTaskAdded(TaskId id) {
JNIEnv* env = jni_zero::AttachCurrentThread();
Java_TaskManagerObserver_onTaskAdded(env, java_object_, id);
}
void TaskManagerObserverAndroid::OnTaskToBeRemoved(TaskId id) {
JNIEnv* env = jni_zero::AttachCurrentThread();
Java_TaskManagerObserver_onTaskToBeRemoved(env, java_object_, id);
}
void TaskManagerObserverAndroid::OnTasksRefreshed(const TaskIdList& task_ids) {
JNIEnv* env = jni_zero::AttachCurrentThread();
Java_TaskManagerObserver_onTasksRefreshed(
env, java_object_, base::android::ToJavaLongArray(env, task_ids));
}
void TaskManagerObserverAndroid::OnTasksRefreshedWithBackgroundCalculations(
const TaskIdList& task_ids) {
JNIEnv* env = jni_zero::AttachCurrentThread();
Java_TaskManagerObserver_onTasksRefreshedWithBackgroundCalculations(
env, java_object_, base::android::ToJavaLongArray(env, task_ids));
}
void TaskManagerObserverAndroid::OnTaskUnresponsive(TaskId id) {
JNIEnv* env = jni_zero::AttachCurrentThread();
Java_TaskManagerObserver_onTaskUnresponsive(env, java_object_, id);
}
} // namespace task_manager
|