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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +