Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e552bdd authored by Md.Hasib Prince's avatar Md.Hasib Prince Committed by Hasib Prince
Browse files

App Lounge: tracker data integration

parent f2b155c2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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
@@ -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
+14 −0
Original line number Diff line number Diff line
@@ -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

@@ -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 {
+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
+4 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package foundation.e.apps.api.exodus

import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path

interface ExodusTrackerApi {

@@ -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
+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