diff --git a/core/datetime/.gitignore b/core/datetime/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/core/datetime/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/datetime/build.gradle b/core/datetime/build.gradle new file mode 100644 index 00000000..6b4e35e9 --- /dev/null +++ b/core/datetime/build.gradle @@ -0,0 +1,16 @@ +plugins { + id "moop.android.library" +} + +android { + namespace "soup.movie.datetime" +} + +dependencies { + implementation projects.core.kotlin + implementation projects.data.model + + implementation libs.kotlin.stdlib + + testImplementation projects.testing +} diff --git a/core/datetime/src/main/AndroidManifest.xml b/core/datetime/src/main/AndroidManifest.xml new file mode 100644 index 00000000..8072ee00 --- /dev/null +++ b/core/datetime/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/domain/src/main/java/soup/movie/domain/movie/DateHelper.kt b/core/datetime/src/main/java/soup/movie/datetime/DateHelper.kt similarity index 98% rename from domain/src/main/java/soup/movie/domain/movie/DateHelper.kt rename to core/datetime/src/main/java/soup/movie/datetime/DateHelper.kt index 73ab7d90..cc021576 100644 --- a/domain/src/main/java/soup/movie/domain/movie/DateHelper.kt +++ b/core/datetime/src/main/java/soup/movie/datetime/DateHelper.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package soup.movie.domain.movie +package soup.movie.datetime import java.time.DayOfWeek import java.time.LocalDate diff --git a/domain/src/test/kotlin/soup/movie/domain/movie/DataHelperTest.kt b/core/datetime/src/test/java/soup/movie/datetime/DataHelperTest.kt similarity index 98% rename from domain/src/test/kotlin/soup/movie/domain/movie/DataHelperTest.kt rename to core/datetime/src/test/java/soup/movie/datetime/DataHelperTest.kt index 57228354..1961f915 100644 --- a/domain/src/test/kotlin/soup/movie/domain/movie/DataHelperTest.kt +++ b/core/datetime/src/test/java/soup/movie/datetime/DataHelperTest.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package soup.movie.domain.movie +package soup.movie.datetime import org.junit.Assert.assertEquals import org.junit.Test diff --git a/domain/build.gradle b/domain/build.gradle index d5b67e8a..2d96b43f 100644 --- a/domain/build.gradle +++ b/domain/build.gradle @@ -8,6 +8,7 @@ android { dependencies { implementation projects.core.kotlin + implementation projects.core.datetime implementation projects.data.model implementation libs.kotlin.stdlib diff --git a/domain/src/main/java/soup/movie/domain/movie/MovieExt.kt b/domain/src/main/java/soup/movie/domain/movie/MovieExt.kt index 56a63087..687367d5 100644 --- a/domain/src/main/java/soup/movie/domain/movie/MovieExt.kt +++ b/domain/src/main/java/soup/movie/domain/movie/MovieExt.kt @@ -15,7 +15,7 @@ */ package soup.movie.domain.movie -import soup.movie.model.MovieDetailModel +import soup.movie.datetime.today import soup.movie.model.MovieModel import java.time.LocalDate import java.time.temporal.ChronoUnit @@ -36,8 +36,8 @@ private fun MovieModel.hasOpenDate(): Boolean = openDate.toLocalDate() != null fun MovieModel.isDDay(): Boolean = isPlan and hasOpenDate() -fun MovieDetailModel.screenDays(): Int { - val openDate = movie.openDate.toLocalDate() +fun MovieModel.screenDays(): Int { + val openDate = openDate.toLocalDate() if (openDate != null) { return ChronoUnit.DAYS.between(openDate, today()).toInt() } diff --git a/feature/detail/impl/build.gradle b/feature/detail/impl/build.gradle index f4ce0faa..ee9a53b2 100644 --- a/feature/detail/impl/build.gradle +++ b/feature/detail/impl/build.gradle @@ -16,6 +16,7 @@ dependencies { implementation projects.core.imageloading.api implementation projects.core.logger implementation projects.core.resources + implementation projects.core.datetime implementation projects.data.repository.api implementation projects.data.model implementation projects.domain diff --git a/feature/detail/impl/src/main/java/soup/movie/feature/detail/impl/DetailViewModel.kt b/feature/detail/impl/src/main/java/soup/movie/feature/detail/impl/DetailViewModel.kt index b4573e2d..2b03c648 100644 --- a/feature/detail/impl/src/main/java/soup/movie/feature/detail/impl/DetailViewModel.kt +++ b/feature/detail/impl/src/main/java/soup/movie/feature/detail/impl/DetailViewModel.kt @@ -27,9 +27,9 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import soup.movie.common.DefaultDispatcher import soup.movie.data.repository.MovieRepository -import soup.movie.domain.movie.MM_DD +import soup.movie.datetime.MM_DD +import soup.movie.datetime.yesterday import soup.movie.domain.movie.screenDays -import soup.movie.domain.movie.yesterday import soup.movie.log.Logger import soup.movie.model.MovieDetailModel import soup.movie.model.OpenDateAlarmModel @@ -96,7 +96,7 @@ class DetailViewModel @Inject constructor( rank = rank, rankDate = yesterday().MM_DD(), audience = audiAcc, - screenDays = screenDays(), + screenDays = movie.screenDays(), ), ) } diff --git a/feature/tasks/impl/build.gradle b/feature/tasks/impl/build.gradle index 86d57144..fe5ca73d 100644 --- a/feature/tasks/impl/build.gradle +++ b/feature/tasks/impl/build.gradle @@ -12,6 +12,7 @@ dependencies { implementation projects.core.kotlin implementation projects.core.logger implementation projects.core.resources + implementation projects.core.datetime implementation projects.data.repository.api implementation projects.data.model implementation projects.domain diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateTasksImpl.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateTasksImpl.kt index 998ebb72..8910f6fe 100644 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateTasksImpl.kt +++ b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateTasksImpl.kt @@ -19,7 +19,7 @@ import androidx.work.BackoffPolicy import androidx.work.ExistingPeriodicWorkPolicy import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager -import soup.movie.domain.movie.currentTime +import soup.movie.datetime.currentTime import soup.movie.feature.tasks.AnnounceOpenDateTasks import java.time.temporal.ChronoUnit import java.util.concurrent.TimeUnit diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateUseCase.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateUseCase.kt index f5f02886..1eea4d32 100644 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateUseCase.kt +++ b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateUseCase.kt @@ -16,9 +16,9 @@ package soup.movie.feature.tasks.impl import soup.movie.data.repository.MovieRepository -import soup.movie.domain.movie.YYYY_MM_DD -import soup.movie.domain.movie.plusDaysTo -import soup.movie.domain.movie.today +import soup.movie.datetime.YYYY_MM_DD +import soup.movie.datetime.plusDaysTo +import soup.movie.datetime.today import soup.movie.feature.notification.NotificationBuilder import soup.movie.model.OpenDateAlarmModel import java.time.DayOfWeek