Advertisement
fasty99

Untitled

Feb 22nd, 2024
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 4.37 KB | None | 0 0
  1. @@ -0,0 +1,99 @@
  2. package com.bm.fasty.dashboard
  3.  
  4. import android.Manifest
  5. import android.bluetooth.BluetoothAdapter
  6. import android.bluetooth.BluetoothDevice
  7. import android.bluetooth.BluetoothManager
  8. import android.content.Context
  9. import android.content.pm.PackageManager
  10. import android.os.Build
  11. import androidx.core.content.ContextCompat
  12. import androidx.fragment.app.DialogFragment
  13. import com.bm.fasty.dashboard.vo.showToast
  14. import java.lang.reflect.Method
  15.  
  16. abstract class BaseDialogFragment : DialogFragment() {
  17.  
  18.     fun baseCheckBluetoothPermission(
  19.         context: Context,
  20.         bluetoothStatus: (Boolean?) -> Unit,
  21.         requestPermissionBelow31: (BluetoothAdapter) -> Unit,
  22.         requestPermissionAbove31: (BluetoothAdapter) -> Unit
  23.     ): BluetoothAdapter? {
  24.         // Check to see if the Bluetooth classic feature is available.
  25.         val bluetoothAvailable =
  26.             context.packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
  27.  
  28.         // Check to see if the BLE feature is available.
  29.         val bluetoothLEAvailable =
  30.             context.packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)
  31.  
  32.         val bluetoothManager: BluetoothManager =
  33.             context.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
  34.         val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.adapter
  35.  
  36.         if (bluetoothAvailable || bluetoothLEAvailable) {
  37.             if (bluetoothAdapter == null) {
  38.                 bluetoothStatus(false)
  39.                 showToast(context, "Bluetooth tidak tersedia pada device Anda")
  40.             } else {
  41.                 if (!bluetoothAdapter.isEnabled) {
  42.                     showToast(context, "Mohon nyalakan bluetooth Anda")
  43.  
  44.                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
  45.                         if (ContextCompat.checkSelfPermission(
  46.                                 context,
  47.                                 Manifest.permission.BLUETOOTH_CONNECT
  48.                             ) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(
  49.                                 context,
  50.                                 Manifest.permission.BLUETOOTH_SCAN
  51.                             ) == PackageManager.PERMISSION_GRANTED
  52.                         ) {
  53.                             // Bluetooth Connect permission is granted, proceed with Bluetooth activation
  54.                             requestPermissionBelow31(bluetoothAdapter)
  55.                         } else {
  56.                             // Bluetooth Connect permission is not granted, request it
  57.                             requestPermissionAbove31(bluetoothAdapter)
  58.                         }
  59.                     } else {
  60.                         requestPermissionBelow31(bluetoothAdapter)
  61.                     }
  62.                 } else {
  63.                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
  64.                         if (ContextCompat.checkSelfPermission(
  65.                                 context,
  66.                                 Manifest.permission.BLUETOOTH_CONNECT
  67.                             ) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(
  68.                                 context,
  69.                                 Manifest.permission.BLUETOOTH_SCAN
  70.                             ) == PackageManager.PERMISSION_GRANTED
  71.                         ) {
  72.                             // Bluetooth Connect permission is granted, proceed with Bluetooth activation
  73.                             requestPermissionBelow31(bluetoothAdapter)
  74.                         } else {
  75.                             // Bluetooth Connect permission is not granted, request it
  76.                             requestPermissionAbove31(bluetoothAdapter)
  77.                         }
  78.                     } else {
  79.                         requestPermissionBelow31(bluetoothAdapter)
  80.                     }
  81.                 }
  82.             }
  83.         } else {
  84.             bluetoothStatus(false)
  85.             showToast(context, "Bluetooth tidak tersedia pada device Anda")
  86.         }
  87.  
  88.         return bluetoothAdapter
  89.     }
  90.  
  91.     fun isConnected(device: BluetoothDevice): Boolean {
  92.         return try {
  93.             val m: Method = device.javaClass.getMethod("isConnected")
  94.             m.invoke(device) as Boolean
  95.         } catch (e: Exception) {
  96.             throw IllegalStateException(e)
  97.         }
  98.     }
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement