android / user-interface-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
  • 27% duplication:
    • 7,965 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,228 duplicated lines
  • 186 duplicates
system27% (2,228 lines)
Duplication per Extension
java50% (1,984 lines)
kt6% (244 lines)
Duplication per Component (primary)
Notifications65% (1,087 lines)
ClippingBasic80% (234 lines)
ElevationDrag69% (234 lines)
ElevationBasic87% (234 lines)
TextLinkify86% (177 lines)
WindowManager17% (126 lines)
SliceViewerKotlin16% (62 lines)
InteractiveSliceProviderKotlin3% (38 lines)
TextRoundedBackgroundKotlin10% (24 lines)
AppWidget5% (12 lines)
ImmersiveMode0% (0 lines)
DownloadableFontsKotlin0% (0 lines)
DarkTheme0% (0 lines)
TextStylingKotlin0% (0 lines)
EmojiCompat0% (0 lines)
DragAndDrop0% (0 lines)
EmojiCompatKotlin0% (0 lines)
People0% (0 lines)
DownloadableFonts0% (0 lines)
SplashScreen0% (0 lines)
PreferencesKotlin0% (0 lines)
DocumentCentricApps0% (0 lines)
AppShortcuts0% (0 lines)
TextStyling0% (0 lines)

Duplication Between Components (50+ lines)

G ClippingBasic ClippingBasic ElevationDrag ElevationDrag ClippingBasic--ElevationDrag 468 ElevationBasic ElevationBasic ClippingBasic--ElevationBasic 468 TextLinkify TextLinkify ClippingBasic--TextLinkify 354 ElevationDrag--TextLinkify 354 ElevationBasic--ElevationDrag 468 ElevationBasic--TextLinkify 354

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 186 duplicates...
Size#FoldersFilesLinesCode
60 x 2 ElevationBasic/Applicati...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
60 x 2 ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
60 x 2 ClippingBasic/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
60 x 2 ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
60 x 2 ElevationBasic/Applicati...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
60 x 2 ClippingBasic/Applicatio...e/android/common/logger
ElevationBasic/Applicati...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
46 x 2 ClippingBasic/Applicatio...e/android/common/logger
ElevationBasic/Applicati...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
46 x 2 ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
46 x 2 ElevationBasic/Applicati...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
46 x 2 ElevationBasic/Applicati...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
46 x 2 ClippingBasic/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
46 x 2 ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
42 x 2 Notifications/Wearable/s.../wear/wearnotifications
Notifications/Wearable/s...rnotifications/handlers
StandaloneMainActivity.java
BigPictureSocialIntentService.java
403:469 (12%)
166:223 (42%)
view
42 x 2 Notifications/Wearable/s.../wear/wearnotifications
Notifications/Wearable/s...rnotifications/handlers
StandaloneMainActivity.java
BigTextIntentService.java
225:299 (12%)
146:207 (41%)
view
42 x 2 ClippingBasic/Applicatio...e/android/common/logger
ElevationBasic/Applicati...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
42 x 2 ElevationBasic/Applicati...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
42 x 2 ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
42 x 2 ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
42 x 2 ClippingBasic/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
42 x 2 ElevationBasic/Applicati...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
Duplicated Units
The list of top 14 duplicated units.
See data for all 14 unit duplicates...
Size#FoldersFilesLinesCode
43 x 4 ElevationBasic/Applicati...e/android/common/logger
ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogView.java
LogView.java
LogView.java
LogView.java
48:106 
48:106 
48:106 
48:106 
view
22 x 4 ElevationBasic/Applicati...e/android/common/logger
ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogFragment.java
LogFragment.java
LogFragment.java
LogFragment.java
56:83 
56:83 
56:83 
56:83 
view
17 x 2 SliceViewerKotlin/app/sr...oid/sliceviewer/ui/list
SliceViewerKotlin/app/sr...d/sliceviewer/ui/single
SliceViewerActivity.kt
SingleSliceViewerActivity.kt
112:130 
78:96 
view
14 x 4 ElevationBasic/Applicati...e/android/common/logger
ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogFragment.java
LogFragment.java
LogFragment.java
LogFragment.java
86:104 
86:104 
86:104 
86:104 
view
14 x 3 ElevationBasic/Applicati.../android/elevationbasic
ClippingBasic/Applicatio...e/android/clippingbasic
ElevationDrag/Applicatio...e/android/elevationdrag
MainActivity.java
MainActivity.java
MainActivity.java
75:89 
75:89 
75:89 
view
12 x 4 ElevationBasic/Applicati...e/android/common/logger
ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogWrapper.java
LogWrapper.java
LogWrapper.java
LogWrapper.java
52:74 
52:74 
52:74 
52:74 
view
10 x 2 Notifications/Wearable/s...rnotifications/handlers
Notifications/Applicatio...rnotifications/handlers
BigTextIntentService.java
BigTextIntentService.java
58:69 
57:68 
view
10 x 2 SliceViewerKotlin/app/sr...oid/sliceviewer/ui/list
SliceViewerKotlin/app/sr...d/sliceviewer/ui/single
SliceViewerActivity.kt
SingleSliceViewerActivity.kt
132:142 
111:121 
view
9 x 3 ElevationBasic/Applicati.../android/elevationbasic
ClippingBasic/Applicatio...e/android/clippingbasic
ElevationDrag/Applicatio...e/android/elevationdrag
MainActivity.java
MainActivity.java
MainActivity.java
93:109 
93:109 
93:109 
view
8 x 4 ElevationBasic/Applicati...e/android/common/logger
ClippingBasic/Applicatio...e/android/common/logger
ElevationDrag/Applicatio...e/android/common/logger
TextLinkify/Application/...e/android/common/logger
LogView.java
LogView.java
LogView.java
LogView.java
125:134 
125:134 
125:134 
125:134 
view
8 x 2 Notifications/Wearable/s...rnotifications/handlers
Notifications/Applicatio...rnotifications/handlers
MessagingIntentService.java
MessagingIntentService.java
58:67 
61:70 
view
8 x 2 Notifications/Wearable/s...rnotifications/handlers
Notifications/Applicatio...rnotifications/handlers
BigPictureSocialIntentService.java
BigPictureSocialIntentService.java
56:65 
57:66 
view
6 x 2 Notifications/Wearable/s...rnotifications/handlers
Notifications/Applicatio...rnotifications/handlers
MessagingIntentService.java
MessagingIntentService.java
129:135 
132:138 
view
6 x 2 Notifications/Wearable/s...rnotifications/handlers
Notifications/Applicatio...rnotifications/handlers
BigPictureSocialIntentService.java
BigPictureSocialIntentService.java
123:129 
122:128 
view