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