Loading app/build.gradle +7 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ dependencies { def retrofit_version = "2.9.0" implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation "com.squareup.okhttp3:okhttp:4.9.2" // Navigation Components Loading @@ -136,4 +137,10 @@ dependencies { def coroutines_version = "1.5.2" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" // Room def roomVersion = "2.4.1" kapt "androidx.room:room-compiler:$roomVersion" implementation "androidx.room:room-ktx:$roomVersion" } No newline at end of file app/src/main/java/foundation/e/apps/api/cleanapk/RetrofitModule.kt +14 −0 Original line number Diff line number Diff line Loading @@ -19,14 +19,17 @@ package foundation.e.apps.api.cleanapk import android.os.Build import com.google.gson.GsonBuilder import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import foundation.e.apps.api.exodus.ExodusTrackerApi import okhttp3.Cache import okhttp3.Interceptor import okhttp3.OkHttpClient import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import retrofit2.converter.moshi.MoshiConverterFactory import javax.inject.Singleton Loading @@ -49,6 +52,17 @@ object RetrofitModule { .create(CleanAPKInterface::class.java) } @Singleton @Provides fun provideExodusApi(okHttpClient: OkHttpClient): ExodusTrackerApi { return Retrofit.Builder() .baseUrl(ExodusTrackerApi.BASE_URL) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create(GsonBuilder().create())) .build() .create(ExodusTrackerApi::class.java) } @Singleton @Provides fun provideInterceptor(): Interceptor { Loading app/src/main/java/foundation/e/apps/api/database/AppDatabase.kt 0 → 100644 +36 −0 Original line number Diff line number Diff line package foundation.e.apps.api.database import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.TypeConverters import foundation.e.apps.api.exodus.CategoryConverter import foundation.e.apps.api.exodus.Tracker import foundation.e.apps.api.exodus.TrackerDao @Database( entities = [Tracker::class], version = 1, exportSchema = false ) @TypeConverters(CategoryConverter::class) abstract class AppDatabase : RoomDatabase() { abstract fun trackerDao(): TrackerDao companion object { private lateinit var INSTANCE: AppDatabase fun getInstance(context: Context): AppDatabase { if (!Companion::INSTANCE.isInitialized) { synchronized(AppDatabase::class) { INSTANCE = Room.databaseBuilder(context, AppDatabase::class.java, "App_Lounge") .fallbackToDestructiveMigration() .build() } } return INSTANCE } } } No newline at end of file app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt +4 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package foundation.e.apps.api.exodus import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Path interface ExodusTrackerApi { Loading @@ -12,4 +13,7 @@ interface ExodusTrackerApi { @GET("trackers?v=$VERSION") suspend fun getTrackerList(): Response<Trackers> @GET("search/{appHandle}") suspend fun getTrackerListOfAnApp(@Path("appHandle") appHandle: String): Response<Map<String, TrackerInfo>> } No newline at end of file app/src/main/java/foundation/e/apps/api/exodus/TrackerApiResponse.kt 0 → 100644 +18 −0 Original line number Diff line number Diff line package foundation.e.apps.api.exodus data class AppTrackerResponse (val appTrackerResponse: Map<String, TrackerInfo> = mapOf()) data class TrackerInfo ( val name: String, val creator: String, val reports: List<Report> ) data class Report ( val id: Long, val creationDate: String, val updatedAt: String, val version: String, val versionCode: String, val trackers: List<Long> ) No newline at end of file Loading
app/build.gradle +7 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ dependencies { def retrofit_version = "2.9.0" implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation "com.squareup.okhttp3:okhttp:4.9.2" // Navigation Components Loading @@ -136,4 +137,10 @@ dependencies { def coroutines_version = "1.5.2" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" // Room def roomVersion = "2.4.1" kapt "androidx.room:room-compiler:$roomVersion" implementation "androidx.room:room-ktx:$roomVersion" } No newline at end of file
app/src/main/java/foundation/e/apps/api/cleanapk/RetrofitModule.kt +14 −0 Original line number Diff line number Diff line Loading @@ -19,14 +19,17 @@ package foundation.e.apps.api.cleanapk import android.os.Build import com.google.gson.GsonBuilder import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import foundation.e.apps.api.exodus.ExodusTrackerApi import okhttp3.Cache import okhttp3.Interceptor import okhttp3.OkHttpClient import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import retrofit2.converter.moshi.MoshiConverterFactory import javax.inject.Singleton Loading @@ -49,6 +52,17 @@ object RetrofitModule { .create(CleanAPKInterface::class.java) } @Singleton @Provides fun provideExodusApi(okHttpClient: OkHttpClient): ExodusTrackerApi { return Retrofit.Builder() .baseUrl(ExodusTrackerApi.BASE_URL) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create(GsonBuilder().create())) .build() .create(ExodusTrackerApi::class.java) } @Singleton @Provides fun provideInterceptor(): Interceptor { Loading
app/src/main/java/foundation/e/apps/api/database/AppDatabase.kt 0 → 100644 +36 −0 Original line number Diff line number Diff line package foundation.e.apps.api.database import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.TypeConverters import foundation.e.apps.api.exodus.CategoryConverter import foundation.e.apps.api.exodus.Tracker import foundation.e.apps.api.exodus.TrackerDao @Database( entities = [Tracker::class], version = 1, exportSchema = false ) @TypeConverters(CategoryConverter::class) abstract class AppDatabase : RoomDatabase() { abstract fun trackerDao(): TrackerDao companion object { private lateinit var INSTANCE: AppDatabase fun getInstance(context: Context): AppDatabase { if (!Companion::INSTANCE.isInitialized) { synchronized(AppDatabase::class) { INSTANCE = Room.databaseBuilder(context, AppDatabase::class.java, "App_Lounge") .fallbackToDestructiveMigration() .build() } } return INSTANCE } } } No newline at end of file
app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt +4 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package foundation.e.apps.api.exodus import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Path interface ExodusTrackerApi { Loading @@ -12,4 +13,7 @@ interface ExodusTrackerApi { @GET("trackers?v=$VERSION") suspend fun getTrackerList(): Response<Trackers> @GET("search/{appHandle}") suspend fun getTrackerListOfAnApp(@Path("appHandle") appHandle: String): Response<Map<String, TrackerInfo>> } No newline at end of file
app/src/main/java/foundation/e/apps/api/exodus/TrackerApiResponse.kt 0 → 100644 +18 −0 Original line number Diff line number Diff line package foundation.e.apps.api.exodus data class AppTrackerResponse (val appTrackerResponse: Map<String, TrackerInfo> = mapOf()) data class TrackerInfo ( val name: String, val creator: String, val reports: List<Report> ) data class Report ( val id: Long, val creationDate: String, val updatedAt: String, val version: String, val versionCode: String, val trackers: List<Long> ) No newline at end of file