浏览代码

Add toggles for crop and lowres

Upper left -- crop
Upper right -- lowres (1920x?)

Signed-off-by: Adam Serbinski <adam@serbinski.com>
Adam Serbinski 3 年之前
父节点
当前提交
13d376b25b

+ 25 - 1
app/src/main/java/com/nextcloud/talk/activities/TakePhotoActivity.java

@@ -109,8 +109,32 @@ public class TakePhotoActivity extends AppCompatActivity {
                     .observe(
                         this,
                         enabled -> camera.getCameraControl().enableTorch(enabled));
-
                 binding.toggleTorch.setOnClickListener((v) -> viewModel.toggleTorchEnabled());
+
+                binding.toggleCrop.setOnClickListener((v) -> {
+                    crop = !crop;
+                    binding.toggleCrop.setIcon(ContextCompat.getDrawable(this, crop ?
+                        R.drawable.ic_baseline_flash_on_24 : R.drawable.ic_baseline_flash_off_24));
+                    cameraProvider.unbindAll();
+                    camera = cameraProvider.bindToLifecycle(
+                        this,
+                        viewModel.getCameraSelector(),
+                        getImageCapture(crop, lowres),
+                        getPreview(crop));
+                });
+
+                binding.toggleLowres.setOnClickListener((v) -> {
+                    lowres = !lowres;
+                    binding.toggleLowres.setIcon(ContextCompat.getDrawable(this, lowres ?
+                        R.drawable.ic_baseline_flash_on_24 : R.drawable.ic_baseline_flash_off_24));
+                    cameraProvider.unbindAll();
+                    camera = cameraProvider.bindToLifecycle(
+                        this,
+                        viewModel.getCameraSelector(),
+                        getImageCapture(crop, lowres),
+                        getPreview(crop));
+                });
+
                 binding.switchCamera.setOnClickListener((v) -> {
                     viewModel.toggleCameraSelector();
                     cameraProvider.unbindAll();

+ 59 - 0
app/src/main/res/layout/activity_take_picture.xml

@@ -43,6 +43,65 @@
         android:scaleType="fitCenter"
         android:visibility="invisible" />
 
+    <com.google.android.material.button.MaterialButton
+        android:id="@+id/toggle_crop"
+        style="@style/Widget.AppTheme.Button.IconButton"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_alignParentTop="true"
+        android:layout_alignParentEnd="true"
+        android:layout_marginStart="0dp"
+        android:layout_marginTop="12dp"
+        android:layout_marginEnd="12dp"
+        android:layout_marginBottom="12dp"
+        android:contentDescription="@string/take_photo_toggle_crop"
+        android:insetLeft="4dp"
+        android:insetTop="4dp"
+        android:insetRight="4dp"
+        android:insetBottom="4dp"
+        android:tint="@color/white"
+        app:backgroundTint="#99121212"
+        app:cornerRadius="@dimen/button_corner_radius"
+        app:elevation="0dp"
+        app:icon="@drawable/ic_baseline_flash_off_24"
+        app:iconGravity="textStart"
+        app:iconPadding="0dp"
+        app:iconSize="24dp"
+        app:iconTint="@color/white"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintEnd_toStartOf="@id/takePhoto"
+        app:layout_constraintStart_toStartOf="parent" />
+
+    <com.google.android.material.button.MaterialButton
+        android:id="@+id/toggle_lowres"
+        style="@style/Widget.AppTheme.Button.IconButton"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_alignParentTop="true"
+        android:layout_alignParentEnd="true"
+        android:layout_marginStart="12dp"
+        android:layout_marginTop="12dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginBottom="12dp"
+        android:contentDescription="@string/take_photo_toggle_lowres"
+        android:insetLeft="4dp"
+        android:insetTop="4dp"
+        android:insetRight="4dp"
+        android:insetBottom="4dp"
+        android:padding="0dp"
+        android:tint="@android:color/white"
+        app:backgroundTint="#99121212"
+        app:cornerRadius="@dimen/button_corner_radius"
+        app:elevation="0dp"
+        app:icon="@drawable/ic_baseline_flash_off_24"
+        app:iconGravity="textStart"
+        app:iconPadding="0dp"
+        app:iconSize="24dp"
+        app:iconTint="@color/white"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@id/takePhoto" />
+
     <com.google.android.material.button.MaterialButton
         android:id="@+id/toggle_torch"
         style="@style/Widget.AppTheme.Button.IconButton"

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -478,6 +478,8 @@
     <string name="take_photo_switch_camera">Switch camera</string>
     <string name="take_photo_retake_photo">Re-take photo</string>
     <string name="take_photo_toggle_torch">Toggle torch</string>
+    <string name="take_photo_toggle_crop">Crop photo</string>
+    <string name="take_photo_toggle_lowres">Reduce image size</string>
     <string name="take_photo_send">Send</string>
     <string name="take_photo_error_deleting_picture">Error taking picture</string>
     <string name="take_photo_permission">Taking a photo is not possible without permissions</string>