diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml index 44f244d..62894d9 100644 --- a/.idea/assetWizardSettings.xml +++ b/.idea/assetWizardSettings.xml @@ -18,7 +18,7 @@ @@ -28,7 +28,7 @@ diff --git a/.idea/navEditor.xml b/.idea/navEditor.xml index 6d613d6..0f89bc0 100644 --- a/.idea/navEditor.xml +++ b/.idea/navEditor.xml @@ -84,6 +84,18 @@ + + + + + + + @@ -96,13 +108,13 @@ - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d66df83..85956c2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/home/FeedFragment.kt b/app/src/main/java/com/isolaatti/home/FeedFragment.kt index 24dec8f..45fc04f 100644 --- a/app/src/main/java/com/isolaatti/home/FeedFragment.kt +++ b/app/src/main/java/com/isolaatti/home/FeedFragment.kt @@ -21,6 +21,7 @@ import com.isolaatti.R import com.isolaatti.common.ErrorMessageViewModel import com.isolaatti.databinding.FragmentFeedBinding import com.isolaatti.home.presentation.FeedViewModel +import com.isolaatti.posting.PostViewerActivity import com.isolaatti.posting.posts.presentation.PostsViewModel import com.isolaatti.posting.comments.presentation.BottomSheetPostComments import com.isolaatti.posting.common.domain.OnUserInteractedWithPostCallback @@ -195,8 +196,12 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback { modalBottomSheet.show(requireActivity().supportFragmentManager, BottomSheetPostComments.TAG) } + override fun onOpenPost(postId: Long) { + PostViewerActivity.startActivity(requireContext(), postId) + } + override fun onProfileClick(userId: Int) { - TODO("Not yet implemented") + ProfileActivity.startActivity(requireContext(), userId) } } \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/posting/PostViewerActivity.kt b/app/src/main/java/com/isolaatti/posting/PostViewerActivity.kt new file mode 100644 index 0000000..e9cb80b --- /dev/null +++ b/app/src/main/java/com/isolaatti/posting/PostViewerActivity.kt @@ -0,0 +1,35 @@ +package com.isolaatti.posting + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import com.isolaatti.common.IsolaattiBaseActivity +import com.isolaatti.databinding.ActivityCreatePostBinding +import com.isolaatti.databinding.ActivityPostViewerBinding + +class PostViewerActivity : IsolaattiBaseActivity() { + companion object { + const val POST_ID = "postId" + fun startActivity(context: Context, postId: Long) { + context.startActivity(Intent(context, PostViewerActivity::class.java).apply { + putExtra(POST_ID, postId) + }) + } + } + + + private lateinit var binding: ActivityPostViewerBinding + + private var postId: Long? = null + override fun onRetry() { + TODO("Not yet implemented") + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + binding = ActivityPostViewerBinding.inflate(layoutInflater) + + setContentView(binding.root) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/posting/comments/presentation/BottomSheetPostComments.kt b/app/src/main/java/com/isolaatti/posting/comments/presentation/BottomSheetPostComments.kt index 3967f3e..0e7ddab 100644 --- a/app/src/main/java/com/isolaatti/posting/comments/presentation/BottomSheetPostComments.kt +++ b/app/src/main/java/com/isolaatti/posting/comments/presentation/BottomSheetPostComments.kt @@ -21,6 +21,7 @@ import com.isolaatti.posting.common.options_bottom_sheet.domain.OptionClicked import com.isolaatti.posting.common.options_bottom_sheet.domain.Options import com.isolaatti.posting.common.options_bottom_sheet.presentation.BottomSheetPostOptionsViewModel import com.isolaatti.posting.common.options_bottom_sheet.ui.BottomSheetPostOptionsFragment +import com.isolaatti.profile.ui.ProfileActivity import com.isolaatti.utils.PicassoImagesPluginDef import dagger.hilt.android.AndroidEntryPoint import io.noties.markwon.AbstractMarkwonPlugin @@ -125,6 +126,6 @@ class BottomSheetPostComments() : BottomSheetDialogFragment(), OnUserInteractedC } override fun onProfileClick(userId: Int) { - + ProfileActivity.startActivity(requireContext(), userId) } } \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/posting/common/domain/OnUserInteractedWithPostCallback.kt b/app/src/main/java/com/isolaatti/posting/common/domain/OnUserInteractedWithPostCallback.kt index 23d0aeb..00413b6 100644 --- a/app/src/main/java/com/isolaatti/posting/common/domain/OnUserInteractedWithPostCallback.kt +++ b/app/src/main/java/com/isolaatti/posting/common/domain/OnUserInteractedWithPostCallback.kt @@ -4,4 +4,5 @@ interface OnUserInteractedWithPostCallback : OnUserInteractedCallback { fun onLiked(postId: Long) fun onUnLiked(postId: Long) fun onComment(postId: Long) + fun onOpenPost(postId: Long) } \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt b/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt index 0391062..06b3551 100644 --- a/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt +++ b/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt @@ -10,6 +10,7 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.ViewHolder import com.google.android.material.button.MaterialButton +import com.google.android.material.card.MaterialCardView import com.isolaatti.R import com.isolaatti.posting.posts.data.remote.FeedDto import com.isolaatti.posting.common.domain.OnUserInteractedWithPostCallback @@ -57,6 +58,9 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba } else { val username: TextView = itemView.findViewById(R.id.text_view_username) username.text = postDto.userName + username.setOnClickListener { + callback.onProfileClick(postDto.post.userId) + } val profileImageView: ImageView = itemView.findViewById(R.id.avatar_picture) Picasso.get().load(userProfileImage(postDto.post.userId)).into(profileImageView) @@ -97,6 +101,11 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba commentsButton.setOnClickListener { callback.onComment(postDto.post.id) } + + itemView.findViewById(R.id.card).setOnClickListener { + callback.onOpenPost(postDto.post.id) + } + } } } diff --git a/app/src/main/java/com/isolaatti/profile/ui/ProfileActivity.kt b/app/src/main/java/com/isolaatti/profile/ui/ProfileActivity.kt index 0ace859..d852eb0 100644 --- a/app/src/main/java/com/isolaatti/profile/ui/ProfileActivity.kt +++ b/app/src/main/java/com/isolaatti/profile/ui/ProfileActivity.kt @@ -1,5 +1,7 @@ package com.isolaatti.profile.ui +import android.content.Context +import android.content.Intent import android.os.Bundle import androidx.activity.addCallback import androidx.activity.viewModels @@ -83,5 +85,11 @@ class ProfileActivity : AppCompatActivity() { companion object { const val EXTRA_USER_ID = "user_id" + + fun startActivity(context: Context, userId: Int) { + context.startActivity(Intent(context, ProfileActivity::class.java).apply { + putExtra(EXTRA_USER_ID, userId) + }) + } } } \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_pending_24.xml b/app/src/main/res/drawable/baseline_pending_24.xml new file mode 100644 index 0000000..546c628 --- /dev/null +++ b/app/src/main/res/drawable/baseline_pending_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_post_viewer.xml b/app/src/main/res/layout/activity_post_viewer.xml new file mode 100644 index 0000000..6e3e9a9 --- /dev/null +++ b/app/src/main/res/layout/activity_post_viewer.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml index 80f1a2d..9d3ff3c 100644 --- a/app/src/main/res/layout/activity_profile.xml +++ b/app/src/main/res/layout/activity_profile.xml @@ -20,6 +20,7 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:navigationIcon="@drawable/baseline_arrow_back_24" + app:navigationIconTint="@color/on_surface" app:title="Profile" app:titleCentered="true" /> diff --git a/app/src/main/res/menu/home_drawer_menu.xml b/app/src/main/res/menu/home_drawer_menu.xml index 8c79a31..6da574b 100644 --- a/app/src/main/res/menu/home_drawer_menu.xml +++ b/app/src/main/res/menu/home_drawer_menu.xml @@ -9,6 +9,10 @@ android:id="@+id/squads_menu_item" android:icon="@drawable/baseline_people_24" android:title="Squads" /> + Add image What do you want to talk about? Markdown is compatible. You can record an audio if you want. Posted! + Drafts \ No newline at end of file