diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d4ed96e..5bc5075 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,49 +20,49 @@
android:supportsRtl = "true"
android:theme = "@style/Theme.SpottedKotlin"
tools:targetApi = "tiramisu">
-
+
-
-
-
-
+
-
diff --git a/app/src/main/java/it/univpm/spottedkotlin/view/FirstActivity.kt b/app/src/main/java/it/univpm/spottedkotlin/view/FirstActivity.kt
index 1219378..54ba181 100644
--- a/app/src/main/java/it/univpm/spottedkotlin/view/FirstActivity.kt
+++ b/app/src/main/java/it/univpm/spottedkotlin/view/FirstActivity.kt
@@ -9,6 +9,7 @@ import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import it.univpm.spottedkotlin.databinding.FirstActivityBinding
import it.univpm.spottedkotlin.extension.function.checkAndAskPermission
+import it.univpm.spottedkotlin.extension.function.goto
import it.univpm.spottedkotlin.extension.function.metrics
import it.univpm.spottedkotlin.managers.*
import it.univpm.spottedkotlin.model.Post
@@ -37,16 +38,18 @@ class FirstActivity : AppCompatActivity() {
}
DeviceManager.loadTheme()
DeviceManager.loadUiDensity(this)
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
- this.checkAndAskPermission(Manifest.permission.POST_NOTIFICATIONS)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) this.checkAndAskPermission(
+ Manifest.permission.POST_NOTIFICATIONS
+ )
}
fun goToMainActivity(activity: Class<*> = MainActivity::class.java) {
runOnUiThread {
val intent = Intent(this, activity).apply {
- if (activity == ViewPostActivity::class.java)
- this.putExtra("postUID", intent.getStringExtra("postUID"))
- .putExtra("comments", intent.getBooleanExtra("comments", false))
+ if (activity == ViewPostActivity::class.java) this.putExtra(
+ "postUID",
+ intent.getStringExtra("postUID")
+ ).putExtra("comments", intent.getBooleanExtra("comments", false))
}
startActivity(intent)
finish()
@@ -56,6 +59,10 @@ class FirstActivity : AppCompatActivity() {
override fun onStart() {
super.onStart()
+ if (IOManager.readKey("first_access") != false) {
+ goto()
+ finish()
+ }
// ======= DEBUG ZONE ========
//☢️☢️☢️☢️☢️☢️☢️☢️☢️☢️☢️☢️
@@ -67,10 +74,8 @@ class FirstActivity : AppCompatActivity() {
binding.firstLoadingView.loadingViewRoot.visibility = View.VISIBLE
MainScope().launch {
if (AccountManager.cacheLogin()) {
- if (intent.hasExtra("goto"))
- goToMainActivity(intent.getSerializableExtra("goto") as Class<*>)
- else
- goToMainActivity()
+ if (intent.hasExtra("goto")) goToMainActivity(intent.getSerializableExtra("goto") as Class<*>)
+ else goToMainActivity()
}
runOnUiThread {
diff --git a/app/src/main/java/it/univpm/spottedkotlin/view/TutorialActivity.kt b/app/src/main/java/it/univpm/spottedkotlin/view/TutorialActivity.kt
new file mode 100644
index 0000000..0c57c15
--- /dev/null
+++ b/app/src/main/java/it/univpm/spottedkotlin/view/TutorialActivity.kt
@@ -0,0 +1,37 @@
+package it.univpm.spottedkotlin.view
+
+import android.os.Bundle
+import android.view.MotionEvent
+import com.google.android.material.snackbar.Snackbar
+import androidx.appcompat.app.AppCompatActivity
+import androidx.navigation.findNavController
+import androidx.navigation.ui.AppBarConfiguration
+import androidx.navigation.ui.navigateUp
+import androidx.navigation.ui.setupActionBarWithNavController
+import it.univpm.spottedkotlin.R
+import it.univpm.spottedkotlin.databinding.ActivityTutorialBinding
+import it.univpm.spottedkotlin.extension.function.goto
+import it.univpm.spottedkotlin.managers.IOManager
+
+class TutorialActivity : AppCompatActivity() {
+
+ private lateinit var binding: ActivityTutorialBinding
+ private var index = 0;
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityTutorialBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ binding.tutorialContainer.setOnClickListener{
+ if (index>=2){
+ goto()
+ IOManager.writeKey("first_access",false)
+ return@setOnClickListener
+ }
+ binding.tutorialContainer.findNavController().navigate(
+ if (index == 0) R.id.tutorial_fragment_1_to_tutorial_fragment_2 else R.id.tutorial_fragment_2_to_tutorial_fragment_3
+ )
+ index++
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial1Fragment.kt b/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial1Fragment.kt
new file mode 100644
index 0000000..f797811
--- /dev/null
+++ b/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial1Fragment.kt
@@ -0,0 +1,28 @@
+package it.univpm.spottedkotlin.view.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.navigation.findNavController
+import androidx.navigation.fragment.findNavController
+import it.univpm.spottedkotlin.R
+import it.univpm.spottedkotlin.databinding.FirstFragmentBinding
+import it.univpm.spottedkotlin.databinding.Tutorial1FragmentBinding
+import it.univpm.spottedkotlin.viewmodel.FirstActivityViewModel
+
+
+class Tutorial1Fragment : Fragment() {
+ private lateinit var binding: Tutorial1FragmentBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ binding = Tutorial1FragmentBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial2Fragment.kt b/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial2Fragment.kt
new file mode 100644
index 0000000..ab49b7a
--- /dev/null
+++ b/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial2Fragment.kt
@@ -0,0 +1,29 @@
+package it.univpm.spottedkotlin.view.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.navigation.findNavController
+import androidx.navigation.fragment.findNavController
+import it.univpm.spottedkotlin.R
+import it.univpm.spottedkotlin.databinding.FirstFragmentBinding
+import it.univpm.spottedkotlin.databinding.Tutorial1FragmentBinding
+import it.univpm.spottedkotlin.databinding.Tutorial2FragmentBinding
+import it.univpm.spottedkotlin.viewmodel.FirstActivityViewModel
+
+
+class Tutorial2Fragment : Fragment() {
+ private lateinit var binding: Tutorial2FragmentBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ binding = Tutorial2FragmentBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial3Fragment.kt b/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial3Fragment.kt
new file mode 100644
index 0000000..599d16b
--- /dev/null
+++ b/app/src/main/java/it/univpm/spottedkotlin/view/fragments/Tutorial3Fragment.kt
@@ -0,0 +1,29 @@
+package it.univpm.spottedkotlin.view.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.navigation.findNavController
+import androidx.navigation.fragment.findNavController
+import it.univpm.spottedkotlin.R
+import it.univpm.spottedkotlin.databinding.FirstFragmentBinding
+import it.univpm.spottedkotlin.databinding.Tutorial1FragmentBinding
+import it.univpm.spottedkotlin.databinding.Tutorial3FragmentBinding
+import it.univpm.spottedkotlin.viewmodel.FirstActivityViewModel
+
+
+class Tutorial3Fragment : Fragment() {
+ private lateinit var binding: Tutorial3FragmentBinding
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ binding = Tutorial3FragmentBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/spotted_tutorial_1.png b/app/src/main/res/drawable/spotted_tutorial_1.png
new file mode 100644
index 0000000..f58fb7b
Binary files /dev/null and b/app/src/main/res/drawable/spotted_tutorial_1.png differ
diff --git a/app/src/main/res/drawable/spotted_tutorial_2.png b/app/src/main/res/drawable/spotted_tutorial_2.png
new file mode 100644
index 0000000..f047ac1
Binary files /dev/null and b/app/src/main/res/drawable/spotted_tutorial_2.png differ
diff --git a/app/src/main/res/drawable/spotted_tutorial_3.png b/app/src/main/res/drawable/spotted_tutorial_3.png
new file mode 100644
index 0000000..d5f89b7
Binary files /dev/null and b/app/src/main/res/drawable/spotted_tutorial_3.png differ
diff --git a/app/src/main/res/layout/activity_tutorial.xml b/app/src/main/res/layout/activity_tutorial.xml
new file mode 100644
index 0000000..88ca074
--- /dev/null
+++ b/app/src/main/res/layout/activity_tutorial.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/tutorial1_fragment.xml b/app/src/main/res/layout/tutorial1_fragment.xml
new file mode 100644
index 0000000..c4c39e3
--- /dev/null
+++ b/app/src/main/res/layout/tutorial1_fragment.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/tutorial2_fragment.xml b/app/src/main/res/layout/tutorial2_fragment.xml
new file mode 100644
index 0000000..c007f6b
--- /dev/null
+++ b/app/src/main/res/layout/tutorial2_fragment.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/tutorial3_fragment.xml b/app/src/main/res/layout/tutorial3_fragment.xml
new file mode 100644
index 0000000..3913166
--- /dev/null
+++ b/app/src/main/res/layout/tutorial3_fragment.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/tutorial_nav_graph.xml b/app/src/main/res/navigation/tutorial_nav_graph.xml
new file mode 100644
index 0000000..b3ce14b
--- /dev/null
+++ b/app/src/main/res/navigation/tutorial_nav_graph.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml
index 22d7f00..7b9efa2 100644
--- a/app/src/main/res/values-land/dimens.xml
+++ b/app/src/main/res/values-land/dimens.xml
@@ -1,3 +1,3 @@
- 48dp
+ 48dp
\ No newline at end of file
diff --git a/app/src/main/res/values-w1240dp/dimens.xml b/app/src/main/res/values-w1240dp/dimens.xml
index d73f4a3..92faa73 100644
--- a/app/src/main/res/values-w1240dp/dimens.xml
+++ b/app/src/main/res/values-w1240dp/dimens.xml
@@ -1,3 +1,3 @@
- 200dp
+ 200dp
\ No newline at end of file
diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml
index 22d7f00..7b9efa2 100644
--- a/app/src/main/res/values-w600dp/dimens.xml
+++ b/app/src/main/res/values-w600dp/dimens.xml
@@ -1,3 +1,3 @@
- 48dp
+ 48dp
\ 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 fa0c8e1..81d784a 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,5 +1,6 @@
+
#181818
#303030
@@ -20,8 +21,6 @@
#60000000
#80ffffff
-
-
@color/white
#60000000
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 119ca04..467e2f4 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,6 +1,6 @@
- 16dp
- 24dp
- 30dp
+ 16dp
+ 24dp
+ 30dp
\ 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 a4487dc..59454bf 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -107,5 +107,12 @@
Niente da mostrare
Hello blank fragment
+ TutorialActivity
+
+ First Fragment
+ Second Fragment
+
+ Hello first fragment
+ Hello second fragment. Arg: %1$s
\ 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 c9eabf8..85ec1e7 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,34 +1,33 @@
-
-
-
-
- - @color/red
- - @color/black
- - @color/white
-
- - @color/white
- - @color/grey
- - @color/black
-
- - ?attr/colorPrimaryVariant
-
-
+
-
+
-
-
-
+
\ No newline at end of file