diff --git a/app/.idea/.gitignore b/app/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/app/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/app/.idea/gradle.xml b/app/.idea/gradle.xml
new file mode 100644
index 0000000..0cb0e08
--- /dev/null
+++ b/app/.idea/gradle.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/.idea/misc.xml b/app/.idea/misc.xml
new file mode 100644
index 0000000..f845854
--- /dev/null
+++ b/app/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/.idea/modules.xml b/app/.idea/modules.xml
new file mode 100644
index 0000000..e1f9e1c
--- /dev/null
+++ b/app/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/.idea/vcs.xml b/app/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/app/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c94b2e8..88ce5d4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -31,6 +31,13 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
+
+
+ buildFeatures {
+
+ viewBinding true
+
+ }
}
dependencies {
diff --git a/app/local.properties b/app/local.properties
new file mode 100644
index 0000000..62eb5ae
--- /dev/null
+++ b/app/local.properties
@@ -0,0 +1,8 @@
+## This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+#Fri May 28 20:01:59 MSK 2021
+sdk.dir=C\:\\Users\\Natalya\\AppData\\Local\\Android\\Sdk
diff --git a/app/src/main/java/ru/mail/fancywork/controller/Controller.kt b/app/src/main/java/ru/mail/fancywork/controller/Controller.kt
index b4717c5..b1348a7 100644
--- a/app/src/main/java/ru/mail/fancywork/controller/Controller.kt
+++ b/app/src/main/java/ru/mail/fancywork/controller/Controller.kt
@@ -19,5 +19,9 @@ class Controller(
return auth.getAuthIntent()
}
+ fun logOut() {
+ auth.logOut();
+ }
+
fun isAuthorized(): Boolean = auth.isAuthorized()
}
diff --git a/app/src/main/java/ru/mail/fancywork/model/fancyLib/Difficulty.kt b/app/src/main/java/ru/mail/fancywork/model/fancyLib/Difficulty.kt
new file mode 100644
index 0000000..3fa392d
--- /dev/null
+++ b/app/src/main/java/ru/mail/fancywork/model/fancyLib/Difficulty.kt
@@ -0,0 +1,5 @@
+package ru.mail.fancywork.model.fancyLib
+
+enum class Difficulty {
+ UNDEFINED, EASY, MEDIUM, HARD, EXTREMELY_HARD
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/mail/fancywork/model/fancyLib/FancyPicture.kt b/app/src/main/java/ru/mail/fancywork/model/fancyLib/FancyPicture.kt
new file mode 100644
index 0000000..cae1c7b
--- /dev/null
+++ b/app/src/main/java/ru/mail/fancywork/model/fancyLib/FancyPicture.kt
@@ -0,0 +1,36 @@
+package ru.mail.fancywork.model.fancyLib
+
+import android.graphics.Bitmap
+
+data class FancyPicture(
+ val id: String,
+ val title: String,
+ val image: Bitmap,
+ val colors: List>
+) {
+ // todo id generator
+ // todo difficulty definer
+
+ var author: String = "unknown"
+ var difficulty: Difficulty = Difficulty.UNDEFINED
+
+ constructor(
+ id: String,
+ title: String,
+ image: Bitmap,
+ colors: List>,
+ author: String,
+ difficulty: Difficulty
+ ) : this(id, title, image, colors) {
+ this.author = author
+ this.difficulty = difficulty
+ }
+
+ fun getProportions(): Pair? {
+ if (colors.isEmpty() || colors[0].isEmpty()) {
+ return null
+ }
+
+ return Pair(colors.size, colors[0].size)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/mail/fancywork/model/repo/AuthRepository.kt b/app/src/main/java/ru/mail/fancywork/model/repo/AuthRepository.kt
index ca0190e..4f2b5aa 100644
--- a/app/src/main/java/ru/mail/fancywork/model/repo/AuthRepository.kt
+++ b/app/src/main/java/ru/mail/fancywork/model/repo/AuthRepository.kt
@@ -23,6 +23,10 @@ class AuthRepository(private val auth: FirebaseAuth = FirebaseAuth.getInstance()
return FirebaseAuth.getInstance().currentUser != null
}
+ fun logOut() {
+ FirebaseAuth.getInstance().signOut()
+ }
+
companion object {
private const val TAG = "FirebaseRepository"
}
diff --git a/app/src/main/java/ru/mail/fancywork/ui/primary/MainActivity.kt b/app/src/main/java/ru/mail/fancywork/ui/primary/MainActivity.kt
index d4fd77a..e0e5e22 100644
--- a/app/src/main/java/ru/mail/fancywork/ui/primary/MainActivity.kt
+++ b/app/src/main/java/ru/mail/fancywork/ui/primary/MainActivity.kt
@@ -1,24 +1,49 @@
package ru.mail.fancywork.ui.primary
+import android.content.Intent
import android.os.Bundle
+import android.view.LayoutInflater
import android.view.View
import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
import ru.mail.fancywork.R
+import ru.mail.fancywork.controller.Controller
+import ru.mail.fancywork.ui.auth.AuthActivity
class MainActivity : AppCompatActivity() {
+ private val controller = Controller()
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
- }
- // todo google auth
- public fun loginGoogle(view: View) {
- // БОРЕМСЯ С КОДСТАЙЛОМ
+ findViewById(R.id.top_bar)
+ .setOnMenuItemClickListener { item ->
+ when (item.itemId) {
+ R.id.logout -> {
+ controller.logOut()
+ startActivity(Intent(this, AuthActivity::class.java))
+ finish()
+ true
+ }
+ else -> false
+ }
+ }
+
+ var worksList: RecyclerView = findViewById(R.id.rv_works)
+ var ar: ArrayList = ArrayList()
+ ar.add(6)
+ ar.add(5)
+ ar.add(4)
+ var adapter = WorksListAdapter(ar)
+
+ worksList.adapter = adapter
+ worksList.layoutManager = LinearLayoutManager(this.applicationContext)
}
- // todo local auth
- public fun loginWithoutGoogle(view: View) {
- // todo open recycle view activity
+ public fun add(view:View){
+ //todo открыть активити просмотра вышивки
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/mail/fancywork/ui/primary/WorksListAdapter.kt b/app/src/main/java/ru/mail/fancywork/ui/primary/WorksListAdapter.kt
new file mode 100644
index 0000000..d23644e
--- /dev/null
+++ b/app/src/main/java/ru/mail/fancywork/ui/primary/WorksListAdapter.kt
@@ -0,0 +1,41 @@
+package ru.mail.fancywork.ui.primary
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import ru.mail.fancywork.databinding.WorkItemInRvBinding
+
+class WorksListAdapter(
+ private var worksList: List//dataclasses
+) : RecyclerView.Adapter() {
+
+ inner class ViewHolder(val binding: WorkItemInRvBinding) : RecyclerView.ViewHolder(binding.root)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val binding =
+ WorkItemInRvBinding.inflate(LayoutInflater.from(parent.context), parent, false)
+ return ViewHolder(binding)
+ }
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+
+ with(holder) {
+ with(worksList[position]) {
+ binding.name.text = "ВЫЩЩЩИВКА"
+ binding.difficulty.rating = 4F
+ var str = "размер: " + worksList[position] + "x" + worksList[position] + "\nцветов: 5"
+
+ binding.info.text = str
+
+// binding.cardLayout.setOnClickListener {
+// //todo открываем активити просмотра
+// notifyDataSetChanged()
+// }
+ }
+ }
+ }
+
+ override fun getItemCount(): Int {
+ return worksList.size
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/items_in_rv.xml b/app/src/main/res/drawable/items_in_rv.xml
new file mode 100644
index 0000000..7f83013
--- /dev/null
+++ b/app/src/main/res/drawable/items_in_rv.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 7a2b8e6..c5c1adf 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -7,82 +7,48 @@
tools:context="ru.mail.fancywork.ui.primary.MainActivity"
android:theme="@style/Theme.FancyWork">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/work_item_in_rv.xml b/app/src/main/res/layout/work_item_in_rv.xml
new file mode 100644
index 0000000..922038d
--- /dev/null
+++ b/app/src/main/res/layout/work_item_in_rv.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/top_main_actionbar.xml b/app/src/main/res/menu/top_main_actionbar.xml
new file mode 100644
index 0000000..66985b6
--- /dev/null
+++ b/app/src/main/res/menu/top_main_actionbar.xml
@@ -0,0 +1,8 @@
+
+
\ 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 1eb2481..3b49998 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -13,4 +13,13 @@
- ?attr/colorPrimaryVariant
+
+
+
+
\ 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 b9a813f..fc7c952 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,4 +6,5 @@
Загрузить картинку
войти без Google аккаунта
войти через Google аккаунт
+ размер: %dх%d\nцветов: %d
\ 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 1eb2481..3b49998 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -13,4 +13,13 @@
- ?attr/colorPrimaryVariant
+
+
+
+
\ No newline at end of file