Add menu on topbar

This commit is contained in:
Ivan Agosto
2025-02-04 21:49:21 -06:00
parent ac9004fe36
commit 71a6b9a31f
3 changed files with 56 additions and 8 deletions

View File

@@ -13,6 +13,7 @@ object ManagerSingleton {
var videosCount: Int = 0
lateinit var settings: SharedPreferences
lateinit var db: Database
fun toast(text: String?, context: Context) {
android.widget.Toast.makeText(context, text, android.widget.Toast.LENGTH_SHORT).show()
}
@@ -21,6 +22,8 @@ object ManagerSingleton {
db.logout()
user = UserModel()
token = TokenModel()
// TODO: Close the session in the user instance
}
fun reloadSettings() {
@@ -36,4 +39,8 @@ object ManagerSingleton {
nfsw = settings.getBoolean("show_nsfw", false)
videosCount = settings.getString("videos_count", "15")!!.toInt()
}
fun isLogged (): Boolean {
return token.token !== ""
}
}

View File

@@ -28,12 +28,12 @@ fun MainNavigationBar () {
selected = false,
onClick = {}
)
NavigationBarItem(
icon = { Icon(painterResource(R.drawable.ic_menu_slideshow), "home") },
label = { Text(stringResource(R.string.playlists), fontSize = 11.sp) },
selected = false,
onClick = {}
)
// NavigationBarItem(
// icon = { Icon(painterResource(R.drawable.ic_menu_slideshow), "home") },
// label = { Text(stringResource(R.string.playlists), fontSize = 11.sp) },
// selected = false,
// onClick = {}
// )
NavigationBarItem(
icon = { Icon(Icons.Filled.AccountCircle, "home") },
label = { Text(stringResource(R.string.you), fontSize = 11.sp) },

View File

@@ -1,31 +1,72 @@
package org.libre.agosto.p2play.components
import android.content.Intent
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.filled.Notifications
import androidx.compose.material.icons.filled.Search
import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import org.libre.agosto.p2play.AboutActivity
import org.libre.agosto.p2play.ChannelActivity
import org.libre.agosto.p2play.LoginActivity
import org.libre.agosto.p2play.ManagerSingleton
import org.libre.agosto.p2play.R
import org.libre.agosto.p2play.SettingsActivity2
@OptIn(ExperimentalMaterial3Api::class)
@Preview(showSystemUi = true)
@Composable
fun MainTopAppBar(modifier: Modifier = Modifier) {
var isMenuOpen by remember { mutableStateOf(false) }
val context = LocalContext.current
TopAppBar(
{ Text(stringResource(R.string.nav_menu_videos)) },
modifier,
actions = {
IconButton({}) { Icon(Icons.Default.Search, "More") }
IconButton({}) { Icon(Icons.Default.Notifications, "More") }
IconButton({}) { Icon(Icons.Default.MoreVert, "More") }
// IconButton({}) { Icon(Icons.Default.Notifications, "More") }
IconButton({ isMenuOpen = true }) {
Icon(Icons.Default.MoreVert, "More")
DropdownMenu(isMenuOpen, { isMenuOpen = false }) {
if (ManagerSingleton.isLogged()) {
DropdownMenuItem({ Text(stringResource(R.string.action_logout))}, {
isMenuOpen = false
ManagerSingleton.logout()
})
} else {
DropdownMenuItem({ Text(stringResource(R.string.action_login))}, {
isMenuOpen = false
val intent = Intent(context, LoginActivity::class.java)
context.startActivity(intent)
})
}
DropdownMenuItem({ Text(stringResource(R.string.action_settings))}, {
isMenuOpen = false
val intent = Intent(context, SettingsActivity2::class.java)
context.startActivity(intent)
})
DropdownMenuItem({ Text(stringResource(R.string.nav_about))}, {
isMenuOpen = false
val intent = Intent(context, AboutActivity::class.java)
context.startActivity(intent)
})
}
}
}
)
}