aws-samples / amazon-ivs-optimizations-android-demo
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
  • 28% duplication:
    • 781 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 226 duplicated lines
  • 16 duplicates
system28% (226 lines)
Duplication per Extension
kt28% (226 lines)
Duplication per Component (primary)
optimizations/ui/rebuffertolive75% (85 lines)
optimizations/ui/catchuptolive64% (77 lines)
optimizations/ui/precaching36% (44 lines)
optimizations/common11% (20 lines)
optimizations0% (0 lines)
optimizations/ui/settings0% (0 lines)
optimizations/ui0% (0 lines)
optimizations/ui/models0% (0 lines)
optimizations/ui/home0% (0 lines)
optimizations/playerview0% (0 lines)

Duplication Between Components (50+ lines)

G optimizations/ui/catchuptolive optimizations/ui/catchuptolive optimizations/ui/rebuffertolive optimizations/ui/rebuffertolive optimizations/ui/catchuptolive--optimizations/ui/rebuffertolive 154 optimizations/ui/precaching optimizations/ui/precaching optimizations/ui/catchuptolive--optimizations/ui/precaching 70 optimizations/ui/precaching--optimizations/ui/rebuffertolive 88

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 16 longest duplicates.
See data for all 16 duplicates...
Size#FoldersFilesLinesCode
27 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveFragment.kt
RebufferToLiveFragment.kt
34:80 (54%)
34:80 (54%)
view
13 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveViewModel.kt
RebufferToLiveViewModel.kt
25:39 (18%)
22:36 (20%)
view
11 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveViewModel.kt
RebufferToLiveViewModel.kt
41:54 (15%)
38:51 (17%)
view
11 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveFragment.kt
RebufferToLiveFragment.kt
82:102 (22%)
82:102 (22%)
view
11 x 2 app/src/main/java/com/am...mizations/ui/precaching
app/src/main/java/com/am...tions/ui/rebuffertolive
PreCachingFragment.kt
RebufferToLiveFragment.kt
51:70 (21%)
42:61 (22%)
view
11 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...mizations/ui/precaching
CatchUpToLiveFragment.kt
PreCachingFragment.kt
42:61 (22%)
51:70 (21%)
view
10 x 2 app/src/main/java/com/am...vs/optimizations/common
app/src/main/java/com/am...vs/optimizations/common
IvsPlayerExtensions.kt
IvsPlayerExtensions.kt
11:20 (14%)
50:59 (14%)
view
10 x 2 app/src/main/java/com/am...mizations/ui/precaching
app/src/main/java/com/am...tions/ui/rebuffertolive
PreCachingViewModel.kt
RebufferToLiveViewModel.kt
21:31 (14%)
22:32 (15%)
view
10 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...mizations/ui/precaching
CatchUpToLiveViewModel.kt
PreCachingViewModel.kt
25:35 (14%)
21:31 (14%)
view
9 x 2 app/src/main/java/com/am...mizations/ui/precaching
app/src/main/java/com/am...tions/ui/rebuffertolive
PreCachingViewModel.kt
RebufferToLiveViewModel.kt
62:74 (13%)
51:63 (14%)
view
8 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...mizations/ui/precaching
CatchUpToLiveViewModel.kt
PreCachingViewModel.kt
41:49 (11%)
48:56 (11%)
view
8 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveViewModel.kt
RebufferToLiveViewModel.kt
68:78 (11%)
66:75 (12%)
view
8 x 2 app/src/main/java/com/am...mizations/ui/precaching
app/src/main/java/com/am...tions/ui/rebuffertolive
PreCachingViewModel.kt
RebufferToLiveViewModel.kt
48:56 (11%)
38:46 (12%)
view
7 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveViewModel.kt
RebufferToLiveViewModel.kt
95:106 (10%)
82:92 (11%)
view
6 x 2 app/src/main/java/com/am...mizations/ui/precaching
app/src/main/java/com/am...tions/ui/rebuffertolive
PreCachingFragment.kt
RebufferToLiveFragment.kt
80:87 (11%)
73:80 (12%)
view
6 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...mizations/ui/precaching
CatchUpToLiveFragment.kt
PreCachingFragment.kt
73:80 (12%)
80:87 (11%)
view
Duplicated Units
The list of top 1 duplicated units.
See data for all 1 unit duplicate
Size#FoldersFilesLinesCode
26 x 2 app/src/main/java/com/am...ations/ui/catchuptolive
app/src/main/java/com/am...tions/ui/rebuffertolive
CatchUpToLiveFragment.kt
RebufferToLiveFragment.kt
37:67 
37:67 
view