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

Commit f05628e4 authored by Aayush Gupta's avatar Aayush Gupta
Browse files

Apps: Fixup

parent 27eecde6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@
    package="foundation.e.apps">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission
        android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />
    <uses-permission
        android:name="android.permission.INSTALL_PACKAGES"
        tools:ignore="ProtectedPermissions" />
+4 −11
Original line number Diff line number Diff line
package foundation.e.apps.api.gplay.token

import android.util.Log
import com.aurora.gplayapi.data.models.AuthData
import com.google.gson.Gson
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import foundation.e.apps.api.gplay.OkHttpClient
import kotlinx.coroutines.async
import foundation.e.apps.api.gplay.utils.OkHttpClient
import java.util.*
import javax.inject.Inject

@InstallIn(SingletonComponent::class)
class TokenImpl @Inject constructor(
    private val nativeDeviceProperty: Properties,
    private val gson: Gson
    private val gson: Gson,
) {

    companion object {
        const val BASE_URL = "https://eu.gtoken.ecloud.global"
    }

    suspend fun getAuthData() {
    fun getAuthData(): AuthData? {
        val playResponse =
            OkHttpClient.postAuth(BASE_URL, gson.toJson(nativeDeviceProperty).toByteArray())
        val authData =
            async { gson.fromJson(String(playResponse.responseBytes), AuthData::class.java) }
        Log.d("HomeViewModel", gson.toJson(authData.await()))
        return gson.fromJson(String(playResponse.responseBytes), AuthData::class.java)
    }
}
 No newline at end of file
+7 −1
Original line number Diff line number Diff line
package foundation.e.apps.api.gplay.token

import com.aurora.gplayapi.data.models.AuthData
import javax.inject.Inject

class TokenRepository @Inject constructor(
    private val tokenImpl: TokenImpl
)
 No newline at end of file
) {

    suspend fun getAuthData(): AuthData? {
        return tokenImpl.getAuthData()
    }
}
 No newline at end of file
+112 −0
Original line number Diff line number Diff line
package foundation.e.apps.api.gplay.utils

import android.opengl.GLES10
import android.text.TextUtils
import java.util.*
import javax.microedition.khronos.egl.EGL10
import javax.microedition.khronos.egl.EGLConfig
import javax.microedition.khronos.egl.EGLContext
import javax.microedition.khronos.egl.EGLDisplay

object EglExtensionProvider {
    @JvmStatic
    val eglExtensions: List<String>
        get() {
            val glExtensions: MutableSet<String> = HashSet()
            val egl10 = EGLContext.getEGL() as EGL10
            val display = egl10.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY)
            egl10.eglInitialize(display, IntArray(2))
            val cf = IntArray(1)
            if (egl10.eglGetConfigs(display, null, 0, cf)) {
                val configs = arrayOfNulls<EGLConfig>(cf[0])
                if (egl10.eglGetConfigs(display, configs, cf[0], cf)) {
                    val a1 = intArrayOf(
                        EGL10.EGL_WIDTH,
                        EGL10.EGL_PBUFFER_BIT,
                        EGL10.EGL_HEIGHT,
                        EGL10.EGL_PBUFFER_BIT,
                        EGL10.EGL_NONE
                    )
                    val a2 = intArrayOf(12440, EGL10.EGL_PIXMAP_BIT, EGL10.EGL_NONE)
                    val a3 = IntArray(1)
                    for (i in 0 until cf[0]) {
                        egl10.eglGetConfigAttrib(display, configs[i], EGL10.EGL_CONFIG_CAVEAT, a3)
                        if (a3[0] != EGL10.EGL_SLOW_CONFIG) {
                            egl10.eglGetConfigAttrib(
                                display,
                                configs[i],
                                EGL10.EGL_SURFACE_TYPE,
                                a3
                            )
                            if (1 and a3[0] != 0) {
                                egl10.eglGetConfigAttrib(
                                    display,
                                    configs[i],
                                    EGL10.EGL_RENDERABLE_TYPE,
                                    a3
                                )
                                if (1 and a3[0] != 0) {
                                    addExtensionsForConfig(
                                        egl10,
                                        display,
                                        configs[i],
                                        a1,
                                        null,
                                        glExtensions
                                    )
                                }
                                if (4 and a3[0] != 0) {
                                    addExtensionsForConfig(
                                        egl10,
                                        display,
                                        configs[i],
                                        a1,
                                        a2,
                                        glExtensions
                                    )
                                }
                            }
                        }
                    }
                }
            }
            egl10.eglTerminate(display)
            val sorted: List<String> = ArrayList(glExtensions)
            Collections.sort(sorted)
            return sorted
        }

    private fun addExtensionsForConfig(
        egl10: EGL10,
        eglDisplay: EGLDisplay,
        eglConfig: EGLConfig?,
        ai: IntArray,
        ai1: IntArray?,
        set: MutableSet<String>
    ) {
        val eglContext = egl10.eglCreateContext(eglDisplay, eglConfig, EGL10.EGL_NO_CONTEXT, ai1)
        if (eglContext === EGL10.EGL_NO_CONTEXT) {
            return
        }
        val eglSurface = egl10.eglCreatePbufferSurface(eglDisplay, eglConfig, ai)
        if (eglSurface === EGL10.EGL_NO_SURFACE) {
            egl10.eglDestroyContext(eglDisplay, eglContext)
        } else {
            egl10.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext)
            val s = GLES10.glGetString(7939)
            if (!TextUtils.isEmpty(s)) {
                val `as` = s.split(" ".toRegex()).toTypedArray()
                val i = `as`.size
                set.addAll(listOf(*`as`).subList(0, i))
            }
            egl10.eglMakeCurrent(
                eglDisplay,
                EGL10.EGL_NO_SURFACE,
                EGL10.EGL_NO_SURFACE,
                EGL10.EGL_NO_CONTEXT
            )
            egl10.eglDestroySurface(eglDisplay, eglSurface)
            egl10.eglDestroyContext(eglDisplay, eglContext)
        }
    }
}
 No newline at end of file
+18 −20
Original line number Diff line number Diff line
package foundation.e.apps.api.gplay
package foundation.e.apps.api.gplay.utils

import android.app.ActivityManager
import android.content.Context
@@ -67,7 +67,7 @@ object NativeDeviceInfoProviderModule {
            setProperty("Platforms", Build.SUPPORTED_ABIS.joinToString(separator = ","))

            // Supported Features
            setProperty("Features", getFeatures().joinToString(separator = ","))
            setProperty("Features", getFeatures(context).joinToString(separator = ","))
            // Shared Locales
            setProperty("Locales", getLocales(context).joinToString(separator = ","))
            // Shared Libraries
@@ -88,7 +88,7 @@ object NativeDeviceInfoProviderModule {
            )

            // Google Related Props
            val gsfVersionProvider = NativeGsfVersionProvider(applicationContext)
            val gsfVersionProvider = NativeGsfVersionProvider(context)
            setProperty("Client", "android-google")
            setProperty("GSF.version", "${gsfVersionProvider.getGsfVersionCode(true)}")
            setProperty("Vending.version", "${gsfVersionProvider.getVendingVersionCode(true)}")
@@ -102,13 +102,24 @@ object NativeDeviceInfoProviderModule {
            setProperty("CellOperator", "310")
            setProperty("SimOperator", "38")
        }

        if (isHuawei())
            stripHuaweiProperties(properties)

        return properties
    }

    private fun getFeatures(context: Context): List<String> {
        val featureStringList: MutableList<String> = ArrayList()
        try {
            val availableFeatures = context.packageManager.systemAvailableFeatures
            for (feature in availableFeatures) {
                if (feature.name.isNotEmpty()) {
                    featureStringList.add(feature.name)
                }
            }
        } catch (e: Exception) {
        }
        return featureStringList
    }


    private fun getLocales(context: Context): List<String> {
        val localeList: MutableList<String> = ArrayList()
        localeList.addAll(listOf(*context.assets.locales))
@@ -133,17 +144,4 @@ object NativeDeviceInfoProviderModule {
        }
        return libraries
    }

    private fun stripHuaweiProperties(properties: Properties): Properties {
        // Add i-Phoney properties
        properties["Build.HARDWARE"] = "unknown"
        properties["Build.BOOTLOADER"] = "unknown"
        properties["Build.BRAND"] = "PassionFruit"
        properties["Build.DEVICE"] = "ProPlus5GFold"
        properties["Build.MODEL"] = "iPhoney"
        properties["Build.MANUFACTURER"] = "PassionFruit"
        properties["Build.PRODUCT"] = "iPhoney_24"
        properties["Build.ID"] = "ABC.123"
        return properties
    }
}
 No newline at end of file
Loading