Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ android {
kotlinOptions {
jvmTarget = '17'
}

buildFeatures{
viewBinding = true
}
}

dependencies {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,80 @@
package otus.gpb.homework.viewandresources

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import otus.gpb.homework.viewandresources.databinding.ActivityCartBinding


class CartActivity : AppCompatActivity() {

private var orderTotal = 0.0
private var subtotal = 0
private var shipping = 25.0
private var tax = 10.50
private val listItem = mutableListOf<CartItem>()
private val binding by lazy {
ActivityCartBinding.inflate(layoutInflater)
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_cart)
setContentView(binding.root)
setSupportActionBar(binding.myToolbar)
getSupportActionBar()?.setDisplayHomeAsUpEnabled(true)
getSupportActionBar()?.setDisplayShowHomeEnabled(true)
binding.myToolbar.setNavigationOnClickListener() {
val intent = MainActivity.newIntent(this)
startActivity(intent)
}
createListCartItem()
val adapter = ListAdapter()
adapter.list = listItem
binding.textViewCountItems.setText(String.format(
this.resources.getString(R.string.count_items),
adapter.list.size
))
binding.recyclerViewCartList.adapter = adapter
calculateSubtotal()
calculateOrderTotal()
setResults()
}

private fun calculateSubtotal(){
var sum = 0
for(cartItem in listItem){
sum += cartItem.price
}
subtotal = sum
}

private fun calculateOrderTotal(){
orderTotal = tax + shipping + subtotal
}
private fun setResults(){
binding.textViewShipping.setText(shipping.toString())
binding.textViewSubtotal.setText(subtotal.toString())
binding.textViewOrderTotal.setText(orderTotal.toString())
binding.textViewTax.setText(tax.toString())
}

private fun createListCartItem() {
for(i in 1..4){
val cartItem = CartItem(i, 35, CATEGORY, DESCRIPTION, IMAGE)
listItem.add(cartItem)
}
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_cart, menu)
return true
}

companion object{
private const val DESCRIPTION = "Supporting line text lorem ipsum..."
private const val CATEGORY = "Category"
private const val IMAGE = "drawable/food_steak"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package otus.gpb.homework.viewandresources

class CartItem(
val index: Int,
val price: Int,
val category: String,
val description: String,
val image: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package otus.gpb.homework.viewandresources

import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView.ViewHolder

class CartItemViewHolder(view: View): ViewHolder(view){

val textViewCategory = view.findViewById<TextView>(R.id.textViewCategory)
val textViewDescription = view.findViewById<TextView>(R.id.textViewDescription)
val textViewPrice = view.findViewById<TextView>(R.id.textViewPrice)
val textViewNumber = view.findViewById<TextView>(R.id.textViewNumber)
val imageView = view.findViewById<ImageView>(R.id.imageView)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,29 @@ package otus.gpb.homework.viewandresources

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import otus.gpb.homework.viewandresources.databinding.ActivityContactsBinding

class ContactsActivity : AppCompatActivity() {

private val binding by lazy {
ActivityContactsBinding.inflate(layoutInflater)
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_contacts)
setContentView(binding.root)
setSupportActionBar(binding.myToolbar)
getSupportActionBar()?.setDisplayHomeAsUpEnabled(true)
getSupportActionBar()?.setDisplayShowHomeEnabled(true)
binding.myToolbar.setNavigationOnClickListener() {
val intent = MainActivity.newIntent(this)
startActivity(intent)
}
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_contacts, menu)
return true
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package otus.gpb.homework.viewandresources

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView.Adapter
import otus.gpb.homework.viewandresources.databinding.ActivityCartBinding
import otus.gpb.homework.viewandresources.databinding.CartItemBinding

class ListAdapter: Adapter<CartItemViewHolder>() {

var list = listOf<CartItem>()

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CartItemViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.cart_item, parent, false)
return CartItemViewHolder(view)
}

override fun onBindViewHolder(holder: CartItemViewHolder, position: Int) {
val cartItem = list[position]
holder.textViewNumber.setText(String.format(
holder.itemView.context.resources.getString(R.string.number_of_list),
cartItem.index
))
holder.textViewPrice.setText(String.format(
holder.itemView.context.resources.getString(R.string.price),
cartItem.price
))
holder.textViewDescription.setText(cartItem.description)
holder.textViewCategory.setText(cartItem.category)
val resourceId = holder.itemView.context.resources.getIdentifier(cartItem.image, "drawable", holder.itemView.context.packageName)
holder.imageView.setImageResource(resourceId)

}

override fun getItemCount(): Int {
return list.size
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package otus.gpb.homework.viewandresources

import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.widget.Button
Expand All @@ -24,4 +25,10 @@ class MainActivity : AppCompatActivity() {
.show()
}
}

companion object{
fun newIntent(context: Context): Intent {
return Intent(context, MainActivity::class.java)
}
}
}
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/account.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,4A4,4 0,0 1,16 8A4,4 0,0 1,12 12A4,4 0,0 1,8 8A4,4 0,0 1,12 4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/bookmark_outline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M17,18L12,15.82L7,18V5H17M17,3H7A2,2 0,0 0,5 5V21L12,18L19,21V5C19,3.89 18.1,3 17,3Z"/>
</vector>
15 changes: 15 additions & 0 deletions app/src/main/res/drawable/border_bottom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle" >
<stroke
android:width="2dp"
android:color="@color/gray_light" />
</shape>
</item>

</layer-list>
7 changes: 7 additions & 0 deletions app/src/main/res/drawable/border_gray_dark.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp"
android:color="@color/gray_dark"/>
<corners android:radius="40dp"/>
</shape>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/calendar_today.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M7,10H12V15H7M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0,0 0,5 21H19A2,2 0,0 0,21 19V5A2,2 0,0 0,19 3Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/cellphone_check.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M14.54,23H7C5.9,23 5,22.11 5,21V3C5,1.89 5.89,1 7,1H17C18.1,1 19,1.89 19,3V13C18.3,13 17.63,13.13 17,13.35V5H7V19H13C13,20.54 13.58,21.94 14.54,23M17.75,22.16L15,19.16L16.16,18L17.75,19.59L21.34,16L22.5,17.41L17.75,22.16"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/close_circle_outline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/dots_vertical.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,16A2,2 0,0 1,14 18A2,2 0,0 1,12 20A2,2 0,0 1,10 18A2,2 0,0 1,12 16M12,10A2,2 0,0 1,14 12A2,2 0,0 1,12 14A2,2 0,0 1,10 12A2,2 0,0 1,12 10M12,4A2,2 0,0 1,14 6A2,2 0,0 1,12 8A2,2 0,0 1,10 6A2,2 0,0 1,12 4Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/emoticon_excited_outline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/primary"
android:pathData="M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22A10,10 0,0 0,22 12C22,6.47 17.5,2 12,2M12,20A8,8 0,0 1,4 12A8,8 0,0 1,12 4A8,8 0,0 1,20 12A8,8 0,0 1,12 20M13,9.94L14.06,11L15.12,9.94L16.18,11L17.24,9.94L15.12,7.82L13,9.94M8.88,9.94L9.94,11L11,9.94L8.88,7.82L6.76,9.94L7.82,11L8.88,9.94M12,17.5C14.33,17.5 16.31,16.04 17.11,14H6.89C7.69,16.04 9.67,17.5 12,17.5Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/food_steak.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/image"
android:pathData="M11.9,2C8,2 4.9,5.4 5,9.3C5.1,11.9 6.6,14.1 8.7,15.2C10.1,15.9 11,17.3 11,18.8V19C11,20.7 12.3,22 14,22C18,22 19,17 19,9C19,9 19,2 11.9,2M14,20C13.4,20 13,19.6 13,19V18.8C13,16.6 11.7,14.5 9.7,13.4C8.1,12.6 7.1,11 7,9.2C7,7.9 7.5,6.5 8.4,5.5C9.3,4.5 10.6,4 11.8,4C16.7,4 17,8.2 17,9C17,18.9 15.3,20 14,20M15.8,7.6L8.3,10.3C8.1,10 8,9.6 8,9.1C8,8.4 8.2,7.8 8.5,7.1L13.7,5.2C14.9,5.8 15.5,6.7 15.8,7.6M12.9,15.1L15.7,14.1C15.6,15.6 15.3,16.7 15.1,17.4L13.8,17.9C13.8,16.9 13.5,16 12.9,15.1M16,9.2C16,10.4 16,11.5 15.9,12.4L11.9,13.9C11.4,13.4 10.8,12.9 10.1,12.6C9.7,12.4 9.3,12.1 9,11.8L16,9.2Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/map_marker_outline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,6.5A2.5,2.5 0,0 1,14.5 9A2.5,2.5 0,0 1,12 11.5A2.5,2.5 0,0 1,9.5 9A2.5,2.5 0,0 1,12 6.5M12,2A7,7 0,0 1,19 9C19,14.25 12,22 12,22C12,22 5,14.25 5,9A7,7 0,0 1,12 2M12,4A5,5 0,0 0,7 9C7,10 7,12 12,18.71C17,12 17,10 17,9A5,5 0,0 0,12 4Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/menu_down.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M7,10L12,15L17,10H7Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/microphone.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,2A3,3 0,0 1,15 5V11A3,3 0,0 1,12 14A3,3 0,0 1,9 11V5A3,3 0,0 1,12 2M19,11C19,14.53 16.39,17.44 13,17.93V21H11V17.93C7.61,17.44 5,14.53 5,11H7A5,5 0,0 0,12 16A5,5 0,0 0,17 11H19Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/paperclip.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M16.5,6V17.5A4,4 0,0 1,12.5 21.5A4,4 0,0 1,8.5 17.5V5A2.5,2.5 0,0 1,11 2.5A2.5,2.5 0,0 1,13.5 5V15.5A1,1 0,0 1,12.5 16.5A1,1 0,0 1,11.5 15.5V6H10V15.5A2.5,2.5 0,0 0,12.5 18A2.5,2.5 0,0 0,15 15.5V5A4,4 0,0 0,11 1A4,4 0,0 0,7 5V17.5A5.5,5.5 0,0 0,12.5 23A5.5,5.5 0,0 0,18 17.5V6H16.5Z"/>
</vector>
6 changes: 6 additions & 0 deletions app/src/main/res/drawable/rectangle_gray.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"/>
<solid android:color="@color/background_image"/>
</shape>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/white_balance_sunny.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M3.55,19.09L4.96,20.5L6.76,18.71L5.34,17.29M12,6C8.69,6 6,8.69 6,12S8.69,18 12,18 18,15.31 18,12C18,8.68 15.31,6 12,6M20,13H23V11H20M17.24,18.71L19.04,20.5L20.45,19.09L18.66,17.29M20.45,5L19.04,3.6L17.24,5.39L18.66,6.81M13,1H11V4H13M6.76,5.39L4.96,3.6L3.55,5L5.34,6.81L6.76,5.39M1,13H4V11H1M13,20H11V23H13"/>
</vector>
Loading