diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 608e135..1b67e22 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,12 +15,16 @@
tools:targetApi="31">
+ android:parentActivityName=".MainActivity"
+ android:screenOrientation="portrait" />
+ android:parentActivityName=".MainActivity"
+ android:screenOrientation="portrait" />
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt b/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt
index b6cbf73..6940ed8 100644
--- a/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt
@@ -1,11 +1,40 @@
package otus.gpb.homework.viewandresources
-import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
+import android.view.Menu
+import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import otus.gpb.homework.viewandresources.ItemRepository.Companion.listItem
class CartActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_cart)
+
+ val toolbar = findViewById(R.id.cart_toolbar)
+
+ setSupportActionBar(toolbar)
+
+ supportActionBar?.apply {
+ setDisplayHomeAsUpEnabled(true)
+ setDisplayShowHomeEnabled(true)
+ }
+
+ val recyclerView = findViewById(R.id.recyclerView)
+ val itemAdapter = ItemAdapter(listItem)
+ recyclerView.layoutManager = LinearLayoutManager(this)
+ recyclerView.adapter = itemAdapter
+ recyclerView.addItemDecoration(RecyclerViewItemDecoration(this, R.drawable.divider))
+
+ var cartCount = findViewById(R.id.cart_count)
+ cartCount.text = "${itemAdapter.itemCount} items in your cart"
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu?): Boolean {
+ val inflate = menuInflater
+ inflate.inflate(R.menu.menu_cart, menu)
+ return super.onCreateOptionsMenu(menu)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/ContactsActivity.kt b/app/src/main/java/otus/gpb/homework/viewandresources/ContactsActivity.kt
index 25f1ffb..c0233da 100644
--- a/app/src/main/java/otus/gpb/homework/viewandresources/ContactsActivity.kt
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/ContactsActivity.kt
@@ -1,11 +1,38 @@
package otus.gpb.homework.viewandresources
-import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
+import android.view.Menu
+import android.widget.ArrayAdapter
+import android.widget.AutoCompleteTextView
+import androidx.appcompat.app.AppCompatActivity
class ContactsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_contacts)
+
+ val autoCompleteTextView: AutoCompleteTextView = findViewById(R.id.autoCompleteTextView)
+
+ val phonesType = resources.getStringArray(R.array.phones)
+ val arrayAdapter = ArrayAdapter(this, R.layout.dropdown_item, phonesType)
+
+ autoCompleteTextView.setAdapter(arrayAdapter)
+
+ val toolbar = findViewById(R.id.contacts_toolbar)
+
+ setSupportActionBar(toolbar)
+
+ supportActionBar?.apply {
+ setDisplayHomeAsUpEnabled(true)
+ setDisplayShowHomeEnabled(true)
+ }
+
+
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu?): Boolean {
+ val inflate = menuInflater
+ inflate.inflate(R.menu.menu_contacts, menu)
+ return super.onCreateOptionsMenu(menu)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/Item.kt b/app/src/main/java/otus/gpb/homework/viewandresources/Item.kt
new file mode 100644
index 0000000..d380cfa
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/Item.kt
@@ -0,0 +1,10 @@
+package otus.gpb.homework.viewandresources
+
+data class Item(
+ val id: Long,
+ val title: String,
+ val category: String,
+ val price: Double,
+ val description: String,
+ val photo: String
+)
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/ItemAdapter.kt b/app/src/main/java/otus/gpb/homework/viewandresources/ItemAdapter.kt
new file mode 100644
index 0000000..cb8d40d
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/ItemAdapter.kt
@@ -0,0 +1,23 @@
+package otus.gpb.homework.viewandresources
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+
+class ItemAdapter(private val dataItem: List- ) : RecyclerView.Adapter() {
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view = LayoutInflater.from(parent.context)
+ .inflate(R.layout.cart_item, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun getItemCount() = dataItem.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val item = dataItem[position]
+ holder.itemTitle.text = item.title
+ holder.itemDescription.text = item.description
+ holder.itemCategory.text = item.category
+ holder.itemPrice.text = "\$${item.price}"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/ItemRepository.kt b/app/src/main/java/otus/gpb/homework/viewandresources/ItemRepository.kt
new file mode 100644
index 0000000..3d00c83
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/ItemRepository.kt
@@ -0,0 +1,13 @@
+package otus.gpb.homework.viewandresources
+
+class ItemRepository {
+
+ companion object{
+ val listItem = listOf(
+ Item(1, "title", "category",35.0, "description", ""),
+ Item(2, "title", "category",15.5, "description", ""),
+ Item(3, "title", "category",20.2, "description", "")
+ )
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/ItemViewHolder.kt b/app/src/main/java/otus/gpb/homework/viewandresources/ItemViewHolder.kt
new file mode 100644
index 0000000..d5c7800
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/ItemViewHolder.kt
@@ -0,0 +1,16 @@
+package otus.gpb.homework.viewandresources
+
+import android.view.View
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+
+class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+
+ val itemTitle: TextView = itemView.findViewById(R.id.cart_item_title)
+ val itemImage: ImageView = itemView.findViewById(R.id.cart_item_image)
+ val itemCategory: TextView = itemView.findViewById(R.id.cart_item_category)
+ val itemDescription: TextView = itemView.findViewById(R.id.cart_item_description)
+ val itemPrice: TextView = itemView.findViewById(R.id.cart_item_price)
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/RecyclerViewItemDecoration.kt b/app/src/main/java/otus/gpb/homework/viewandresources/RecyclerViewItemDecoration.kt
new file mode 100644
index 0000000..b405f4a
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/RecyclerViewItemDecoration.kt
@@ -0,0 +1,35 @@
+package otus.gpb.homework.viewandresources
+
+import android.content.Context
+import android.graphics.Canvas
+import android.graphics.drawable.Drawable
+import androidx.core.content.ContextCompat
+import androidx.recyclerview.widget.RecyclerView
+
+class RecyclerViewItemDecoration(
+ context: Context,
+ resId: Int
+) : RecyclerView.ItemDecoration() {
+
+ private var mDivider: Drawable = ContextCompat.getDrawable(context, resId)!!
+
+ override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
+ super.onDraw(c, parent, state)
+
+ val dividerLeft = 32
+
+ val dividerRight = parent.width - 32
+
+ for (i in 0 until parent.childCount) {
+
+ val childAt = parent.getChildAt(i)
+ val params = childAt.layoutParams as RecyclerView.LayoutParams
+
+ val dividerTop: Int = childAt.bottom + params.bottomMargin
+ val dividerBottom: Int = dividerTop + mDivider.intrinsicHeight
+
+ mDivider.setBounds(dividerLeft, dividerTop, dividerRight, dividerBottom)
+ mDivider.draw(c)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/arrow.xml b/app/src/main/res/drawable/arrow.xml
new file mode 100644
index 0000000..ae42f2d
--- /dev/null
+++ b/app/src/main/res/drawable/arrow.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/calendar.xml b/app/src/main/res/drawable/calendar.xml
new file mode 100644
index 0000000..21677df
--- /dev/null
+++ b/app/src/main/res/drawable/calendar.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/clip.xml b/app/src/main/res/drawable/clip.xml
new file mode 100644
index 0000000..1bd0ff3
--- /dev/null
+++ b/app/src/main/res/drawable/clip.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/divider.xml b/app/src/main/res/drawable/divider.xml
new file mode 100644
index 0000000..1ef82e9
--- /dev/null
+++ b/app/src/main/res/drawable/divider.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/flag.xml b/app/src/main/res/drawable/flag.xml
new file mode 100644
index 0000000..74b32d6
--- /dev/null
+++ b/app/src/main/res/drawable/flag.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/image.png b/app/src/main/res/drawable/image.png
new file mode 100644
index 0000000..3ff684e
Binary files /dev/null and b/app/src/main/res/drawable/image.png differ
diff --git a/app/src/main/res/drawable/man.xml b/app/src/main/res/drawable/man.xml
new file mode 100644
index 0000000..3e963eb
--- /dev/null
+++ b/app/src/main/res/drawable/man.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/microphone.xml b/app/src/main/res/drawable/microphone.xml
new file mode 100644
index 0000000..c639a13
--- /dev/null
+++ b/app/src/main/res/drawable/microphone.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/mood.xml b/app/src/main/res/drawable/mood.xml
new file mode 100644
index 0000000..4b93dfd
--- /dev/null
+++ b/app/src/main/res/drawable/mood.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/phone.xml b/app/src/main/res/drawable/phone.xml
new file mode 100644
index 0000000..20b070c
--- /dev/null
+++ b/app/src/main/res/drawable/phone.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/sun.xml b/app/src/main/res/drawable/sun.xml
new file mode 100644
index 0000000..db11734
--- /dev/null
+++ b/app/src/main/res/drawable/sun.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/x.xml b/app/src/main/res/drawable/x.xml
new file mode 100644
index 0000000..c4d2575
--- /dev/null
+++ b/app/src/main/res/drawable/x.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/font/roboto.ttf b/app/src/main/res/font/roboto.ttf
new file mode 100644
index 0000000..3313686
Binary files /dev/null and b/app/src/main/res/font/roboto.ttf differ
diff --git a/app/src/main/res/layout/activity_cart.xml b/app/src/main/res/layout/activity_cart.xml
index 57dc4d4..52483c8 100644
--- a/app/src/main/res/layout/activity_cart.xml
+++ b/app/src/main/res/layout/activity_cart.xml
@@ -1,9 +1,184 @@
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contacts.xml b/app/src/main/res/layout/activity_contacts.xml
index 6ef087b..e9823c8 100644
--- a/app/src/main/res/layout/activity_contacts.xml
+++ b/app/src/main/res/layout/activity_contacts.xml
@@ -1,9 +1,227 @@
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cart_item.xml b/app/src/main/res/layout/cart_item.xml
new file mode 100644
index 0000000..aad6203
--- /dev/null
+++ b/app/src/main/res/layout/cart_item.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_signin.xml b/app/src/main/res/layout/dialog_signin.xml
index 77d9ef6..e1d7162 100644
--- a/app/src/main/res/layout/dialog_signin.xml
+++ b/app/src/main/res/layout/dialog_signin.xml
@@ -1,6 +1,107 @@
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dropdown_item.xml b/app/src/main/res/layout/dropdown_item.xml
new file mode 100644
index 0000000..a403863
--- /dev/null
+++ b/app/src/main/res/layout/dropdown_item.xml
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_cart.xml b/app/src/main/res/menu/menu_cart.xml
new file mode 100644
index 0000000..125f4e7
--- /dev/null
+++ b/app/src/main/res/menu/menu_cart.xml
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_contacts.xml b/app/src/main/res/menu/menu_contacts.xml
new file mode 100644
index 0000000..a489ae8
--- /dev/null
+++ b/app/src/main/res/menu/menu_contacts.xml
@@ -0,0 +1,23 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/colors-night.xml b/app/src/main/res/values-night/colors-night.xml
new file mode 100644
index 0000000..d098bc1
--- /dev/null
+++ b/app/src/main/res/values-night/colors-night.xml
@@ -0,0 +1,14 @@
+
+
+ #C4C6CF
+ #E1E2E9
+ #8E9199
+ #A7C8FF
+ #33353A
+ #BDC7DC
+ #282A2F
+ #111318
+ #E1E2E9
+ #04305F
+ #43474E
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127..407856b 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,4 +7,16 @@
#FF018786
#FF000000
#FFFFFFFF
+ #43474E
+ #191C20
+ #74777F
+ #3E5F90
+ #E1E2E9
+ #555F71
+ #E7E8EE
+ #F9F9FF
+ #191C20
+ #6E5676
+ #FFFFFF
+ #C4C6CF
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a7036ac..e97e163 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,38 @@
View & Resources
+ Profile
+ Login
+ Login
+ Password
+ Reset my password
+ Login
+ Cancel
+ Ivan Petrov
+ Name
+ Phone
+ Address
+ City
+ Country
+ Date
+ Notes
+ Save
+ Place order
+ Contacts
+ Main
+ Clip
+ Cart
+ Exit
+ Order Total:
+ Subtotal:
+ Shipping:
+ Tax:
+ List Item 1
+ Category
+ Supporting line text lorem ipsum dolor sit amet, consectetur.
+
+
+
- Mobile
+ - Home
+ - Work
+
\ No newline at end of file