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 - - + - +