android / tv-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
  • 6% duplication:
    • 13,093 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 910 duplicated lines
  • 58 duplicates
system6% (910 lines)
Duplication per Extension
java7% (718 lines)
ts15% (72 lines)
kt1% (46 lines)
html17% (26 lines)
css10% (26 lines)
py2% (12 lines)
js8% (10 lines)
Duplication per Component (primary)
LeanbackShowcase/app8% (545 lines)
Leanback/app7% (163 lines)
ReferenceAppKotlin/firebase14% (124 lines)
ReferenceAppKotlin/app2% (46 lines)
AccessibilityDemo/app2% (20 lines)
LeanbackShowcase/server4% (12 lines)
LeanbackShowcase0% (0 lines)
ClassicsKotlin/app0% (0 lines)
ReferenceAppKotlin/scripts0% (0 lines)
ReferenceAppKotlin0% (0 lines)

Duplication Between Components (50+ lines)

G Leanback/app Leanback/app LeanbackShowcase/app LeanbackShowcase/app Leanback/app--LeanbackShowcase/app 99

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 58 duplicates...
Size#FoldersFilesLinesCode
34 x 2 LeanbackShowcase/app/src...ackshowcase/app/details
LeanbackShowcase/app/src...ackshowcase/app/details
DetailViewExampleFragment.java
DetailViewExampleWithVideoBackgroundF...
83:130 (32%)
95:142 (21%)
view
26 x 2 LeanbackShowcase/app/src...nbackshowcase/app/media
LeanbackShowcase/app/src...nbackshowcase/app/media
VideoConsumptionExampleFragment.java
VideoConsumptionExampleWithExoPlayerF...
66:97 (49%)
66:97 (48%)
view
20 x 2 LeanbackShowcase/app/src...se/app/room/di/listener
LeanbackShowcase/app/src...se/app/room/di/listener
ListenerModule.java
ListenerModule.java
95:122 (13%)
126:154 (13%)
view
20 x 2 LeanbackShowcase/app/src...nbackshowcase/app/media
LeanbackShowcase/app/src...nbackshowcase/app/media
VideoConsumptionExampleFragment.java
VideoConsumptionExampleWithExoPlayerF...
35:62 (37%)
34:61 (37%)
view
19 x 2 LeanbackShowcase/app/src...ackshowcase/app/details
LeanbackShowcase/app/src...ackshowcase/app/details
DetailViewExampleFragment.java
DetailViewExampleWithVideoBackgroundF...
137:161 (18%)
150:174 (12%)
view
17 x 2 LeanbackShowcase/app/src...owcase/cards/presenters
LeanbackShowcase/app/src...owcase/cards/presenters
IconCardInChannelPublishPresenter.java
IconCardPresenter.java
40:59 (80%)
37:56 (80%)
view
16 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
SearchFragment.java
VerticalGridFragment.java
210:229 (12%)
115:135 (24%)
view
15 x 2 ReferenceAppKotlin/fireb...rc/controller/functions
ReferenceAppKotlin/fireb...rc/controller/functions
authentication.ts
authentication.ts
408:424 (3%)
591:608 (3%)
view
15 x 2 LeanbackShowcase/app/src...se/app/room/di/listener
LeanbackShowcase/app/src...se/app/room/di/listener
ListenerModule.java
ListenerModule.java
71:92 (9%)
101:123 (9%)
view
14 x 2 LeanbackShowcase/app/src...se/app/room/di/listener
LeanbackShowcase/app/src...se/app/room/di/listener
ListenerModule.java
ListenerModule.java
71:91 (9%)
132:154 (9%)
view
14 x 2 ReferenceAppKotlin/fireb...rc/controller/functions
ReferenceAppKotlin/fireb...rc/controller/functions
authentication.ts
authentication.ts
411:427 (3%)
474:490 (3%)
view
13 x 2 ReferenceAppKotlin/firebase/web
ReferenceAppKotlin/firebase/web/oauth
index.html
index.html
47:64 (32%)
33:50 (46%)
view
13 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
MainFragment.java
SearchFragment.java
326:340 (6%)
215:229 (10%)
view
13 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
VerticalGridFragment.java
VideoDetailsFragment.java
120:135 (19%)
373:387 (5%)
view
13 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
MainFragment.java
VerticalGridFragment.java
326:340 (6%)
120:135 (19%)
view
13 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
MainFragment.java
VideoDetailsFragment.java
326:340 (6%)
373:387 (5%)
view
13 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
SearchFragment.java
VideoDetailsFragment.java
215:229 (10%)
373:387 (5%)
view
12 x 2 ReferenceAppKotlin/fireb...rc/controller/functions
ReferenceAppKotlin/fireb...rc/controller/functions
authentication.ts
authentication.ts
474:487 (2%)
594:608 (2%)
view
12 x 2 LeanbackShowcase/app/src...p/room/di/androidinject
LeanbackShowcase/app/src...i/subcomponentinjection
AppModule.java
ApplicationModule.java
33:48 (85%)
33:48 (85%)
view
12 x 2 LeanbackShowcase/app/src...ackshowcase/app/details
LeanbackShowcase/app/src...ackshowcase/app/details
DetailViewExampleFragment.java
DetailViewExampleWithVideoBackgroundF...
183:197 (11%)
239:253 (7%)
view
Duplicated Units
The list of top 8 duplicated units.
See data for all 8 unit duplicates...
Size#FoldersFilesLinesCode
21 x 2 LeanbackShowcase/app/src...se/app/room/di/listener
LeanbackShowcase/app/src...se/app/room/di/listener
ListenerModule.java
ListenerModule.java
94:119 
125:150 
view
14 x 2 LeanbackShowcase/app/src...nbackshowcase/app/media
LeanbackShowcase/app/src...nbackshowcase/app/media
VideoConsumptionExampleFragment.java
VideoConsumptionExampleWithExoPlayerF...
37:51 
36:50 
view
12 x 2 Leanback/app/src/main/ja...e/android/tvleanback/ui
Leanback/app/src/main/ja...e/android/tvleanback/ui
VerticalGridFragment.java
VideoDetailsFragment.java
122:137 
375:389 
view
12 x 2 LeanbackShowcase/app/src...owcase/cards/presenters
LeanbackShowcase/app/src...owcase/cards/presenters
IconCardInChannelPublishPresenter.java
IconCardPresenter.java
41:53 
38:50 
view
8 x 3 LeanbackShowcase/app/src...ackshowcase/app/room/ui
LeanbackShowcase/app/src.../room/controller/detail
LeanbackShowcase/app/src...oom/controller/overview
VideoCardPresenter.java
LiveDataDetailViewWithVideoBackground...
LiveDataFragment.java
435:445 
358:366 
273:283 
view
8 x 2 LeanbackShowcase/app/src...ackshowcase/app/details
LeanbackShowcase/app/src...ackshowcase/app/details
DetailViewExampleFragment.java
DetailViewExampleWithVideoBackgroundF...
191:199 
247:255 
view
6 x 2 Leanback/app/src/main/ja...droid/tvleanback/player
LeanbackShowcase/app/src...nbackshowcase/app/media
VideoPlayerGlue.java
VideoMediaPlayerGlue.java
112:119 
67:73 
view
6 x 2 LeanbackShowcase/app/src...owcase/cards/presenters
LeanbackShowcase/app/src...owcase/cards/presenters
IconCardInChannelPublishPresenter.java
IconCardPresenter.java
55:61 
52:58 
view