rearrange nav menu

This commit is contained in:
2025-07-24 22:33:31 +05:00
parent 41aefc447a
commit 3baf959062
21 changed files with 1031 additions and 75 deletions

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Safe system background color -->
<item android:color="@android:color/background_light"/>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Safe system text color -->
<item android:color="@android:color/primary_text_light"/>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Safe secondary text color -->
<item android:color="@android:color/secondary_text_light"/>
</selector>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/background_light" />
</selector>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/primary_text_light" />
</selector>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Dark theme -->
<item android:color="#FFFFFF" android:state_selected="false"/>
<!-- Light theme fallback -->
<item android:color="#FFFFFF"/>
</selector>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" />
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="?attr/colorPrimary" />
</shape>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorOnSurface">
<path
android:fillColor="@android:color/white"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorOnSurface">
<path
android:fillColor="@android:color/white"
android:pathData="M16.59,8.59L12,13.17 7.41,8.59 6,10l6,6 6,-6z"/>
</vector>

View File

@@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?android:attr/colorBackground">
<!-- Toolbar -->
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<!-- Content ScrollView -->
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="32dp"
android:gravity="center">
<!-- App Logo Section -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:id="@+id/iv_app_logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginBottom="24dp"
android:src="@mipmap/ic_launcher"
android:contentDescription="GridFlow Logo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Account"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="?android:attr/textColorPrimary"
android:layout_marginBottom="8dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign in with another Fenaka account"
android:textSize="14sp"
android:textColor="?android:attr/textColorSecondary"
android:alpha="0.7" />
</LinearLayout>
<!-- Login Form Section -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="32dp">
<!-- Mobile Number Input -->
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Mobile Number"
app:boxStrokeColor="@color/design_default_color_primary"
app:hintTextColor="@color/design_default_color_primary"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_mobile_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:maxLength="7"
android:textSize="16sp" />
</com.google.android.material.textfield.TextInputLayout>
<!-- Password Input -->
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:hint="Password"
app:boxStrokeColor="@color/design_default_color_primary"
app:hintTextColor="@color/design_default_color_primary"
app:passwordToggleEnabled="true"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:textSize="16sp" />
</com.google.android.material.textfield.TextInputLayout>
<!-- Action Buttons Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="32dp"
android:weightSum="3">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_sign_in"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="4dp"
android:text="Sign In"
android:textSize="12sp"
app:cornerRadius="8dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_register"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:text="Register"
android:textSize="12sp"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
app:cornerRadius="8dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_forgot_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="4dp"
android:text="Forgot?"
android:textSize="12sp"
style="@style/Widget.MaterialComponents.Button.TextButton"
app:cornerRadius="8dp" />
</LinearLayout>
</LinearLayout>
<!-- Spacer for bottom -->
<View
android:layout_width="match_parent"
android:layout_height="32dp" />
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:background="?android:attr/colorBackground">
android:background="@android:color/white">
<LinearLayout
android:layout_width="match_parent"
@@ -35,7 +35,7 @@
android:text="GridFlow"
android:textSize="28sp"
android:textStyle="bold"
android:textColor="?android:attr/textColorPrimary"
android:textColor="#000000"
android:layout_marginBottom="8dp" />
<TextView
@@ -43,7 +43,7 @@
android:layout_height="wrap_content"
android:text="Your Personal Fenaka Client"
android:textSize="14sp"
android:textColor="?android:attr/textColorSecondary"
android:textColor="#666666"
android:alpha="0.7" />
</LinearLayout>
@@ -150,7 +150,7 @@
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
android:background="?android:attr/textColorSecondary"
android:background="#CCCCCC"
android:alpha="0.3" />
<TextView
@@ -158,7 +158,7 @@
android:layout_height="wrap_content"
android:text="OR"
android:textSize="14sp"
android:textColor="?android:attr/textColorSecondary"
android:textColor="#666666"
android:alpha="0.7"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" />
@@ -167,7 +167,7 @@
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"
android:background="?android:attr/textColorSecondary"
android:background="#CCCCCC"
android:alpha="0.3" />
</LinearLayout>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingTop="12dp"
android:paddingRight="16dp"
android:paddingBottom="12dp">
<!-- Account info -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/account_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Shihaam Abdul Rahman"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/account_mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9198026"
android:textColor="#666666"
android:textSize="12sp" />
</LinearLayout>
<!-- Active indicator -->
<ImageView
android:id="@+id/active_indicator"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_check_24"
android:tint="?attr/colorPrimary"
android:visibility="gone" />
</LinearLayout>

View File

@@ -2,42 +2,134 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:layout_height="wrap_content"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/nav_header_desc"
android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@mipmap/ic_launcher_round" />
<!-- Main Account Section -->
<LinearLayout
android:id="@+id/main_account_section"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:gravity="bottom"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<TextView
android:id="@+id/nav_header_name"
<!-- Top section with app logo and account switcher -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<ImageView
android:id="@+id/account_switcher_arrow"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Account switcher"
android:padding="4dp"
android:src="@drawable/ic_expand_more_24"
android:tint="@color/nav_header_text_color" />
</LinearLayout>
<!-- Account info section -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/nav_header_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Shihaam Abdul Rahman"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textStyle="bold" />
<TextView
android:id="@+id/nav_header_mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="9198026"
android:textSize="12sp"
android:alpha="0.8" />
<TextView
android:id="@+id/nav_header_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="shihaam_ab_r@outlook.com"
android:textSize="11sp"
android:alpha="0.7" />
</LinearLayout>
</LinearLayout>
<!-- Account List Section (initially hidden) -->
<LinearLayout
android:id="@+id/account_list_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="Shihaam Abdul Rahman"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
android:orientation="vertical"
android:visibility="gone"
android:background="@android:color/white">
<TextView
android:id="@+id/nav_header_mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9198026" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/accounts_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp" />
<TextView
android:id="@+id/nav_header_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="shihaam_ab_r@outlook.com" />
<!-- Add Account Button -->
<LinearLayout
android:id="@+id/add_account_button"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="16dp"
android:src="@drawable/ic_add_24"
android:tint="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add account"
android:textColor="?attr/colorPrimary"
android:textSize="14sp" />
</LinearLayout>
<!-- Divider -->
<View
android:id="@+id/account_list_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="8dp"
android:background="#E0E0E0" />
</LinearLayout>
</LinearLayout>

View File

@@ -8,18 +8,21 @@
android:id="@+id/nav_dashboard"
android:icon="@drawable/ic_dashboard_24"
android:title="@string/menu_dashboard" />
<item
android:id="@+id/nav_bill_history"
android:icon="@drawable/ic_bill_history_24"
android:title="@string/menu_bill_history" />
<item
android:id="@+id/nav_subscriptions"
android:icon="@drawable/ic_subscriptions_24"
android:title="@string/menu_subscriptions" />
</group>
<group android:id="@+id/group_utilities">
<item
android:id="@+id/nav_band_rates"
android:icon="@drawable/ic_band_rates_24"
android:title="@string/menu_band_rates" />
<item
android:id="@+id/nav_bill_history"
android:icon="@drawable/ic_bill_history_24"
android:title="@string/menu_bill_history" />
<item
android:id="@+id/nav_pay_any_bill"
android:icon="@drawable/ic_pay_any_bill_24"