new menu polished, toggles, etc

This commit is contained in:
Kelvin K
2025-11-22 01:02:20 +01:00
parent 20eb53fc38
commit 98d008ef6c
9 changed files with 148 additions and 57 deletions
@@ -79,8 +79,8 @@ class MenuBottomBarFragment : MainActivityFragment() {
private val _subscribedActivity: MainActivity?;
private val _containerMoreHeader: ConstraintLayout;
private val _toggleAirplaneMode: RoundButton;
private val _togglePrivacy: RoundButton;
private val _toggleAirplaneMode: LinearLayout;
private val _togglePrivacy: LinearLayout;
private var _overlayMore: FrameLayout;
private var _overlayMoreBackground: FrameLayout;
@@ -106,32 +106,46 @@ class MenuBottomBarFragment : MainActivityFragment() {
inflater.inflate(R.layout.fragment_overview_bottom_bar, this);
_containerMoreHeader = findViewById(R.id.container_more_options);
_toggleAirplaneMode = findViewById(R.id.toggle_airplane);
_togglePrivacy = findViewById(R.id.toggle_privacy);
_toggleAirplaneMode = findViewById(R.id.container_toggle_airplane);
_togglePrivacy = findViewById(R.id.container_toggle_privacy);
_toggleAirplaneMode.visibility = GONE;
_toggleAirplaneMode.icon.setImageResource(R.drawable.ic_library);
_toggleAirplaneMode.onClick.subscribe {
if(StateApp.instance.privateMode) {
_togglePrivacy.icon.setImageResource(R.drawable.ic_disabled_visible);
//StateApp.instance.setPrivacyMode(false);
StateApp.instance.airplaneModeChanged.subscribe {
if(!StateApp.instance.airplaneMode)
_toggleAirplaneMode.setBackgroundResource(R.drawable.background_menu_toggle)
else
_toggleAirplaneMode.setBackgroundResource(R.drawable.background_menu_toggle_active)
}
if(!StateApp.instance.airplaneMode)
_toggleAirplaneMode.setBackgroundResource(R.drawable.background_menu_toggle)
else
_toggleAirplaneMode.setBackgroundResource(R.drawable.background_menu_toggle_active)
_toggleAirplaneMode.setOnClickListener {
if(StateApp.instance.airplaneMode) {
StateApp.instance.setAirMode(false);
UIDialogs.appToast("Airplane mode disabled");
}
else {
_togglePrivacy.icon.setImageResource(R.drawable.ic_disabled_visible_purple);
//StateApp.instance.setPrivacyMode(true);
StateApp.instance.setAirMode(true);
UIDialogs.appToast("Airplane mode enabled");
}
}
_togglePrivacy.icon.setImageResource(R.drawable.ic_disabled_visible)
_togglePrivacy.onClick.subscribe {
StateApp.instance.privateModeChanged.subscribe {
if(!StateApp.instance.privateMode)
_togglePrivacy.setBackgroundResource(R.drawable.background_menu_toggle)
else
_togglePrivacy.setBackgroundResource(R.drawable.background_menu_toggle_active)
}
if(!StateApp.instance.privateMode)
_togglePrivacy.setBackgroundResource(R.drawable.background_menu_toggle)
else
_togglePrivacy.setBackgroundResource(R.drawable.background_menu_toggle_active)
_togglePrivacy.setOnClickListener {
if(StateApp.instance.privateMode) {
_togglePrivacy.icon.setImageResource(R.drawable.ic_disabled_visible);
StateApp.instance.setPrivacyMode(false);
UIDialogs.appToast("Privacy mode disabled");
}
else {
_togglePrivacy.icon.setImageResource(R.drawable.ic_disabled_visible_purple);
StateApp.instance.setPrivacyMode(true);
UIDialogs.appToast("Privacy mode enabled");
}
@@ -152,7 +166,7 @@ class MenuBottomBarFragment : MainActivityFragment() {
setMoreVisible(false);
}
})
val layoutManager = GridLayoutManager(context, columns);
val layoutManager = GridLayoutManager(context, columns, GridLayoutManager.VERTICAL, true);
_layoutMoreButtons.layoutManager = layoutManager;
_overlayMoreBackground.setOnClickListener { setMoreVisible(false); };
@@ -472,12 +486,12 @@ class MenuBottomBarFragment : MainActivityFragment() {
fun setWidth(dp: Int) {
root.updateLayoutParams {
this.width = (dp - 12).dp(_viewGroup.context.resources);
this.height = (dp - 12).dp(_viewGroup.context.resources);
this.width = (dp - 6).dp(_viewGroup.context.resources);
this.height = (dp - 6).dp(_viewGroup.context.resources);
}
imageIcon.updateLayoutParams {
this.width = (dp - 46).dp(_viewGroup.context.resources);
this.height = (dp - 46).dp(_viewGroup.context.resources);
this.width = (dp - 54).dp(_viewGroup.context.resources);
this.height = (dp - 54).dp(_viewGroup.context.resources);
}
}
@@ -68,6 +68,20 @@ class StateApp {
val sessionId = UUID.randomUUID().toString();
var airplaneMode: Boolean = false
get(){
return field;
}
private set(value) {
field = value;
}
val airplaneModeChanged = Event1<Boolean>();
fun setAirMode(value: Boolean) {
airplaneMode = value;
airplaneModeChanged.emit(airplaneMode);
}
var privateMode: Boolean = false
get(){
return field;
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#AA111111" />
<stroke android:color="#111111" android:width="1dp" />
<corners android:radius="4dp" />
<solid android:color="#CC000000" />
<stroke android:color="#333333" android:width="1dp" />
<corners android:radius="1dp" />
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00000000" />
<stroke android:color="#000000" android:width="1dp" />
<corners android:radius="50dp" />
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#000000" />
<stroke android:color="#333333" android:width="1dp" />
<corners android:radius="50dp" />
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#2D63ED" />
<stroke android:color="#333333" android:width="1dp" />
<corners android:radius="50dp" />
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
+9
View File
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M294.23,860L294.23,779.23L411.15,697.15L411.15,538.54L100,663.46L100,564.23L411.15,345.62L411.15,168.85Q411.15,140.46 431.39,120.23Q451.62,100 480,100Q508.38,100 528.61,120.23Q548.85,140.46 548.85,168.85L548.85,345.62L860,564.23L860,663.46L548.85,538.54L548.85,697.15L665.38,779.23L665.38,860L480,803.84L294.23,860Z"/>
</vector>
@@ -33,36 +33,66 @@
android:id="@+id/container_more_options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginBottom="3dp"
android:layout_marginLeft="3dp"
android:layout_marginRight="0dp"
app:layout_constraintBottom_toTopOf="@id/more_menu_buttons"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="10dp"
android:layout_marginBottom="15dp"
android:layout_marginRight="10dp"
android:gravity="right">
android:layout_marginRight="0dp"
android:gravity="center">
<com.futo.platformplayer.views.pills.RoundButton
android:id="@+id/toggle_airplane"
android:layout_marginRight="10dp"
android:layout_width="45dp"
android:layout_height="45dp" />
<com.futo.platformplayer.views.pills.RoundButton
android:id="@+id/toggle_privacy"
android:layout_marginRight="10dp"
android:layout_width="50dp"
android:layout_height="50dp" />
<ImageView
android:id="@+id/button_close"
<LinearLayout
android:id="@+id/container_toggle_airplane"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/background_menu_toggle"
android:layout_marginRight="3dp"
android:layout_marginLeft="3dp"
android:gravity="center">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_flight" />
</LinearLayout>
<LinearLayout
android:id="@+id/container_toggle_privacy"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/background_menu_toggle"
android:layout_marginRight="3dp"
android:layout_marginLeft="3dp"
android:gravity="center">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_visibility_off" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/button_close"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="10dp"
android:gravity="center">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_close" />
</LinearLayout>
@@ -71,11 +101,11 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/more_menu_buttons"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="bottom|end"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@id/container_more_options"
android:layout_marginBottom="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
+16 -13
View File
@@ -5,44 +5,47 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="86dp"
android:layout_height="146dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="5dp"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
android:background="@drawable/background_menu_round_4dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:background="@drawable/background_menu"
android:id="@+id/root"
android:clickable="true">
<ImageView
android:id="@+id/image_icon"
android:layout_height="54dp"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_width="50dp"
android:scaleType="centerCrop"
app:layout_constraintDimensionRatio="H,1,1"
app:shapeAppearanceOverlay="@style/roundedCorners_4dp"
app:srcCompat="@drawable/unknown_music"
android:background="@drawable/video_thumbnail_outline"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:layout_marginTop="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<!--TODO: Fix word wrapping with autosize-->
<TextView
android:id="@+id/text_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12dp"
android:textSize="11dp"
android:textColor="@color/white"
android:fontFamily="@font/inter_medium"
tools:text="The Beetles"
android:maxLines="2"
android:gravity="center"
app:layout_constraintLeft_toRightOf="@id/image_icon"
app:layout_constraintTop_toBottomOf="@id/image_icon"
app:layout_constraintLeft_toLeftOf="@id/image_icon"
app:layout_constraintRight_toRightOf="@id/image_icon"
android:layout_marginTop="5dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="0dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>