From 96881f32924a0a51cfe0eb8f93578d42612915e0 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 21 Nov 2018 11:45:57 -0600 Subject: [PATCH] Improve Send and Receive Transaction layouts to dynamically adjust to different screen sizes. Removed unnecessary SquaredImageView, the same effect can now be achieved with Android's ConstraintLayout. --- .../fragments/SendTransactionFragment.java | 143 ++++-------------- .../crystalwallet/util/SquaredImageView.java | 33 ---- .../main/res/layout/receive_transaction.xml | 99 +++++++----- app/src/main/res/layout/send_transaction.xml | 23 ++- app/src/main/res/values/styles.xml | 1 + 5 files changed, 100 insertions(+), 199 deletions(-) delete mode 100644 app/src/main/java/cy/agorise/crystalwallet/util/SquaredImageView.java diff --git a/app/src/main/java/cy/agorise/crystalwallet/fragments/SendTransactionFragment.java b/app/src/main/java/cy/agorise/crystalwallet/fragments/SendTransactionFragment.java index 40ec07f..6b26439 100644 --- a/app/src/main/java/cy/agorise/crystalwallet/fragments/SendTransactionFragment.java +++ b/app/src/main/java/cy/agorise/crystalwallet/fragments/SendTransactionFragment.java @@ -31,7 +31,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.ArrayAdapter; -import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Spinner; @@ -133,12 +132,8 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat @BindView(R.id.viewCamera) View viewCamera; - /* - * Flag to control when the camera is visible and when is hide - * */ - private boolean cameraVisible = true; - - Button btnScanQrCode; + /* Flag to control when the camera is visible and when is hidden */ + private boolean cameraVisible = false; private long cryptoNetAccountId; private CryptoNetAccount cryptoNetAccount; @@ -233,41 +228,9 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat loadUserImage(); - /* - * Check for CAMERA permission - * */ - if (Build.VERSION.SDK_INT >= 23) { - if (checkPermission()) { - // Code for above or equal 23 API Oriented Device - // Your Permission granted already .Do next code - - /* - * Init the camera - * */ - try { - beginScanQrCode(); - }catch(Exception e){ - e.printStackTrace(); - } - - } else { - requestPermission(); // Code for permission - } - } - else { - - // Code for Below 23 API Oriented Device - // Do next code - - /* - * Init the camera - * */ - try { - beginScanQrCode(); - }catch(Exception e){ - e.printStackTrace(); - } - } + /* Check for CAMERA permission */ + if (Build.VERSION.SDK_INT >= 23 && !checkCameraPermission()) + requestCameraPermission(); return builder.setView(view).create(); } @@ -325,38 +288,24 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat } } - private void requestPermission() { + private boolean checkCameraPermission() { + int result = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA); + return result == PackageManager.PERMISSION_GRANTED; + } + + private void requestCameraPermission() { if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.CAMERA)) { Toast.makeText(getActivity(), getActivity().getString(R.string.permission_denied_camera), Toast.LENGTH_LONG).show(); - /* - * Disable the button of the camera visibility - * */ - disableVisibilityCamera(); + /* Disable the button of the camera visibility */ + btnCloseCamera.setVisibility(View.INVISIBLE); } else { requestPermissions(new String[] {android.Manifest.permission.CAMERA}, REQUEST_CAMERA_PERMISSION); } } - private void disableVisibilityCamera(){ - - /* - * Hide the button, the user can not modify the visibility - * */ - btnCloseCamera.setVisibility(View.INVISIBLE); - } - - private boolean checkPermission() { - int result = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA); - if (result == PackageManager.PERMISSION_GRANTED) { - return true; - } else { - return false; - } - } - @Override @@ -374,15 +323,6 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat } }); - /* - * Init the camera - * */ - try { - beginScanQrCode(); - }catch(Exception e){ - e.printStackTrace(); - } - } else { Log.e("value", "Permission Denied, You cannot use the camera."); @@ -401,12 +341,6 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat super.onResume(); mScannerView.setResultHandler(this); mScannerView.startCamera(); - /*builder.setNeutralButton("Scan QR Code", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - beginScanQrCode(); - } - });*/ // Force dialog fragment to use the full width of the screen Window dialogWindow = getDialog().getWindow(); @@ -475,67 +409,44 @@ public class SendTransactionFragment extends DialogFragment implements UIValidat @OnClick(R.id.fabCloseCamera) - public void onClicCloseCamera(){ - mScannerView.stopCamera(); - - /* - * Hide the camera or show it - * */ - if(cameraVisible){ + public void onClickCloseCamera(){ + if(cameraVisible) hideCamera(); - } - else{ + else showCamera(); - } } - /* - * Show the camera and hide the black background + /** + * Shows the camera and hide the black background * */ private void showCamera(){ - - /* - * Change visibilities of views - * */ + /* Change visibilities of views */ viewCamera.setVisibility(View.GONE); mScannerView.setVisibility(View.VISIBLE); - /* - * Change icon - * */ + /* Change icon */ btnCloseCamera.setImageDrawable(getResources().getDrawable(R.drawable.ic_close)); - /* - * Reset variable - * */ + /* Reset variable */ cameraVisible = true; - /* - * Star the camera again - * */ + /* Star the camera again */ beginScanQrCode(); } - /* - * Hide the camera and show the black background + /** + * Hides the camera and show the black background * */ private void hideCamera(){ - - /* - * Change visibilities of views - * */ + /* Change visibilities of views */ viewCamera.setVisibility(View.VISIBLE); mScannerView.setVisibility(View.INVISIBLE); - /* - * Change icon - * */ + /* Change icon */ btnCloseCamera.setImageDrawable(getResources().getDrawable(R.drawable.ok)); - /* - * Reset variable - * */ + /* Reset variable */ cameraVisible = false; } diff --git a/app/src/main/java/cy/agorise/crystalwallet/util/SquaredImageView.java b/app/src/main/java/cy/agorise/crystalwallet/util/SquaredImageView.java deleted file mode 100644 index 8d984a0..0000000 --- a/app/src/main/java/cy/agorise/crystalwallet/util/SquaredImageView.java +++ /dev/null @@ -1,33 +0,0 @@ -package cy.agorise.crystalwallet.util; - -import android.content.Context; -import android.support.annotation.Nullable; -import android.support.v7.widget.AppCompatImageView; -import android.util.AttributeSet; - -/** - * Created by xd on 1/24/18. - * ImageView which adjusts its size to always create a square - */ - -public class SquaredImageView extends AppCompatImageView { - public SquaredImageView(Context context) { - super(context); - } - - public SquaredImageView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - } - - public SquaredImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - - int size = Math.min(getMeasuredWidth(), getMeasuredHeight()); - setMeasuredDimension(size, size); - } -} diff --git a/app/src/main/res/layout/receive_transaction.xml b/app/src/main/res/layout/receive_transaction.xml index 38ee0ff..93c642d 100644 --- a/app/src/main/res/layout/receive_transaction.xml +++ b/app/src/main/res/layout/receive_transaction.xml @@ -5,20 +5,28 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + + + android:background="@drawable/receive_transaction_top_view" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + android:src="@drawable/avatar_placeholder" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/txtTittle" /> + android:layout_marginEnd="20dp" + app:layout_constraintTop_toBottomOf="@+id/txtTittle" + app:layout_constraintEnd_toEndOf="parent" /> + app:layout_constraintTop_toBottomOf="@+id/spTo" + app:layout_constraintStart_toStartOf="@id/spTo" + app:layout_constraintEnd_toEndOf="@id/spTo" /> + android:textSize="20sp" + app:layout_constraintTop_toBottomOf="@+id/tvFromError" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toStartOf="@id/centeredVerticalGuideline"/> + app:layout_constraintTop_toBottomOf="@+id/etAmount" + app:layout_constraintStart_toStartOf="@id/etAmount" + app:layout_constraintEnd_toEndOf="@id/etAmount"/> + app:layout_constraintStart_toEndOf="@id/centeredVerticalGuideline" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toTopOf="@id/viewSpinner"/> + android:layout_height="1dp" + android:layout_marginBottom="8dp" + android:background="@color/gray" + app:layout_constraintBottom_toBottomOf="@id/etAmount" + app:layout_constraintStart_toStartOf="@id/spAsset" + app:layout_constraintEnd_toEndOf="@id/spAsset"/> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/spAsset" /> - + app:layout_constraintDimensionRatio="w,1:1" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvAmountError" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/ivQrCode" /> + app:layout_constraintTop_toBottomOf="@+id/ivQrCode" + app:layout_constraintRight_toRightOf="parent" /> - + \ No newline at end of file diff --git a/app/src/main/res/layout/send_transaction.xml b/app/src/main/res/layout/send_transaction.xml index 9ec993e..57ed73d 100644 --- a/app/src/main/res/layout/send_transaction.xml +++ b/app/src/main/res/layout/send_transaction.xml @@ -120,15 +120,17 @@ + app:layout_constraintEnd_toStartOf="@id/centeredVerticalGuideline"/> + app:layout_constraintStart_toEndOf="@id/centeredVerticalGuideline"/> + app:srcCompat="@drawable/ok" /> true false + @style/SendTransactionAnimation.Window