diff --git a/CHANGELOG.md b/CHANGELOG.md index a2ee07bc2..5cae9d9b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Breaking changes: Changes: +- Make it possible to enable or disable the flashlight while scanning - Add UPC-E support - Support adding a front and back photo to each card - Support importing password-protected zip files diff --git a/app/src/main/java/protect/card_locker/ScanActivity.java b/app/src/main/java/protect/card_locker/ScanActivity.java index fd3ebbeba..3c326569e 100644 --- a/app/src/main/java/protect/card_locker/ScanActivity.java +++ b/app/src/main/java/protect/card_locker/ScanActivity.java @@ -2,9 +2,11 @@ package protect.card_locker; import android.app.Activity; import android.content.Intent; +import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; +import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -34,6 +36,7 @@ public class ScanActivity extends AppCompatActivity { private DecoratedBarcodeView barcodeScannerView; private String cardId; + private boolean torch = false; private void extractIntentFields(Intent intent) { final Bundle b = intent.getExtras(); @@ -114,6 +117,18 @@ public class ScanActivity extends AppCompatActivity { return barcodeScannerView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); } + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) { + getMenuInflater().inflate(R.menu.scan_menu, menu); + } + + barcodeScannerView.setTorchOff(); + + return super.onCreateOptionsMenu(menu); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { @@ -122,6 +137,19 @@ public class ScanActivity extends AppCompatActivity { setResult(Activity.RESULT_CANCELED); finish(); return true; + } else if (item.getItemId() == R.id.action_toggle_flashlight) + { + if (torch) { + torch = false; + barcodeScannerView.setTorchOff(); + item.setTitle(R.string.turn_flashlight_on); + item.setIcon(R.drawable.ic_flashlight_off_white_24dp); + } else { + torch = true; + barcodeScannerView.setTorchOn(); + item.setTitle(R.string.turn_flashlight_off); + item.setIcon(R.drawable.ic_flashlight_on_white_24dp); + } } return super.onOptionsItemSelected(item); diff --git a/app/src/main/res/drawable/ic_flashlight_off_white_24dp.xml b/app/src/main/res/drawable/ic_flashlight_off_white_24dp.xml new file mode 100644 index 000000000..99910c16b --- /dev/null +++ b/app/src/main/res/drawable/ic_flashlight_off_white_24dp.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_flashlight_on_white_24dp.xml b/app/src/main/res/drawable/ic_flashlight_on_white_24dp.xml new file mode 100644 index 000000000..2d367a292 --- /dev/null +++ b/app/src/main/res/drawable/ic_flashlight_on_white_24dp.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/menu/scan_menu.xml b/app/src/main/res/menu/scan_menu.xml new file mode 100644 index 000000000..df63714b5 --- /dev/null +++ b/app/src/main/res/menu/scan_menu.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5e9ce4a6c..fa4cbc746 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -195,4 +195,6 @@ No Please enter the password Failed generating share URL. Please report this bug! + Turn flashlight on + Turn flashlight off