From a763926c186c4d915acbbffb6123c05caa8de4fc Mon Sep 17 00:00:00 2001 From: erike Date: Sun, 10 Sep 2023 20:35:22 -0600 Subject: [PATCH] WIP --- app/src/main/AndroidManifest.xml | 2 +- .../java/com/isolaatti/home/FeedFragment.kt | 2 +- .../main/java/com/isolaatti/images/Module.kt | 17 +++++++++ .../images/image_list/data/remote/ImageDto.kt | 9 +++++ .../image_list/data/remote/ImagesApi.kt | 36 +++++++++++++++++++ .../domain/repository/ImagesRepository.kt | 5 +++ .../presentation/ImageListViewModel.kt | 6 ++++ .../image_list/presentation/ImagesAdapter.kt | 4 +++ .../image_list}/ui/ImagesFragment.kt | 2 +- .../images/picture_viewer/domain/Picture.kt | 4 +++ .../PictureViewerViewPagerAdapter.kt | 4 +-- .../ui/PictureViewerActivity.kt | 4 +-- .../ui/PictureViewerImageWrapperFragment.kt | 2 +- .../ui/PictureViewerMainFragment.kt | 4 +-- .../picture_viewer/domain/Picture.kt | 4 --- .../isolaatti/utils/IdentificationWrapper.kt | 2 ++ .../navigation/picture_viewer_navigation.xml | 2 +- .../res/navigation/profile_navigation.xml | 2 +- 18 files changed, 95 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/com/isolaatti/images/Module.kt create mode 100644 app/src/main/java/com/isolaatti/images/image_list/data/remote/ImageDto.kt create mode 100644 app/src/main/java/com/isolaatti/images/image_list/data/remote/ImagesApi.kt create mode 100644 app/src/main/java/com/isolaatti/images/image_list/domain/repository/ImagesRepository.kt create mode 100644 app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt create mode 100644 app/src/main/java/com/isolaatti/images/image_list/presentation/ImagesAdapter.kt rename app/src/main/java/com/isolaatti/{profile => images/image_list}/ui/ImagesFragment.kt (93%) create mode 100644 app/src/main/java/com/isolaatti/images/picture_viewer/domain/Picture.kt rename app/src/main/java/com/isolaatti/{ => images}/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt (76%) rename app/src/main/java/com/isolaatti/{ => images}/picture_viewer/ui/PictureViewerActivity.kt (87%) rename app/src/main/java/com/isolaatti/{ => images}/picture_viewer/ui/PictureViewerImageWrapperFragment.kt (97%) rename app/src/main/java/com/isolaatti/{ => images}/picture_viewer/ui/PictureViewerMainFragment.kt (88%) delete mode 100644 app/src/main/java/com/isolaatti/picture_viewer/domain/Picture.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 45de1f1..c5a705e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,7 +34,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 0abc1e3..3d60edb 100644 --- a/app/src/main/java/com/isolaatti/home/FeedFragment.kt +++ b/app/src/main/java/com/isolaatti/home/FeedFragment.kt @@ -24,7 +24,7 @@ import com.isolaatti.common.ErrorMessageViewModel import com.isolaatti.databinding.FragmentFeedBinding import com.isolaatti.drafts.ui.DraftsActivity import com.isolaatti.home.presentation.FeedViewModel -import com.isolaatti.picture_viewer.ui.PictureViewerActivity +import com.isolaatti.images.picture_viewer.ui.PictureViewerActivity import com.isolaatti.posting.posts.viewer.ui.PostViewerActivity import com.isolaatti.posting.comments.ui.BottomSheetPostComments import com.isolaatti.posting.common.domain.OnUserInteractedWithPostCallback diff --git a/app/src/main/java/com/isolaatti/images/Module.kt b/app/src/main/java/com/isolaatti/images/Module.kt new file mode 100644 index 0000000..62fbc6c --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/Module.kt @@ -0,0 +1,17 @@ +package com.isolaatti.images + +import com.isolaatti.connectivity.RetrofitClient +import com.isolaatti.images.image_list.data.remote.ImagesApi +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent + +@Module +@InstallIn(SingletonComponent::class) +class Module { + @Provides + fun provideImagesApi(retrofitClient: RetrofitClient): ImagesApi { + return retrofitClient.client.create(ImagesApi::class.java) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/images/image_list/data/remote/ImageDto.kt b/app/src/main/java/com/isolaatti/images/image_list/data/remote/ImageDto.kt new file mode 100644 index 0000000..08f3420 --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/image_list/data/remote/ImageDto.kt @@ -0,0 +1,9 @@ +package com.isolaatti.images.image_list.data.remote + +data class ImageDto( + val id: String, + val userId: Int, + val name: String, + val squadId: String?, + val idOnFirebase: String +) \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/images/image_list/data/remote/ImagesApi.kt b/app/src/main/java/com/isolaatti/images/image_list/data/remote/ImagesApi.kt new file mode 100644 index 0000000..b385415 --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/image_list/data/remote/ImagesApi.kt @@ -0,0 +1,36 @@ +package com.isolaatti.images.image_list.data.remote + +import com.isolaatti.utils.SimpleData +import okhttp3.RequestBody +import retrofit2.Call +import retrofit2.http.Body +import retrofit2.http.DELETE +import retrofit2.http.GET +import retrofit2.http.Multipart +import retrofit2.http.POST +import retrofit2.http.Part +import retrofit2.http.Path +import retrofit2.http.Query + +interface ImagesApi { + @POST("images/of_user/{userId}") + fun getImagesOfUser(@Path("userId") userId: Int, + @Query("lastId") lastId: String?): Call> + + @POST("images/create") + @Multipart + fun postImage(@Part("file") file: RequestBody, + @Part("name") name: String, + @Part("setAsProfile") setAsProfile: Boolean? = null, + @Part("squadId") squadId: String? = null): Call + + @DELETE("images/{imageId}") + fun deleteImage(@Path("imageId") imageId: String): Call + + @GET("images/of_squad/{squadId}") + fun getImagesOfSquad(@Path("squadId") squadId: String, + @Query("lastId") lastId: String?): Call> + + @POST("/images/{imageId}/rename") + fun renameImage(@Path("imageId") imageId: String, @Body newName: SimpleData) +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/images/image_list/domain/repository/ImagesRepository.kt b/app/src/main/java/com/isolaatti/images/image_list/domain/repository/ImagesRepository.kt new file mode 100644 index 0000000..cfb338f --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/image_list/domain/repository/ImagesRepository.kt @@ -0,0 +1,5 @@ +package com.isolaatti.images.image_list.domain.repository + +interface ImagesRepository { + +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt b/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt new file mode 100644 index 0000000..675c25f --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt @@ -0,0 +1,6 @@ +package com.isolaatti.images.image_list.presentation + +import androidx.lifecycle.ViewModel + +class ImageListViewModel : ViewModel() { +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/images/image_list/presentation/ImagesAdapter.kt b/app/src/main/java/com/isolaatti/images/image_list/presentation/ImagesAdapter.kt new file mode 100644 index 0000000..de712a7 --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/image_list/presentation/ImagesAdapter.kt @@ -0,0 +1,4 @@ +package com.isolaatti.images.image_list.presentation + +class ImagesAdapter { +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/profile/ui/ImagesFragment.kt b/app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt similarity index 93% rename from app/src/main/java/com/isolaatti/profile/ui/ImagesFragment.kt rename to app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt index d2c35bd..480c153 100644 --- a/app/src/main/java/com/isolaatti/profile/ui/ImagesFragment.kt +++ b/app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt @@ -1,4 +1,4 @@ -package com.isolaatti.profile.ui +package com.isolaatti.images.image_list.ui import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/com/isolaatti/images/picture_viewer/domain/Picture.kt b/app/src/main/java/com/isolaatti/images/picture_viewer/domain/Picture.kt new file mode 100644 index 0000000..8c8c1b1 --- /dev/null +++ b/app/src/main/java/com/isolaatti/images/picture_viewer/domain/Picture.kt @@ -0,0 +1,4 @@ +package com.isolaatti.images.picture_viewer.domain + +class Picture { +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt b/app/src/main/java/com/isolaatti/images/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt similarity index 76% rename from app/src/main/java/com/isolaatti/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt rename to app/src/main/java/com/isolaatti/images/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt index 85c8145..14d4d78 100644 --- a/app/src/main/java/com/isolaatti/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt +++ b/app/src/main/java/com/isolaatti/images/picture_viewer/presentation/PictureViewerViewPagerAdapter.kt @@ -1,8 +1,8 @@ -package com.isolaatti.picture_viewer.presentation +package com.isolaatti.images.picture_viewer.presentation import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter -import com.isolaatti.picture_viewer.ui.PictureViewerImageWrapperFragment +import com.isolaatti.images.picture_viewer.ui.PictureViewerImageWrapperFragment class PictureViewerViewPagerAdapter(fragment: Fragment, private val images: Array) : FragmentStateAdapter(fragment) { override fun getItemCount(): Int { diff --git a/app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerActivity.kt b/app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerActivity.kt similarity index 87% rename from app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerActivity.kt rename to app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerActivity.kt index 5023e7c..832468b 100644 --- a/app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerActivity.kt +++ b/app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerActivity.kt @@ -1,11 +1,11 @@ -package com.isolaatti.picture_viewer.ui +package com.isolaatti.images.picture_viewer.ui import android.content.Context import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.isolaatti.databinding.ActivityPictureViewerBinding -import com.isolaatti.picture_viewer.presentation.PictureViewerViewPagerAdapter +import com.isolaatti.images.picture_viewer.presentation.PictureViewerViewPagerAdapter class PictureViewerActivity : AppCompatActivity() { private lateinit var binding: ActivityPictureViewerBinding diff --git a/app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerImageWrapperFragment.kt b/app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerImageWrapperFragment.kt similarity index 97% rename from app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerImageWrapperFragment.kt rename to app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerImageWrapperFragment.kt index 3735b17..e8b1df9 100644 --- a/app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerImageWrapperFragment.kt +++ b/app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerImageWrapperFragment.kt @@ -1,4 +1,4 @@ -package com.isolaatti.picture_viewer.ui +package com.isolaatti.images.picture_viewer.ui import android.os.Bundle import android.util.Log diff --git a/app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerMainFragment.kt b/app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerMainFragment.kt similarity index 88% rename from app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerMainFragment.kt rename to app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerMainFragment.kt index af21935..6a952fe 100644 --- a/app/src/main/java/com/isolaatti/picture_viewer/ui/PictureViewerMainFragment.kt +++ b/app/src/main/java/com/isolaatti/images/picture_viewer/ui/PictureViewerMainFragment.kt @@ -1,4 +1,4 @@ -package com.isolaatti.picture_viewer.ui +package com.isolaatti.images.picture_viewer.ui import android.os.Bundle import android.view.LayoutInflater @@ -6,7 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import com.isolaatti.databinding.FragmentMainPictureViewerBinding -import com.isolaatti.picture_viewer.presentation.PictureViewerViewPagerAdapter +import com.isolaatti.images.picture_viewer.presentation.PictureViewerViewPagerAdapter class PictureViewerMainFragment : Fragment() { diff --git a/app/src/main/java/com/isolaatti/picture_viewer/domain/Picture.kt b/app/src/main/java/com/isolaatti/picture_viewer/domain/Picture.kt deleted file mode 100644 index 3b6d90a..0000000 --- a/app/src/main/java/com/isolaatti/picture_viewer/domain/Picture.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.isolaatti.picture_viewer.domain - -class Picture { -} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/utils/IdentificationWrapper.kt b/app/src/main/java/com/isolaatti/utils/IdentificationWrapper.kt index 8bf5a04..0c95050 100644 --- a/app/src/main/java/com/isolaatti/utils/IdentificationWrapper.kt +++ b/app/src/main/java/com/isolaatti/utils/IdentificationWrapper.kt @@ -2,3 +2,5 @@ package com.isolaatti.utils data class IntIdentificationWrapper(val id: Int) data class LongIdentificationWrapper(val id: Long) + +data class SimpleData(val data: T) diff --git a/app/src/main/res/navigation/picture_viewer_navigation.xml b/app/src/main/res/navigation/picture_viewer_navigation.xml index ace999a..a441911 100644 --- a/app/src/main/res/navigation/picture_viewer_navigation.xml +++ b/app/src/main/res/navigation/picture_viewer_navigation.xml @@ -6,6 +6,6 @@ \ No newline at end of file diff --git a/app/src/main/res/navigation/profile_navigation.xml b/app/src/main/res/navigation/profile_navigation.xml index e15bae0..fdf9b06 100644 --- a/app/src/main/res/navigation/profile_navigation.xml +++ b/app/src/main/res/navigation/profile_navigation.xml @@ -35,7 +35,7 @@ android:label="AudiosFragment" />