diff --git a/app/build.gradle b/app/build.gradle
index 4332a31..89d87f8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,10 +29,13 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
+ buildFeatures {
+ viewBinding = true
+ }
}
dependencies {
- implementation 'androidx.core:core-ktx:1.9.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 608e135..c2a3db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,12 +15,12 @@
tools:targetApi="31">
+ android:exported="false"
+ android:label="Cart" />
+ android:exported="false"
+ android:label="Contacts" />
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..1e73d43 100644
--- a/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/CartActivity.kt
@@ -7,5 +7,6 @@ class CartActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_cart)
+ supportActionBar?.hide()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/viewandresources/CartItem.kt b/app/src/main/java/otus/gpb/homework/viewandresources/CartItem.kt
new file mode 100644
index 0000000..f93a161
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/viewandresources/CartItem.kt
@@ -0,0 +1,84 @@
+package otus.gpb.homework.viewandresources
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.content.withStyledAttributes
+import otus.gpb.homework.viewandresources.databinding.CartItemBinding
+
+enum class CartItemType { ITEM, TOTAL, SUBTOTAL }
+
+class CartItem @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+ private val binding: CartItemBinding
+
+ var itemType: CartItemType = CartItemType.ITEM
+
+ var name: String = ""
+ set(value) {
+ field = value
+ binding.name.text = value
+ }
+ var caption: String = ""
+ set(value) {
+ field = value
+ binding.caption.text = value
+ }
+
+ var price: Float = 0F
+ set(value) {
+ field = value
+ val s = "${if (itemType == CartItemType.ITEM) "\$US, " else ""}${"%.2f".format(value)}"
+ binding.price.text = s
+ }
+
+ var imageRes: Int = 0
+ set(value) {
+ field = value
+ binding.image.setImageResource(value)
+ }
+
+ init {
+ binding = CartItemBinding.inflate(LayoutInflater.from(context), this)
+ initView(attrs, defStyleAttr)
+ }
+
+ private fun initView(attrs: AttributeSet?, defStyleAttr: Int) {
+ val attrsRetrieve = intArrayOf(
+ android.R.attr.layout_width,
+ android.R.attr.layout_height
+ ).apply { sort() }
+
+ context.withStyledAttributes(attrs, attrsRetrieve, defStyleAttr) {
+ layoutParams = LayoutParams(
+ getInt(attrsRetrieve.indexOf(android.R.attr.layout_width), LayoutParams.WRAP_CONTENT),
+ getInt(attrsRetrieve.indexOf(android.R.attr.layout_height), LayoutParams.WRAP_CONTENT),
+ )
+ }
+
+ context.withStyledAttributes(attrs, R.styleable.CartItem, defStyleAttr) {
+ itemType = CartItemType.values()[getInt(R.styleable.CartItem_cart_item_type, 0)]
+ name = getString(R.styleable.CartItem_cart_item_name) ?: ""
+ price = getFloat(R.styleable.CartItem_cart_item_price, 0F)
+
+ if (itemType == CartItemType.ITEM) {
+ caption = getString(R.styleable.CartItem_cart_item_caption) ?: ""
+ imageRes = getResourceId(R.styleable.CartItem_cart_item_image, 0)
+ } else {
+ binding.image.visibility = GONE
+ binding.caption.visibility = GONE
+ binding.close.visibility = GONE
+ }
+
+ if (itemType == CartItemType.TOTAL) {
+ binding.name.setTextAppearance(R.style.MyLabel_HeadAccent)
+ binding.price.setTextAppearance(R.style.MyLabel_HeadAccent)
+ }
+
+ }
+ }
+}
\ 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..49d515e 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,12 @@
package otus.gpb.homework.viewandresources
-import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
class ContactsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_contacts)
+ supportActionBar?.hide()
}
}
\ No newline at end of file
diff --git a/app/src/main/res/color/stroke_colors.xml b/app/src/main/res/color/stroke_colors.xml
new file mode 100644
index 0000000..911e8f4
--- /dev/null
+++ b/app/src/main/res/color/stroke_colors.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/color/stroke_colors_dlg.xml b/app/src/main/res/color/stroke_colors_dlg.xml
new file mode 100644
index 0000000..6b6abd1
--- /dev/null
+++ b/app/src/main/res/color/stroke_colors_dlg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/account.xml b/app/src/main/res/drawable/account.xml
new file mode 100644
index 0000000..fdd209f
--- /dev/null
+++ b/app/src/main/res/drawable/account.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/app/src/main/res/drawable/calendar.xml b/app/src/main/res/drawable/calendar.xml
new file mode 100644
index 0000000..5c93a21
--- /dev/null
+++ b/app/src/main/res/drawable/calendar.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/close.xml b/app/src/main/res/drawable/close.xml
new file mode 100644
index 0000000..6091296
--- /dev/null
+++ b/app/src/main/res/drawable/close.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/app/src/main/res/drawable/credit_card_chip_outline.xml b/app/src/main/res/drawable/credit_card_chip_outline.xml
new file mode 100644
index 0000000..3ec2857
--- /dev/null
+++ b/app/src/main/res/drawable/credit_card_chip_outline.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/dots_vertical.xml b/app/src/main/res/drawable/dots_vertical.xml
new file mode 100644
index 0000000..5a3d1fd
--- /dev/null
+++ b/app/src/main/res/drawable/dots_vertical.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/item1.png b/app/src/main/res/drawable/item1.png
new file mode 100644
index 0000000..b795849
Binary files /dev/null and b/app/src/main/res/drawable/item1.png differ
diff --git a/app/src/main/res/drawable/item2.png b/app/src/main/res/drawable/item2.png
new file mode 100644
index 0000000..e1f0cd0
Binary files /dev/null and b/app/src/main/res/drawable/item2.png differ
diff --git a/app/src/main/res/drawable/item3.png b/app/src/main/res/drawable/item3.png
new file mode 100644
index 0000000..4f1ddd3
Binary files /dev/null and b/app/src/main/res/drawable/item3.png differ
diff --git a/app/src/main/res/drawable/item4.png b/app/src/main/res/drawable/item4.png
new file mode 100644
index 0000000..063a0e5
Binary files /dev/null and b/app/src/main/res/drawable/item4.png differ
diff --git a/app/src/main/res/drawable/magnify.xml b/app/src/main/res/drawable/magnify.xml
new file mode 100644
index 0000000..3b5ca83
--- /dev/null
+++ b/app/src/main/res/drawable/magnify.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/map_marker.xml b/app/src/main/res/drawable/map_marker.xml
new file mode 100644
index 0000000..3af16ba
--- /dev/null
+++ b/app/src/main/res/drawable/map_marker.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/menu_down.xml b/app/src/main/res/drawable/menu_down.xml
new file mode 100644
index 0000000..22bfc56
--- /dev/null
+++ b/app/src/main/res/drawable/menu_down.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/pencil.xml b/app/src/main/res/drawable/pencil.xml
new file mode 100644
index 0000000..404c172
--- /dev/null
+++ b/app/src/main/res/drawable/pencil.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..dc3a02e
--- /dev/null
+++ b/app/src/main/res/drawable/phone.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/tag_heart.xml b/app/src/main/res/drawable/tag_heart.xml
new file mode 100644
index 0000000..9931fc5
--- /dev/null
+++ b/app/src/main/res/drawable/tag_heart.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..15f1155 100644
--- a/app/src/main/res/layout/activity_cart.xml
+++ b/app/src/main/res/layout/activity_cart.xml
@@ -1,9 +1,155 @@
-
-
\ 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..ed33c95 100644
--- a/app/src/main/res/layout/activity_contacts.xml
+++ b/app/src/main/res/layout/activity_contacts.xml
@@ -1,9 +1,232 @@
-
-
\ 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..aff2243
--- /dev/null
+++ b/app/src/main/res/layout/cart_item.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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..89a42f3 100644
--- a/app/src/main/res/layout/dialog_signin.xml
+++ b/app/src/main/res/layout/dialog_signin.xml
@@ -1,6 +1,127 @@
+ android:layout_height="wrap_content">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/cart_menu.xml b/app/src/main/res/menu/cart_menu.xml
new file mode 100644
index 0000000..b698dd8
--- /dev/null
+++ b/app/src/main/res/menu/cart_menu.xml
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/contacts_menu.xml b/app/src/main/res/menu/contacts_menu.xml
new file mode 100644
index 0000000..8fd98b9
--- /dev/null
+++ b/app/src/main/res/menu/contacts_menu.xml
@@ -0,0 +1,15 @@
+
+
\ 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 266a56d..963facd 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -12,5 +12,22 @@
- ?attr/colorPrimaryVariant
+ - @color/dark_dark_gray
+ - @color/light_gray_88
+ - @color/gray_88
+ - @color/dark_dark_gray
+ - @color/dark_gray
+ - @color/light_blue
+ - ?attr/iconColor
+ - ?attr/iconColor
+ - @color/light_green2
+ - ?attr/shadeColor
+ - ?attr/mainColor
+ - ?attr/backgroundColor
+ - ?attr/mainColor
+ - @color/light_green2
+ - @color/yellow
+ - @color/light_blue
+ - ?attr/mainColor
\ No newline at end of file
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
new file mode 100644
index 0000000..eda3c6e
--- /dev/null
+++ b/app/src/main/res/values/attrs.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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..e88a760 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,4 +7,19 @@
#FF018786
#FF000000
#FFFFFFFF
+ #263238
+ #E0E0E0
+ #F0F0F0
+ #272727
+ #979797
+ #888888
+ #E74C3C
+ #2ECC71
+ #89ED5B
+ #FFD76F
+ #4FB8FF
+ #2980B9
+ #121212
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..6049881
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+ 16dp
+ 24dp
+ 16dp
+ 24dp
+
\ 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/strings.xml b/app/src/main/res/values/strings.xml
index a7036ac..33bdb50 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,5 @@
View & Resources
+ Sign in
+ Register
\ 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..578c689
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 d0b5d4b..b4612a2 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -12,5 +12,21 @@
- ?attr/colorPrimaryVariant
+ - @color/dark_blue_gray
+ - @color/gray
+ - @color/gray
+ - @color/light_gray_94
+ - @color/light_green
+ - ?attr/shadeColor
+ - @color/red_accent
+ - ?attr/mainColor
+ - @color/blue
+ - @color/white
+ - @color/blue
+ - @color/white
+ - ?attr/mainColor
+ - ?attr/mainColor
+ - @color/blue
+ - @color/blue
\ No newline at end of file