//tvlib/org.mjdev.tvlib.ui.components.tv
Package-level declarations
Functions
| Name | Summary |
|---|---|
| AppsRow | [androidJvm] @Composable fun AppsRow(title: Any? = R.string.title_apps, rowState: LazyListState = rememberLazyListState(), padding: Dp = 8.dp, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundCornerSize: Dp = 8.dp, backgroundShape: Shape = RoundedCornerShape(roundCornerSize), startApp: Context.(app: App?) -> Unit = { app -> startActivity(app?.intent) }, excludedActivities: List<ComponentName> = emptyList(), apps: State<List<App>> = rememberAppsManager( excluded = excludedActivities.toTypedArray() ).collectAsState(emptyList()), cardWidth: Dp = computeCardWidth(3f)) |
| AppUpdateAvailableMessage | [androidJvm] @Preview @Composable fun AppUpdateAvailableMessage(title: Any? = R.string.title_app_update, message: Any? = R.string.msg_update_available, githubUser: String = "mimoccc", githubRepository: String = "tvapp", backgroundColor: Color = Color(0, 132, 0, 255), buttonText: Any? = R.string.bt_update, appUpdater: AppUpdater = rememberAppUpdater( githubUser = githubUser, githubRepository = githubRepository, ), isEdit: Boolean = isEditMode(), updateAvailable: State<Boolean> = appUpdater.isUpdateAvailable.collectAsState(false), visibleState: MutableState<Boolean> = mutableStateOf(isEdit |
| BrowseView | [androidJvm] @Composable fun BrowseView(modifier: Modifier = Modifier, showHeader: Boolean = true, showNetworkState: Boolean = true, showAppUpdateState: Boolean = true, title: Any? = Build.MANUFACTURER, appIcon: Any? = R.drawable.person, userIcon: Any? = R.drawable.person, githubUser: String = "mimoccc", githubRepository: String = "tvapp", messages: List<Any?> = listOf(Unit, Unit, Unit), categories: List<Any?> = listOf(Unit, Unit, Unit), featuredItems: List<Any?> = listOf(Unit, Unit, Unit), categoriesAndItemsMap: Map<, List<>> = mapOf<Any?, List<Any?>>( Unit to listOf(Unit, Unit, Unit, Unit), Unit to listOf(Unit, Unit, Unit, Unit), Unit to listOf(Unit, Unit, Unit, Unit), ), errorState: State<Throwable?> = mutableStateOf(null), verticalArrangement: Arrangement.Vertical = Arrangement.spacedBy(32.dp), contentPadding: PaddingValues = PaddingValues(8.dp), customRows: List<@Composable() -> Unit> = emptyList(), onTitleClicked: () -> Unit? = null, onClockClicked: () -> Unit? = null, onMessageBadgeClicked: () -> Unit? = null, onUserPicClicked: () -> Unit? = null, onItemFocused: (item: Any?, fromUser: Boolean) -> Unit? = null, onItemClicked: (item: Any?) -> Unit? = null, state: LazyListState = rememberLazyListState(), isEdit: Boolean = isEditMode()) |
| CategoryRow | [androidJvm] @Composable fun CategoryRow(title: Any? = "category", items: List<Any?> = listOf(Unit, Unit, Unit), rowState: LazyListState = rememberLazyListState(), padding: Dp = 8.dp, cardWidth: Dp = computeCardWidth(), contentScale: ContentScale = ContentScale.Crop, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundCornerSize: Dp = 8.dp, backgroundShape: Shape = RoundedCornerShape(roundCornerSize), onItemFocus: (item: Any?, fromUser: Boolean) -> Unit? = null, onItemClick: (item: Any?) -> Unit? = null, contentOfItem: @Composable(item: Any?) -> Unit = { item -> PhotoCard( item = item, contentScale = contentScale, cardWidth = cardWidth, onClick = onItemClick, onFocus = onItemFocus ) }) |
| Clock | [androidJvm] @Composable fun Clock(modifier: Modifier = Modifier, timeTextSize: TextUnit = 24.sp, timeTextWeight: FontWeight = FontWeight.Bold, timeTextColor: Color = Color.White, dateTextSize: TextUnit = 12.sp, dateTextWeight: FontWeight = FontWeight.Bold, dateTextColor: Color = Color.White, horizontalAlignment: Alignment.Horizontal = Alignment.End, backgroundColor: Color = Color.Transparent, roundSize: Dp = 8.dp, contentPadding: Dp = 2.dp, showTime: Boolean = true, showDate: Boolean = true, onClick: () -> Unit? = null) |
| CursorRow | [androidJvm] @Composable fun CursorRow(title: Any? = null, rowState: LazyListState = rememberLazyListState(), padding: Dp = 16.dp, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundCornerSize: Dp = 8.dp, backgroundShape: Shape = RoundedCornerShape(roundCornerSize), cardWidth: Dp = computeCardWidth(), contentScale: ContentScale = ContentScale.Crop, uri: Uri? = null, projection: Array<String> = emptyArray(), selection: String? = null, selectionArgs: Array<String>? = null, sortOrder: String? = null, transform: (Cursor) -> Any? = { it }, cursor: Cursor? = rememberCursor( uri = uri, projection = projection, selection = selection, selectionArgs = selectionArgs, sortOrder = sortOrder, transform = transform ), onItemFocus: (item: Any?, fromUser: Boolean) -> Unit? = null, openItem: Context.(item: Any?) -> Unit? = null) |
| ErrorMessage | [androidJvm] @Composable fun ErrorMessage(title: Any? = null, error: Throwable? = Exception("An unknown error happen, please contact developer, if issue does not disappear."), dismissText: Any? = R.string.bt_dismiss, color: Color = Color.White, backgroundColor: Color = Color.Red, fontSizeTitle: TextUnit = 14.sp, fontSizeMessage: TextUnit = 11.sp, fontSizeButton: TextUnit = 11.sp, fontWeight: FontWeight = FontWeight.Bold, paddingTitle: Dp = 8.dp, paddingContent: Dp = 4.dp, roundSize: Dp = 8.dp, borderSize: Dp = 1.dp, borderColor: Color = Color.DarkGray, backgroundShape: Shape = RoundedCornerShape(roundSize), dismissible: Boolean = true, visible: Boolean = isEditMode(), visibleState: MutableState<Boolean> = mutableStateOf(visible), enter: EnterTransition = EnterTransition.None, exit: ExitTransition = ExitTransition.None, dismissOnClick: () -> Unit? = null) |
| Header | [androidJvm] @Composable fun Header(title: Any? = R.string.app_name, appIcon: Any? = R.drawable.person, userIcon: Any? = R.drawable.person, fontSize: TextUnit = 24.sp, fontWeight: FontWeight = FontWeight.Bold, color: Color = Color.White, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundSize: Dp = 8.dp, padding: Dp = 0.dp, contentPadding: Dp = 2.dp, messagesCount: Int = 0, onTitleClick: () -> Unit? = null, onClockClick: () -> Unit? = null, onMessageBadgeClick: () -> Unit? = null, onUserPicClick: () -> Unit? = null) |
| Loading | [androidJvm] @Composable fun Loading(modifier: Modifier = Modifier, backgroundColor: Color = Color.Black, shape: Shape = RectangleShape, text: Any? = R.string.msg_loading, textColor: Color = Color.White, textSize: TextUnit = 20.sp, textStyle: TextStyle = MaterialTheme.typography.headlineMedium, contentAlignment: Alignment = Alignment.Center) |
| LocalAudioRow | [androidJvm] @Composable fun LocalAudioRow(title: Any? = R.string.title_audio_local, rowState: LazyListState = rememberLazyListState(), padding: Dp = 8.dp, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundCornerSize: Dp = 8.dp, backgroundShape: Shape = RoundedCornerShape(roundCornerSize), selection: String? = null, selectionArgs: Array<String>? = null, sortOrder: String? = AudioItem.SORT_ORDER_DATE_DESC, cardWidth: Dp = computeCardWidth(), contentScale: ContentScale = ContentScale.Crop, transform: (Cursor) -> Any? = { c -> AudioItem(c) }, cursor: Cursor? = rememberCursor( uri = AudioItem.URI, projection = AudioItem.MEDIA_PROJECTION, selection = selection, selectionArgs = selectionArgs, sortOrder = sortOrder, transform = transform ), onItemFocus: (item: Any?, fromUser: Boolean) -> Unit? = null, openItem: Context.(item: Any?) -> Unit? = null) |
| LocalPhotosRow | [androidJvm] @Composable fun LocalPhotosRow(title: Any? = R.string.title_photo_local, rowState: LazyListState = rememberLazyListState(), padding: Dp = 8.dp, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundCornerSize: Dp = 8.dp, backgroundShape: Shape = RoundedCornerShape(roundCornerSize), selection: String? = null, selectionArgs: Array<String>? = null, sortOrder: String? = PhotoItem.SORT_ORDER_DATE_DESC, cardWidth: Dp = computeCardWidth(), contentScale: ContentScale = ContentScale.Crop, transform: (Cursor) -> Any? = { c -> PhotoItem(c) }, cursor: Cursor? = rememberCursor( uri = PhotoItem.URI, projection = PhotoItem.MEDIA_PROJECTION, selection = selection, selectionArgs = selectionArgs, sortOrder = sortOrder, transform = transform ), onItemFocus: (item: Any?, fromUser: Boolean) -> Unit? = null, openItem: Context.(item: Any?) -> Unit? = null) |
| LocalVideoRow | [androidJvm] @Composable fun LocalVideoRow(title: Any? = R.string.title_video_local, rowState: LazyListState = rememberLazyListState(), padding: Dp = 8.dp, backgroundColor: Color = Color.DarkGray.copy(alpha = 0.3f), roundCornerSize: Dp = 8.dp, backgroundShape: Shape = RoundedCornerShape(roundCornerSize), selection: String? = null, selectionArgs: Array<String>? = null, sortOrder: String? = VideoItem.SORT_ORDER_DATE_DESC, cardWidth: Dp = computeCardWidth(), contentScale: ContentScale = ContentScale.Crop, transform: (Cursor) -> Any? = { c -> VideoItem(c) }, cursor: Cursor? = rememberCursor( uri = VideoItem.URI, projection = VideoItem.MEDIA_PROJECTION, selection = selection, selectionArgs = selectionArgs, sortOrder = sortOrder, transform = transform ), onItemFocus: (item: Any?, fromUser: Boolean) -> Unit? = null, openItem: Context.(item: Any?) -> Unit? = null) |
| NeonCircle | [androidJvm] @Composable fun NeonCircle(modifier: Modifier = Modifier, colorCircle: Color = Color.Green, colorStroke: Color = Color.Green, padding: Dp = 40.dp, strokeWidth: Dp = 12.dp, circleWidth: Dp = 3.dp) |
| NeonRectangle | [androidJvm] @Composable fun NeonRectangle(modifier: Modifier = Modifier, focusState: MutableState<FocusState> = mutableStateOf(FocusHelper(true))) @Composable fun NeonRectangle(modifier: Modifier = Modifier, colorRect: Color = Color.Green, colorStroke: Color = Color.Green, padding: Dp = 40.dp, strokeWidth: Dp = 12.dp, shadowWidth: Dp = 3.dp, roundCorner: Dp = 10.dp) |
| NetworkErrorMessage | [androidJvm] @Composable fun NetworkErrorMessage(message: Any? = R.string.error_no_network, dismissible: Boolean = false, backgroundColor: Color = Color.Black, networkService: NetworkConnectivityService = rememberNetworkService(), networkState: State<NetworkStatus?> = networkService.networkStatus.collectAsState(null), isEdit: Boolean = isEditMode(), enter: EnterTransition = EnterTransition.None, exit: ExitTransition = ExitTransition.None) |
| NumberDigit | [androidJvm] @Composable fun NumberDigit(modifier: Modifier = Modifier, value: Int = 0) |
| ScrollableTvLazyColumn | [androidJvm] @Composable fun ScrollableTvLazyColumn(modifier: Modifier = Modifier, contentPadding: PaddingValues = PaddingValues(0.dp), reverseLayout: Boolean = false, verticalArrangement: Arrangement.Vertical = if (!reverseLayout) Arrangement.Top else Arrangement.Bottom, horizontalAlignment: Alignment.Horizontal = Alignment.Start, userScrollEnabled: Boolean = true, state: LazyListState = rememberLazyListState(), content: LazyListScope.() -> Unit = {}) |
| Tabs | [androidJvm] @Composable fun Tabs(modifier: Modifier = Modifier, items: List<Any?> = listOf(Unit, Unit, Unit), fontSize: TextUnit = 12.sp, itemsSpacing: Dp = 8.dp, activeContentColor: Color = Color.Green, selectedContentColor: Color = Color.White, focusedContentColor: Color = Color.White, interactionSource: MutableInteractionSource = rememberMutableInteractionSource(items), onItemClick: (item: Any?) -> Unit? = null) |
| Title | [androidJvm] @Composable fun Title(modifier: Modifier = Modifier, fontWeight: FontWeight = FontWeight.Bold, fontSize: TextUnit = 24.sp, color: Color = Color.White, focusShadowColor: Color = Color.Green, unfocusedShadowColor: Color = Color.Transparent, shadowSize: Dp = 10.dp, title: Any? = R.string.app_name, icon: Any? = R.drawable.person, onClick: () -> Unit? = null) |
| TVRow | [androidJvm] @Composable fun TVRow(modifier: Modifier = Modifier, state: LazyListState = rememberLazyListState(), contentPadding: Dp = 0.dp, reverseLayout: Boolean = false, horizontalArrangement: Arrangement.Horizontal = if (!reverseLayout) Arrangement.Start else Arrangement.End, verticalAlignment: Alignment.Vertical = Alignment.Top, userScrollEnabled: Boolean = true, content: LazyListScope.() -> Unit = {}) |
| UserPic | [androidJvm] @Composable fun UserPic(modifier: Modifier = Modifier, shape: Shape = CircleShape, src: Any? = R.drawable.person, backGroundColor: Color = MaterialTheme.colorScheme.secondary, borderColor: Color = Color.White, borderSize: Dp = 2.dp, contentPadding: Dp = 2.dp, onClick: () -> Unit? = null) |