Explorar el Código

set(architecture): core/data/feat

zhaoyadi hace 1 año
padre
commit
afa2e5cefd
Se han modificado 100 ficheros con 258 adiciones y 146 borrados
  1. 2 2
      .idea/gradle.xml
  2. 11 5
      app/build.gradle.kts
  3. 8 17
      app/src/main/java/com/zaojiao/app/LJGApplication.kt
  4. 0 6
      app/src/main/java/com/zaojiao/app/data/remote/RemoteUserData.kt
  5. 1 1
      app/src/main/java/com/zaojiao/app/ui/home/HomeCourseFragment.kt
  6. 1 1
      app/src/main/java/com/zaojiao/app/ui/home/HomePersonFragment.kt
  7. 1 2
      app/src/main/java/com/zaojiao/app/ui/home/HomePlanFragment.kt
  8. 0 10
      app/src/main/java/com/zaojiao/app/ui/login/LoginActivity.kt
  9. 1 0
      build.gradle.kts
  10. 9 2
      core/http/build.gradle.kts
  11. 0 36
      core/http/src/main/java/com/zaojiao/http/HttpManager.kt
  12. 0 27
      core/http/src/main/java/com/zaojiao/http/HttpResult.kt
  13. 10 0
      core/http/src/main/java/com/zaojiao/http/api/UserApi.kt
  14. 20 0
      core/http/src/main/java/com/zaojiao/http/di/ApiModule.kt
  15. 73 3
      core/http/src/main/java/com/zaojiao/http/di/HttpModule.kt
  16. 27 0
      data/model/src/main/java/com/zaojiao/app/data/model/Result.kt
  17. 5 1
      data/remote/build.gradle.kts
  18. 30 0
      data/repo/build.gradle.kts
  19. 0 0
      data/repo/src/main/AndroidManifest.xml
  20. 0 1
      data/repo/src/main/kotlin/com/zaojiao/app/data/repo/UserRepository.kt
  21. 4 3
      data/repo/src/main/kotlin/com/zaojiao/app/data/repo/UserRepositoryImpl.kt
  22. 2 1
      feat/common/build.gradle.kts
  23. 0 2
      feat/course/src/main/AndroidManifest.xml
  24. 7 1
      feat/home/build.gradle.kts
  25. 4 0
      feat/home/src/main/AndroidManifest.xml
  26. 1 3
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseCategory.kt
  27. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseGroupBuy.kt
  28. 1 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCoursePage.kt
  29. 1 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseRecommend.kt
  30. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseTopBar.kt
  31. 1 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseTopSwiper.kt
  32. 10 0
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseViewModel.kt
  33. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseZone.kt
  34. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalAccount.kt
  35. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalBottom.kt
  36. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalContent.kt
  37. 1 2
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalEngage.kt
  38. 4 0
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalNavigation.kt
  39. 1 5
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalPage.kt
  40. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalService.kt
  41. 2 4
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalTopBar.kt
  42. 2 1
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalUserBar.kt
  43. 4 0
      feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalViewModel.kt
  44. 0 0
      feat/home/src/main/res/mipmap-xhdpi/course_group_buy_bg.png
  45. 0 0
      feat/home/src/main/res/mipmap-xhdpi/course_learn.png
  46. 0 0
      feat/home/src/main/res/mipmap-xhdpi/course_zone0.png
  47. 0 0
      feat/home/src/main/res/mipmap-xhdpi/course_zone1.png
  48. 0 0
      feat/home/src/main/res/mipmap-xhdpi/ic_default_avatar.png
  49. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_account.png
  50. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_address.png
  51. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_baby.png
  52. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_bottom.png
  53. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_cart.png
  54. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_clockin.png
  55. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_coupon.png
  56. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_course.png
  57. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_customer.png
  58. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_distribuion.png
  59. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_feedback.png
  60. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_history.png
  61. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_invation.png
  62. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_material.png
  63. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_message.png
  64. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_orders.png
  65. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_qrcode.png
  66. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_report.png
  67. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_setting.png
  68. 0 0
      feat/home/src/main/res/mipmap-xhdpi/personal_verify.png
  69. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/course_group_buy_bg.png
  70. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/course_learn.png
  71. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/course_zone0.png
  72. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/course_zone1.png
  73. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/ic_default_avatar.png
  74. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_account.png
  75. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_address.png
  76. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_baby.png
  77. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_bottom.png
  78. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_cart.png
  79. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_clockin.png
  80. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_coupon.png
  81. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_course.png
  82. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_customer.png
  83. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_distribuion.png
  84. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_feedback.png
  85. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_history.png
  86. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_invation.png
  87. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_material.png
  88. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_message.png
  89. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_orders.png
  90. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_qrcode.png
  91. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_report.png
  92. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_setting.png
  93. 0 0
      feat/home/src/main/res/mipmap-xxhdpi/personal_verify.png
  94. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/course_group_buy_bg.png
  95. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/course_learn.png
  96. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/course_zone0.png
  97. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/course_zone1.png
  98. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/ic_default_avatar.png
  99. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/personal_account.png
  100. 0 0
      feat/home/src/main/res/mipmap-xxxhdpi/personal_address.png

+ 2 - 2
.idea/gradle.xml

@@ -18,10 +18,10 @@
             <option value="$PROJECT_DIR$/data/local" />
             <option value="$PROJECT_DIR$/data/model" />
             <option value="$PROJECT_DIR$/data/remote" />
+            <option value="$PROJECT_DIR$/data/repo" />
             <option value="$PROJECT_DIR$/feat" />
             <option value="$PROJECT_DIR$/feat/common" />
-            <option value="$PROJECT_DIR$/feat/course" />
-            <option value="$PROJECT_DIR$/feat/personal" />
+            <option value="$PROJECT_DIR$/feat/home" />
           </set>
         </option>
       </GradleProjectSettings>

+ 11 - 5
app/build.gradle.kts

@@ -3,8 +3,9 @@ import org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs
 plugins {
     id("com.android.application")
     id("org.jetbrains.kotlin.android")
-    id("kotlin-kapt")
+    id("org.jetbrains.kotlin.kapt")
     id("androidx.navigation.safeargs.kotlin")
+    id("com.google.dagger.hilt.android")
 }
 
 android {
@@ -50,8 +51,7 @@ android {
 dependencies {
     implementation(project(":core:http"))
 
-    implementation(project(":feat:course"))
-    implementation(project(":feat:personal"))
+    implementation(project(":feat:home"))
 
     implementation("androidx.core:core-ktx:1.10.1")
     implementation("androidx.appcompat:appcompat:1.6.1")
@@ -62,6 +62,9 @@ dependencies {
     implementation("androidx.coordinatorlayout:coordinatorlayout:1.2.0")
 
     implementation("com.google.android.material:material:1.9.0")
+    
+    implementation(libs.coil.kt)
+    implementation(libs.coil.kt.svg)
 
     implementation(platform("androidx.compose:compose-bom:2023.05.01"))
     implementation("androidx.compose.ui:ui")
@@ -69,10 +72,13 @@ dependencies {
     implementation("androidx.compose.material3:material3")
     implementation("androidx.compose.ui:ui-tooling-preview")
 
-    implementation("com.google.accompanist:accompanist-systemuicontroller:0.30.1")
+    api("com.google.accompanist:accompanist-systemuicontroller:0.30.1")
 
     implementation("com.google.dagger:dagger:2.44.2")
-    add("kapt", "com.google.dagger:dagger-compiler:2.44.2")
+    kapt("com.google.dagger:dagger-compiler:2.44.2")
+
+    implementation("com.google.dagger:hilt-android:2.44.2")
+    kapt("com.google.dagger:hilt-android-compiler:2.44.2")
 
     testImplementation("junit:junit:4.13.2")
     androidTestImplementation("androidx.test.ext:junit:1.1.5")

+ 8 - 17
app/src/main/java/com/zaojiao/app/LJGApplication.kt

@@ -1,23 +1,14 @@
 package com.zaojiao.app
 
 import android.app.Application
-import com.zaojiao.app.ui.login.LoginActivity
-import com.zaojiao.http.di.HttpModule
-import dagger.Component
-import javax.inject.Singleton
+import coil.ImageLoader
+import coil.ImageLoaderFactory
+import dagger.hilt.android.HiltAndroidApp
+import javax.inject.Provider
 
-class LJGApplication : Application() {
-    companion object {
-        val applicationComponent: ApplicationComponent = DaggerApplicationComponent.create()
-    }
+@HiltAndroidApp
+class LJGApplication : Application(), ImageLoaderFactory {
+    lateinit var imageLoader: Provider<ImageLoader>
 
-    override fun onCreate() {
-        super.onCreate()
-    }
-}
-
-@Singleton
-@Component(modules = [HttpModule::class])
-interface ApplicationComponent {
-    fun inject(activity: LoginActivity)
+    override fun newImageLoader(): ImageLoader = imageLoader.get()
 }

+ 0 - 6
app/src/main/java/com/zaojiao/app/data/remote/RemoteUserData.kt

@@ -1,6 +0,0 @@
-package com.zaojiao.app.data.remote
-
-class RemoteUserData(
-
-) {
-}

+ 1 - 1
app/src/main/java/com/zaojiao/app/ui/home/HomeCourseFragment.kt

@@ -7,7 +7,7 @@ import android.view.ViewGroup
 import androidx.compose.ui.platform.ComposeView
 import androidx.fragment.app.Fragment
 import com.zaojiao.app.R
-import com.zaojiao.component.course.HomeCoursePage
+import com.zaojiao.app.feat.home.course.HomeCoursePage
 
 class HomeCourseFragment : Fragment() {
     override fun onCreateView(

+ 1 - 1
app/src/main/java/com/zaojiao/app/ui/home/HomePersonFragment.kt

@@ -7,7 +7,7 @@ import android.view.ViewGroup
 import androidx.compose.ui.platform.ComposeView
 import androidx.fragment.app.Fragment
 import com.zaojiao.app.R
-import com.zaojiao.component.personal.HomePersonalPage
+import com.zaojiao.app.feat.home.personal.HomePersonalPage
 
 class HomePersonFragment : Fragment() {
     override fun onCreateView(

+ 1 - 2
app/src/main/java/com/zaojiao/app/ui/home/HomePlanFragment.kt

@@ -7,8 +7,7 @@ import android.view.ViewGroup
 import androidx.compose.ui.platform.ComposeView
 import androidx.fragment.app.Fragment
 import com.zaojiao.app.R
-import com.zaojiao.app.ui.demo.BalanceColumn
-import com.zaojiao.component.personal.HomePersonalPage
+import com.zaojiao.app.feat.home.personal.HomePersonalPage
 
 class HomePlanFragment : Fragment() {
     override fun onCreateView(

+ 0 - 10
app/src/main/java/com/zaojiao/app/ui/login/LoginActivity.kt

@@ -11,17 +11,7 @@ class LoginActivity : AppCompatActivity() {
     @Inject
     lateinit var loginViewModel: LoginViewModel
 
-    @Inject
-    lateinit var okHttpClient: OkHttpClient
-
-    @Inject
-    lateinit var okHttpClient2: OkHttpClient
-
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        LJGApplication.applicationComponent.inject(this)
-
-        Log.d("LoginActivity", "okHttpClient  is ${okHttpClient.hashCode()}")
-        Log.d("LoginActivity", "okHttpClient2 is ${okHttpClient2.hashCode()}")
     }
 }

+ 1 - 0
build.gradle.kts

@@ -17,6 +17,7 @@ plugins {
     id("com.android.library").version("8.0.1").apply(false)
     id("org.jetbrains.kotlin.android").version("1.8.21").apply(false)
     id("org.jetbrains.kotlin.kapt").version("1.8.21").apply(false)
+    id("com.google.dagger.hilt.android").version("2.44.2").apply(false)
 }
 
 subprojects {

+ 9 - 2
core/http/build.gradle.kts

@@ -1,7 +1,8 @@
 plugins {
     id("com.android.library")
     id("org.jetbrains.kotlin.android")
-    id("kotlin-kapt")
+    id("org.jetbrains.kotlin.kapt")
+    id("com.google.dagger.hilt.android")
 }
 
 android {
@@ -25,8 +26,14 @@ android {
 dependencies {
     implementation("androidx.core:core-ktx:1.10.1")
 
+    implementation(libs.coil.kt)
+    implementation(libs.coil.kt.svg)
+
     implementation("com.google.dagger:dagger:2.44.2")
-    add("kapt", "com.google.dagger:dagger-compiler:2.44.2")
+    kapt( "com.google.dagger:dagger-compiler:2.44.2")
+
+    implementation("com.google.dagger:hilt-android:2.44.2")
+    kapt("com.google.dagger:hilt-android-compiler:2.44.2")
 
     api("com.squareup.okhttp3:okhttp:4.10.0")
     api("com.squareup.okhttp3:logging-interceptor:4.10.0")

+ 0 - 36
core/http/src/main/java/com/zaojiao/http/HttpManager.kt

@@ -1,36 +0,0 @@
-package com.zaojiao.http
-
-import okhttp3.OkHttpClient
-import retrofit2.Retrofit
-import retrofit2.converter.gson.GsonConverterFactory
-import java.util.concurrent.TimeUnit
-
-object HttpManager {
-    private const val API_ENDPOINT = "https://open.api.luojigou.vip"
-    private const val TIMEOUT: Long = 30 * 1000
-
-    private val _okHttpClient by lazy {
-        OkHttpClient.Builder()
-            .connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
-            .readTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
-            .writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
-            .retryOnConnectionFailure(true)
-            .followRedirects(false)
-            .followSslRedirects(false)
-            .build()
-    }
-
-    public val httpClient get() = _okHttpClient
-
-    private val restfulClient by lazy {
-        Retrofit.Builder()
-            .client(_okHttpClient)
-            .baseUrl(API_ENDPOINT)
-            .addConverterFactory(GsonConverterFactory.create())
-            .build()
-    }
-
-    fun <T> create(service: Class<T>): T = restfulClient.create(service)
-
-    inline fun <reified T> create(): T = create(T::class.java)
-}

+ 0 - 27
core/http/src/main/java/com/zaojiao/http/HttpResult.kt

@@ -1,27 +0,0 @@
-package com.zaojiao.http
-
-sealed class HttpResult {
-    data class Success<T>(
-        val data: T,
-    ) : HttpResult()
-
-    data class Failure(
-        val throwable: Throwable,
-    ) : HttpResult()
-}
-
-inline fun <T> HttpResult.onSuccess(callback: (T) -> Unit): HttpResult {
-    if (this is HttpResult.Success<*>) {
-        callback(data as T)
-    }
-
-    return this
-}
-
-inline fun HttpResult.onFailure(callback: (Throwable) -> Unit): HttpResult {
-    if (this is HttpResult.Failure) {
-        callback(throwable)
-    }
-
-    return this
-}

+ 10 - 0
core/http/src/main/java/com/zaojiao/http/api/UserApi.kt

@@ -0,0 +1,10 @@
+package com.zaojiao.http.api
+
+import retrofit2.http.GET
+
+
+interface UserApi {
+
+    @GET
+    suspend fun getUser(): String
+}

+ 20 - 0
core/http/src/main/java/com/zaojiao/http/di/ApiModule.kt

@@ -0,0 +1,20 @@
+package com.zaojiao.http.di
+
+import com.zaojiao.http.api.UserApi
+import dagger.Module
+import dagger.Provides
+import dagger.hilt.InstallIn
+import dagger.hilt.components.SingletonComponent
+import retrofit2.Retrofit
+
+@Module
+@InstallIn(SingletonComponent::class)
+class ApiModule {
+
+    @Provides
+    fun provideUserApi(
+        retrofit: Retrofit
+    ): UserApi {
+        return retrofit.create(UserApi::class.java)
+    }
+}

+ 73 - 3
core/http/src/main/java/com/zaojiao/http/di/HttpModule.kt

@@ -1,16 +1,86 @@
 package com.zaojiao.http.di
 
+import android.content.Context
+import coil.ImageLoader
+import coil.decode.SvgDecoder
 import dagger.Module
 import dagger.Provides
+import dagger.hilt.InstallIn
+import dagger.hilt.android.qualifiers.ApplicationContext
+import dagger.hilt.components.SingletonComponent
 import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+import java.util.concurrent.TimeUnit
+import javax.inject.Named
 import javax.inject.Singleton
 
 @Module
-class HttpModule {
+@InstallIn(SingletonComponent::class)
+object HttpModule {
+    @Provides
+    @Singleton
+    @Named("timeout")
+    fun provideTimeout(): Long {
+        return 30 * 1000
+    }
+
+    @Provides
+    @Singleton
+    @Named("endpoint")
+    fun provideEndpoint(): String {
+        return "https://open.api.luojigou.vip"
+    }
 
+    @Provides
     @Singleton
+    fun provideHttpLoggingInterceptor(): HttpLoggingInterceptor {
+        return HttpLoggingInterceptor()
+            .apply {
+                setLevel(HttpLoggingInterceptor.Level.BODY)
+            }
+    }
+
     @Provides
-    fun provideHttpClient(): OkHttpClient {
-        return OkHttpClient.Builder().build()
+    @Singleton
+    fun provideOkHttpClient(
+        @Named("timeout") timeout: Long,
+        loggingInterceptor: HttpLoggingInterceptor,
+    ): OkHttpClient {
+        return OkHttpClient.Builder()
+            .connectTimeout(timeout, TimeUnit.MILLISECONDS)
+            .readTimeout(timeout, TimeUnit.MILLISECONDS)
+            .writeTimeout(timeout, TimeUnit.MILLISECONDS)
+            .retryOnConnectionFailure(true)
+            .followRedirects(false)
+            .followSslRedirects(false)
+            .build()
+    }
+
+    @Provides
+    @Singleton
+    fun provideRetrofitClient(
+        okHttpClient: OkHttpClient,
+        @Named("endpoint") endpoint: String,
+    ): Retrofit {
+        return Retrofit.Builder()
+            .client(okHttpClient)
+            .baseUrl(endpoint)
+            .addConverterFactory(GsonConverterFactory.create())
+            .build()
+    }
+
+    @Provides
+    @Singleton
+    fun provideImageLoader(
+        @ApplicationContext application: Context,
+        okHttpClient: OkHttpClient,
+    ): ImageLoader {
+        return ImageLoader.Builder(application)
+            .callFactory(okHttpClient)
+            .components { add(SvgDecoder.Factory()) }
+            .respectCacheHeaders(false)
+            .build()
     }
 }

+ 27 - 0
data/model/src/main/java/com/zaojiao/app/data/model/Result.kt

@@ -0,0 +1,27 @@
+package com.zaojiao.app.data.model
+
+sealed class Result {
+    data class Success<T>(
+        val data: T,
+    ) : Result()
+
+    data class Failure(
+        val throwable: Throwable,
+    ) : Result()
+}
+
+inline fun <T> Result.onSuccess(callback: (T) -> Unit): Result {
+    if (this is Result.Success<*>) {
+        callback(data as T)
+    }
+
+    return this
+}
+
+inline fun Result.onFailure(callback: (Throwable) -> Unit): Result {
+    if (this is Result.Failure) {
+        callback(throwable)
+    }
+
+    return this
+}

+ 5 - 1
data/remote/build.gradle.kts

@@ -1,6 +1,7 @@
 plugins {
     id("com.android.library")
     id("org.jetbrains.kotlin.android")
+    id("org.jetbrains.kotlin.kapt")
 }
 
 android {
@@ -24,5 +25,8 @@ android {
 dependencies {
     implementation(project(":core:http"))
 
-    implementation("androidx.core:core-ktx:1.8.0")
+    implementation("androidx.core:core-ktx:1.10.1")
+
+    implementation("com.google.dagger:dagger:2.44.2")
+    kapt("com.google.dagger:dagger-compiler:2.44.2")
 }

+ 30 - 0
data/repo/build.gradle.kts

@@ -0,0 +1,30 @@
+plugins {
+    id("com.android.library")
+    id("org.jetbrains.kotlin.android")
+    id("org.jetbrains.kotlin.kapt")
+}
+
+android {
+    namespace = "com.zaojiao.app.data.repo"
+    compileSdk = 33
+
+    defaultConfig {
+        minSdk = 27
+    }
+
+    compileOptions {
+        sourceCompatibility = JavaVersion.VERSION_11
+        targetCompatibility = JavaVersion.VERSION_11
+    }
+
+    kotlinOptions {
+        jvmTarget = "11"
+    }
+}
+
+dependencies {
+    implementation("androidx.core:core-ktx:1.10.1")
+
+    implementation("com.google.dagger:dagger:2.44.2")
+    kapt("com.google.dagger:dagger-compiler:2.44.2")
+}

+ 0 - 0
feat/personal/src/main/AndroidManifest.xml → data/repo/src/main/AndroidManifest.xml


+ 0 - 1
app/src/main/java/com/zaojiao/app/data/repo/UserRepository.kt → data/repo/src/main/kotlin/com/zaojiao/app/data/repo/UserRepository.kt

@@ -1,6 +1,5 @@
 package com.zaojiao.app.data.repo
 
-
 interface UserRepository {
     fun getUser()
 

+ 4 - 3
app/src/main/java/com/zaojiao/app/data/repo/impl/UserRepositoryImpl.kt → data/repo/src/main/kotlin/com/zaojiao/app/data/repo/UserRepositoryImpl.kt

@@ -1,8 +1,9 @@
-package com.zaojiao.app.data.repo.impl
+package com.zaojiao.app.data.repo
 
-import com.zaojiao.app.data.repo.UserRepository
 
-class UserRepositoryImpl() : UserRepository {
+class UserRepositoryImpl(
+
+) : UserRepository {
     override fun getUser() {
         TODO("Not yet implemented")
     }

+ 2 - 1
feat/common/build.gradle.kts

@@ -31,7 +31,8 @@ dependencies {
     implementation("androidx.core:core-ktx:1.10.1")
 
     implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1")
-    api("io.coil-kt:coil-compose:2.2.2")
+
+    api(libs.coil.kt.compose)
 
     implementation(platform("androidx.compose:compose-bom:2023.05.01"))
     implementation("androidx.compose.ui:ui")

+ 0 - 2
feat/course/src/main/AndroidManifest.xml

@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest />

+ 7 - 1
feat/course/build.gradle.kts → feat/home/build.gradle.kts

@@ -1,10 +1,11 @@
 plugins {
     id("com.android.library")
     id("org.jetbrains.kotlin.android")
+    id("org.jetbrains.kotlin.kapt")
 }
 
 android {
-    namespace = "com.zaojiao.component.course"
+    namespace = "com.zaojiao.app.feat.home"
     compileSdk = 33
 
     defaultConfig {
@@ -32,6 +33,11 @@ dependencies {
 
     implementation("androidx.core:core-ktx:1.10.1")
 
+    implementation("com.google.dagger:dagger:2.44.2")
+    kapt("com.google.dagger:dagger-compiler:2.44.2")
+
+    implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
+
     implementation(platform("androidx.compose:compose-bom:2023.05.01"))
     implementation("androidx.compose.ui:ui")
     implementation("androidx.compose.runtime:runtime")

+ 4 - 0
feat/home/src/main/AndroidManifest.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+
+</manifest>

+ 1 - 3
feat/course/src/main/java/com/zaojiao/component/course/HomeCourseCategory.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseCategory.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.PaddingValues
@@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.lazy.LazyRow
-import androidx.compose.foundation.lazy.grid.GridCells
-import androidx.compose.foundation.lazy.grid.LazyHorizontalGrid
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier

+ 2 - 1
feat/course/src/main/java/com/zaojiao/component/course/HomeCourseGroupBuy.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseGroupBuy.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.Image
@@ -29,6 +29,7 @@ import androidx.compose.ui.draw.clip
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.unit.dp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.LJGBanner
 import com.zaojiao.component.common.Spacer
 

+ 1 - 1
feat/course/src/main/java/com/zaojiao/component/course/HomeCoursePage.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCoursePage.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.layout.fillMaxSize

+ 1 - 1
feat/course/src/main/java/com/zaojiao/component/course/HomeCourseRecommend.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseRecommend.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Arrangement

+ 2 - 1
feat/course/src/main/java/com/zaojiao/component/course/HomeCourseTopBar.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseTopBar.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.background
@@ -21,6 +21,7 @@ import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.Colors
 import com.zaojiao.component.common.Spacer
 

+ 1 - 1
feat/course/src/main/java/com/zaojiao/component/course/HomeCourseTopSwiper.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseTopSwiper.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.layout.fillMaxWidth

+ 10 - 0
feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseViewModel.kt

@@ -0,0 +1,10 @@
+package com.zaojiao.app.feat.home.course
+
+import androidx.lifecycle.ViewModel
+import javax.inject.Inject
+
+class HomeCourseViewModel @Inject constructor(
+
+):ViewModel(){
+
+}

+ 2 - 1
feat/course/src/main/java/com/zaojiao/component/course/HomeCourseZone.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/course/HomeCourseZone.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.course
+package com.zaojiao.app.feat.home.course
 
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.layout.Row
@@ -11,6 +11,7 @@ import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.unit.dp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.Spacer
 
 @Composable

+ 2 - 1
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalAccount.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalAccount.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.annotation.DrawableRes
 import androidx.compose.foundation.Image
@@ -26,6 +26,7 @@ import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.shadow
 
 

+ 2 - 1
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalBottom.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalBottom.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.layout.Box
@@ -11,6 +11,7 @@ import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.unit.dp
+import com.zaojiao.app.feat.home.R
 
 @Composable
 fun HomePersonalBottom() {

+ 2 - 1
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalContent.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalContent.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.annotation.DrawableRes
 import androidx.compose.foundation.Image
@@ -26,6 +26,7 @@ import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.shadow
 
 @Composable

+ 1 - 2
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalEngage.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalEngage.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.Column
@@ -10,7 +10,6 @@ import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp

+ 4 - 0
feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalNavigation.kt

@@ -0,0 +1,4 @@
+package com.zaojiao.app.feat.home.personal
+
+class HomePersonalNavigation {
+}

+ 1 - 5
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalPage.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalPage.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.compose.animation.AnimatedVisibility
 import androidx.compose.animation.fadeIn
@@ -6,9 +6,6 @@ import androidx.compose.animation.fadeOut
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.statusBarsPadding
 import androidx.compose.foundation.lazy.LazyColumn
 import androidx.compose.foundation.lazy.rememberLazyListState
 import androidx.compose.runtime.Composable
@@ -18,7 +15,6 @@ import androidx.compose.runtime.remember
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Brush
 import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.unit.dp
 
 /**
  *  首页 - 我的勋章

+ 2 - 1
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalService.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalService.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.annotation.DrawableRes
 import androidx.compose.foundation.Image
@@ -26,6 +26,7 @@ import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.shadow
 
 @Composable

+ 2 - 4
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalTopBar.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalTopBar.kt

@@ -1,18 +1,15 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.annotation.DrawableRes
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.statusBarsPadding
 import androidx.compose.foundation.layout.wrapContentHeight
-import androidx.compose.foundation.layout.wrapContentWidth
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment
@@ -23,6 +20,7 @@ import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.Colors
 import com.zaojiao.component.common.Spacer
 

+ 2 - 1
feat/personal/src/main/kotlin/com/zaojiao/component/personal/HomePersonalUserBar.kt → feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalUserBar.kt

@@ -1,4 +1,4 @@
-package com.zaojiao.component.personal
+package com.zaojiao.app.feat.home.personal
 
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.layout.Row
@@ -14,6 +14,7 @@ import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
+import com.zaojiao.app.feat.home.R
 import com.zaojiao.component.common.Colors
 import com.zaojiao.component.common.Icons
 import com.zaojiao.component.common.Spacer

+ 4 - 0
feat/home/src/main/kotlin/com/zaojiao/app/feat/home/personal/HomePersonalViewModel.kt

@@ -0,0 +1,4 @@
+package com.zaojiao.app.feat.home.personal
+
+class HomePersonalViewModel {
+}

+ 0 - 0
feat/course/src/main/res/mipmap-xhdpi/course_group_buy_bg.png → feat/home/src/main/res/mipmap-xhdpi/course_group_buy_bg.png


+ 0 - 0
feat/course/src/main/res/mipmap-xhdpi/course_learn.png → feat/home/src/main/res/mipmap-xhdpi/course_learn.png


+ 0 - 0
feat/course/src/main/res/mipmap-xhdpi/course_zone0.png → feat/home/src/main/res/mipmap-xhdpi/course_zone0.png


+ 0 - 0
feat/course/src/main/res/mipmap-xhdpi/course_zone1.png → feat/home/src/main/res/mipmap-xhdpi/course_zone1.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/ic_default_avatar.png → feat/home/src/main/res/mipmap-xhdpi/ic_default_avatar.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_account.png → feat/home/src/main/res/mipmap-xhdpi/personal_account.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_address.png → feat/home/src/main/res/mipmap-xhdpi/personal_address.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_baby.png → feat/home/src/main/res/mipmap-xhdpi/personal_baby.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_bottom.png → feat/home/src/main/res/mipmap-xhdpi/personal_bottom.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_cart.png → feat/home/src/main/res/mipmap-xhdpi/personal_cart.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_clockin.png → feat/home/src/main/res/mipmap-xhdpi/personal_clockin.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_coupon.png → feat/home/src/main/res/mipmap-xhdpi/personal_coupon.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_course.png → feat/home/src/main/res/mipmap-xhdpi/personal_course.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_customer.png → feat/home/src/main/res/mipmap-xhdpi/personal_customer.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_distribuion.png → feat/home/src/main/res/mipmap-xhdpi/personal_distribuion.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_feedback.png → feat/home/src/main/res/mipmap-xhdpi/personal_feedback.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_history.png → feat/home/src/main/res/mipmap-xhdpi/personal_history.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_invation.png → feat/home/src/main/res/mipmap-xhdpi/personal_invation.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_material.png → feat/home/src/main/res/mipmap-xhdpi/personal_material.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_message.png → feat/home/src/main/res/mipmap-xhdpi/personal_message.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_orders.png → feat/home/src/main/res/mipmap-xhdpi/personal_orders.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_qrcode.png → feat/home/src/main/res/mipmap-xhdpi/personal_qrcode.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_report.png → feat/home/src/main/res/mipmap-xhdpi/personal_report.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_setting.png → feat/home/src/main/res/mipmap-xhdpi/personal_setting.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xhdpi/personal_verify.png → feat/home/src/main/res/mipmap-xhdpi/personal_verify.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxhdpi/course_group_buy_bg.png → feat/home/src/main/res/mipmap-xxhdpi/course_group_buy_bg.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxhdpi/course_learn.png → feat/home/src/main/res/mipmap-xxhdpi/course_learn.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxhdpi/course_zone0.png → feat/home/src/main/res/mipmap-xxhdpi/course_zone0.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxhdpi/course_zone1.png → feat/home/src/main/res/mipmap-xxhdpi/course_zone1.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/ic_default_avatar.png → feat/home/src/main/res/mipmap-xxhdpi/ic_default_avatar.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_account.png → feat/home/src/main/res/mipmap-xxhdpi/personal_account.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_address.png → feat/home/src/main/res/mipmap-xxhdpi/personal_address.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_baby.png → feat/home/src/main/res/mipmap-xxhdpi/personal_baby.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_bottom.png → feat/home/src/main/res/mipmap-xxhdpi/personal_bottom.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_cart.png → feat/home/src/main/res/mipmap-xxhdpi/personal_cart.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_clockin.png → feat/home/src/main/res/mipmap-xxhdpi/personal_clockin.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_coupon.png → feat/home/src/main/res/mipmap-xxhdpi/personal_coupon.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_course.png → feat/home/src/main/res/mipmap-xxhdpi/personal_course.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_customer.png → feat/home/src/main/res/mipmap-xxhdpi/personal_customer.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_distribuion.png → feat/home/src/main/res/mipmap-xxhdpi/personal_distribuion.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_feedback.png → feat/home/src/main/res/mipmap-xxhdpi/personal_feedback.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_history.png → feat/home/src/main/res/mipmap-xxhdpi/personal_history.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_invation.png → feat/home/src/main/res/mipmap-xxhdpi/personal_invation.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_material.png → feat/home/src/main/res/mipmap-xxhdpi/personal_material.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_message.png → feat/home/src/main/res/mipmap-xxhdpi/personal_message.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_orders.png → feat/home/src/main/res/mipmap-xxhdpi/personal_orders.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_qrcode.png → feat/home/src/main/res/mipmap-xxhdpi/personal_qrcode.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_report.png → feat/home/src/main/res/mipmap-xxhdpi/personal_report.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_setting.png → feat/home/src/main/res/mipmap-xxhdpi/personal_setting.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxhdpi/personal_verify.png → feat/home/src/main/res/mipmap-xxhdpi/personal_verify.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxxhdpi/course_group_buy_bg.png → feat/home/src/main/res/mipmap-xxxhdpi/course_group_buy_bg.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxxhdpi/course_learn.png → feat/home/src/main/res/mipmap-xxxhdpi/course_learn.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxxhdpi/course_zone0.png → feat/home/src/main/res/mipmap-xxxhdpi/course_zone0.png


+ 0 - 0
feat/course/src/main/res/mipmap-xxxhdpi/course_zone1.png → feat/home/src/main/res/mipmap-xxxhdpi/course_zone1.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxxhdpi/ic_default_avatar.png → feat/home/src/main/res/mipmap-xxxhdpi/ic_default_avatar.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxxhdpi/personal_account.png → feat/home/src/main/res/mipmap-xxxhdpi/personal_account.png


+ 0 - 0
feat/personal/src/main/res/mipmap-xxxhdpi/personal_address.png → feat/home/src/main/res/mipmap-xxxhdpi/personal_address.png


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio