This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Compose permission handling | |
implementation "com.google.accompanist:accompanist-permissions:0.24.2-alpha" | |
// CameraX | |
implementation "androidx.camera:camera-camera2:1.1.0-beta01" | |
implementation "androidx.camera:camera-lifecycle:1.1.0-beta01" | |
implementation "androidx.camera:camera-view:1.1.0-beta01" | |
//ML kit for android | |
implementation 'com.google.mlkit:barcode-scanning:17.0.2' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> | |
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> | |
<uses-permission android:name="android.permission.INTERNET"/> | |
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> | |
<uses-permission android:name="android.permission.CAMERA"/> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class QRCodeWIFIAnalyzer( | |
private val onSuccess: (ssid: String, password: String) -> Unit, | |
private val onFailure: (e: Exception) -> Unit | |
) : ImageAnalysis.Analyzer { | |
private val scanner: BarcodeScanner = BarcodeScanning.getClient(BarcodeScannerOptions.Builder().setBarcodeFormats(Barcode.FORMAT_QR_CODE).build()) | |
@SuppressLint("UnsafeOptInUsageError") | |
override fun analyze(imageProxy: ImageProxy) { | |
val mediaImage = imageProxy.image |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@OptIn(ExperimentalPermissionsApi::class) | |
@Composable | |
fun PermissionRequest( | |
permission: String = Manifest.permission.CAMERA, | |
onPermissionPermanentlyDenied: @Composable () -> Unit, | |
onPermissionDenied: @Composable () -> Unit, | |
content: @Composable () -> Unit | |
) { | |
val permissionState = rememberPermissionState(permission) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Composable | |
fun CameraPreview( | |
modifier: Modifier = Modifier, | |
scaleType: PreviewView.ScaleType = PreviewView.ScaleType.FILL_CENTER, | |
cameraSelector: CameraSelector = CameraSelector.DEFAULT_BACK_CAMERA, | |
onSuccess: (ssid: String, pw: String) -> Unit, | |
onFailure: (e: Exception) -> Unit | |
) { | |
val lifecycleOwner = LocalLifecycleOwner.current |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RequiresApi(Build.VERSION_CODES.Q) | |
fun connect29AndAbove(ssid: String, passPhrase: String) { | |
if (!wifiManager.isWifiEnabled) { | |
Toast.makeText(this, "Wifi is disabled please enable it to proceed", Toast.LENGTH_SHORT).show() | |
val panelIntent = Intent(Settings.Panel.ACTION_WIFI) | |
launcher.launch(panelIntent) | |
} | |
val suggestion = WifiNetworkSuggestion.Builder() | |
.setSsid(ssid) | |
.setWpa2Passphrase(passPhrase) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MainActivity : ComponentActivity() { | |
private lateinit var wifiManager: WifiManager | |
private lateinit var connectivityManager: ConnectivityManager | |
private val launcher = | |
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {} | |
private var hasScanned = false | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContent { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
inline fun<T> is29AndAbove( | |
func: () -> T | |
) :T?{ | |
return if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) | |
func.invoke() | |
else | |
null | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
implementation "androidx.constraintlayout:constraintlayout-compose:1.0.1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
ConstraintSets: { | |
start: { ... }, | |
end: { ... } | |
} | |
} |
OlderNewer