gioser

sergio/humanoid

HTML 13TOML 10 Definiciones

⎇ f01b7a1aa91e314295debf67c22ce5803495b2de launcher/src/main/java/com/rizoma/orbita/model/AppNode.kt 26 líneas · 904 B Historia crudo

Órbita: núcleo vivo, ronda sin saltos, orden de búsqueda y marca gioser.net f01b7a1aa · Sergio ·

1package com.rizoma.orbita.model
2
3import androidx.compose.ui.graphics.ImageBitmap
4
5/**
6 * Un nodo del rizoma: una app lanzable con su calor de uso.
7 * [score] es el peso orbital — más alto = órbita más interna.
8 * [firstInstallTime] (epoch ms) detecta apps recién instaladas ("nuevas").
9 * [hiddenAt] (epoch ms) marca cuándo se expulsó del átomo, para que las
10 * expulsadas se vayan calmando con el tiempo hasta quedar desterradas.
11 * [penalty] es el lastre de "alejar": resta calor a la hora de repartir órbitas.
12 */
13data class AppNode(
14    val packageName: String,
15    val activityName: String,
16    val label: String,
17    val icon: ImageBitmap,
18    val score: Float = 0f,
19    val pinned: Boolean = false,
20    val penalty: Int = 0,
21    val hidden: Boolean = false,
22    val firstInstallTime: Long = 0L,
23    val hiddenAt: Long = 0L,
24) {
25    val key: String get() = "$packageName/$activityName"
26}