This mapping has 1 multi-map group: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

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

1package com.genymobile.scrcpy;
2
3import android.annotation.TargetApi;
4import android.content.AttributionSource;
5import android.content.Context;
6import android.content.ContextWrapper;
7import android.os.Build;
8import android.os.Process;
9
10public final class FakeContext extends ContextWrapper {
11
12 public static final String PACKAGE_NAME = "com.android.shell";
13 public static final int ROOT_UID = 0; // Like android.os.Process.ROOT_UID, but before API 29
…lines 14–28 unchanged (15 lines)
29
30 @Override
31 public String getOpPackageName() {
32 return PACKAGE_NAME;
33 }
34
35 @TargetApi(Build.VERSION_CODES.S)
36 @Override
37 public AttributionSource getAttributionSource() {
38 AttributionSource.Builder builder = new AttributionSource.Builder(Process.SHELL_UID);
39 builder.setPackageName(PACKAGE_NAME);
40 return builder.build();
41 }
…lines 42–54 unchanged (13 lines)

After

1package com.genymobile.scrcpy;
2
3import android.annotation.TargetApi;
4import android.content.AttributionSource;
5import android.content.Context;
6import android.content.ContextWrapper;
7import android.os.Process;
8
9public final class FakeContext extends ContextWrapper {
10
11 public static final String PACKAGE_NAME = "com.android.shell";
12 public static final int ROOT_UID = 0; // Like android.os.Process.ROOT_UID, but before API 29
13
…lines 14–27 unchanged (14 lines)
28
29 @Override
30 public String getOpPackageName() {
31 return PACKAGE_NAME;
32 }
33
34 @TargetApi(AndroidVersions.API_31_ANDROID_12)
35 @Override
36 public AttributionSource getAttributionSource() {
37 AttributionSource.Builder builder = new AttributionSource.Builder(Process.SHELL_UID);
38 builder.setPackageName(PACKAGE_NAME);
39 return builder.build();
40 }
…lines 41–53 unchanged (13 lines)

Before

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "annotation"
. "."
identifier "TargetApi"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "AttributionSource"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "Context"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "ContextWrapper"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Build"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Process"
; ";"
class_declaration
modifiers
public "public"
final "final"
class "class"
identifier "FakeContext"
superclass
extends "extends"
type_identifier "ContextWrapper"
class_body
{ "{"
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "PACKAGE_NAME"
= "="
string_literal
" "\""
string_fragment "com.android.shell"
" "\""
; ";"
field_declaration
modifiers
public "public"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "ROOT_UID"
= "="
decimal_integer_literal "0"
; ";"
line_comment "// Like android.os.Process.ROOT_UID, but before API 29"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "FakeContext"
variable_declarator
identifier "INSTANCE"
= "="
object_creation_expression
new "new"
type_identifier "FakeContext"
argument_list
( "("
) ")"
; ";"
method_declaration
modifiers
public "public"
static "static"
type_identifier "FakeContext"
identifier "get"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "INSTANCE"
; ";"
} "}"
constructor_declaration (+23 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "String"
identifier "getPackageName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "PACKAGE_NAME"
; ";"
} "}"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "String"
identifier "getOpPackageName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "PACKAGE_NAME"
; ";"
} "}"
method_declaration
modifiers
annotation
@ "@"
identifier "TargetApi"
annotation_argument_list
( "("
field_access any 2:1
field_access any 2:1
identifier "Build"
. "."
identifier "VERSION_CODES"
. "."
identifier "S"
) ")"
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "AttributionSource"
identifier "getAttributionSource"
formal_parameters
( "("
) ")"
block (+45 nodes collapsed)
line_comment "// @Override to be added on SDK upgrade for Android 14"
method_declaration (+26 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "Context"
identifier "getApplicationContext"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
this "this"
; ";"
} "}"
} "}"

After

program
package_declaration
package "package"
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "genymobile"
. "."
identifier "scrcpy"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "annotation"
. "."
identifier "TargetApi"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "AttributionSource"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "Context"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "content"
. "."
identifier "ContextWrapper"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "android"
. "."
identifier "os"
. "."
identifier "Process"
; ";"
class_declaration
modifiers
public "public"
final "final"
class "class"
identifier "FakeContext"
superclass
extends "extends"
type_identifier "ContextWrapper"
class_body
{ "{"
field_declaration
modifiers
public "public"
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "PACKAGE_NAME"
= "="
string_literal
" "\""
string_fragment "com.android.shell"
" "\""
; ";"
field_declaration
modifiers
public "public"
static "static"
final "final"
integral_type
int "int"
variable_declarator
identifier "ROOT_UID"
= "="
decimal_integer_literal "0"
; ";"
line_comment "// Like android.os.Process.ROOT_UID, but before API 29"
field_declaration
modifiers
private "private"
static "static"
final "final"
type_identifier "FakeContext"
variable_declarator
identifier "INSTANCE"
= "="
object_creation_expression
new "new"
type_identifier "FakeContext"
argument_list
( "("
) ")"
; ";"
method_declaration
modifiers
public "public"
static "static"
type_identifier "FakeContext"
identifier "get"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "INSTANCE"
; ";"
} "}"
constructor_declaration (+23 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "String"
identifier "getPackageName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "PACKAGE_NAME"
; ";"
} "}"
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "String"
identifier "getOpPackageName"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
identifier "PACKAGE_NAME"
; ";"
} "}"
method_declaration
modifiers
annotation
@ "@"
identifier "TargetApi"
annotation_argument_list
( "("
field_access any 2:1
identifier "AndroidVersions"
. "."
identifier "API_31_ANDROID_12"
) ")"
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "AttributionSource"
identifier "getAttributionSource"
formal_parameters
( "("
) ")"
block (+45 nodes collapsed)
line_comment "// @Override to be added on SDK upgrade for Android 14"
method_declaration (+26 nodes collapsed)
method_declaration
modifiers
marker_annotation
@ "@"
identifier "Override"
public "public"
type_identifier "Context"
identifier "getApplicationContext"
formal_parameters
( "("
) ")"
block
{ "{"
return_statement
return "return"
this "this"
; ";"
} "}"
} "}"