mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-17 09:38:19 +00:00
> Removing static mocks and using Sandbox context instead > Removing inheritence in LauncherModel and converting LauncherApps.Callbacks to a separate class. decMaker sometimes fails because of API changes in LauncherApps.Callbacks Bug: 319877828 Test: atest LoaderTaskTest Flag: N/A Change-Id: If78b5d83595627a355b284f52d887d75fef53014
104 lines
3.7 KiB
Kotlin
104 lines
3.7 KiB
Kotlin
/*
|
|
* Copyright (C) 2024 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 com.android.launcher3.model
|
|
|
|
import android.content.pm.LauncherApps
|
|
import android.content.pm.ShortcutInfo
|
|
import android.os.UserHandle
|
|
import android.text.TextUtils
|
|
import com.android.launcher3.LauncherModel.ModelUpdateTask
|
|
import com.android.launcher3.logging.FileLog
|
|
import com.android.launcher3.model.PackageUpdatedTask.OP_ADD
|
|
import com.android.launcher3.model.PackageUpdatedTask.OP_REMOVE
|
|
import com.android.launcher3.model.PackageUpdatedTask.OP_SUSPEND
|
|
import com.android.launcher3.model.PackageUpdatedTask.OP_UNAVAILABLE
|
|
import com.android.launcher3.model.PackageUpdatedTask.OP_UNSUSPEND
|
|
import com.android.launcher3.model.PackageUpdatedTask.OP_UPDATE
|
|
import java.util.function.Consumer
|
|
|
|
/**
|
|
* Implementation of {@link LauncherApps#Callbacks} which converts various events to corresponding
|
|
* model tasks
|
|
*/
|
|
class ModelLauncherCallbacks(private var taskExecutor: Consumer<ModelUpdateTask>) :
|
|
LauncherApps.Callback() {
|
|
|
|
override fun onPackageAdded(packageName: String, user: UserHandle) {
|
|
taskExecutor.accept(PackageUpdatedTask(OP_ADD, user, packageName))
|
|
}
|
|
|
|
override fun onPackageChanged(packageName: String, user: UserHandle) {
|
|
taskExecutor.accept(PackageUpdatedTask(OP_UPDATE, user, packageName))
|
|
}
|
|
|
|
override fun onPackageLoadingProgressChanged(
|
|
packageName: String,
|
|
user: UserHandle,
|
|
progress: Float
|
|
) {
|
|
taskExecutor.accept(PackageIncrementalDownloadUpdatedTask(packageName, user, progress))
|
|
}
|
|
|
|
override fun onPackageRemoved(packageName: String, user: UserHandle) {
|
|
FileLog.d(TAG, "package removed received $packageName")
|
|
taskExecutor.accept(PackageUpdatedTask(OP_REMOVE, user, packageName))
|
|
}
|
|
|
|
override fun onPackagesAvailable(
|
|
vararg packageNames: String,
|
|
user: UserHandle,
|
|
replacing: Boolean
|
|
) {
|
|
taskExecutor.accept(PackageUpdatedTask(OP_UPDATE, user, *packageNames))
|
|
}
|
|
|
|
override fun onPackagesSuspended(vararg packageNames: String, user: UserHandle) {
|
|
taskExecutor.accept(PackageUpdatedTask(OP_SUSPEND, user, *packageNames))
|
|
}
|
|
|
|
override fun onPackagesUnavailable(
|
|
packageNames: Array<String>,
|
|
user: UserHandle,
|
|
replacing: Boolean
|
|
) {
|
|
if (!replacing) {
|
|
taskExecutor.accept(PackageUpdatedTask(OP_UNAVAILABLE, user, *packageNames))
|
|
}
|
|
}
|
|
|
|
override fun onPackagesUnsuspended(vararg packageNames: String, user: UserHandle) {
|
|
taskExecutor.accept(PackageUpdatedTask(OP_UNSUSPEND, user, *packageNames))
|
|
}
|
|
|
|
override fun onShortcutsChanged(
|
|
packageName: String,
|
|
shortcuts: MutableList<ShortcutInfo>,
|
|
user: UserHandle
|
|
) {
|
|
taskExecutor.accept(ShortcutsChangedTask(packageName, shortcuts, user, true))
|
|
}
|
|
|
|
fun onPackagesRemoved(user: UserHandle, packages: List<String>) {
|
|
FileLog.d(TAG, "package removed received " + TextUtils.join(",", packages))
|
|
taskExecutor.accept(PackageUpdatedTask(OP_REMOVE, user, *packages.toTypedArray()))
|
|
}
|
|
|
|
companion object {
|
|
private const val TAG = "LauncherAppsCallbackImpl"
|
|
}
|
|
}
|