override fun run()

in facebook-core/src/main/java/com/facebook/appevents/codeless/ViewIndexer.kt [75:114]


          override fun run() {
            try {
              val activity = activityReference.get()
              val rootView = getRootView(activity)
              if (null == activity || null == rootView) {
                return
              }
              val activityName = activity.javaClass.simpleName
              if (!getIsAppIndexingEnabled()) {
                return
              }
              if (isUnityApp) {
                UnityReflection.captureViewHierarchy()
                return
              }
              val screenshotFuture = FutureTask(ScreenshotTaker(rootView))
              uiThreadHandler.post(screenshotFuture)
              var screenshot: String? = ""
              try {
                screenshot = screenshotFuture[1, TimeUnit.SECONDS]
              } catch (e: Exception) {
                Log.e(TAG, "Failed to take screenshot.", e)
              }
              val viewTree = JSONObject()
              try {
                viewTree.put("screenname", activityName)
                viewTree.put("screenshot", screenshot)
                val viewArray = JSONArray()
                val rootViewInfo = ViewHierarchy.getDictionaryOfView(rootView)
                viewArray.put(rootViewInfo)
                viewTree.put("view", viewArray)
              } catch (e: JSONException) {
                Log.e(TAG, "Failed to create JSONObject")
              }
              val tree = viewTree.toString()
              sendToServer(tree)
            } catch (e: Exception) {
              Log.e(TAG, "UI Component tree indexing failure!", e)
            }
          }