Skip to content
Snippets Groups Projects
Commit a606a1fe authored by shelmasalsa17's avatar shelmasalsa17
Browse files

feat:Connection sensing in scan

parent 86896b70
No related merge requests found
Pipeline #61535 canceled with stages
......@@ -18,12 +18,14 @@ import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.widget.AppCompatButton
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
import java.io.File
import androidx.lifecycle.ViewModelProvider
import com.example.myapplication.R
import com.example.myapplication.api.ApiServices
import com.example.myapplication.databinding.FragmentScanBinding
import com.example.myapplication.db.AppDatabase
......@@ -45,6 +47,7 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.asRequestBody
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import java.io.IOException
import java.util.Locale
import java.util.Date
import java.text.SimpleDateFormat
......@@ -176,8 +179,40 @@ class ScanFragment : Fragment() {
}
}
override fun onFailure(call: Call<UploadResponse>, t: Throwable) {
Log.e("ScanFragment", "Network call failed", t)
Toast.makeText(context, "Network call failed: ${t.message}", Toast.LENGTH_LONG).show()
if (t is IOException) {
Log.e("ScanFragment", "Panggilan jaringan gagal", t)
showNetworkErrorDialog()
}else{
Toast.makeText(context, "Gagal: ${t.message}", Toast.LENGTH_LONG).show()
}
}
}
private fun showNetworkErrorDialog() {
// Inflate custom layout untuk AlertDialog
val dialogView = LayoutInflater.from(requireContext()).inflate(R.layout.check_internet_scan_fragment, null)
// Membuat AlertDialog dan menetapkan custom view
val dialog = AlertDialog.Builder(requireContext())
.setView(dialogView)
.create()
// Temukan button pada custom layout dan atur onClickListener
dialogView.findViewById<AppCompatButton>(R.id.btnRetryScan).setOnClickListener {
// Tutup dialog ketika tombol OK ditekan
dialog.dismiss()
resetToInitialState()
}
// Tampilkan dialog
dialog.show()
}
private fun resetToInitialState() {
// Implementasikan logika untuk mengatur ulang tampilan atau melakukan aksi lain
// Contoh: Mengatur ulang tampilan ImageView ke gambar default atau mengosongkannya
if (selectedImageUri != null) {
viewImage.setImageURI(selectedImageUri)
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorPrimary"
android:gravity="center_vertical|center"
android:padding="10dp"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_gravity="center"
android:contentDescription="@string/wifi_off"
android:src="@drawable/ic_wifi_off"
app:tint="@color/blue" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="7dp"
android:text="@string/no_connection"
android:textColor="?attr/colorAccent"
android:textSize="17sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="5dp"
android:text="@string/sorry_no_connection"
android:textColor="?attr/colorAccent"
android:textSize="12sp" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnRetryScan"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="40dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="3dp"
android:background="@drawable/button_bg"
android:text="OK"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment