diff --git a/app/src/main/java/com/tananaev/passportreader/MainActivity.kt b/app/src/main/java/com/tananaev/passportreader/MainActivity.kt index c9f2e66..7ccbe02 100644 --- a/app/src/main/java/com/tananaev/passportreader/MainActivity.kt +++ b/app/src/main/java/com/tananaev/passportreader/MainActivity.kt @@ -34,6 +34,7 @@ import android.util.Log import android.view.View import android.view.WindowManager import android.widget.EditText +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.google.android.material.snackbar.Snackbar import com.tananaev.passportreader.ImageUtil.decodeImage @@ -164,11 +165,22 @@ abstract class MainActivity : AppCompatActivity() { super.onResume() val adapter = NfcAdapter.getDefaultAdapter(this) if (adapter != null) { - val intent = Intent(applicationContext, this.javaClass) - intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP - val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_MUTABLE) - val filter = arrayOf(arrayOf("android.nfc.tech.IsoDep")) - adapter.enableForegroundDispatch(this, pendingIntent, null, filter) + if (adapter.isEnabled) { + val intent = Intent(applicationContext, this.javaClass) + intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP + val pendingIntent = + PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_MUTABLE) + val filter = arrayOf(arrayOf("android.nfc.tech.IsoDep")) + adapter.enableForegroundDispatch(this, pendingIntent, null, filter) + } else { + Toast.makeText( + applicationContext, + getString(R.string.enable_nfc_toast), + Toast.LENGTH_LONG + ).show(); + Thread.sleep(5_000) + startActivity(Intent(android.provider.Settings.ACTION_NFC_SETTINGS)); + } } if (passportNumberFromIntent) { // When the passport number field is populated from the caller, we hide the diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7673b11..55b2b99 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,4 +22,5 @@ Pass Failed + Please activate NFC and press Back to return to the application!