Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–46 unchanged (46 lines)
47
48 @Test
49 @ScreenshotTest
50 fun loading() {
51 launchActivity<ActivitiesActivity>().use { scenario ->
52 scenario.onActivity { sut ->
53 sut.binding.emptyList.root.visibility = View.GONE
54 sut.binding.swipeContainingList.visibility = View.GONE
55 sut.binding.loadingContent.visibility = View.VISIBLE
56 }
57
58 val screenShotName = createName(testClassName + "_" + "loading", "")
59 onView(isRoot()).check(matches(isDisplayed()))
60
61 scenario.onActivity { sut ->
…lines 62–196 unchanged (135 lines)

After

…lines 1–46 unchanged (46 lines)
47
48 @Test
49 @ScreenshotTest
50 fun loading() {
51 launchActivity<ActivitiesActivity>().use { scenario ->
52 scenario.onActivity { sut ->
53 sut.binding?.emptyList?.root?.visibility = View.GONE
54 sut.binding?.swipeContainingList?.visibility = View.GONE
55 sut.binding?.loadingContent?.visibility = View.VISIBLE
56 }
57
58 val screenShotName = createName(testClassName + "_" + "loading", "")
59 onView(isRoot()).check(matches(isDisplayed()))
60
61 scenario.onActivity { sut ->
…lines 62–196 unchanged (135 lines)

Before

source_file
block_comment "/*\n * Nextcloud - Android Client\n *\n * SPDX-FileCopyrightTex"...
package_header
package "package"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "view"
. "."
identifier "View"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "core"
. "."
identifier "app"
. "."
identifier "launchActivity"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "Espresso"
. "."
identifier "onView"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "assertion"
. "."
identifier "ViewAssertions"
. "."
identifier "matches"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "contrib"
. "."
identifier "DrawerActions"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "matcher"
. "."
identifier "ViewMatchers"
. "."
identifier "isDisplayed"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "matcher"
. "."
identifier "ViewMatchers"
. "."
identifier "isRoot"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "matcher"
. "."
identifier "ViewMatchers"
. "."
identifier "withId"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "AbstractIT"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "R"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "model"
. "."
identifier "Activity"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "model"
. "."
identifier "RichElement"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "model"
. "."
identifier "RichObject"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "models"
. "."
identifier "PreviewObject"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "status"
. "."
identifier "OCCapability"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "ui"
. "."
identifier "activities"
. "."
identifier "ActivitiesActivity"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "utils"
. "."
identifier "ScreenshotTest"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Test"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "GregorianCalendar"
class_declaration
class "class"
identifier "ActivitiesActivityIT"
: ":"
delegation_specifiers
delegation_specifier
constructor_invocation
user_type
identifier "AbstractIT"
value_arguments
( "("
) ")"
class_body
{ "{"
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "testClassName"
= "="
string_literal
" "\""
string_content "com.nextcloud.client.ActivitiesActivityIT"
" "\""
function_declaration (+162 nodes collapsed)
function_declaration
modifiers
annotation
@ "@"
user_type
identifier "Test"
annotation
@ "@"
user_type
identifier "ScreenshotTest"
fun "fun"
identifier "loading"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
call_expression
navigation_expression
call_expression
identifier "launchActivity"
type_arguments
< "<"
type_projection
user_type
identifier "ActivitiesActivity"
> ">"
value_arguments
( "("
) ")"
. "."
identifier "use"
annotated_lambda
lambda_literal
{ "{"
lambda_parameters
variable_declaration
identifier "scenario"
-> "->"
call_expression
navigation_expression
identifier "scenario"
. "."
identifier "onActivity"
annotated_lambda
lambda_literal
{ "{"
lambda_parameters
variable_declaration
identifier "sut"
-> "->"
assignment
navigation_expression
navigation_expression
navigation_expression
navigation_expression
identifier "sut"
. "."
identifier "binding"
. "."
identifier "emptyList"
. "."
identifier "root"
. "."
identifier "visibility"
= "="
navigation_expression
identifier "View"
. "."
identifier "GONE"
assignment
navigation_expression
navigation_expression
navigation_expression
identifier "sut"
. "."
identifier "binding"
. "."
identifier "swipeContainingList"
. "."
identifier "visibility"
= "="
navigation_expression
identifier "View"
. "."
identifier "GONE"
assignment
navigation_expression
navigation_expression
navigation_expression
identifier "sut"
. "."
identifier "binding"
. "."
identifier "loadingContent"
. "."
identifier "visibility"
= "="
navigation_expression
identifier "View"
. "."
identifier "VISIBLE"
} "}"
property_declaration (+29 nodes collapsed)
call_expression (+30 nodes collapsed)
call_expression (+23 nodes collapsed)
} "}"
} "}"
function_declaration (+169 nodes collapsed)
function_declaration (+820 nodes collapsed)
function_declaration (+166 nodes collapsed)
} "}"

After

source_file
block_comment "/*\n * Nextcloud - Android Client\n *\n * SPDX-FileCopyrightTex"...
package_header
package "package"
qualified_identifier
identifier "com"
. "."
identifier "nextcloud"
. "."
identifier "client"
import
import "import"
qualified_identifier
identifier "android"
. "."
identifier "view"
. "."
identifier "View"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "core"
. "."
identifier "app"
. "."
identifier "launchActivity"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "Espresso"
. "."
identifier "onView"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "assertion"
. "."
identifier "ViewAssertions"
. "."
identifier "matches"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "contrib"
. "."
identifier "DrawerActions"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "matcher"
. "."
identifier "ViewMatchers"
. "."
identifier "isDisplayed"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "matcher"
. "."
identifier "ViewMatchers"
. "."
identifier "isRoot"
import
import "import"
qualified_identifier
identifier "androidx"
. "."
identifier "test"
. "."
identifier "espresso"
. "."
identifier "matcher"
. "."
identifier "ViewMatchers"
. "."
identifier "withId"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "AbstractIT"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "R"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "model"
. "."
identifier "Activity"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "model"
. "."
identifier "RichElement"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "model"
. "."
identifier "RichObject"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "activities"
. "."
identifier "models"
. "."
identifier "PreviewObject"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "lib"
. "."
identifier "resources"
. "."
identifier "status"
. "."
identifier "OCCapability"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "ui"
. "."
identifier "activities"
. "."
identifier "ActivitiesActivity"
import
import "import"
qualified_identifier
identifier "com"
. "."
identifier "owncloud"
. "."
identifier "android"
. "."
identifier "utils"
. "."
identifier "ScreenshotTest"
import
import "import"
qualified_identifier
identifier "org"
. "."
identifier "junit"
. "."
identifier "Test"
import
import "import"
qualified_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "GregorianCalendar"
class_declaration
class "class"
identifier "ActivitiesActivityIT"
: ":"
delegation_specifiers
delegation_specifier
constructor_invocation
user_type
identifier "AbstractIT"
value_arguments
( "("
) ")"
class_body
{ "{"
property_declaration
modifiers
visibility_modifier
private "private"
val "val"
variable_declaration
identifier "testClassName"
= "="
string_literal
" "\""
string_content "com.nextcloud.client.ActivitiesActivityIT"
" "\""
function_declaration (+162 nodes collapsed)
function_declaration
modifiers
annotation
@ "@"
user_type
identifier "Test"
annotation
@ "@"
user_type
identifier "ScreenshotTest"
fun "fun"
identifier "loading"
function_value_parameters
( "("
) ")"
function_body
block
{ "{"
call_expression
navigation_expression
call_expression
identifier "launchActivity"
type_arguments
< "<"
type_projection
user_type
identifier "ActivitiesActivity"
> ">"
value_arguments
( "("
) ")"
. "."
identifier "use"
annotated_lambda
lambda_literal
{ "{"
lambda_parameters
variable_declaration
identifier "scenario"
-> "->"
call_expression
navigation_expression
identifier "scenario"
. "."
identifier "onActivity"
annotated_lambda
lambda_literal
{ "{"
lambda_parameters
variable_declaration
identifier "sut"
-> "->"
assignment
navigation_expression
navigation_expression
navigation_expression
navigation_expression
identifier "sut"
. "."
identifier "binding"
?. "?."
identifier "emptyList"
?. "?."
identifier "root"
?. "?."
identifier "visibility"
= "="
navigation_expression
identifier "View"
. "."
identifier "GONE"
assignment
navigation_expression
navigation_expression
navigation_expression
identifier "sut"
. "."
identifier "binding"
?. "?."
identifier "swipeContainingList"
?. "?."
identifier "visibility"
= "="
navigation_expression
identifier "View"
. "."
identifier "GONE"
assignment
navigation_expression
navigation_expression
navigation_expression
identifier "sut"
. "."
identifier "binding"
?. "?."
identifier "loadingContent"
?. "?."
identifier "visibility"
= "="
navigation_expression
identifier "View"
. "."
identifier "VISIBLE"
} "}"
property_declaration (+29 nodes collapsed)
call_expression (+30 nodes collapsed)
call_expression (+23 nodes collapsed)
} "}"
} "}"
function_declaration (+169 nodes collapsed)
function_declaration (+820 nodes collapsed)
function_declaration (+166 nodes collapsed)
} "}"