Bläddra i källkod

Completed contact info screen UI

Khubaib 4 månader sedan
förälder
incheckning
8af9041135

+ 1 - 1
.idea/deploymentTargetSelector.xml

@@ -4,7 +4,7 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-12-18T15:40:16.430600454Z">
+        <DropdownSelection timestamp="2024-12-19T14:22:26.338642758Z">
           <Target type="DEFAULT_BOOT">
             <handle>
               <DeviceId pluginId="PhysicalDevice" identifier="serial=1C051FDF60048Z" />

+ 1 - 1
app/src/main/java/com/fastest/pass/home/domain/model/CountryInfoCode.kt

@@ -2,6 +2,6 @@ package com.fastest.pass.home.domain.model
 
 data class CountryInfoCode(
     val name: String,
+    val flag: String,
     val code: String,
-    val flag: String
 )

+ 199 - 196
app/src/main/java/com/fastest/pass/home/domain/model/CountryInfoList.kt

@@ -198,202 +198,205 @@ val countryInfoList = listOf(
     CountryInfo("Zimbabwe", "zw", "GMT+02:00")
 )
 
-val countryInfoCodeList = listOf(
-    CountryInfoCode("Afghanistan", "+93", "AF"),
-    CountryInfoCode("Albania", "+355", "AL"),
-    CountryInfoCode("Algeria", "+213", "DZ"),
-    CountryInfoCode("Andorra", "+376", "AD"),
-    CountryInfoCode("Angola", "+244", "AO"),
-    CountryInfoCode("Antigua and Barbuda", "+1-268", "AG"),
-    CountryInfoCode("Argentina", "+54", "AR"),
-    CountryInfoCode("Armenia", "+374", "AM"),
-    CountryInfoCode("Australia", "+61", "AU"),
-    CountryInfoCode("Austria", "+43", "AT"),
-    CountryInfoCode("Azerbaijan", "+994", "AZ"),
-    CountryInfoCode("Bahamas", "+1-242", "BS"),
-    CountryInfoCode("Bahrain", "+973", "BH"),
-    CountryInfoCode("Bangladesh", "+880", "BD"),
-    CountryInfoCode("Barbados", "+1-246", "BB"),
-    CountryInfoCode("Belarus", "+375", "BY"),
-    CountryInfoCode("Belgium", "+32", "BE"),
-    CountryInfoCode("Belize", "+501", "BZ"),
-    CountryInfoCode("Benin", "+229", "BJ"),
-    CountryInfoCode("Bhutan", "+975", "BT"),
-    CountryInfoCode("Bolivia", "+591", "BO"),
-    CountryInfoCode("Bosnia and Herzegovina", "+387", "BA"),
-    CountryInfoCode("Botswana", "+267", "BW"),
-    CountryInfoCode("Brazil", "+55", "BR"),
-    CountryInfoCode("Brunei", "+673", "BN"),
-    CountryInfoCode("Bulgaria", "+359", "BG"),
-    CountryInfoCode("Burkina Faso", "+226", "BF"),
-    CountryInfoCode("Burundi", "+257", "BI"),
-    CountryInfoCode("Cambodia", "+855", "KH"),
-    CountryInfoCode("Cameroon", "+237", "CM"),
-    CountryInfoCode("Canada", "+1", "CA"),
-    CountryInfoCode("Cape Verde", "+238", "CV"),
-    CountryInfoCode("Central African Republic", "+236", "CF"),
-    CountryInfoCode("Chad", "+235", "TD"),
-    CountryInfoCode("Chile", "+56", "CL"),
-    CountryInfoCode("China", "+86", "CN"),
-    CountryInfoCode("Colombia", "+57", "CO"),
-    CountryInfoCode("Comoros", "+269", "KM"),
-    CountryInfoCode("Congo (DRC)", "+243", "CD"),
-    CountryInfoCode("Congo (Republic)", "+242", "CG"),
-    CountryInfoCode("Costa Rica", "+506", "CR"),
-    CountryInfoCode("Croatia", "+385", "HR"),
-    CountryInfoCode("Cuba", "+53", "CU"),
-    CountryInfoCode("Cyprus", "+357", "CY"),
-    CountryInfoCode("Czech Republic", "+420", "CZ"),
-    CountryInfoCode("Denmark", "+45", "DK"),
-    CountryInfoCode("Djibouti", "+253", "DJ"),
-    CountryInfoCode("Dominica", "+1-767", "DM"),
-    CountryInfoCode("Dominican Republic", "+1-809", "DOR"),
-    CountryInfoCode("Ecuador", "+593", "EC"),
-    CountryInfoCode("Egypt", "+20", "EG"),
-    CountryInfoCode("El Salvador", "+503", "SV"),
-    CountryInfoCode("Equatorial Guinea", "+240", "GQ"),
-    CountryInfoCode("Eritrea", "+291", "ER"),
-    CountryInfoCode("Estonia", "+372", "EE"),
-    CountryInfoCode("Eswatini", "+268", "SZ"),
-    CountryInfoCode("Ethiopia", "+251", "ET"),
-    CountryInfoCode("Fiji", "+679", "FJ"),
-    CountryInfoCode("Finland", "+358", "FI"),
-    CountryInfoCode("France", "+33", "FR"),
-    CountryInfoCode("Gabon", "+241", "GA"),
-    CountryInfoCode("Gambia", "+220", "GM"),
-    CountryInfoCode("Georgia", "+995", "GE"),
-    CountryInfoCode("Germany", "+49", "DE"),
-    CountryInfoCode("Ghana", "+233", "GH"),
-    CountryInfoCode("Greece", "+30", "GR"),
-    CountryInfoCode("Grenada", "+1-473", "GD"),
-    CountryInfoCode("Guatemala", "+502", "GT"),
-    CountryInfoCode("Guinea", "+224", "GN"),
-    CountryInfoCode("Guinea-Bissau", "+245", "GW"),
-    CountryInfoCode("Guyana", "+592", "GY"),
-    CountryInfoCode("Haiti", "+509", "HT"),
-    CountryInfoCode("Honduras", "+504", "HN"),
-    CountryInfoCode("Hungary", "+36", "HU"),
-    CountryInfoCode("Iceland", "+354", "IS"),
-    CountryInfoCode("India", "+91", "IN"),
-    CountryInfoCode("Indonesia", "+62", "ID"),
-    CountryInfoCode("Iran", "+98", "IR"),
-    CountryInfoCode("Iraq", "+964", "IQ"),
-    CountryInfoCode("Ireland", "+353", "IE"),
-    CountryInfoCode("Israel", "+972", "IL"),
-    CountryInfoCode("Italy", "+39", "IT"),
-    CountryInfoCode("Ivory Coast", "+225", "CI"),
-    CountryInfoCode("Jamaica", "+1-876", "JM"),
-    CountryInfoCode("Japan", "+81", "JP"),
-    CountryInfoCode("Jordan", "+962", "JO"),
-    CountryInfoCode("Kazakhstan", "+7", "KZ"),
-    CountryInfoCode("Kenya", "+254", "KE"),
-    CountryInfoCode("Kiribati", "+686", "KI"),
-    CountryInfoCode("Korea (North)", "+850", "KP"),
-    CountryInfoCode("Korea (South)", "+82", "KR"),
-    CountryInfoCode("Kuwait", "+965", "KW"),
-    CountryInfoCode("Kyrgyzstan", "+996", "KG"),
-    CountryInfoCode("Laos", "+856", "LA"),
-    CountryInfoCode("Latvia", "+371", "LV"),
-    CountryInfoCode("Lebanon", "+961", "LB"),
-    CountryInfoCode("Lesotho", "+266", "LS"),
-    CountryInfoCode("Liberia", "+231", "LR"),
-    CountryInfoCode("Libya", "+218", "LY"),
-    CountryInfoCode("Liechtenstein", "+423", "LI"),
-    CountryInfoCode("Lithuania", "+370", "LT"),
-    CountryInfoCode("Luxembourg", "+352", "LU"),
-    CountryInfoCode("Madagascar", "+261", "MG"),
-    CountryInfoCode("Malawi", "+265", "MW"),
-    CountryInfoCode("Malaysia", "+60", "MY"),
-    CountryInfoCode("Maldives", "+960", "MV"),
-    CountryInfoCode("Mali", "+223", "ML"),
-    CountryInfoCode("Malta", "+356", "MT"),
-    CountryInfoCode("Marshall Islands", "+692", "MH"),
-    CountryInfoCode("Mauritania", "+222", "MR"),
-    CountryInfoCode("Mauritius", "+230", "MU"),
-    CountryInfoCode("Mexico", "+52", "MX"),
-    CountryInfoCode("Micronesia", "+691", "FM"),
-    CountryInfoCode("Moldova", "+373", "MD"),
-    CountryInfoCode("Monaco", "+377", "MC"),
-    CountryInfoCode("Mongolia", "+976", "MN"),
-    CountryInfoCode("Montenegro", "+382", "ME"),
-    CountryInfoCode("Morocco", "+212", "MA"),
-    CountryInfoCode("Mozambique", "+258", "MZ"),
-    CountryInfoCode("Myanmar", "+95", "MM"),
-    CountryInfoCode("Namibia", "+264", "NA"),
-    CountryInfoCode("Nauru", "+674", "NR"),
-    CountryInfoCode("Nepal", "+977", "NP"),
-    CountryInfoCode("Netherlands", "+31", "NL"),
-    CountryInfoCode("New Zealand", "+64", "NZ"),
-    CountryInfoCode("Nicaragua", "+505", "NI"),
-    CountryInfoCode("Niger", "+227", "NE"),
-    CountryInfoCode("Nigeria", "+234", "NG"),
-    CountryInfoCode("North Macedonia", "+389", "MK"),
-    CountryInfoCode("Norway", "+47", "NO"),
-    CountryInfoCode("Oman", "+968", "OM"),
-    CountryInfoCode("Pakistan", "+92", "PK"),
-    CountryInfoCode("Palau", "+680", "PW"),
-    CountryInfoCode("Panama", "+507", "PA"),
-    CountryInfoCode("Papua New Guinea", "+675", "PG"),
-    CountryInfoCode("Paraguay", "+595", "PY"),
-    CountryInfoCode("Peru", "+51", "PE"),
-    CountryInfoCode("Philippines", "+63", "PH"),
-    CountryInfoCode("Poland", "+48", "PL"),
-    CountryInfoCode("Portugal", "+351", "PT"),
-    CountryInfoCode("Qatar", "+974", "QA"),
-    CountryInfoCode("Romania", "+40", "RO"),
-    CountryInfoCode("Russia", "+7", "RU"),
-    CountryInfoCode("Rwanda", "+250", "RW"),
-    CountryInfoCode("Saint Kitts and Nevis", "+1-869", "KN"),
-    CountryInfoCode("Saint Lucia", "+1-758", "LC"),
-    CountryInfoCode("Saint Vincent and the Grenadines", "+1-784", "VC"),
-    CountryInfoCode("Samoa", "+685", "WS"),
-    CountryInfoCode("San Marino", "+378", "SM"),
-    CountryInfoCode("Sao Tome and Principe", "+239", "ST"),
-    CountryInfoCode("Saudi Arabia", "+966", "SA"),
-    CountryInfoCode("Senegal", "+221", "SN"),
-    CountryInfoCode("Serbia", "+381", "RS"),
-    CountryInfoCode("Seychelles", "+248", "SC"),
-    CountryInfoCode("Sierra Leone", "+232", "SL"),
-    CountryInfoCode("Singapore", "+65", "SG"),
-    CountryInfoCode("Slovakia", "+421", "SK"),
-    CountryInfoCode("Slovenia", "+386", "SI"),
-    CountryInfoCode("Solomon Islands", "+677", "SB"),
-    CountryInfoCode("Somalia", "+252", "SO"),
-    CountryInfoCode("South Africa", "+27", "ZA"),
-    CountryInfoCode("South Sudan", "+211", "SS"),
-    CountryInfoCode("Spain", "+34", "ES"),
-    CountryInfoCode("Sri Lanka", "+94", "LK"),
-    CountryInfoCode("Sudan", "+249", "SD"),
-    CountryInfoCode("Suriname", "+597", "SR"),
-    CountryInfoCode("Sweden", "+46", "SE"),
-    CountryInfoCode("Switzerland", "+41", "CH"),
-    CountryInfoCode("Syria", "+963", "SY"),
-    CountryInfoCode("Taiwan", "+886", "TW"),
-    CountryInfoCode("Tajikistan", "+992", "TJ"),
-    CountryInfoCode("Tanzania", "+255", "TZ"),
-    CountryInfoCode("Thailand", "+66", "TH"),
-    CountryInfoCode("Timor-Leste", "+670", "TL"),
-    CountryInfoCode("Togo", "+228", "TG"),
-    CountryInfoCode("Tonga", "+676", "TO"),
-    CountryInfoCode("Trinidad and Tobago", "+1-868", "TT"),
-    CountryInfoCode("Tunisia", "+216", "TN"),
-    CountryInfoCode("Turkey", "+90", "TR"),
-    CountryInfoCode("Turkmenistan", "+993", "TM"),
-    CountryInfoCode("Tuvalu", "+688", "TV"),
-    CountryInfoCode("Uganda", "+256", "UG"),
-    CountryInfoCode("Ukraine", "+380", "UA"),
-    CountryInfoCode("United Arab Emirates", "+971", "AE"),
-    CountryInfoCode("United Kingdom", "+44", "GB"),
-    CountryInfoCode("United States", "+1", "US"),
-    CountryInfoCode("Uruguay", "+598", "UY"),
-    CountryInfoCode("Uzbekistan", "+998", "UZ"),
-    CountryInfoCode("Vanuatu", "+678", "VU"),
-    CountryInfoCode("Vatican City", "+379", "VA"),
-    CountryInfoCode("Venezuela", "+58", "VE"),
-    CountryInfoCode("Vietnam", "+84", "VN"),
-    CountryInfoCode("Yemen", "+967", "YE"),
-    CountryInfoCode("Zambia", "+260", "ZM"),
-    CountryInfoCode("Zimbabwe", "+263", "ZW"),
+
+val countryInfoListCode = listOf(
+    CountryInfo("Afghanistan", "AF", "+93"),
+    CountryInfo("Albania", "AL", "+355"),
+    CountryInfo("Algeria", "DZ", "+213"),
+    CountryInfo("Andorra", "AD", "+376"),
+    CountryInfo("Angola", "AO", "+244"),
+    CountryInfo("Antigua and Barbuda", "AG", "+1-268"),
+    CountryInfo("Argentina", "AR", "+54"),
+    CountryInfo("Armenia", "AM", "+374"),
+    CountryInfo("Australia", "AU", "+61"),
+    CountryInfo("Austria", "AT", "+43"),
+    CountryInfo("Azerbaijan", "AZ", "+994"),
+    CountryInfo("Bahamas", "BS", "+1-242"),
+    CountryInfo("Bahrain", "BH", "+973"),
+    CountryInfo("Bangladesh", "BD", "+880"),
+    CountryInfo("Barbados", "BB", "+1-246"),
+    CountryInfo("Belarus", "BY", "+375"),
+    CountryInfo("Belgium", "BE", "+32"),
+    CountryInfo("Belize", "BZ", "+501"),
+    CountryInfo("Benin", "BJ", "+229"),
+    CountryInfo("Bhutan", "BT", "+975"),
+    CountryInfo("Bolivia", "BO", "+591"),
+    CountryInfo("Bosnia and Herzegovina", "BA", "+387"),
+    CountryInfo("Botswana", "BW", "+267"),
+    CountryInfo("Brazil", "BR", "+55"),
+    CountryInfo("Brunei", "BN", "+673"),
+    CountryInfo("Bulgaria", "BG", "+359"),
+    CountryInfo("Burkina Faso", "BF", "+226"),
+    CountryInfo("Burundi", "BI", "+257"),
+    CountryInfo("Cambodia", "KH", "+855"),
+    CountryInfo("Cameroon", "CM", "+237"),
+    CountryInfo("Canada", "CA", "+1"),
+    CountryInfo("Cape Verde", "CV", "+238"),
+    CountryInfo("Central African Republic", "CF", "+236"),
+    CountryInfo("Chad", "TD", "+235"),
+    CountryInfo("Chile", "CL", "+56"),
+    CountryInfo("China", "CN", "+86"),
+    CountryInfo("Colombia", "CO", "+57"),
+    CountryInfo("Comoros", "KM", "+269"),
+    CountryInfo("Congo (DRC)", "CD", "+243"),
+    CountryInfo("Congo (Republic)", "CG", "+242"),
+    CountryInfo("Costa Rica", "CR", "+506"),
+    CountryInfo("Croatia", "HR", "+385"),
+    CountryInfo("Cuba", "CU", "+53"),
+    CountryInfo("Cyprus", "CY", "+357"),
+    CountryInfo("Czech Republic", "CZ", "+420"),
+    CountryInfo("Denmark", "DK", "+45"),
+    CountryInfo("Djibouti", "DJ", "+253"),
+    CountryInfo("Dominica", "DM", "+1-767"),
+    CountryInfo("Dominican Republic", "DOR", "+1-809"),
+    CountryInfo("Ecuador", "EC", "+593"),
+    CountryInfo("Egypt", "EG", "+20"),
+    CountryInfo("El Salvador", "SV", "+503"),
+    CountryInfo("Equatorial Guinea", "GQ", "+240"),
+    CountryInfo("Eritrea", "ER", "+291"),
+    CountryInfo("Estonia", "EE", "+372"),
+    CountryInfo("Eswatini", "SZ", "+268"),
+    CountryInfo("Ethiopia", "ET", "+251"),
+    CountryInfo("Fiji", "FJ", "+679"),
+    CountryInfo("Finland", "FI", "+358"),
+    CountryInfo("France", "FR", "+33"),
+    CountryInfo("Gabon", "GA", "+241"),
+    CountryInfo("Gambia", "GM", "+220"),
+    CountryInfo("Georgia", "GE", "+995"),
+    CountryInfo("Germany", "DE", "+49"),
+    CountryInfo("Ghana", "GH", "+233"),
+    CountryInfo("Greece", "GR", "+30"),
+    CountryInfo("Grenada", "GD", "+1-473"),
+    CountryInfo("Guatemala", "GT", "+502"),
+    CountryInfo("Guinea", "GN", "+224"),
+    CountryInfo("Guinea-Bissau", "GW", "+245"),
+    CountryInfo("Guyana", "GY", "+592"),
+    CountryInfo("Haiti", "HT", "+509"),
+    CountryInfo("Honduras", "HN", "+504"),
+    CountryInfo("Hungary", "HU", "+36"),
+    CountryInfo("Iceland", "IS", "+354"),
+    CountryInfo("India", "IN", "+91"),
+    CountryInfo("Indonesia", "ID", "+62"),
+    CountryInfo("Iran", "IR", "+98"),
+    CountryInfo("Iraq", "IQ", "+964"),
+    CountryInfo("Ireland", "IE", "+353"),
+    CountryInfo("Israel", "IL", "+972"),
+    CountryInfo("Italy", "IT", "+39"),
+    CountryInfo("Ivory Coast", "CI", "+225"),
+    CountryInfo("Jamaica", "JM", "+1-876"),
+    CountryInfo("Japan", "JP", "+81"),
+    CountryInfo("Jordan", "JO", "+962"),
+    CountryInfo("Kazakhstan", "KZ", "+7"),
+    CountryInfo("Kenya", "KE", "+254"),
+    CountryInfo("Kiribati", "KI", "+686"),
+    CountryInfo("Korea (North)", "KP", "+850"),
+    CountryInfo("Korea (South)", "KR", "+82"),
+    CountryInfo("Kuwait", "KW", "+965"),
+    CountryInfo("Kyrgyzstan", "KG", "+996"),
+    CountryInfo("Laos", "LA", "+856"),
+    CountryInfo("Latvia", "LV", "+371"),
+    CountryInfo("Lebanon", "LB", "+961"),
+    CountryInfo("Lesotho", "LS", "+266"),
+    CountryInfo("Liberia", "LR", "+231"),
+    CountryInfo("Libya", "LY", "+218"),
+    CountryInfo("Liechtenstein", "LI", "+423"),
+    CountryInfo("Lithuania", "LT", "+370"),
+    CountryInfo("Luxembourg", "LU", "+352"),
+    CountryInfo("Madagascar", "MG", "+261"),
+    CountryInfo("Malawi", "MW", "+265"),
+    CountryInfo("Malaysia", "MY", "+60"),
+    CountryInfo("Maldives", "MV", "+960"),
+    CountryInfo("Mali", "ML", "+223"),
+    CountryInfo("Malta", "MT", "+356"),
+    CountryInfo("Marshall Islands", "MH", "+692"),
+    CountryInfo("Mauritania", "MR", "+222"),
+    CountryInfo("Mauritius", "MU", "+230"),
+    CountryInfo("Mexico", "MX", "+52"),
+    CountryInfo("Micronesia", "FM", "+691"),
+    CountryInfo("Moldova", "MD", "+373"),
+    CountryInfo("Monaco", "MC", "+377"),
+    CountryInfo("Mongolia", "MN", "+976"),
+    CountryInfo("Montenegro", "ME", "+382"),
+    CountryInfo("Morocco", "MA", "+212"),
+    CountryInfo("Mozambique", "MZ", "+258"),
+    CountryInfo("Myanmar", "MM", "+95"),
+    CountryInfo("Namibia", "NA", "+264"),
+    CountryInfo("Nauru", "NR", "+674"),
+    CountryInfo("Nepal", "NP", "+977"),
+    CountryInfo("Netherlands", "NL", "+31"),
+    CountryInfo("New Zealand", "NZ", "+64"),
+    CountryInfo("Nicaragua", "NI", "+505"),
+    CountryInfo("Niger", "NE", "+227"),
+    CountryInfo("Nigeria", "NG", "+234"),
+    CountryInfo("North Macedonia", "MK", "+389"),
+    CountryInfo("Norway", "NO", "+47"),
+    CountryInfo("Oman", "OM", "+968"),
+    CountryInfo("Pakistan", "PK", "+92"),
+    CountryInfo("Palestine", "PS", "+970"),
+    CountryInfo("Palau", "PW", "+680"),
+    CountryInfo("Panama", "PA", "+507"),
+    CountryInfo("Papua New Guinea", "PG", "+675"),
+    CountryInfo("Paraguay", "PY", "+595"),
+    CountryInfo("Peru", "PE", "+51"),
+    CountryInfo("Philippines", "PH", "+63"),
+    CountryInfo("Poland", "PL", "+48"),
+    CountryInfo("Portugal", "PT", "+351"),
+    CountryInfo("Qatar", "QA", "+974"),
+    CountryInfo("Romania", "RO", "+40"),
+    CountryInfo("Russia", "RU", "+7"),
+    CountryInfo("Rwanda", "RW", "+250"),
+    CountryInfo("Saint Kitts and Nevis", "KN", "+1-869"),
+    CountryInfo("Saint Lucia", "LC", "+1-758"),
+    CountryInfo("Saint Vincent and the Grenadines", "VC", "+1-784"),
+    CountryInfo("Samoa", "WS", "+685"),
+    CountryInfo("San Marino", "SM", "+378"),
+    CountryInfo("Sao Tome and Principe", "ST", "+239"),
+    CountryInfo("Saudi Arabia", "SA", "+966"),
+    CountryInfo("Senegal", "SN", "+221"),
+    CountryInfo("Serbia", "RS", "+381"),
+    CountryInfo("Seychelles", "SC", "+248"),
+    CountryInfo("Sierra Leone", "SL", "+232"),
+    CountryInfo("Singapore", "SG", "+65"),
+    CountryInfo("Slovakia", "SK", "+421"),
+    CountryInfo("Slovenia", "SI", "+386"),
+    CountryInfo("Solomon Islands", "SB", "+677"),
+    CountryInfo("Somalia", "SO", "+252"),
+    CountryInfo("South Africa", "ZA", "+27"),
+    CountryInfo("South Sudan", "SS", "+211"),
+    CountryInfo("Spain", "ES", "+34"),
+    CountryInfo("Sri Lanka", "LK", "+94"),
+    CountryInfo("Sudan", "SD", "+249"),
+    CountryInfo("Suriname", "SR", "+597"),
+    CountryInfo("Sweden", "SE", "+46"),
+    CountryInfo("Switzerland", "CH", "+41"),
+    CountryInfo("Syria", "SY", "+963"),
+    CountryInfo("Taiwan", "TW", "+886"),
+    CountryInfo("Tajikistan", "TJ", "+992"),
+    CountryInfo("Tanzania", "TZ", "+255"),
+    CountryInfo("Thailand", "TH", "+66"),
+    CountryInfo("Timor-Leste", "TL", "+670"),
+    CountryInfo("Togo", "TG", "+228"),
+    CountryInfo("Tonga", "TO", "+676"),
+    CountryInfo("Trinidad and Tobago", "TT", "+1-868"),
+    CountryInfo("Tunisia", "TN", "+216"),
+    CountryInfo("Turkey", "TR", "+90"),
+    CountryInfo("Turkmenistan", "TM", "+993"),
+    CountryInfo("Tuvalu", "TV", "+688"),
+    CountryInfo("Uganda", "UG", "+256"),
+    CountryInfo("Ukraine", "UA", "+380"),
+    CountryInfo("United Arab Emirates", "AE", "+971"),
+    CountryInfo("United Kingdom", "GB", "+44"),
+    CountryInfo("United States", "US", "+1"),
+    CountryInfo("Uruguay", "UY", "+598"),
+    CountryInfo("Uzbekistan", "UZ", "+998"),
+    CountryInfo("Vanuatu", "VU", "+678"),
+    CountryInfo("Vatican City", "VA", "+379"),
+    CountryInfo("Venezuela", "VE", "+58"),
+    CountryInfo("Vietnam", "VN", "+84"),
+    CountryInfo("Yemen", "YE", "+967"),
+    CountryInfo("Zambia", "ZM", "+260"),
+    CountryInfo("Zimbabwe", "ZW", "+263"),
 )
 
 
+

+ 619 - 98
app/src/main/java/com/fastest/pass/home/presentation/ui/components/AddContactInfoScreen.kt

@@ -1,18 +1,15 @@
 package com.fastest.pass.home.presentation.ui.components
 
-import android.os.Build
 import android.util.Log
-import android.widget.Toast
-import androidx.annotation.RequiresApi
 import androidx.compose.foundation.BorderStroke
 import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.Image
 import androidx.compose.foundation.LocalOverscrollConfiguration
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.clickable
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.ColumnScope
 import androidx.compose.foundation.layout.Row
@@ -23,11 +20,11 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
 import androidx.compose.foundation.layout.wrapContentHeight
 import androidx.compose.foundation.lazy.LazyColumn
 import androidx.compose.foundation.lazy.items
 import androidx.compose.foundation.rememberScrollState
-import androidx.compose.foundation.shape.CircleShape
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.foundation.text.KeyboardActions
 import androidx.compose.foundation.text.KeyboardOptions
@@ -35,6 +32,8 @@ import androidx.compose.foundation.verticalScroll
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.DateRange
 import androidx.compose.material3.BottomSheetDefaults
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
 import androidx.compose.material3.DatePicker
 import androidx.compose.material3.DatePickerDefaults
 import androidx.compose.material3.DatePickerDialog
@@ -56,7 +55,6 @@ import androidx.compose.material3.rememberDatePickerState
 import androidx.compose.material3.rememberModalBottomSheetState
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.CompositionLocalProvider
-import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
@@ -67,9 +65,6 @@ import androidx.compose.ui.draw.clip
 import androidx.compose.ui.draw.paint
 import androidx.compose.ui.focus.FocusManager
 import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.graphics.ColorFilter
-import androidx.compose.ui.graphics.RectangleShape
-import androidx.compose.ui.graphics.Shape
 import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalFocusManager
@@ -80,17 +75,16 @@ import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.text.input.ImeAction
 import androidx.compose.ui.text.input.KeyboardType
+import androidx.compose.ui.text.style.TextAlign
 import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
 import com.fastest.pass.R
 import com.fastest.pass.home.domain.model.CountryInfo
+import com.fastest.pass.home.domain.model.CountryInfoCode
 import com.fastest.pass.home.domain.model.countryInfoList
+import com.fastest.pass.home.domain.model.countryInfoListCode
 import com.fastest.pass.home.utils.GetDrawable
-import com.hbb20.CountryCodePicker
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
 import java.text.SimpleDateFormat
-import java.time.OffsetDateTime
-import java.time.ZoneId
 import java.util.Date
 import java.util.Locale
 import java.util.TimeZone
@@ -105,76 +99,81 @@ fun AddContactInfoScreen() {
     val countriesList = ArrayList<String>()
     countriesList.addAll(list)
     countriesList.add(0, "Please Select")
-
-//    val timezone = getTimeZonesWithOffsets()
-//    val timezoneList = ArrayList<String>()
-//    timezoneList.addAll(timezone)
-//    timezoneList.add(0, "Please Select")
-
-    getCountriesWithFlagsAndTimezones()
-
     val gender = listOf("Please Select", "Male", "Female", "Other")
 
-    Column(
+    Box(
         modifier = Modifier
             .fillMaxSize()
             .padding(horizontal = 30.dp)
-            .padding(bottom = 15.dp)
-            .background(Color.Transparent)
-            .verticalScroll(rememberScrollState())
+            .padding(bottom = 20.dp)
+            .background(Color.Transparent),
     ) {
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.item_title)
-
-        Spacer(modifier = Modifier.height(20.dp))
-        DropDownFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.title, titles)
-
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.first_name)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.middle_name)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.last_name)
-
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.address1)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.address2)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.address3)
-
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.city_town)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.country)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.state)
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.zip_postal_code)
-
-        Spacer(modifier = Modifier.height(20.dp))
-        SelectCountryInfo(labelText = R.string.country, keyboardController, focusManager)
+        SaveButtonACIFS(buttonText = R.string.save)
+
+        Column(
+            modifier = Modifier
+                .fillMaxSize()
+                .padding(horizontal = 0.dp)
+                .padding(bottom = 80.dp)
+                .background(Color.Transparent)
+                .verticalScroll(rememberScrollState())
+        ) {
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.item_title)
+
+            Spacer(modifier = Modifier.height(20.dp))
+            DropDownFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.title, titles)
+
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.first_name)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.middle_name)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.last_name)
+
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.address1)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.address2)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.address3)
+
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.city_town)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.country)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.state)
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.zip_postal_code)
+
+            Spacer(modifier = Modifier.height(20.dp))
+            SelectCountryInfo(labelText = R.string.country, keyboardController, focusManager)
 //        DropDownFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.country, countriesList)
 
 //        Spacer(modifier = Modifier.height(20.dp))
 //        DropDownFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.time_zone, timezoneList, topPadding = 10)
 
-        Spacer(modifier = Modifier.height(20.dp))
-        NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.company)
-        Spacer(modifier = Modifier.height(20.dp))
-        DropDownFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.gender, gender)
-
-        Spacer(modifier = Modifier.height(20.dp))
-        DatePickerACIFS(labelText = R.string.birthday) { selectedDate ->
+            Spacer(modifier = Modifier.height(20.dp))
+            NameTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.company)
+            Spacer(modifier = Modifier.height(20.dp))
+            DropDownFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.gender, gender)
 
-        }
+            Spacer(modifier = Modifier.height(20.dp))
+            DatePickerACIFS(labelText = R.string.birthday) { selectedDate ->
 
-        Spacer(modifier = Modifier.height(20.dp))
-        EmailFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, R.string.enter_email_address)
-        Spacer(modifier = Modifier.height(20.dp))
+            }
 
-//        OpenModalBottomSheet()
+            Spacer(modifier = Modifier.height(20.dp))
+            EmailFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, R.string.enter_email_address)
 
+            Spacer(modifier = Modifier.height(20.dp))
+            SelectCountryInfoPhoneIcon(keyboardController, focusManager, R.string.phone, R.string.ext)
+            Spacer(modifier = Modifier.height(20.dp))
+            NumberTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.mobile, placeholder = R.string.mobile, ImeAction.Next)
+            Spacer(modifier = Modifier.height(20.dp))
+            NumberTextFieldACIFS(keyboardController = keyboardController, focusManager = focusManager, labelText = R.string.fax, placeholder = R.string.fax, ImeAction.Done)
+        }
     }
 }
 
@@ -369,7 +368,7 @@ fun ColumnScope.DatePickerACIFS(
             value = selectedDate,
             onValueChange = {},
             textStyle = MaterialTheme.typography.displayMedium.copy(
-                color = colorResource(id = R.color.blue_text)
+                color = colorResource(id = R.color.gray_splash)
             ),
             readOnly = true,
             label = { Text(
@@ -382,7 +381,7 @@ fun ColumnScope.DatePickerACIFS(
                 Icon(
                     imageVector = Icons.Default.DateRange,
                     contentDescription = "Calendar",
-                    tint = colorResource(id = R.color.blue_text)
+                    tint = colorResource(id = R.color.gray_splash)
                     )
             },
             modifier = Modifier
@@ -508,7 +507,7 @@ fun ColumnScope.EmailFieldACIFS(
         ),
         keyboardOptions = KeyboardOptions(
             keyboardType = KeyboardType.Email,
-            imeAction = ImeAction.Done
+            imeAction = ImeAction.Next
         ),
         keyboardActions = KeyboardActions(
             onDone = {
@@ -551,26 +550,6 @@ fun countryCodeToFlag(countryCode: String): String {
     }.joinToString("")
 }
 
-@RequiresApi(Build.VERSION_CODES.O)
-fun getRepresentativeTimezoneId(countryCode: String): String {
-    val zone = ZoneId.of(countryCode)
-
-    // Get current offset for the timezone
-    val offsetToday = OffsetDateTime.now(zone).offset
-    val offset = String.format(Locale.US, "GMT%+03d:%02d", offsetToday.totalSeconds / 3600, (offsetToday.totalSeconds % 3600) / 60)
-
-    // Format name from country code
-    val tokens = countryCode.replace("_", " ").split("/")
-    val name = if (tokens.size == 2) {
-        val (region, city) = tokens
-        "$city ($region)"
-    } else {
-        countryCode
-    }
-
-    return "$offset $name"
-}
-
 fun getTimeZonesWithOffsets() : List<String> {
     val groupedTimeZone = TimeZone.getAvailableIDs().groupBy { timeZoneId ->
         Log.d("timeZoneId", "timeZoneId => $timeZoneId")
@@ -599,6 +578,7 @@ fun convertMillisToFormattedDate(millis: Long) : String {
 fun ColumnScope.ShowCountryListItem(
     item: CountryInfo,
     isSheetOpened: () -> Unit,
+    isCountryList: Boolean = true,
     onSelectedCountry: (String) -> Unit
 ) {
     val context = LocalContext.current
@@ -615,7 +595,11 @@ fun ColumnScope.ShowCountryListItem(
             .clickable {
 //                Toast.makeText(context, item.name, Toast.LENGTH_SHORT).show()
                 isSheetOpened.invoke()
-                onSelectedCountry.invoke(item.name)
+                if (isCountryList) {
+                    onSelectedCountry.invoke(item.name)
+                } else {
+                    onSelectedCountry.invoke(item.timezone)
+                }
             },
         horizontalArrangement = Arrangement.Start,
         verticalAlignment = Alignment.CenterVertically
@@ -668,19 +652,94 @@ fun ColumnScope.ShowCountryListItem(
     }
 }
 
+@Composable
+fun ColumnScope.ShowCountryCodeListItem(
+    item: CountryInfoCode,
+    isSheetOpened: () -> Unit,
+    onSelectedCountry: (String) -> Unit
+) {
+    val context = LocalContext.current
+    val icon = GetDrawable.getDrawable(context, item.flag)
+    Row(
+        modifier = Modifier
+            .border(
+                border = BorderStroke(1.dp, colorResource(id = R.color.white)),
+                shape = RoundedCornerShape(15.dp)
+            )
+            .clip(RoundedCornerShape(15.dp))
+            .background(colorResource(id = R.color.white))
+            .fillMaxWidth()
+            .clickable {
+//                Toast.makeText(context, item.name, Toast.LENGTH_SHORT).show()
+                isSheetOpened.invoke()
+                onSelectedCountry.invoke(item.code)
+            },
+        horizontalArrangement = Arrangement.Start,
+        verticalAlignment = Alignment.CenterVertically
+    ) {
+        Surface(
+            modifier = Modifier.padding(start = 10.dp),
+            color = Color.Transparent
+        ) {
+            Icon(
+                painter = painterResource(id = icon),
+                contentDescription = "Icon",
+                tint = Color.Unspecified,
+                modifier = Modifier
+                    .padding(vertical = 15.dp)
+                    .border(1.dp, colorResource(id = R.color.gray_border_textfield))
+                    .size(38.dp, 34.dp)
+//                    .clip(CircleShape)
+//                    .weight(1f)
+                    .paint(
+                        painter = painterResource(id = icon),
+                        contentScale = ContentScale.FillBounds
+                    ),
+//                colorFilter = ColorFilter.tint(colorResource(id = R.color.gray_splash)),
+            )
+        }
+
+        Surface(
+            modifier = Modifier.padding(start = 15.dp, end = 5.dp),
+            color = Color.Transparent
+        ) {
+            Column {
+                Text(
+                    text = item.name,
+                    style = MaterialTheme.typography.displayMedium,
+                    color = colorResource(id = R.color.gray_splash),
+//                    maxLines = 1,
+                    modifier = Modifier
+//                        .weight(1F)
+                )
+                Spacer(modifier = Modifier.height(1.dp))
+                Text(
+                    text = item.code,
+                    style = MaterialTheme.typography.displaySmall,
+                    color = colorResource(id = R.color.gray_text),
+                    modifier = Modifier
+//                        .weight(1F)
+                )
+            }
+        }
+    }
+}
+
 @OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class)
 @Composable
 fun ColumnScope.OpenModalBottomSheet(
     keyboardController: SoftwareKeyboardController?,
     focusManager: FocusManager,
     isSheetOpened: () -> Unit,
-    onSelectedCountry: (String) -> Unit
+    onSelectedCountry: (String) -> Unit,
+    isCountryList: Boolean = true
 ) {
     val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
     var isSheetOpen by remember { mutableStateOf(true) }
     var isActive by remember { mutableStateOf(false) }
     var searchText by remember { mutableStateOf("") }
-    
+    val countryList = if (isCountryList) countryInfoList else countryInfoListCode
+
    if (isSheetOpen) {
        ModalBottomSheet(
            onDismissRequest = {
@@ -768,13 +827,14 @@ fun ColumnScope.OpenModalBottomSheet(
                                .padding(top = 20.dp, bottom = 40.dp)
                        ) {
                            Log.d("countryInfoList", "countryInfoList => ${countryInfoList.size}")
-                           items(countryInfoList, itemContent = { item ->
+                           items(countryList, itemContent = { item ->
                                ShowCountryListItem(
                                    item = item,
                                    isSheetOpened = {
                                        isSheetOpen = false
                                        isSheetOpened.invoke()
-                                   }
+                                   },
+                                   isCountryList = isCountryList
                                ) { countryName ->
                                    onSelectedCountry.invoke(countryName)
                                }
@@ -851,6 +911,467 @@ fun ColumnScope.SelectCountryInfo(
                 selectedCountry = countryName
             }
         )
-//        isSheetOpened = false
     }
 }
+
+@Composable
+fun ColumnScope.SelectCountryInfoPhoneIcon(
+    keyboardController: SoftwareKeyboardController?,
+    focusManager: FocusManager,
+    labelText: Int,
+    extText: Int
+) {
+    var number by remember { mutableStateOf("") }
+    var extNumber by remember { mutableStateOf("") }
+    var selectedCountryCode by remember { mutableStateOf("+1") }
+    var isSheetOpened by remember { mutableStateOf(false) }
+    val context = LocalContext.current
+
+    Row(
+        modifier = Modifier
+            .fillMaxWidth(),
+    ) {
+        TextField(
+            value = number,
+            onValueChange = {
+                number = it
+            },
+            textStyle = MaterialTheme.typography.displayMedium.copy(
+                color = colorResource(id = R.color.gray_splash)
+            ),
+            leadingIcon = {
+                Text(
+                    text = selectedCountryCode,
+                    style = MaterialTheme.typography.displayMedium.copy(
+                        color = colorResource(id = R.color.gray_text)
+                    ),
+                    modifier = Modifier
+                        .align(Alignment.CenterVertically)
+                        .padding(start = 5.dp, bottom = 4.dp)
+                        .clickable {
+                            isSheetOpened = true
+                        }
+                )
+            },
+            modifier = Modifier
+                .height(60.dp)
+                .border(
+                    1.dp,
+                    color = colorResource(id = R.color.gray_border_textfield),
+                    shape = RoundedCornerShape(16.dp)
+                )
+                .background(
+                    color = colorResource(id = R.color.transparent),
+                    shape = RoundedCornerShape(16.dp)
+                )
+                .weight(1F)
+                .align(Alignment.CenterVertically),
+            placeholder = {
+                Text(text = stringResource(id = labelText),
+                    style = MaterialTheme.typography.displayMedium.copy(
+                        color = colorResource(id = R.color.gray_text)
+                    )
+                )
+            },
+            maxLines = 1,
+            colors = TextFieldDefaults.colors(
+                focusedLabelColor = colorResource(id = R.color.gray_splash),
+                unfocusedContainerColor = colorResource(id = R.color.transparent),
+                focusedContainerColor = colorResource(id = R.color.transparent),
+                focusedIndicatorColor = colorResource(id = R.color.transparent),
+                disabledIndicatorColor = colorResource(id = R.color.transparent),
+                unfocusedIndicatorColor = colorResource(id = R.color.transparent),
+                cursorColor = colorResource(id = R.color.gray_splash),
+            ),
+            keyboardOptions = KeyboardOptions(
+                keyboardType = KeyboardType.Number,
+                imeAction = ImeAction.Next
+            ),
+            keyboardActions = KeyboardActions(),
+        )
+
+        Spacer(modifier = Modifier.width(10.dp))
+
+        TextField(
+            value = extNumber,
+            onValueChange = {
+                extNumber = it
+            },
+            textStyle = MaterialTheme.typography.displayMedium,
+            modifier = Modifier
+                .width(100.dp)
+                .height(60.dp)
+                .border(
+                    1.dp,
+                    color = colorResource(id = R.color.gray_border_textfield),
+                    shape = RoundedCornerShape(16.dp)
+                )
+                .background(color = colorResource(id = R.color.transparent)),
+            shape = RoundedCornerShape(16.dp),
+            placeholder = {
+                Text(text = stringResource(id = extText),
+                    style = MaterialTheme.typography.displayMedium.copy(
+                        color = colorResource(id = R.color.gray_text)
+                    )
+                )
+            },
+            maxLines = 1,
+            colors = TextFieldDefaults.colors(
+                focusedLabelColor = colorResource(id = R.color.gray_splash),
+                unfocusedContainerColor = colorResource(id = R.color.transparent),
+                focusedContainerColor = colorResource(id = R.color.transparent),
+                focusedIndicatorColor = colorResource(id = R.color.transparent),
+                disabledIndicatorColor = colorResource(id = R.color.transparent),
+                unfocusedIndicatorColor = colorResource(id = R.color.transparent),
+                cursorColor = colorResource(id = R.color.gray_splash),
+            ),
+            keyboardOptions = KeyboardOptions(
+                keyboardType = KeyboardType.Number,
+                imeAction = ImeAction.Next
+            ),
+            keyboardActions = KeyboardActions(),
+        )
+    }
+
+    if (isSheetOpened) {
+        OpenModalBottomSheet(
+            keyboardController,
+            focusManager,
+            isSheetOpened = {isSheetOpened = false},
+            onSelectedCountry = { countryCode ->
+                selectedCountryCode = countryCode
+            },
+            isCountryList = false
+        )
+    }
+}
+
+@Composable
+fun ColumnScope.SelectCountryInfoPhoneCGPT(
+    keyboardController: SoftwareKeyboardController?,
+    focusManager: FocusManager,
+    labelText: Int,
+    extText: Int
+) {
+    var number by remember { mutableStateOf("") }
+    var extNumber by remember { mutableStateOf("") }
+    var selectedCountryCode by remember { mutableStateOf("+1") }
+    val context = LocalContext.current
+
+    Column(
+        modifier = Modifier
+            .fillMaxWidth()
+            .padding(0.dp)
+    ) {
+        // Label at the top
+        Text(
+            text = "Phone",
+            style = MaterialTheme.typography.bodyMedium,
+            color = Color.Gray,
+            modifier = Modifier.padding(bottom = 8.dp)
+        )
+
+        // Row containing country code and phone number input
+        Row(
+            modifier = Modifier
+                .fillMaxWidth()
+                .height(56.dp) // Standard height for text fields
+                .border(
+                    width = 1.dp,
+                    color = Color.LightGray,
+                    shape = RoundedCornerShape(8.dp)
+                )
+                .background(color = Color.White, shape = RoundedCornerShape(8.dp)),
+            verticalAlignment = Alignment.CenterVertically
+        ) {
+            // Clickable Country Code
+            TextButton(
+                onClick = {},
+                modifier = Modifier
+                    .padding(start = 4.dp)
+            ) {
+                Text(
+                    text = selectedCountryCode,
+                    style = MaterialTheme.typography.bodyMedium,
+                    color = Color.Black
+                )
+            }
+
+            Spacer(modifier = Modifier.width(0.dp)) // Small space between components
+
+            // Phone Number Input
+            TextField(
+                value = number,
+                onValueChange = { number = it },
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .padding(end = 8.dp), // Space for better alignment
+                textStyle = MaterialTheme.typography.bodyMedium.copy(
+                    color = Color.Black
+                ),
+                maxLines = 1,
+                placeholder = {
+                    Text(
+                        text = "Enter phone number",
+                        style = MaterialTheme.typography.bodyMedium.copy(color = Color.Gray)
+                    )
+                },
+                colors = TextFieldDefaults.colors(
+                    focusedContainerColor = Color.Transparent,
+                    unfocusedContainerColor = Color.Transparent,
+                    focusedIndicatorColor = Color.Transparent,
+                    unfocusedIndicatorColor = Color.Transparent,
+                    cursorColor = Color.Black
+                ),
+                keyboardOptions = KeyboardOptions(
+                    keyboardType = KeyboardType.Phone,
+                    imeAction = ImeAction.Done
+                ),
+                keyboardActions = KeyboardActions(
+                    onDone = { /* Handle Done action */ }
+                )
+            )
+        }
+    }
+
+}
+
+@Composable
+fun ColumnScope.SelectCountryInfoPhone(
+    keyboardController: SoftwareKeyboardController?,
+    focusManager: FocusManager,
+    labelText: Int,
+    extText: Int
+) {
+    var number by remember { mutableStateOf("") }
+    var extNumber by remember { mutableStateOf("") }
+    var selectedCountryCode by remember { mutableStateOf("+1") }
+    val context = LocalContext.current
+
+    Row(
+        modifier = Modifier
+            .fillMaxWidth(),
+    ) {
+        Column(
+            modifier = Modifier
+                .height(70.dp)
+                .border(
+                    1.dp,
+                    color = colorResource(id = R.color.gray_border_textfield),
+                    shape = RoundedCornerShape(16.dp)
+                )
+                .background(
+                    color = colorResource(id = R.color.transparent),
+                    shape = RoundedCornerShape(16.dp)
+                )
+                .weight(1F),
+            horizontalAlignment = Alignment.Start
+        ) {
+            Text(
+                text = "Phone",
+                style = MaterialTheme.typography.displayMedium,
+                color = colorResource(id = R.color.gray_text),
+                modifier = Modifier
+                    .padding(top = 8.dp, start = 16.dp)
+            )
+            Row(
+                horizontalArrangement = Arrangement.Start,
+                modifier = Modifier
+                    .background(Color.Transparent)
+            ) {
+                TextButton(onClick = { },
+                    modifier = Modifier
+                    ) {
+                    Text(
+                        text = selectedCountryCode,
+                        style = MaterialTheme.typography.displayMedium,
+                        color = colorResource(id = R.color.gray_text)
+                    )
+                }
+                TextField(
+                    value = number,
+                    onValueChange = {
+                        number = it
+                    },
+                    textStyle = MaterialTheme.typography.displayMedium.copy(
+                        color = colorResource(id = R.color.gray_splash)
+                    ),
+                    modifier = Modifier
+//                        .height(60.dp)
+                        .padding(end = 20.dp)
+                        .background(color = colorResource(id = R.color.transparent)),
+//                    label = {
+//                        Text(text = stringResource(id = labelText),
+//                            style = MaterialTheme.typography.displayMedium.copy(
+//                                color = colorResource(id = R.color.gray_text)
+//                            )
+//                        )
+//                    },
+                    maxLines = 1,
+                    colors = TextFieldDefaults.colors(
+                        focusedLabelColor = colorResource(id = R.color.gray_splash),
+                        unfocusedContainerColor = colorResource(id = R.color.transparent),
+                        focusedContainerColor = colorResource(id = R.color.transparent),
+                        focusedIndicatorColor = colorResource(id = R.color.transparent),
+                        disabledIndicatorColor = colorResource(id = R.color.transparent),
+                        unfocusedIndicatorColor = colorResource(id = R.color.transparent),
+                        cursorColor = colorResource(id = R.color.gray_splash),
+                    ),
+                    keyboardOptions = KeyboardOptions(
+                        keyboardType = KeyboardType.Number,
+                        imeAction = ImeAction.Next
+                    ),
+                    keyboardActions = KeyboardActions(
+                        onNext = {}
+                    ),
+                )
+            }
+        }
+
+        Spacer(modifier = Modifier.width(10.dp))
+
+        TextField(
+            value = extNumber,
+            onValueChange = {
+                extNumber = it
+            },
+            textStyle = MaterialTheme.typography.displayMedium,
+            modifier = Modifier
+                .width(100.dp)
+                .height(70.dp)
+                .border(
+                    1.dp,
+                    color = colorResource(id = R.color.gray_border_textfield),
+                    shape = RoundedCornerShape(16.dp)
+                )
+                .background(color = colorResource(id = R.color.transparent)),
+            shape = RoundedCornerShape(16.dp),
+            label = {
+                Text(text = stringResource(id = extText),
+                    style = MaterialTheme.typography.displayMedium.copy(
+                        color = colorResource(id = R.color.gray_text)
+                    )
+                )
+            },
+            maxLines = 1,
+            colors = TextFieldDefaults.colors(
+                focusedLabelColor = colorResource(id = R.color.gray_splash),
+                unfocusedContainerColor = colorResource(id = R.color.transparent),
+                focusedContainerColor = colorResource(id = R.color.transparent),
+                focusedIndicatorColor = colorResource(id = R.color.transparent),
+                disabledIndicatorColor = colorResource(id = R.color.transparent),
+                unfocusedIndicatorColor = colorResource(id = R.color.transparent),
+                cursorColor = colorResource(id = R.color.gray_splash),
+            ),
+            keyboardOptions = KeyboardOptions(
+                keyboardType = KeyboardType.Number,
+                imeAction = ImeAction.Next
+            ),
+            keyboardActions = KeyboardActions(
+                onNext = {}
+            ),
+        )
+    }
+}
+
+@Composable
+fun ColumnScope.NumberTextFieldACIFS(
+    keyboardController: SoftwareKeyboardController?,
+    focusManager: FocusManager,
+    labelText: Int,
+    placeholder: Int,
+    imeAction: ImeAction
+) {
+    var text by remember { mutableStateOf("") }
+
+    TextField(
+        value = text,
+        onValueChange = {
+            text = it
+        },
+        textStyle = MaterialTheme.typography.displayMedium,
+        modifier = Modifier
+            .align(Alignment.Start)
+            .fillMaxWidth()
+            .defaultMinSize(minHeight = 60.dp)
+            .wrapContentHeight()
+            .border(
+                1.dp,
+                color = colorResource(id = R.color.gray_border_textfield),
+                shape = RoundedCornerShape(16.dp)
+            )
+            .background(color = colorResource(id = R.color.transparent)),
+        shape = RoundedCornerShape(16.dp),
+//        placeholder = {
+//            Text(
+//                text = stringResource(id = placeholder),
+//                style = MaterialTheme.typography.titleSmall.copy(
+//                    color = colorResource(id = R.color.gray_text)
+//                )
+//            )
+//        },
+        label = {
+            Text(text = stringResource(id = labelText),
+                style = MaterialTheme.typography.titleSmall.copy(
+                    color = colorResource(id = R.color.gray_text)
+                )
+            )
+        },
+//        leadingIcon = {
+//            Image(
+//                painter = painterResource(id = R.drawable.profile_circle),
+//                contentDescription = "Title Logo",
+//                modifier = Modifier
+//                    .size(24.dp, 24.dp)
+//            )
+//        },
+        colors = TextFieldDefaults.colors(
+            focusedLabelColor = colorResource(id = R.color.gray_splash),
+            unfocusedContainerColor = colorResource(id = R.color.transparent),
+            focusedContainerColor = colorResource(id = R.color.transparent),
+            focusedIndicatorColor = colorResource(id = R.color.transparent),
+            disabledIndicatorColor = colorResource(id = R.color.transparent),
+            unfocusedIndicatorColor = colorResource(id = R.color.transparent),
+            cursorColor = colorResource(id = R.color.gray_splash),
+        ),
+        keyboardOptions = KeyboardOptions(
+            keyboardType = KeyboardType.Number,
+            imeAction = imeAction
+        ),
+        keyboardActions = KeyboardActions(
+            onDone = {
+                focusManager.clearFocus()
+                keyboardController?.hide()
+            },
+        ),
+    )
+}
+
+@Composable
+fun BoxScope.SaveButtonACIFS(buttonText: Int) {
+    Button(
+        modifier = Modifier
+            .background(colorResource(id = R.color.transparent))
+            .fillMaxWidth()
+            .height(60.dp)
+            .align(Alignment.BottomCenter)
+            .clickable() { },
+        onClick = {},
+        shape = RoundedCornerShape(15.dp),
+//            border = BorderStroke(25.dp, colorResource(id = R.color.black)),
+        colors = ButtonDefaults.buttonColors(
+            contentColor = colorResource(id = R.color.white),
+            containerColor = colorResource(id = R.color.red_login_button),
+        ),
+    )
+    {
+        Text(
+            text = stringResource(id = buttonText),
+            style = MaterialTheme.typography.bodyMedium.copy(
+                fontSize = 20.sp,
+                color = colorResource(id = R.color.white)
+            ),
+            textAlign = TextAlign.Center
+        )
+    }
+}

+ 2 - 2
app/src/main/java/com/fastest/pass/home/presentation/ui/components/AddDriverLicenseFormScreen.kt

@@ -304,7 +304,7 @@ fun ColumnScope.DatePickerADLFS(
             value = selectedDate,
             onValueChange = {},
             textStyle = MaterialTheme.typography.displayMedium.copy(
-                color = colorResource(id = R.color.blue_text)
+                color = colorResource(id = R.color.gray_splash)
             ),
             readOnly = true,
             label = { Text(
@@ -317,7 +317,7 @@ fun ColumnScope.DatePickerADLFS(
                 Icon(
                     imageVector = Icons.Default.DateRange,
                     contentDescription = "Calendar",
-                    tint = colorResource(id = R.color.blue_text)
+                    tint = colorResource(id = R.color.gray_splash)
                 )
             },
             modifier = Modifier

+ 2 - 2
app/src/main/java/com/fastest/pass/home/presentation/ui/components/AddPassportFormScreen.kt

@@ -300,7 +300,7 @@ fun ColumnScope.DatePickerAPFS(
             value = selectedDate,
             onValueChange = {},
             textStyle = MaterialTheme.typography.displayMedium.copy(
-                color = colorResource(id = R.color.blue_text)
+                color = colorResource(id = R.color.gray_splash)
             ),
             readOnly = true,
             label = { Text(
@@ -313,7 +313,7 @@ fun ColumnScope.DatePickerAPFS(
                 Icon(
                     imageVector = Icons.Default.DateRange,
                     contentDescription = "Calendar",
-                    tint = colorResource(id = R.color.blue_text)
+                    tint = colorResource(id = R.color.gray_splash)
                 )
             },
             modifier = Modifier

+ 4 - 0
app/src/main/res/values/strings.xml

@@ -121,5 +121,9 @@
     <string name="nationality">Nationality</string>
     <string name="issuing_authority">Issuing Authority</string>
     <string name="issued_date">Issued Date</string>
+    <string name="phone">Phone</string>
+    <string name="mobile">Mobile</string>
+    <string name="fax">Fax</string>
+    <string name="ext">ext.</string>
 
 </resources>