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 @@
+