1 package host.exp.exponent.experience 2 3 import android.widget.ArrayAdapter 4 import android.app.Activity 5 import android.view.LayoutInflater 6 import android.view.ViewGroup 7 import android.os.Bundle 8 import android.view.View 9 import androidx.fragment.app.Fragment 10 import host.exp.exponent.Constants 11 import host.exp.exponent.kernel.ExponentError 12 import host.exp.expoview.databinding.ErrorConsoleFragmentBinding 13 14 class ErrorConsoleFragment : Fragment() { 15 private var _binding: ErrorConsoleFragmentBinding? = null 16 private val binding get() = _binding!! 17 18 lateinit var adapter: ArrayAdapter<ExponentError> 19 onClickHomenull20 private fun onClickHome() { 21 val activity: Activity? = activity 22 if (activity is ErrorActivity) { 23 activity.onClickHome() 24 } 25 } 26 onClickReloadnull27 private fun onClickReload() { 28 val activity: Activity? = activity 29 if (activity is ErrorActivity) { 30 activity.onClickReload() 31 } 32 } 33 onCreateViewnull34 override fun onCreateView( 35 inflater: LayoutInflater, 36 container: ViewGroup?, 37 savedInstanceState: Bundle? 38 ): View { 39 _binding = ErrorConsoleFragmentBinding.inflate(inflater, container, false) 40 binding.consoleHomeButton.setOnClickListener { onClickHome() } 41 binding.consoleReloadButton.setOnClickListener { onClickReload() } 42 43 val bundle = arguments 44 val manifestUrl = bundle!!.getString(ErrorActivity.MANIFEST_URL_KEY) 45 val isHomeError = bundle.getBoolean(ErrorActivity.IS_HOME_KEY, false) 46 if (isHomeError || manifestUrl == null || manifestUrl == Constants.INITIAL_URL) { 47 // Cannot go home in any of these cases 48 binding.consoleHomeButton.visibility = View.GONE 49 } 50 51 val errorQueue = ErrorActivity.errorList 52 synchronized(errorQueue) { 53 val adapter = ErrorQueueAdapter(requireContext(), errorQueue) 54 binding.listView.adapter = adapter 55 this.adapter = adapter 56 } 57 58 return binding.root 59 } 60 onDestroyViewnull61 override fun onDestroyView() { 62 super.onDestroyView() 63 _binding = null 64 } 65 } 66