Fix issue where gallery image was overlapped by count.

main
Alex Hart 2022-11-17 12:18:32 -04:00
rodzic 29f22d515a
commit 0df3096241
2 zmienionych plików z 32 dodań i 11 usunięć

Wyświetl plik

@ -29,11 +29,9 @@ import android.widget.ImageView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.Px;
import androidx.cardview.widget.CardView; import androidx.cardview.widget.CardView;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet; import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.view.ViewKt;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.MultiTransformation; import com.bumptech.glide.load.MultiTransformation;
@ -42,6 +40,7 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.Transition;
import org.signal.core.util.Stopwatch;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.LoggingFragment;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
@ -50,10 +49,7 @@ import org.thoughtcrime.securesms.mediasend.v2.MediaAnimations;
import org.thoughtcrime.securesms.mediasend.v2.MediaCountIndicatorButton; import org.thoughtcrime.securesms.mediasend.v2.MediaCountIndicatorButton;
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri;
import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.GlideApp;
import org.thoughtcrime.securesms.stories.Stories;
import org.thoughtcrime.securesms.stories.viewer.page.StoryDisplay;
import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.ServiceUtil;
import org.signal.core.util.Stopwatch;
import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.ViewUtil;
@ -66,8 +62,8 @@ import io.reactivex.rxjava3.disposables.Disposable;
* Camera capture implemented with the legacy camera API's. Should only be used if sdk < 21. * Camera capture implemented with the legacy camera API's. Should only be used if sdk < 21.
*/ */
public class Camera1Fragment extends LoggingFragment implements CameraFragment, public class Camera1Fragment extends LoggingFragment implements CameraFragment,
TextureView.SurfaceTextureListener, TextureView.SurfaceTextureListener,
Camera1Controller.EventListener Camera1Controller.EventListener
{ {
private static final String TAG = Log.tag(Camera1Fragment.class); private static final String TAG = Log.tag(Camera1Fragment.class);
@ -84,6 +80,7 @@ public class Camera1Fragment extends LoggingFragment implements CameraFragment,
private Disposable rotationListenerDisposable; private Disposable rotationListenerDisposable;
private Disposable mostRecentItemDisposable = Disposable.disposed(); private Disposable mostRecentItemDisposable = Disposable.disposed();
private CameraScreenBrightnessController cameraScreenBrightnessController; private CameraScreenBrightnessController cameraScreenBrightnessController;
private boolean isMediaSelected;
public static Camera1Fragment newInstance() { public static Camera1Fragment newInstance() {
return new Camera1Fragment(); return new Camera1Fragment();
@ -305,6 +302,19 @@ public class Camera1Fragment extends LoggingFragment implements CameraFragment,
countButton.setVisibility(View.GONE); countButton.setVisibility(View.GONE);
cameraGalleryContainer.setVisibility(View.VISIBLE); cameraGalleryContainer.setVisibility(View.VISIBLE);
} }
isMediaSelected = selectedMediaCount > 0;
updateGalleryVisibility();
}
private void updateGalleryVisibility() {
View cameraGalleryContainer = controlsContainer.findViewById(R.id.camera_gallery_button_background);
if (isMediaSelected) {
cameraGalleryContainer.setVisibility(View.GONE);
} else {
cameraGalleryContainer.setVisibility(View.VISIBLE);
}
} }
private void initControls() { private void initControls() {
@ -329,7 +339,7 @@ public class Camera1Fragment extends LoggingFragment implements CameraFragment,
orderEnforcer.run(Stage.CAMERA_PROPERTIES_AVAILABLE, () -> { orderEnforcer.run(Stage.CAMERA_PROPERTIES_AVAILABLE, () -> {
if (properties.getCameraCount() > 1) { if (properties.getCameraCount() > 1) {
flipButton.setVisibility(properties.getCameraCount() > 1 ? View.VISIBLE : View.GONE); flipButton.setVisibility(properties.getCameraCount() > 1 ? View.VISIBLE : View.GONE);
flipButton.setOnClickListener(v -> { flipButton.setOnClickListener(v -> {
int newCameraId = camera.flip(); int newCameraId = camera.flip();
TextSecurePreferences.setDirectCaptureCameraId(getContext(), newCameraId); TextSecurePreferences.setDirectCaptureCameraId(getContext(), newCameraId);

Wyświetl plik

@ -26,10 +26,7 @@ import android.widget.ImageView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import androidx.camera.core.CameraInfo;
import androidx.camera.core.CameraSelector; import androidx.camera.core.CameraSelector;
import androidx.camera.core.ExposureState;
import androidx.camera.core.FocusMeteringAction;
import androidx.camera.core.ImageCapture; import androidx.camera.core.ImageCapture;
import androidx.camera.core.ImageCaptureException; import androidx.camera.core.ImageCaptureException;
import androidx.camera.core.ImageProxy; import androidx.camera.core.ImageProxy;
@ -94,6 +91,7 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment {
private Disposable mostRecentItemDisposable = Disposable.disposed(); private Disposable mostRecentItemDisposable = Disposable.disposed();
private CameraXModePolicy cameraXModePolicy; private CameraXModePolicy cameraXModePolicy;
private CameraScreenBrightnessController cameraScreenBrightnessController; private CameraScreenBrightnessController cameraScreenBrightnessController;
private boolean isMediaSelected;
public static CameraXFragment newInstanceForAvatarCapture() { public static CameraXFragment newInstanceForAvatarCapture() {
CameraXFragment fragment = new CameraXFragment(); CameraXFragment fragment = new CameraXFragment();
@ -279,6 +277,19 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment {
} else { } else {
countButton.setVisibility(View.GONE); countButton.setVisibility(View.GONE);
} }
isMediaSelected = selectedMediaCount > 0;
updateGalleryVisibility();
}
private void updateGalleryVisibility() {
View cameraGalleryContainer = controlsContainer.findViewById(R.id.camera_gallery_button_background);
if (isMediaSelected) {
cameraGalleryContainer.setVisibility(View.GONE);
} else {
cameraGalleryContainer.setVisibility(View.VISIBLE);
}
} }
private void initializeViewFinderAndControlsPositioning() { private void initializeViewFinderAndControlsPositioning() {