From 0322f79579cfb09d2bec5d2f7880fa385138565b Mon Sep 17 00:00:00 2001 From: Erik Everardo Date: Sat, 25 Nov 2023 22:10:35 -0600 Subject: [PATCH] WIP audios --- .../main/java/com/isolaatti/audio/Module.kt | 24 +++++ .../audios_list/presentation/AudiosAdapter.kt | 50 ++++++++++ .../presentation/AudiosViewModel.kt | 31 ++++++ .../audio/audios_list/ui/AudiosFragment.kt | 94 +++++++++++++++++++ .../isolaatti/audio/common/data/AudioDto.kt | 13 +++ .../isolaatti/audio/common/data/AudiosApi.kt | 11 +++ .../audio/common/data/AudiosRepositoryImpl.kt | 32 +++++++ .../isolaatti/audio/common/domain/Audio.kt | 37 ++++++++ .../audio/common/domain/AudiosRepository.kt | 8 ++ .../isolaatti/connectivity/RetrofitClient.kt | 10 +- .../isolaatti/profile/ui/AudiosFragment.kt | 21 ----- .../profile/ui/ProfileMainFragment.kt | 12 +-- .../type_adapters/LocalDateTimeAdapter.kt | 18 ++++ app/src/main/res/layout/audio_list_item.xml | 67 +++++++++++++ app/src/main/res/layout/fragment_audios.xml | 16 +++- app/src/main/res/menu/audio_item_menu.xml | 9 ++ .../res/navigation/profile_navigation.xml | 13 ++- app/src/main/res/values/strings.xml | 1 + 18 files changed, 435 insertions(+), 32 deletions(-) create mode 100644 app/src/main/java/com/isolaatti/audio/Module.kt create mode 100644 app/src/main/java/com/isolaatti/audio/audios_list/presentation/AudiosAdapter.kt create mode 100644 app/src/main/java/com/isolaatti/audio/audios_list/presentation/AudiosViewModel.kt create mode 100644 app/src/main/java/com/isolaatti/audio/audios_list/ui/AudiosFragment.kt create mode 100644 app/src/main/java/com/isolaatti/audio/common/data/AudioDto.kt create mode 100644 app/src/main/java/com/isolaatti/audio/common/data/AudiosApi.kt create mode 100644 app/src/main/java/com/isolaatti/audio/common/data/AudiosRepositoryImpl.kt create mode 100644 app/src/main/java/com/isolaatti/audio/common/domain/Audio.kt create mode 100644 app/src/main/java/com/isolaatti/audio/common/domain/AudiosRepository.kt delete mode 100644 app/src/main/java/com/isolaatti/profile/ui/AudiosFragment.kt create mode 100644 app/src/main/java/com/isolaatti/type_adapters/LocalDateTimeAdapter.kt create mode 100644 app/src/main/res/layout/audio_list_item.xml create mode 100644 app/src/main/res/menu/audio_item_menu.xml diff --git a/app/src/main/java/com/isolaatti/audio/Module.kt b/app/src/main/java/com/isolaatti/audio/Module.kt new file mode 100644 index 0000000..67228f1 --- /dev/null +++ b/app/src/main/java/com/isolaatti/audio/Module.kt @@ -0,0 +1,24 @@ +package com.isolaatti.audio + +import com.isolaatti.audio.common.data.AudiosApi +import com.isolaatti.audio.common.data.AudiosRepositoryImpl +import com.isolaatti.audio.common.domain.AudiosRepository +import com.isolaatti.connectivity.RetrofitClient +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent + +@Module +@InstallIn(SingletonComponent::class) +class Module { + @Provides + fun provideAudiosApi(retrofitClient: RetrofitClient): AudiosApi { + return retrofitClient.client.create(AudiosApi::class.java) + } + + @Provides + fun provideAudiosRepository(audiosApi: AudiosApi): AudiosRepository { + return AudiosRepositoryImpl(audiosApi) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/audio/audios_list/presentation/AudiosAdapter.kt b/app/src/main/java/com/isolaatti/audio/audios_list/presentation/AudiosAdapter.kt new file mode 100644 index 0000000..9fdbd9c --- /dev/null +++ b/app/src/main/java/com/isolaatti/audio/audios_list/presentation/AudiosAdapter.kt @@ -0,0 +1,50 @@ +package com.isolaatti.audio.audios_list.presentation + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.ViewHolder +import coil.load +import com.isolaatti.audio.common.domain.Audio +import com.isolaatti.databinding.AudioListItemBinding + +class AudiosAdapter( + private val onClick: ((audio: Audio) -> Unit), + private val onOptionsClick: ((audio: Audio, button: View) -> Boolean) +) : RecyclerView.Adapter() { + + private var data: List