SimInfoProvider.kt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.example.modifier.repo
  2. import android.content.ContentProvider
  3. import android.content.ContentValues
  4. import android.content.Context
  5. import android.database.Cursor
  6. import android.database.MatrixCursor
  7. import android.net.Uri
  8. import androidx.datastore.preferences.core.stringPreferencesKey
  9. import androidx.datastore.preferences.preferencesDataStore
  10. import com.example.modifier.BuildConfig
  11. import kotlinx.coroutines.flow.first
  12. import kotlinx.coroutines.flow.firstOrNull
  13. import kotlinx.coroutines.runBlocking
  14. class SimInfoProvider : ContentProvider() {
  15. val Context.simInfoDataStore by preferencesDataStore(name = "${BuildConfig.APPLICATION_ID}.simInfo")
  16. override fun delete(uri: Uri, selection: String?, selectionArgs: Array<String>?): Int {
  17. return 0
  18. }
  19. override fun getType(uri: Uri): String? {
  20. return null
  21. }
  22. override fun insert(uri: Uri, values: ContentValues?): Uri? {
  23. return null
  24. }
  25. override fun onCreate(): Boolean {
  26. return true
  27. }
  28. override fun query(
  29. uri: Uri, projection: Array<String>?, selection: String?,
  30. selectionArgs: Array<String>?, sortOrder: String?
  31. ): Cursor? {
  32. val matrixCursor = MatrixCursor(
  33. arrayOf(
  34. "mcc",
  35. "mnc",
  36. "iccid",
  37. "imsi",
  38. "imei",
  39. "number",
  40. "country",
  41. "carrier_id",
  42. "carrier_name",
  43. "upi_policy"
  44. )
  45. );
  46. runBlocking {
  47. val simInfo = SpoofedSimInfoRepo.instance.spoofedSimInfo.value
  48. if (simInfo != null) {
  49. matrixCursor.addRow(
  50. arrayOf(
  51. simInfo.mcc,
  52. simInfo.mnc,
  53. simInfo.iccid,
  54. simInfo.imsi,
  55. simInfo.imei,
  56. simInfo.number,
  57. simInfo.country,
  58. simInfo.carrierId,
  59. simInfo.carrierName,
  60. "upi-carrier-id-with-mo-sms-relax"
  61. )
  62. )
  63. }
  64. }
  65. return matrixCursor
  66. }
  67. override fun update(
  68. uri: Uri, values: ContentValues?, selection: String?,
  69. selectionArgs: Array<String>?
  70. ): Int {
  71. return 0
  72. }
  73. }