mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	System font and newer dependencies
This commit is contained in:
		@@ -0,0 +1,33 @@
 | 
			
		||||
package dev.imranr.obtainium
 | 
			
		||||
 | 
			
		||||
import android.util.Xml
 | 
			
		||||
import org.xmlpull.v1.XmlPullParser
 | 
			
		||||
import java.io.File
 | 
			
		||||
import java.io.FileInputStream
 | 
			
		||||
 | 
			
		||||
class DefaultSystemFont {
 | 
			
		||||
    fun get(): String? {
 | 
			
		||||
        return try {
 | 
			
		||||
            val file = File("/system/etc/fonts.xml")
 | 
			
		||||
            val fileStream = FileInputStream(file)
 | 
			
		||||
            parseFontsFileStream(fileStream)
 | 
			
		||||
        } catch (_: Exception) {
 | 
			
		||||
            null
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun parseFontsFileStream(fileStream: FileInputStream): String {
 | 
			
		||||
        fileStream.use { stream ->
 | 
			
		||||
            val parser = Xml.newPullParser()
 | 
			
		||||
            parser.setInput(stream, null)
 | 
			
		||||
            parser.nextTag()
 | 
			
		||||
            return parseFonts(parser)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun parseFonts(parser: XmlPullParser): String {
 | 
			
		||||
        while (parser.name != "font") { parser.next() }
 | 
			
		||||
        parser.next()
 | 
			
		||||
        return "/system/fonts/" + parser.text.trim()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -28,7 +28,7 @@ import rikka.shizuku.Shizuku.OnRequestPermissionResultListener
 | 
			
		||||
import rikka.shizuku.ShizukuBinderWrapper
 | 
			
		||||
 | 
			
		||||
class MainActivity: FlutterActivity() {
 | 
			
		||||
    private var installersChannel: MethodChannel? = null
 | 
			
		||||
    private var nativeChannel: MethodChannel? = null
 | 
			
		||||
    private val SHIZUKU_PERMISSION_REQUEST_CODE = (10..200).random()
 | 
			
		||||
 | 
			
		||||
    private fun shizukuCheckPermission(result: Result) {
 | 
			
		||||
@@ -52,7 +52,7 @@ class MainActivity: FlutterActivity() {
 | 
			
		||||
            requestCode: Int, grantResult: Int ->
 | 
			
		||||
        if (requestCode == SHIZUKU_PERMISSION_REQUEST_CODE) {
 | 
			
		||||
            val res = if (grantResult == PackageManager.PERMISSION_GRANTED) 1 else 0
 | 
			
		||||
            installersChannel!!.invokeMethod("resPermShizuku", mapOf("res" to res))
 | 
			
		||||
            nativeChannel!!.invokeMethod("resPermShizuku", mapOf("res" to res))
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -151,11 +151,14 @@ class MainActivity: FlutterActivity() {
 | 
			
		||||
            HiddenApiBypass.addHiddenApiExemptions("")
 | 
			
		||||
        }
 | 
			
		||||
        Shizuku.addRequestPermissionResultListener(shizukuRequestPermissionResultListener)
 | 
			
		||||
        installersChannel = MethodChannel(
 | 
			
		||||
            flutterEngine.dartExecutor.binaryMessenger, "installers")
 | 
			
		||||
        installersChannel!!.setMethodCallHandler {
 | 
			
		||||
        nativeChannel = MethodChannel(
 | 
			
		||||
            flutterEngine.dartExecutor.binaryMessenger, "native")
 | 
			
		||||
        nativeChannel!!.setMethodCallHandler {
 | 
			
		||||
            call, result ->
 | 
			
		||||
            if (call.method == "checkPermissionShizuku") {
 | 
			
		||||
            if (call.method == "getSystemFont") {
 | 
			
		||||
                val res = DefaultSystemFont().get()
 | 
			
		||||
                result.success(res)
 | 
			
		||||
            } else if (call.method == "checkPermissionShizuku") {
 | 
			
		||||
                shizukuCheckPermission(result)
 | 
			
		||||
            } else if (call.method == "checkPermissionRoot") {
 | 
			
		||||
                rootCheckPermission(result)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user