android / car-samples
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 13% duplication:
    • 6,524 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 862 duplicated lines
  • 120 duplicates
system13% (862 lines)
Duplication per Extension
java13% (862 lines)
Duplication per Component (primary)
car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car22% (231 lines)
car_app_library/places/common/src/main/java/androidx/car/app/sample/places/common16% (95 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/templates11% (94 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/navigation15% (92 lines)
car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/nav17% (69 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/misc7% (62 lines)
car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/model10% (60 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/textandicons24% (58 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/renderer7% (36 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common11% (34 lines)
car_app_library/helloworld/common/src/main/java/androidx/car/app/sample/helloworld/common53% (16 lines)
car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/common3% (9 lines)
car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/app10% (6 lines)
car-lib/CarGearViewerKotlin/automotive/src/main/java/com/example/cargearviewer0% (0 lines)
car_app_library/showcase/automotive/src/main/java/androidx/car/app/sample/showcase/automotive0% (0 lines)
car_app_library/places/common/src/main/java/androidx/car/app/sample/places/common/places0% (0 lines)

Duplication Between Components (50+ lines)

G car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car car_app_library/places/common/src/main/java/androidx/car/app/sample/places/common car_app_library/places/common/src/main/java/androidx/car/app/sample/places/common car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car--car_app_library/places/common/src/main/java/androidx/car/app/sample/places/common 102 car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/renderer car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/renderer car_app_library/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car--car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/renderer 72 car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/textandicons car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/textandicons car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common--car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/textandicons 66 car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/misc car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/misc car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/templates car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/templates car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/misc--car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/templates 64 car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/navigation car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/navigation car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/navigation--car_app_library/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/textandicons 56

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 120 duplicates...
Size#FoldersFilesLinesCode
19 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/places/c...pp/sample/places/common
RequestPermissionScreen.java
RequestPermissionScreen.java
60:81 (57%)
60:81 (57%)
view
18 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/showcase...howcase/common/renderer
SurfaceRenderer.java
DefaultRenderer.java
321:341 (8%)
70:90 (26%)
view
15 x 2 car_app_library/showcase...owcase/common/templates
car_app_library/showcase...owcase/common/templates
ListTemplateDemoScreen.java
MessageTemplateDemoScreen.java
95:109 (25%)
81:95 (28%)
view
13 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/places/c...pp/sample/places/common
RequestPermissionScreen.java
RequestPermissionScreen.java
36:56 (39%)
36:56 (39%)
view
11 x 2 car_app_library/showcase...owcase/common/templates
car_app_library/showcase...owcase/common/templates
ListTemplateDemoScreen.java
SearchTemplateDemoScreen.java
97:107 (18%)
65:75 (26%)
view
11 x 2 car_app_library/showcase...mmon/navigation/routing
car_app_library/showcase...mmon/navigation/routing
JunctionImageDemoScreen.java
NavigatingDemoScreen.java
34:46 (47%)
32:44 (55%)
view
11 x 2 car_app_library/navigati...e/navigation/common/nav
car_app_library/navigati...e/navigation/common/nav
NavigationService.java
NavigationService.java
292:303 (2%)
311:322 (2%)
view
11 x 2 car_app_library/showcase...owcase/common/templates
car_app_library/showcase...owcase/common/templates
MessageTemplateDemoScreen.java
SearchTemplateDemoScreen.java
83:93 (21%)
65:75 (26%)
view
10 x 2 car_app_library/showcase...owcase/common/templates
car_app_library/showcase...owcase/common/templates
GridTemplateDemoScreen.java
MessageTemplateDemoScreen.java
218:227 (5%)
81:90 (19%)
view
10 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
NavigationScreen.java
NavigationSession.java
107:116 (4%)
83:92 (5%)
view
10 x 2 car_app_library/showcase...owcase/common/templates
car_app_library/showcase...owcase/common/templates
GridTemplateDemoScreen.java
ListTemplateDemoScreen.java
218:227 (5%)
95:104 (16%)
view
10 x 2 car_app_library/hellowor...ample/helloworld/common
car_app_library/places/c...pp/sample/places/common
HelloWorldService.java
PlacesCarAppService.java
50:61 (50%)
57:68 (40%)
view
10 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/nav
NavigationSession.java
NavigationService.java
94:103 (5%)
344:353 (2%)
view
10 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
FavoritesScreen.java
SearchResultsScreen.java
103:116 (13%)
105:118 (15%)
view
10 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/places/c...pp/sample/places/common
SearchScreen.java
SearchScreen.java
61:72 (15%)
70:81 (11%)
view
9 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/nav
NavigationSession.java
NavigationService.java
83:91 (4%)
113:121 (2%)
view
9 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
FavoritesScreen.java
SearchResultsScreen.java
85:95 (12%)
87:97 (14%)
view
9 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/places/c...pp/sample/places/common
NavigationCarAppService.java
PlacesCarAppService.java
86:94 (18%)
60:68 (36%)
view
9 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
FavoritesScreen.java
SearchScreen.java
58:68 (12%)
53:63 (13%)
view
9 x 2 car_app_library/navigati...navigation/common/model
car_app_library/showcase...mmon/navigation/routing
DemoScripts.java
RoutingDemoModels.java
144:153 (2%)
77:86 (6%)
view
Duplicated Units
The list of top 4 duplicated units.
See data for all 4 unit duplicates...
Size#FoldersFilesLinesCode
24 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/places/c...pp/sample/places/common
RequestPermissionScreen.java
RequestPermissionScreen.java
54:82 
54:82 
view
8 x 4 car_app_library/navigati...e/navigation/common/car
car_app_library/showcase.../sample/showcase/common
car_app_library/places/c...pp/sample/places/common
car_app_library/hellowor...ample/helloworld/common
NavigationCarAppService.java
ShowcaseService.java
PlacesCarAppService.java
HelloWorldService.java
88:96 
60:68 
62:70 
55:63 
view
7 x 2 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
FavoritesScreen.java
SearchScreen.java
57:64 
52:59 
view
7 x 3 car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
car_app_library/navigati...e/navigation/common/car
FavoritesScreen.java
SearchScreen.java
SearchResultsScreen.java
109:117 
121:129 
111:119 
view