diff --git a/app/src/main/java/com/example/abe/MainActivity.kt b/app/src/main/java/com/example/abe/MainActivity.kt index 9a09b4bb1ea3d304de725d64f039420b8466369a..0cf3ec2fedbeb06fd9ad4b595ff36dcc9efe98de 100644 --- a/app/src/main/java/com/example/abe/MainActivity.kt +++ b/app/src/main/java/com/example/abe/MainActivity.kt @@ -121,9 +121,7 @@ class MainActivity : AppCompatActivity(), ExportAlertDialogFragment.ExportAlertD builder .setMessage("We are having trouble connecting you to the internet") .setTitle("No Connection") - .setPositiveButton("OK") { dialog, which -> - // Do something. - } + .setPositiveButton("OK") { _, _ ->} val dialog: AlertDialog = builder.create() dialog.show() @@ -138,6 +136,10 @@ class MainActivity : AppCompatActivity(), ExportAlertDialogFragment.ExportAlertD user = sharedPref.getString("user", "").toString() } + fun getNetworkState(): ConnectivityObserver.NetworkState { + return networkState + } + override fun onIntentReceived(action: String, info: String?) { when (action) { "OPEN_FORM" -> { diff --git a/app/src/main/java/com/example/abe/ui/scanner/ScannerFragment.kt b/app/src/main/java/com/example/abe/ui/scanner/ScannerFragment.kt index 164acc5667023182b516ed7a3bdbd417670e7a06..23b6ec0c177ba30957dd505a629e8f35524634ac 100644 --- a/app/src/main/java/com/example/abe/ui/scanner/ScannerFragment.kt +++ b/app/src/main/java/com/example/abe/ui/scanner/ScannerFragment.kt @@ -36,11 +36,13 @@ import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import com.bumptech.glide.Glide import com.example.abe.ABEApplication +import com.example.abe.MainActivity import com.example.abe.R import com.example.abe.data.network.ItemsRoot import com.example.abe.data.network.Retrofit import com.example.abe.data.network.UploadResultCallback import com.example.abe.databinding.FragmentScanBinding +import com.example.abe.utils.isConnected import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationServices import java.io.File @@ -205,18 +207,30 @@ class ScannerFragment : Fragment(), UploadResultCallback { val cancelButton = dialog.findViewById<Button>(R.id.cancel_button) confirmButton.setOnClickListener { + val activity = activity as MainActivity + if(!isConnected(activity.getNetworkState())) { + dialog.dismiss() + binding.scanLayout.visibility = View.GONE + binding.noNetworkLayout.visibility = View.VISIBLE + } else { val filePath = imageUri.path if (filePath != null) { val imageFile = File(filePath) attemptUpload(imageFile) val msg = "Uploading photo, please wait" - Toast.makeText(requireContext(), msg, Toast.LENGTH_SHORT).show() + Toast.makeText(requireContext(), msg, Toast.LENGTH_LONG).show() dialog.dismiss() } else { dialog.dismiss() } + } + } + + binding.btnTryAgain.setOnClickListener { + binding.noNetworkLayout.visibility = View.GONE + binding.scanLayout.visibility = View.VISIBLE } cancelButton.setOnClickListener { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 78cfef8004e741d5a24edec4cdf0db058a249561..7d27b856d335098869b19bfa76adccad144226e0 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -15,7 +15,8 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" - app:menu="@menu/bottom_nav_menu" /> + app:menu="@menu/bottom_nav_menu" + app:labelVisibilityMode="labeled"/> <fragment android:id="@+id/nav_host_fragment_activity_main" diff --git a/app/src/main/res/layout/fragment_scan.xml b/app/src/main/res/layout/fragment_scan.xml index f3b6fe9600caee95ac502101998fdb111b87a32d..c8e3171137f388fab023b820a73fa127cbd147cb 100644 --- a/app/src/main/res/layout/fragment_scan.xml +++ b/app/src/main/res/layout/fragment_scan.xml @@ -5,58 +5,114 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <androidx.camera.view.PreviewView - android:id="@+id/camera" + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/scanLayout" android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_constraintBottom_toTopOf="@+id/bottom_bar" + android:visibility="visible" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.5" - app:layout_constraintVertical_chainStyle="packed"> + app:layout_constraintTop_toTopOf="parent"> + + <androidx.camera.view.PreviewView + android:id="@+id/camera" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layout_constraintBottom_toTopOf="@+id/bottom_bar" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.5" + app:layout_constraintVertical_chainStyle="packed"> + + </androidx.camera.view.PreviewView> - </androidx.camera.view.PreviewView> + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/bottom_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/bottom_bar_scan" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + + <Button + android:id="@+id/captureButton" + android:layout_width="80dp" + android:layout_height="80dp" + android:layout_marginTop="16dp" + android:layout_marginBottom="16dp" + android:background="@drawable/scan_button" + android:backgroundTint="#FFFFFF" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageButton + android:id="@+id/galleryPreviewButton" + android:layout_width="52dp" + android:layout_height="52dp" + android:adjustViewBounds="true" + android:background="?attr/selectableItemBackgroundBorderless" + android:contentDescription="Get Photo from Gallery" + android:padding="10dp" + android:scaleType="fitCenter" + android:src="@drawable/ic_gallery" + app:layout_constraintBottom_toBottomOf="@+id/captureButton" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/captureButton" + app:layout_constraintTop_toTopOf="@+id/captureButton" /> + + + </androidx.constraintlayout.widget.ConstraintLayout> + </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/bottom_bar" - android:layout_width="match_parent" + android:id="@+id/noNetworkLayout" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@drawable/bottom_bar_scan" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - <Button - android:id="@+id/captureButton" - android:layout_width="80dp" - android:layout_height="80dp" - android:layout_marginTop="16dp" - android:layout_marginBottom="16dp" - android:background="@drawable/scan_button" - android:backgroundTint="#FFFFFF" - app:layout_constraintBottom_toBottomOf="parent" + <ImageView + android:id="@+id/ivTrxIcon" + android:layout_width="400dp" + android:layout_height="350dp" + android:src="@mipmap/no_network_foreground" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - <ImageButton - android:id="@+id/galleryPreviewButton" - android:layout_width="52dp" - android:layout_height="52dp" - android:adjustViewBounds="true" - android:background="?attr/selectableItemBackgroundBorderless" - android:contentDescription="Get Photo from Gallery" - android:padding="10dp" - android:scaleType="fitCenter" - android:src="@drawable/ic_gallery" - app:layout_constraintBottom_toBottomOf="@+id/captureButton" + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginHorizontal="20dp" + android:text="@string/failed_connect_msg" + android:textAlignment="center" + android:textSize="16sp" + android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/captureButton" - app:layout_constraintTop_toTopOf="@+id/captureButton" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/ivTrxIcon" /> + <Button + android:id="@+id/btnTryAgain" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/try_again" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/textView2" /> </androidx.constraintlayout.widget.ConstraintLayout> + </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file