diff --git a/app/src/main/java/org/libre/agosto/p2play/ManagerSingleton.kt b/app/src/main/java/org/libre/agosto/p2play/ManagerSingleton.kt index 2412209..335d252 100644 --- a/app/src/main/java/org/libre/agosto/p2play/ManagerSingleton.kt +++ b/app/src/main/java/org/libre/agosto/p2play/ManagerSingleton.kt @@ -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 !== "" + } } diff --git a/app/src/main/java/org/libre/agosto/p2play/components/MainNavigationBar.kt b/app/src/main/java/org/libre/agosto/p2play/components/MainNavigationBar.kt index d24741d..aadd58a 100644 --- a/app/src/main/java/org/libre/agosto/p2play/components/MainNavigationBar.kt +++ b/app/src/main/java/org/libre/agosto/p2play/components/MainNavigationBar.kt @@ -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) }, diff --git a/app/src/main/java/org/libre/agosto/p2play/components/MainTopAppBar.kt b/app/src/main/java/org/libre/agosto/p2play/components/MainTopAppBar.kt index eaf92f3..3ebbfce 100644 --- a/app/src/main/java/org/libre/agosto/p2play/components/MainTopAppBar.kt +++ b/app/src/main/java/org/libre/agosto/p2play/components/MainTopAppBar.kt @@ -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) + }) + } + } } ) } \ No newline at end of file