From 9d8a35a805c4eaf0697197b25f64f8a9be8b5021 Mon Sep 17 00:00:00 2001 From: erik-everardo Date: Sun, 14 Jan 2024 02:17:27 -0600 Subject: [PATCH] WIP --- .../java/com/isolaatti/home/FeedFragment.kt | 15 +- .../settings/ui/AccountSettingsFragment.kt | 22 +++ .../settings/ui/PrivacySettingsFragment.kt | 22 +++ .../isolaatti/settings/ui/SettingsFragment.kt | 36 +++- .../drawable/baseline_arrow_right_alt_24.xml | 5 + .../res/layout/fragment_account_settings.xml | 6 + .../res/layout/fragment_privacy_settings.xml | 6 + app/src/main/res/layout/fragment_settings.xml | 165 ++++++++++++++++++ .../main/res/layout/header_drawer_home.xml | 107 ++++++++---- app/src/main/res/menu/home_drawer_menu.xml | 12 +- .../res/navigation/settings_navigation.xml | 27 ++- app/src/main/res/values/strings.xml | 9 + 12 files changed, 375 insertions(+), 57 deletions(-) create mode 100644 app/src/main/java/com/isolaatti/settings/ui/AccountSettingsFragment.kt create mode 100644 app/src/main/java/com/isolaatti/settings/ui/PrivacySettingsFragment.kt create mode 100644 app/src/main/res/drawable/baseline_arrow_right_alt_24.xml create mode 100644 app/src/main/res/layout/fragment_account_settings.xml create mode 100644 app/src/main/res/layout/fragment_privacy_settings.xml create mode 100644 app/src/main/res/layout/fragment_settings.xml diff --git a/app/src/main/java/com/isolaatti/home/FeedFragment.kt b/app/src/main/java/com/isolaatti/home/FeedFragment.kt index c06bea4..5412ed9 100644 --- a/app/src/main/java/com/isolaatti/home/FeedFragment.kt +++ b/app/src/main/java/com/isolaatti/home/FeedFragment.kt @@ -17,6 +17,8 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.recyclerview.widget.LinearLayoutManager import coil.load +import com.google.android.material.button.MaterialButton +import com.google.android.material.card.MaterialCardView import com.isolaatti.BuildConfig import com.isolaatti.R import com.isolaatti.about.AboutActivity @@ -50,6 +52,7 @@ import io.noties.markwon.image.coil.CoilImagesPlugin import io.noties.markwon.image.destination.ImageDestinationProcessorRelativeToAbsolute import io.noties.markwon.linkify.LinkifyPlugin import kotlinx.coroutines.launch +import org.w3c.dom.Text @AndroidEntryPoint class FeedFragment : Fragment(), OnUserInteractedWithPostCallback { @@ -134,10 +137,6 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback { viewBinding.homeDrawer.setNavigationItemSelectedListener { when(it.itemId) { - R.id.my_profile_menu_item -> { - ProfileActivity.startActivity(requireContext(), currentUserId) - true - } R.id.drafts_menu_item -> { startActivity(Intent(requireActivity(), DraftsActivity::class.java)) true @@ -194,14 +193,18 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback { val image: ImageView? = header?.findViewById(R.id.profileImageView) val textViewName: TextView? = header?.findViewById(R.id.textViewName) val textViewEmail: TextView? = header?.findViewById(R.id.textViewEmail) + val textViewUsername: TextView? = header?.findViewById(R.id.textViewUsername) image?.load(UrlGen.userProfileImage(it.userId), imageLoader) - image?.setOnClickListener {_ -> - //PictureViewerActivity.startActivityWithImages(requireContext(), arrayOf(UrlGen.userProfileImageFullQuality(it.userId))) + + val card: MaterialCardView? = header?.findViewById(R.id.drawer_header_card) + card?.setOnClickListener { + ProfileActivity.startActivity(requireContext(), currentUserId) } textViewName?.text = it.name textViewEmail?.text = it.email + textViewUsername?.text = "@${it.uniqueUsername}" currentUserId = it.userId } diff --git a/app/src/main/java/com/isolaatti/settings/ui/AccountSettingsFragment.kt b/app/src/main/java/com/isolaatti/settings/ui/AccountSettingsFragment.kt new file mode 100644 index 0000000..07c4cbc --- /dev/null +++ b/app/src/main/java/com/isolaatti/settings/ui/AccountSettingsFragment.kt @@ -0,0 +1,22 @@ +package com.isolaatti.settings.ui + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.isolaatti.databinding.FragmentAccountSettingsBinding + +class AccountSettingsFragment : Fragment() { + private lateinit var binding: FragmentAccountSettingsBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentAccountSettingsBinding.inflate(layoutInflater) + + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/settings/ui/PrivacySettingsFragment.kt b/app/src/main/java/com/isolaatti/settings/ui/PrivacySettingsFragment.kt new file mode 100644 index 0000000..1eddd11 --- /dev/null +++ b/app/src/main/java/com/isolaatti/settings/ui/PrivacySettingsFragment.kt @@ -0,0 +1,22 @@ +package com.isolaatti.settings.ui + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.isolaatti.databinding.FragmentPrivacySettingsBinding + +class PrivacySettingsFragment : Fragment() { + private lateinit var binding: FragmentPrivacySettingsBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentPrivacySettingsBinding.inflate(layoutInflater) + + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/settings/ui/SettingsFragment.kt b/app/src/main/java/com/isolaatti/settings/ui/SettingsFragment.kt index a6ed41e..540d755 100644 --- a/app/src/main/java/com/isolaatti/settings/ui/SettingsFragment.kt +++ b/app/src/main/java/com/isolaatti/settings/ui/SettingsFragment.kt @@ -1,12 +1,38 @@ package com.isolaatti.settings.ui import android.os.Bundle -import androidx.preference.PreferenceFragmentCompat -import com.isolaatti.R +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.navigation.fragment.findNavController +import com.isolaatti.databinding.FragmentSettingsBinding -class SettingsFragment : PreferenceFragmentCompat() { +class SettingsFragment : Fragment() { + private lateinit var binding: FragmentSettingsBinding - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { - setPreferencesFromResource(R.xml.preferences, rootKey) + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentSettingsBinding.inflate(layoutInflater) + + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + setupListeners() + } + + private fun setupListeners() { + binding.toolbar.setNavigationOnClickListener { + requireActivity().finish() + } + binding.goToAccountSettingsButton.setOnClickListener { + findNavController().navigate(SettingsFragmentDirections.actionSettingsFragmentToAccountSettingsFragment()) + } } } \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_arrow_right_alt_24.xml b/app/src/main/res/drawable/baseline_arrow_right_alt_24.xml new file mode 100644 index 0000000..6d9a2bb --- /dev/null +++ b/app/src/main/res/drawable/baseline_arrow_right_alt_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_account_settings.xml b/app/src/main/res/layout/fragment_account_settings.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_account_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_privacy_settings.xml b/app/src/main/res/layout/fragment_privacy_settings.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_privacy_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml new file mode 100644 index 0000000..5fd3e45 --- /dev/null +++ b/app/src/main/res/layout/fragment_settings.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/header_drawer_home.xml b/app/src/main/res/layout/header_drawer_home.xml index fb3b837..d0738a5 100644 --- a/app/src/main/res/layout/header_drawer_home.xml +++ b/app/src/main/res/layout/header_drawer_home.xml @@ -3,47 +3,86 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:paddingTop="16dp" android:paddingBottom="16dp" android:background="@color/purple"> - + app:layout_constraintStart_toStartOf="parent"> - + - + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/home_drawer_menu.xml b/app/src/main/res/menu/home_drawer_menu.xml index 97c7086..b850cc2 100644 --- a/app/src/main/res/menu/home_drawer_menu.xml +++ b/app/src/main/res/menu/home_drawer_menu.xml @@ -1,22 +1,22 @@ - + android:title="@string/squads" /> + + android:title="@string/settings" /> - - + + + + + + + \ 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 55ec458..13a8147 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -137,4 +137,13 @@ Edit profile Remove image? This will not delete your image, but only unset it as profile image Description + Go to account settings + Go to feed settings + This is the place to take control over what you see on your feed. These settings affect your account, not only this device. + Feed settings + Go to privacy settings + Privacy settings + Set how other people see you on Isolaatti. Hide or show information + QR Code + Squads \ No newline at end of file