/* * Copyright 2026 MagicalBits * * 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 * * https://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 xyz.magicalbits.smsremote.profile import androidx.annotation.DrawableRes import androidx.compose.runtime.Immutable import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import xyz.magicalbits.smsremote.data.colleagueProfile import xyz.magicalbits.smsremote.data.meProfile class ProfileViewModel : ViewModel() { private var userId: String = "" fun setUserId(newUserId: String?) { if (newUserId != userId) { userId = newUserId ?: meProfile.userId } // Workaround for simplicity _userData.value = if (userId == meProfile.userId || userId == meProfile.displayName) { meProfile } else { colleagueProfile } } private val _userData = MutableLiveData() val userData: LiveData = _userData } @Immutable data class ProfileScreenState( val userId: String, @param:DrawableRes val photo: Int?, val name: String, val status: String, val displayName: String, val position: String, val twitter: String = "", val timeZone: String?, // Null if me val commonChannels: String?, // Null if me ) { fun isMe() = userId == meProfile.userId }