diff --git a/app/build.gradle b/app/build.gradle index debcfaf..30d01de 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ android { namespace = "otus.gpb.homework.viewandresources" defaultConfig { applicationId "otus.gpb.homework.viewandresources" - minSdk 23 + minSdk 26 targetSdk 35 versionCode 1 versionName "1.0" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 608e135..daa8228 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,6 +30,10 @@ + + \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/AdapterCart.kt b/app/src/main/java/otus/gpb/homework/viewandresources/AdapterCart.kt new file mode 100644 index 0000000..c8f53b4 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/viewandresources/AdapterCart.kt @@ -0,0 +1,37 @@ +package otus.gpb.homework.viewandresources + + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView + + +class AdapterCart : RecyclerView.Adapter() { + private var list = listOf() + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.text_row_item, parent, false) + + + + return ViewHolder(view) + } + + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val item = list.getOrNull(position) + item?.let { + holder.bind(item) + + } + + } + + override fun getItemCount(): Int = list.size + fun setData(newList: List) { + list = newList + + } + +} \ No newline at end of file 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..48608b3 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,49 @@ package otus.gpb.homework.viewandresources +import android.annotation.SuppressLint import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.view.View +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView class CartActivity : AppCompatActivity() { + private val adapter: AdapterCart by lazy { AdapterCart() } + + @SuppressLint("MissingInflatedId") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_cart) + + val recyclerView = findViewById(R.id.recyclerView) + recyclerView.adapter = adapter + adapter.setData(generate()) + findViewById(R.id.filledTextCounter).text = + buildString { + append(adapter.itemCount.toString()) + append(" items in your cart") + } + findViewById(R.id.close).setOnClickListener { finish() } + + + } + + fun generate() = run { + val list = mutableListOf() + repeat( + 4 + ) { + val item = Item( + + title = "Name ${it.inc()}", + price = 35, + category = "Category", + description = "Supporting line text lorem ipsum dolor sit amet, consectetur.", + photo = R.drawable.ic_launcher_background + ) + list.add(item) + + } + list.toList() } } \ 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..62996e4 100644 --- a/app/src/main/java/otus/gpb/homework/viewandresources/ContactsActivity.kt +++ b/app/src/main/java/otus/gpb/homework/viewandresources/ContactsActivity.kt @@ -7,5 +7,7 @@ class ContactsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_contacts) + + } } \ 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..543baa3 --- /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 title: String, + val price: Int, + val category: String, + val description: String, + val photo: Int +) \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/ViewHolder.kt b/app/src/main/java/otus/gpb/homework/viewandresources/ViewHolder.kt new file mode 100644 index 0000000..a283590 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/viewandresources/ViewHolder.kt @@ -0,0 +1,24 @@ +package otus.gpb.homework.viewandresources + +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView + +class ViewHolder(private val view: View) : RecyclerView.ViewHolder(view) { + private val title: TextView by lazy { view.findViewById(R.id.textViewTitle) } + private val category: TextView by lazy { view.findViewById(R.id.textViewCategory) } + private val description: TextView by lazy { view.findViewById(R.id.textViewDescription) } + private val price: TextView by lazy { view.findViewById(R.id.textViewPrice) } + private val photo: ImageView by lazy { view.findViewById(R.id.photo) } + fun bind(item: Item) { + title.text = item.title + price.text = buildString { + append("$") + append(item.price.toString()) + } + category.text = item.category + description.text = item.description + photo.setImageResource(item.photo) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_arrow_back_24.xml b/app/src/main/res/drawable/baseline_arrow_back_24.xml new file mode 100644 index 0000000..075e95d --- /dev/null +++ b/app/src/main/res/drawable/baseline_arrow_back_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/clip.xml b/app/src/main/res/drawable/clip.xml new file mode 100644 index 0000000..82d9618 --- /dev/null +++ b/app/src/main/res/drawable/clip.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_bookmark.xml b/app/src/main/res/drawable/ic_bookmark.xml new file mode 100644 index 0000000..f334500 --- /dev/null +++ b/app/src/main/res/drawable/ic_bookmark.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_cancel.xml b/app/src/main/res/drawable/ic_cancel.xml new file mode 100644 index 0000000..8447fc6 --- /dev/null +++ b/app/src/main/res/drawable/ic_cancel.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_mic.xml b/app/src/main/res/drawable/ic_mic.xml new file mode 100644 index 0000000..73e8785 --- /dev/null +++ b/app/src/main/res/drawable/ic_mic.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_mobile_friendly.xml b/app/src/main/res/drawable/ic_mobile_friendly.xml new file mode 100644 index 0000000..0ee0fd2 --- /dev/null +++ b/app/src/main/res/drawable/ic_mobile_friendly.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_no_image.xml b/app/src/main/res/drawable/ic_no_image.xml new file mode 100644 index 0000000..fd890ce --- /dev/null +++ b/app/src/main/res/drawable/ic_no_image.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_person.xml b/app/src/main/res/drawable/ic_person.xml new file mode 100644 index 0000000..90dad07 --- /dev/null +++ b/app/src/main/res/drawable/ic_person.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_smile.xml b/app/src/main/res/drawable/ic_smile.xml new file mode 100644 index 0000000..81ba132 --- /dev/null +++ b/app/src/main/res/drawable/ic_smile.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_sunny.xml b/app/src/main/res/drawable/ic_sunny.xml new file mode 100644 index 0000000..0ebf3d5 --- /dev/null +++ b/app/src/main/res/drawable/ic_sunny.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_today.xml b/app/src/main/res/drawable/ic_today.xml new file mode 100644 index 0000000..bd5ed86 --- /dev/null +++ b/app/src/main/res/drawable/ic_today.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/more_3_dots.xml b/app/src/main/res/drawable/more_3_dots.xml new file mode 100644 index 0000000..303b781 --- /dev/null +++ b/app/src/main/res/drawable/more_3_dots.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/font/roboto_medium.ttf b/app/src/main/res/font/roboto_medium.ttf new file mode 100644 index 0000000..3e87dbd Binary files /dev/null and b/app/src/main/res/font/roboto_medium.ttf differ diff --git a/app/src/main/res/font/roboto_regular.ttf b/app/src/main/res/font/roboto_regular.ttf new file mode 100644 index 0000000..440843a Binary files /dev/null and b/app/src/main/res/font/roboto_regular.ttf differ diff --git a/app/src/main/res/layout/activity_cart.xml b/app/src/main/res/layout/activity_cart.xml index 57dc4d4..f925fee 100644 --- a/app/src/main/res/layout/activity_cart.xml +++ b/app/src/main/res/layout/activity_cart.xml @@ -6,4 +6,157 @@ android:layout_height="match_parent" tools:context=".CartActivity"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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..7010609 100644 --- a/app/src/main/res/layout/activity_contacts.xml +++ b/app/src/main/res/layout/activity_contacts.xml @@ -1,9 +1,240 @@ + android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ 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..2a6fcd2 100644 --- a/app/src/main/res/layout/dialog_signin.xml +++ b/app/src/main/res/layout/dialog_signin.xml @@ -1,6 +1,99 @@ + android:layout_height="match_parent" + android:paddingBottom="22dp"> + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/footer_cart.xml b/app/src/main/res/layout/footer_cart.xml new file mode 100644 index 0000000..191adec --- /dev/null +++ b/app/src/main/res/layout/footer_cart.xml @@ -0,0 +1,28 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/text_row_item.xml b/app/src/main/res/layout/text_row_item.xml new file mode 100644 index 0000000..b49f472 --- /dev/null +++ b/app/src/main/res/layout/text_row_item.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/menu_toolbar.xml b/app/src/main/res/menu/menu_toolbar.xml new file mode 100644 index 0000000..428909a --- /dev/null +++ b/app/src/main/res/menu/menu_toolbar.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_toolbar_cart.xml b/app/src/main/res/menu/menu_toolbar_cart.xml new file mode 100644 index 0000000..35ad181 --- /dev/null +++ b/app/src/main/res/menu/menu_toolbar_cart.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index b236109..7fdab5c 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,7 +1,16 @@ - \ 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..ce63649 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,22 @@ #FF018786 #FF000000 #FFFFFFFF + #3E5F90 + #A7C8FF + + #04305F + #FFFFFF + + #191C20 + #E1E2E9 + + #C4C6CF + #43474E + + #6E5676 + #DBBCE1 + + #49454F + #E1E2E9 + \ No newline at end of file diff --git a/app/src/main/res/values/font_certs.xml b/app/src/main/res/values/font_certs.xml new file mode 100644 index 0000000..d2226ac --- /dev/null +++ b/app/src/main/res/values/font_certs.xml @@ -0,0 +1,17 @@ + + + + @array/com_google_android_gms_fonts_certs_dev + @array/com_google_android_gms_fonts_certs_prod + + + + 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 + + + diff --git a/app/src/main/res/values/preloaded_fonts.xml b/app/src/main/res/values/preloaded_fonts.xml new file mode 100644 index 0000000..3ad41da --- /dev/null +++ b/app/src/main/res/values/preloaded_fonts.xml @@ -0,0 +1,6 @@ + + + + @font/roboto_medium + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a7036ac..fc7b1e8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,43 @@ View & Resources + name + Select + Phone + Address + Date + Notes + City + Country + Save + Закрыть + Place order + Tax: + Shipping: + Subtotal: + Order Total: + Resest my password + Password + Login + List item + Category + Description + $ + items in your cart + clip + more + Cancel + Ivan Petrov + +1(234)567-8900 + Password + $175.50 + $140 + $25 + $10.50 + Mobile + 123, Lenin street, Apt.6 + Tokyo + Australia + Birthday + Loves burgers and french fries + Выберите телефон \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..fffd743 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 62ec3ea..a5ce966 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -2,7 +2,14 @@