Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: 전체적인 패키지 구조 변경 #977

Merged
merged 5 commits into from
Mar 11, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -14,6 +14,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.mulberry.ody.R
import com.mulberry.ody.presentation.feature.creation.MeetingCreationActivity
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
Original file line number Diff line number Diff line change
@@ -14,14 +14,18 @@ import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.mulberry.ody.R
import com.mulberry.ody.presentation.feature.invitecode.InviteCodeActivity
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class InviteCodeActivityTest {
@get:Rule
val activityRule: ActivityScenarioRule<InviteCodeActivity> = ActivityScenarioRule(InviteCodeActivity::class.java)
val activityRule: ActivityScenarioRule<InviteCodeActivity> =
ActivityScenarioRule(
InviteCodeActivity::class.java,
)

@Test
fun `아무것도_입력하지_않으면_확인_버튼이_비활성화_된다`() {
20 changes: 10 additions & 10 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@
tools:node="remove" />

<activity
android:name=".presentation.splash.SplashActivity"
android:name=".presentation.feature.splash.SplashActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Splash">
@@ -55,11 +55,11 @@
</intent-filter>
</activity>
<activity
android:name=".presentation.setting.SettingActivity"
android:name=".presentation.feature.setting.SettingActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".presentation.login.LoginActivity"
android:name=".presentation.feature.login.LoginActivity"
android:exported="false"
android:screenOrientation="portrait">
<intent-filter>
@@ -72,32 +72,32 @@
</intent-filter>
</activity>
<activity
android:name=".presentation.meetings.MeetingsActivity"
android:name=".presentation.feature.meetings.MeetingsActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".presentation.invitecode.InviteCodeActivity"
android:name=".presentation.feature.invitecode.InviteCodeActivity"
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".presentation.join.MeetingJoinActivity"
android:name=".presentation.feature.join.MeetingJoinActivity"
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".presentation.join.complete.JoinCompleteActivity"
android:name=".presentation.feature.join.complete.JoinCompleteActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".presentation.creation.MeetingCreationActivity"
android:name=".presentation.feature.creation.MeetingCreationActivity"
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".presentation.room.MeetingRoomActivity"
android:name=".presentation.feature.room.MeetingRoomActivity"
android:exported="false"
android:parentActivityName=".presentation.meetings.MeetingsActivity"
android:parentActivityName=".presentation.feature.meetings.MeetingsActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ import android.content.Intent
import android.media.RingtoneManager
import androidx.core.app.NotificationCompat
import com.mulberry.ody.R
import com.mulberry.ody.presentation.meetings.MeetingsActivity
import com.mulberry.ody.presentation.feature.meetings.MeetingsActivity
import javax.inject.Inject

class EtaDashboardNotification
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.retrofit
package com.mulberry.ody.data.remote.retrofit

import com.mulberry.ody.data.local.db.OdyDatastore
import com.mulberry.ody.data.remote.core.entity.login.mapper.toAuthToken
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.retrofit
package com.mulberry.ody.data.remote.retrofit

import com.mulberry.ody.data.remote.core.entity.ErrorResponse
import com.mulberry.ody.domain.apiresult.ApiResult
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.retrofit
package com.mulberry.ody.data.remote.retrofit

import com.mulberry.ody.domain.apiresult.ApiResult
import retrofit2.Call
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.retrofit
package com.mulberry.ody.data.remote.retrofit

import com.mulberry.ody.data.local.db.OdyDatastore
import com.mulberry.ody.domain.model.AuthToken
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.remote.core.repository
package com.mulberry.ody.data.repository

import com.mulberry.ody.data.remote.core.entity.join.mapper.toJoinRequest
import com.mulberry.ody.data.remote.core.entity.join.mapper.toReserveInfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.local.repository
package com.mulberry.ody.data.repository

import android.content.Context
import com.mulberry.ody.data.local.db.EtaReservationDao
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.remote.core.repository
package com.mulberry.ody.data.repository

import com.mulberry.ody.data.local.db.MateEtaInfoDao
import com.mulberry.ody.data.local.entity.eta.MateEtaInfoEntity
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.data.remote.core.repository
package com.mulberry.ody.data.repository

import com.mulberry.ody.data.remote.core.entity.notification.mapper.toNotificationList
import com.mulberry.ody.data.remote.core.service.NotificationService
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mulberry.ody.data.remote.thirdparty.address
package com.mulberry.ody.data.repository

import com.mulberry.ody.data.remote.thirdparty.address.KakaoAddressService
import com.mulberry.ody.data.remote.thirdparty.address.response.toAddresses
import com.mulberry.ody.domain.apiresult.ApiResult
import com.mulberry.ody.domain.apiresult.map
Original file line number Diff line number Diff line change
@@ -3,9 +3,9 @@ package com.mulberry.ody.di
import com.mulberry.ody.BuildConfig
import com.mulberry.ody.data.local.db.OdyDatastore
import com.mulberry.ody.data.remote.core.service.RefreshTokenService
import com.mulberry.ody.data.retrofit.AccessTokenInterceptor
import com.mulberry.ody.data.retrofit.ApiResultCallAdapter
import com.mulberry.ody.data.retrofit.RefreshTokenInterceptor
import com.mulberry.ody.data.remote.retrofit.AccessTokenInterceptor
import com.mulberry.ody.data.remote.retrofit.ApiResultCallAdapter
import com.mulberry.ody.data.remote.retrofit.RefreshTokenInterceptor
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
import dagger.Module
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.mulberry.ody.di

import com.mulberry.ody.data.auth.repository.KakaoAuthRepository
import com.mulberry.ody.data.local.repository.DefaultMatesEtaRepository
import com.mulberry.ody.data.remote.core.repository.DefaultJoinRepository
import com.mulberry.ody.data.remote.core.repository.DefaultMeetingRepository
import com.mulberry.ody.data.remote.core.repository.DefaultNotificationLogRepository
import com.mulberry.ody.data.remote.thirdparty.address.KakaoAddressRepository
import com.mulberry.ody.data.repository.DefaultJoinRepository
import com.mulberry.ody.data.repository.DefaultMatesEtaRepository
import com.mulberry.ody.data.repository.DefaultMeetingRepository
import com.mulberry.ody.data.repository.DefaultNotificationLogRepository
import com.mulberry.ody.data.repository.KakaoAddressRepository
import com.mulberry.ody.domain.repository.location.AddressRepository
import com.mulberry.ody.domain.repository.ody.AuthRepository
import com.mulberry.ody.domain.repository.ody.JoinRepository
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation
package com.mulberry.ody.presentation.common

import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.address
package com.mulberry.ody.presentation.feature.address

import android.os.Bundle
import android.view.KeyEvent
@@ -10,12 +10,12 @@ import androidx.fragment.app.viewModels
import com.google.android.material.divider.MaterialDividerItemDecoration
import com.mulberry.ody.R
import com.mulberry.ody.databinding.FragmentAddressSearchBinding
import com.mulberry.ody.presentation.address.adapter.AddressesAdapter
import com.mulberry.ody.presentation.address.listener.AddressSearchListener
import com.mulberry.ody.presentation.collectWhenStarted
import com.mulberry.ody.presentation.common.binding.BindingFragment
import com.mulberry.ody.presentation.common.collectWhenStarted
import com.mulberry.ody.presentation.common.listener.BackListener
import com.mulberry.ody.presentation.common.toPixel
import com.mulberry.ody.presentation.feature.address.adapter.AddressesAdapter
import com.mulberry.ody.presentation.feature.address.listener.AddressSearchListener
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.address
package com.mulberry.ody.presentation.feature.address

import androidx.lifecycle.viewModelScope
import androidx.paging.Pager
@@ -9,8 +9,8 @@ import com.mulberry.ody.data.remote.thirdparty.address.AddressPagingSource
import com.mulberry.ody.data.remote.thirdparty.address.AddressPagingSource.Companion.PAGE_SIZE
import com.mulberry.ody.domain.model.Address
import com.mulberry.ody.domain.repository.location.AddressRepository
import com.mulberry.ody.presentation.address.listener.AddressListener
import com.mulberry.ody.presentation.common.BaseViewModel
import com.mulberry.ody.presentation.feature.address.listener.AddressListener
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.mulberry.ody.presentation.address.adapter
package com.mulberry.ody.presentation.feature.address.adapter

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import com.mulberry.ody.databinding.ItemAddressSearchBinding
import com.mulberry.ody.domain.model.Address
import com.mulberry.ody.presentation.address.listener.AddressListener
import com.mulberry.ody.presentation.address.listener.AddressViewHolder
import com.mulberry.ody.presentation.feature.address.listener.AddressListener
import com.mulberry.ody.presentation.feature.address.listener.AddressViewHolder

class AddressesAdapter(
private val addressListener: AddressListener,
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.address.listener
package com.mulberry.ody.presentation.feature.address.listener

import com.mulberry.ody.domain.model.Address

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.address.listener
package com.mulberry.ody.presentation.feature.address.listener

import com.mulberry.ody.domain.model.Address

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.address.listener
package com.mulberry.ody.presentation.feature.address.listener

import androidx.recyclerview.widget.RecyclerView
import com.mulberry.ody.databinding.ItemAddressSearchBinding
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.creation
package com.mulberry.ody.presentation.feature.creation

import android.content.Context
import android.content.Intent
@@ -10,17 +10,17 @@ import androidx.fragment.app.commit
import com.mulberry.ody.R
import com.mulberry.ody.databinding.ActivityMeetingCreationBinding
import com.mulberry.ody.domain.model.Address
import com.mulberry.ody.presentation.address.AddressSearchFragment
import com.mulberry.ody.presentation.address.listener.AddressSearchListener
import com.mulberry.ody.presentation.collectWhenStarted
import com.mulberry.ody.presentation.common.ViewPagerAdapter
import com.mulberry.ody.presentation.common.binding.BindingActivity
import com.mulberry.ody.presentation.common.collectWhenStarted
import com.mulberry.ody.presentation.common.listener.BackListener
import com.mulberry.ody.presentation.creation.date.MeetingDateFragment
import com.mulberry.ody.presentation.creation.destination.MeetingDestinationFragment
import com.mulberry.ody.presentation.creation.name.MeetingNameFragment
import com.mulberry.ody.presentation.creation.time.MeetingTimeFragment
import com.mulberry.ody.presentation.join.MeetingJoinActivity
import com.mulberry.ody.presentation.feature.address.AddressSearchFragment
import com.mulberry.ody.presentation.feature.address.listener.AddressSearchListener
import com.mulberry.ody.presentation.feature.creation.date.MeetingDateFragment
import com.mulberry.ody.presentation.feature.creation.destination.MeetingDestinationFragment
import com.mulberry.ody.presentation.feature.creation.name.MeetingNameFragment
import com.mulberry.ody.presentation.feature.creation.time.MeetingTimeFragment
import com.mulberry.ody.presentation.feature.join.MeetingJoinActivity
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.creation
package com.mulberry.ody.presentation.feature.creation

enum class MeetingCreationInfoType {
NAME,
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.creation
package com.mulberry.ody.presentation.feature.creation

sealed interface MeetingCreationNavigateAction {
data object NavigateToMeetings : MeetingCreationNavigateAction
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.creation
package com.mulberry.ody.presentation.feature.creation

import android.location.Location
import androidx.lifecycle.viewModelScope
@@ -15,7 +15,7 @@ import com.mulberry.ody.presentation.common.BaseViewModel
import com.mulberry.ody.presentation.common.analytics.AnalyticsHelper
import com.mulberry.ody.presentation.common.analytics.logNetworkErrorEvent
import com.mulberry.ody.presentation.common.gps.LocationHelper
import com.mulberry.ody.presentation.creation.listener.MeetingCreationListener
import com.mulberry.ody.presentation.feature.creation.listener.MeetingCreationListener
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.mulberry.ody.presentation.creation.date
package com.mulberry.ody.presentation.feature.creation.date

import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import com.mulberry.ody.R
import com.mulberry.ody.databinding.FragmentMeetingDateBinding
import com.mulberry.ody.presentation.collectWhenStarted
import com.mulberry.ody.presentation.common.binding.BindingFragment
import com.mulberry.ody.presentation.creation.MeetingCreationInfoType
import com.mulberry.ody.presentation.creation.MeetingCreationViewModel
import com.mulberry.ody.presentation.common.collectWhenStarted
import com.mulberry.ody.presentation.feature.creation.MeetingCreationInfoType
import com.mulberry.ody.presentation.feature.creation.MeetingCreationViewModel
import java.time.LocalDate

class MeetingDateFragment :
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package com.mulberry.ody.presentation.creation.destination
package com.mulberry.ody.presentation.feature.creation.destination

import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import com.mulberry.ody.R
import com.mulberry.ody.databinding.FragmentMeetingDestinationBinding
import com.mulberry.ody.presentation.address.listener.AddressSearchListener
import com.mulberry.ody.presentation.collectWhenStarted
import com.mulberry.ody.presentation.common.binding.BindingFragment
import com.mulberry.ody.presentation.creation.MeetingCreationInfoType
import com.mulberry.ody.presentation.creation.MeetingCreationViewModel
import com.mulberry.ody.presentation.common.collectWhenStarted
import com.mulberry.ody.presentation.feature.address.listener.AddressSearchListener
import com.mulberry.ody.presentation.feature.creation.MeetingCreationInfoType
import com.mulberry.ody.presentation.feature.creation.MeetingCreationViewModel

class MeetingDestinationFragment :
BindingFragment<FragmentMeetingDestinationBinding>(
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mulberry.ody.presentation.creation.listener
package com.mulberry.ody.presentation.feature.creation.listener

interface MeetingCreationListener {
fun onClickCreationMeeting()
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.mulberry.ody.presentation.creation.name
package com.mulberry.ody.presentation.feature.creation.name

import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import com.mulberry.ody.R
import com.mulberry.ody.databinding.FragmentMeetingNameBinding
import com.mulberry.ody.presentation.common.binding.BindingFragment
import com.mulberry.ody.presentation.creation.MeetingCreationInfoType
import com.mulberry.ody.presentation.creation.MeetingCreationViewModel
import com.mulberry.ody.presentation.feature.creation.MeetingCreationInfoType
import com.mulberry.ody.presentation.feature.creation.MeetingCreationViewModel

class MeetingNameFragment : BindingFragment<FragmentMeetingNameBinding>(R.layout.fragment_meeting_name) {
private val viewModel: MeetingCreationViewModel by activityViewModels<MeetingCreationViewModel>()
Loading