Skip to content

Instantly share code, notes, and snippets.

@Nutomic
Last active October 8, 2016 09:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nutomic/af8699bdefa1ff293f3e4ca4c24737fc to your computer and use it in GitHub Desktop.
Save Nutomic/af8699bdefa1ff293f3e4ca4c24737fc to your computer and use it in GitHub Desktop.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Lint Report</title>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto" />
<style>
body {
max-width: 800px;
background-color: #000000;
background: -webkit-gradient(linear, left top, right bottom, from(#000000), to(#272d33));
background: -moz-linear-gradient(left top, #000000, #272d33);
color: #f3f3f3;
font-family: 'Roboto', Sans-Serif;
}
.issue {
margin-top: 10px;
margin-bottom: 10px;
padding: 5px 0px 5px 5px;
}
.id {
font-size: 14pt;
color: #bebebe;
margin: 5px 0px 5px 0px;
}
.category {
font-size: 18pt;
color: #bebebe;
margin: 10px 0px 5px 0px;
}
.explanation {
margin-top: 10px;
}
.explanation b {
color: #ffbbbb;
}
.explanation code {
color: #bebebe;
font-family: 'Roboto', Sans-Serif;
}
pre {
background-color: #282828;
margin: 5px 0px 5px 5px;
padding: 5px 5px 5px 0px;
overflow: hidden;
}
.lineno {
color: #4f4f4f;
}
.embedimage {
max-width: 200px;
max-height: 200px;
}
th { font-weight: normal; }
table { border: none; }
.metadata {
}
.location {
color: #bebebe;
}
.message { }
.errorspan { color: #33b5e5; }
.errorline { color: #33b5e5; }
.warningslist { margin-bottom: 20px; }
.overview {
padding: 10pt;
width: 100%;
overflow: auto;
border-collapse:collapse;
}
.overview tr {
border-top: solid 1px #39393a;
border-bottom: solid 1px #39393a;
}
.countColumn {
text-align: right;
padding-right: 20px;
}
.issueColumn {
padding-left: 16px;
}
.categoryColumn {
position: relative;
left: -50px;
padding-top: 20px;
padding-bottom: 5px;
}
.titleSeparator {
background-color: #33b5e5;
height: 3px;
margin-bottom: 10px;
}
.categorySeparator {
background-color: #33b5e5;
height: 3px;
margin-bottom: 10px;
}
.issueSeparator {
background-color: #39393a;
height: 2px;
margin-bottom: 10px;
}
.location a:link {
text-decoration: none;
color: #bebebe;
}
.location a:hover {
text-decoration: underline;
color: #f3f3f3;
}
a:link {
text-decoration: none;
color: #f3f3f3;
}
a:visited {
text-decoration: none;
color: #bebebe;
}
a:hover {
text-decoration: underline;
color: #f3f3f3;
}
a:active {
text-decoration: underline;
color: #f3f3f3;
}
.moreinfo a:link {
text-decoration: underline;
color: #33b5e5;
}
.moreinfo a:visited {
text-decoration: underline;
color: #33b5e5;
}
.issue a:link {
text-decoration: underline;
}
.issue a:visited {
text-decoration: underline;
}
.id a:link {
text-decoration: none;
color: #bebebe;
}
.id a:visited {
text-decoration: none;
color: #bebebe;
}
.id a:hover {
text-decoration: underline;
color: #f3f3f3;
}
.id a:active {
text-decoration: underline;
color: #bebebe;
}
.category a:link {
text-decoration: none;
color: #bebebe;
}
.category a:visited {
text-decoration: none;
color: #bebebe;
}
.category a:hover {
text-decoration: underline;
color: #f3f3f3;
}
.category a:active {
text-decoration: underline;
color: #bebebe;
}
button {
color: #ffffff;
background-color: #353535;
border-left: none;
border-right: none;
border-bottom: none;
border-top: solid 1px #5b5b5b;
font-family: 'Roboto', Sans-Serif;
font-size: 12pt;
}
</style>
<script language="javascript" type="text/javascript">
<!--
function reveal(id) {
if (document.getElementById) {
document.getElementById(id).style.display = 'block';
document.getElementById(id+'Link').style.display = 'none';
}
}
//-->
</script>
</head>
<body>
<h1>Lint Report</h1>
<div class="titleSeparator"></div>
Check performed at Sat Oct 08 09:22:39 UTC 2016.<br/>
1 errors and 57 warnings found:<br/><br/>
<table class="overview">
<tr><td></td><td class="categoryColumn"><a href="#Correctness">Correctness</a>
</td></tr>
<tr>
<td class="countColumn">15</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#CommitPrefEdits">CommitPrefEdits: Missing <code>commit()</code> on <code>SharedPreference</code> editor</a>
</td></tr>
<tr>
<td class="countColumn">1</td><td class="issueColumn"><img border="0" align="top" width="15" height="15" alt="Error" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAB00lEQVR42nWTS0hbQRiF587MzkUXooi6UHAjhNKNSkGhCDXxkZhUIwWhBLoRsQpi3bXmIboSV2aliI+WKqLUtqsuSxclrhRBUMnVmIpa2oIkQon+zhlr9F7jwOEw/znfLO6dYcy2Arys6AUv6x7klTNh4ViFY485u2+N8Uc8yB1DH0Vt6ki2UkZ20LkS/Eh6CXPk6FnAKVHNJ3nViind9E/6tTKto3TxaU379Qw5euhn4QXxOGzKFjqT7Vmlwx8IC357jh76GvzC64pj4mn6VLbRbf0Nvdcw3J6hr7gS9o3XDxwIN/0RPot+h95pGG7P0AfH1oVz6UR4ya5foXkNw3Pl4Ngub/p6yD1k13FoTsPwXDk4ti89SwnuJrtigYiGY4FhypWDY2aeb0CJ4rzZou9GPc0Y1drtGfrgWLzweUm8uPNsx2ikrHgjHT6LUOrzD/rpDpIlU0JfcaX6d8UfdoW38/20ZbiuxF10MHL1tRNvp2/mSuihn70kZl2/MJ+8Xtkq8NOm4VRqoIUKLy0Hx2mx3PN/5iTk6KFvuaJmyxux3zE8tFPTm9p84KMNdcAGa9COvZqnkaN37wNJvpooSvZFexIvx2b3OkdX4dgne6N3XtUl5wqoyBY2uZQAAAAASUVORK5CYII=" />
<a href="#NewApi">NewApi: Calling new methods on older versions</a>
</td></tr>
<tr>
<td class="countColumn">1</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#BatteryLife">BatteryLife: Battery Life Issues</a>
</td></tr>
<tr>
<td class="countColumn">31</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#PrivateResource">PrivateResource: Using private resources</a>
</td></tr>
<tr><td></td><td class="categoryColumn"><a href="#Correctness:Messages">Correctness:Messages</a>
</td></tr>
<tr>
<td class="countColumn">1</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#PluralsCandidate">PluralsCandidate: Potential Plurals</a>
</td></tr>
<tr><td></td><td class="categoryColumn"><a href="#Performance">Performance</a>
</td></tr>
<tr>
<td class="countColumn">1</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#Overdraw">Overdraw: Overdraw: Painting regions more than once</a>
</td></tr>
<tr><td></td><td class="categoryColumn"><a href="#Usability:Typography">Usability:Typography</a>
</td></tr>
<tr>
<td class="countColumn">7</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#TypographyEllipsis">TypographyEllipsis: Ellipsis string can be replaced with ellipsis character</a>
</td></tr>
<tr><td></td><td class="categoryColumn"><a href="#Usability:Icons">Usability:Icons</a>
</td></tr>
<tr>
<td class="countColumn">1</td><td class="issueColumn"><img border="0" align="top" width="16" height="15" alt="Warning" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAQAAABHeoekAAAA3klEQVR42nWPsWoCQRCGVyJiF9tAsNImbcDKR/ABBEurYCsBsfQRQiAPYGPyAAnYWQULS9MErNU2Vsr/ObMX7g6O+xd2/5n5dmY3hFQEBVVpuCsVT/yoUl6u4XotBz4E4qR2YYyH6ugEWY8comR/t+tvPPJtSLPYvhvvTswtbdCmCOwjMHXAzjP9kB/ByB7nejbgy43WVPF3WNG+p9+kzkozdhGAQdZh7BlHdGTL3z98pp6Um7okKdvHNuIzWk+9xN+yINOcHps0OnAfuOOoHJH3pmHghhYP2VJcaXx7BaKz9YB2HVrDAAAAAElFTkSuQmCC"/>
<a href="#IconDensities">IconDensities: Icon densities validation</a>
</td></tr>
<tr><td></td><td class="categoryColumn"><a href="#MissingIssues">Disabled Checks (20)</a>
</td></tr></table>
<br/>
<a name="Correctness"></a>
<div class="category"><a href="#" title="Return to top">Correctness</a><div class="categorySeparator"></div>
</div>
<a name="CommitPrefEdits"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">CommitPrefEdits: Missing <code>commit()</code> on <code>SharedPreference</code> editor</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java</a>:29</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 26</span>
<span class="lineno"> 27</span> @Override
<span class="lineno"> 28</span> protected void tearDown() throws Exception {
<span class="lineno"> 29</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext).edit().clear().commit();</span>
<span class="lineno"> 30</span> super.tearDown();
<span class="lineno"> 31</span> }
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java</a>:39</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 36</span> * In this case starting the service is allowed
<span class="lineno"> 37</span> */
<span class="lineno"> 38</span> public void testStartSyncthingServiceBackground() {
<span class="lineno"> 39</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 40</span> .edit()
<span class="lineno"> 41</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, true)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java</a>:58</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 55</span> * Stopping the service in this mode is not allowed, so no stopService-intent may be issued.
<span class="lineno"> 56</span> */
<span class="lineno"> 57</span> public void testStopSyncthingServiceBackground() {
<span class="lineno"> 58</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 59</span> .edit()
<span class="lineno"> 60</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, true)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java</a>:75</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 72</span> * In this case starting the service is allowed
<span class="lineno"> 73</span> */
<span class="lineno"> 74</span> public void testStartSyncthingServiceForeground() {
<span class="lineno"> 75</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 76</span> .edit()
<span class="lineno"> 77</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, false)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/AppConfigReceiverTest.java</a>:94</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 91</span> * In this case stopping the service is allowed
<span class="lineno"> 92</span> */
<span class="lineno"> 93</span> public void testStopSyncthingServiceForeground() {
<span class="lineno"> 94</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 95</span> .edit()
<span class="lineno"> 96</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, false)
</pre>
<button id="CommitPrefEditsDivLink" onclick="reveal('CommitPrefEditsDiv');" />+ 10 More Occurrences...</button>
<div id="CommitPrefEditsDiv" style="display: none">
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java</a>:26</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 23</span>
<span class="lineno"> 24</span> @Override
<span class="lineno"> 25</span> protected void tearDown() throws Exception {
<span class="lineno"> 26</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext).edit().clear().commit();</span>
<span class="lineno"> 27</span> super.tearDown();
<span class="lineno"> 28</span> }
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java</a>:31</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 28</span> }
<span class="lineno"> 29</span>
<span class="lineno"> 30</span> public void testOnReceiveCharging() {
<span class="lineno"> 31</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 32</span> .edit()
<span class="lineno"> 33</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, true)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java</a>:46</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 43</span> }
<span class="lineno"> 44</span>
<span class="lineno"> 45</span> public void testOnReceiveNotCharging() {
<span class="lineno"> 46</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 47</span> .edit()
<span class="lineno"> 48</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, true)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BatteryReceiverTest.java</a>:62</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 59</span> }
<span class="lineno"> 60</span>
<span class="lineno"> 61</span> public void testOnlyRunInForeground() {
<span class="lineno"> 62</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(getContext())</span>
<span class="lineno"> 63</span> .edit()
<span class="lineno"> 64</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, false)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BootReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BootReceiverTest.java</a>:29</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 26</span>
<span class="lineno"> 27</span> @Override
<span class="lineno"> 28</span> protected void tearDown() throws Exception {
<span class="lineno"> 29</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext).edit().clear().commit();</span>
<span class="lineno"> 30</span> super.tearDown();
<span class="lineno"> 31</span> }
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BootReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BootReceiverTest.java</a>:34</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 31</span> }
<span class="lineno"> 32</span>
<span class="lineno"> 33</span> public void testOnReceiveCharging() {
<span class="lineno"> 34</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 35</span> .edit()
<span class="lineno"> 36</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, true)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BootReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/BootReceiverTest.java</a>:47</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 44</span> }
<span class="lineno"> 45</span>
<span class="lineno"> 46</span> public void testOnlyRunInForeground() {
<span class="lineno"> 47</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(getContext())</span>
<span class="lineno"> 48</span> .edit()
<span class="lineno"> 49</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, false)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/NetworkReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/NetworkReceiverTest.java</a>:34</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 31</span>
<span class="lineno"> 32</span> @Override
<span class="lineno"> 33</span> protected void tearDown() throws Exception {
<span class="lineno"> 34</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext).edit().clear().commit();</span>
<span class="lineno"> 35</span> super.tearDown();
<span class="lineno"> 36</span> }
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/NetworkReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/NetworkReceiverTest.java</a>:39</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 36</span> }
<span class="lineno"> 37</span>
<span class="lineno"> 38</span> public void testOnReceive() {
<span class="lineno"> 39</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(mContext)</span>
<span class="lineno"> 40</span> .edit()
<span class="lineno"> 41</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, true)
</pre>
<span class="location"><a href="../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/NetworkReceiverTest.java">../../src/androidTest/java/com/nutomic/syncthingandroid/test/syncthing/NetworkReceiverTest.java</a>:54</span>: <span class="message">Consider using <code>apply()</code> instead; <code>commit</code> writes its data to persistent storage immediately, whereas <code>apply</code> will handle it in the background</span><br /><pre class="errorlines">
<span class="lineno"> 51</span> }
<span class="lineno"> 52</span>
<span class="lineno"> 53</span> public void testOnlyRunInForeground() {
<span class="lineno"> 54</span> <span class="errorspan">PreferenceManager.getDefaultSharedPreferences(getContext())</span>
<span class="lineno"> 55</span> .edit()
<span class="lineno"> 56</span> .putBoolean(SyncthingService.PREF_ALWAYS_RUN_IN_BACKGROUND, false)
</pre>
</div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Priority: 6 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Missing <code>commit()</code> on <code>SharedPreference</code> editor.</div>
<div class="explanation">
After calling <code>edit()</code> on a <code>SharedPreference</code>, you must call <code>commit()</code> or <code>apply()</code> on the editor to save the results.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "CommitPrefEdits" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="NewApi"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">NewApi: Calling new methods on older versions</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../../syncthing-android">../../../syncthing-android</a></span>: <span class="message">The SDK platform-tools version (23.1 rc1) is too old to check APIs compiled with API 24; please update</span><br />
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT<br>
Priority: 6 / 10<br/>
Category: Correctness</div>
Severity: <span class="error">Error</span><div class="summary">
Explanation: Calling new methods on older versions.</div>
<div class="explanation">
This check scans through all the Android API calls in the application and warns about any calls that are not available on <b>all</b> versions targeted by this application (according to its minimum SDK attribute in the manifest).<br/>
<br/>
If you really want to use this API and don't need to support older devices just set the <code>minSdkVersion</code> in your <code>build.gradle</code> or <code>AndroidManifest.xml</code> files.<br/>
<br/>
If your code is <b>deliberately</b> accessing newer APIs, and you have ensured (e.g. with conditional execution) that this code will only ever be called on a supported platform, then you can annotate your class or method with the <code>@TargetApi</code> annotation specifying the local minimum SDK to apply, such as <code>@TargetApi(11)</code>, such that this check considers 11 rather than your manifest file's minimum SDK as the required API level.<br/>
<br/>
If you are deliberately setting <code>android:</code> attributes in style definitions, make sure you place this in a <code>values-vNN</code> folder in order to avoid running into runtime conflicts on certain devices where manufacturers have added custom attributes whose ids conflict with the new ones on later platforms.<br/>
<br/>
Similarly, you can use tools:targetApi="11" in an XML file to indicate that the element will only be inflated in an adequate context.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "NewApi" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="BatteryLife"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">BatteryLife: Battery Life Issues</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/main/AndroidManifest.xml">../../src/main/AndroidManifest.xml</a>:86</span>: <span class="message">Declaring a broadcastreceiver for <code>android.net.conn.CONNECTIVITY_CHANGE</code> is deprecated for apps targeting N and higher. In general, apps should not rely on this broadcast and instead use <code>JobScheduler</code> or <code>GCMNetworkManager</code>.</span><br /><pre class="errorlines">
<span class="lineno"> 83</span>
<span class="lineno"> 84</span> &lt;receiver android:name=".syncthing.NetworkReceiver">
<span class="lineno"> 85</span> &lt;intent-filter>
<span class="lineno"> 86</span> &lt;action android:name="<span class="errorspan">android.net.conn.CONNECTIVITY_CHANGE" /></span>
<span class="lineno"> 87</span> &lt;/intent-filter>
<span class="lineno"> 88</span> &lt;/receiver>
</pre>
</div>
<div class="metadata">Priority: 5 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Battery Life Issues.</div>
<div class="explanation">
This issue flags code that either<br/>
* negatively affects battery life, or<br/>
* uses APIs that have recently changed behavior to prevent background tasks from consuming memory and battery excessively.<br/>
<br/>
Generally, you should be using <code>JobScheduler</code> or <code>GcmNetworkManager</code> instead.<br/>
<br/>
For more details on how to update your code, please seehttp://developer.android.com/preview/features/background-optimization.html
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/preview/features/background-optimization.html">http://developer.android.com/preview/features/background-optimization.html</a>
</div><br/>To suppress this error, use the issue id "BatteryLife" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="PrivateResource"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">PrivateResource: Using private resources</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/main/java/com/nutomic/syncthingandroid/fragments/FolderFragment.java">../../src/main/java/com/nutomic/syncthingandroid/fragments/FolderFragment.java</a>:367</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 364</span> private void addEmptyDeviceListView() {
<span class="lineno"> 365</span> LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(WRAP_CONTENT, dp(48, getActivity()));
<span class="lineno"> 366</span> int dividerInset = getResources().getDimensionPixelOffset(R.dimen.material_divider_inset);
<span class="lineno"> 367</span> int contentInset = getResources().getDimensionPixelOffset(<span class="errorspan">R.dimen.abc_action_bar_content_inset_material);</span>
<span class="lineno"> 368</span> setMarginStart(params, dividerInset);
<span class="lineno"> 369</span> setMarginEnd(params, contentInset);
</pre>
<span class="location"><a href="../../src/main/res/layout/dialog_loading.xml">../../src/main/res/layout/dialog_loading.xml</a>:5</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 2</span> &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<span class="lineno"> 3</span> android:layout_width="wrap_content"
<span class="lineno"> 4</span> android:layout_height="wrap_content"
<span class="lineno"> 5</span> android:padding="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 6</span> android:gravity="center"
<span class="lineno"> 7</span> android:theme="?alertDialogTheme">
</pre>
<span class="location"><a href="../../src/main/res/layout/dialog_loading.xml">../../src/main/res/layout/dialog_loading.xml</a>:12</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 9</span> &lt;ProgressBar
<span class="lineno"> 10</span> android:layout_width="wrap_content"
<span class="lineno"> 11</span> android:layout_height="wrap_content"
<span class="lineno"> 12</span> android:layout_marginRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 13</span> android:layout_marginEnd="@dimen/abc_action_bar_content_inset_material" />
<span class="lineno"> 14</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/dialog_loading.xml">../../src/main/res/layout/dialog_loading.xml</a>:13</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 10</span> android:layout_width="wrap_content"
<span class="lineno"> 11</span> android:layout_height="wrap_content"
<span class="lineno"> 12</span> android:layout_marginRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 13</span> android:layout_marginEnd="<span class="errorspan">@dimen/abc_action_bar_content_inset_material" /></span>
<span class="lineno"> 14</span>
<span class="lineno"> 15</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_device.xml">../../src/main/res/layout/fragment_device.xml</a>:43</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 40</span> android:layout_width="wrap_content"
<span class="lineno"> 41</span> android:layout_height="wrap_content"
<span class="lineno"> 42</span> android:layout_gravity="center_vertical"
<span class="lineno"> 43</span> android:layout_marginEnd="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 44</span> android:layout_marginRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 45</span> android:contentDescription="@string/scan_qr_code_description"
</pre>
<button id="PrivateResourceDivLink" onclick="reveal('PrivateResourceDiv');" />+ 26 More Occurrences...</button>
<div id="PrivateResourceDiv" style="display: none">
<span class="location"><a href="../../src/main/res/layout/fragment_device.xml">../../src/main/res/layout/fragment_device.xml</a>:44</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 41</span> android:layout_height="wrap_content"
<span class="lineno"> 42</span> android:layout_gravity="center_vertical"
<span class="lineno"> 43</span> android:layout_marginEnd="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 44</span> android:layout_marginRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 45</span> android:contentDescription="@string/scan_qr_code_description"
<span class="lineno"> 46</span> android:src="@drawable/ic_qrcode_black_24dp_active" />
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_device.xml">../../src/main/res/layout/fragment_device.xml</a>:93</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 90</span> android:id="@+id/compressionValue"
<span class="lineno"> 91</span> android:layout_width="wrap_content"
<span class="lineno"> 92</span> android:layout_height="wrap_content"
<span class="lineno"> 93</span> android:layout_marginEnd="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 94</span> android:layout_marginRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 95</span> android:textAppearance="@style/TextAppearance.AppCompat.Caption"
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_device.xml">../../src/main/res/layout/fragment_device.xml</a>:94</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 91</span> android:layout_width="wrap_content"
<span class="lineno"> 92</span> android:layout_height="wrap_content"
<span class="lineno"> 93</span> android:layout_marginEnd="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 94</span> android:layout_marginRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 95</span> android:textAppearance="@style/TextAppearance.AppCompat.Caption"
<span class="lineno"> 96</span> tools:ignore="HardcodedText" />
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:99</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 96</span> android:gravity="center_vertical"
<span class="lineno"> 97</span> android:minHeight="48dp"
<span class="lineno"> 98</span> android:orientation="vertical"
<span class="lineno"> 99</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 100</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material">
<span class="lineno"> 101</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:100</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 97</span> android:minHeight="48dp"
<span class="lineno"> 98</span> android:orientation="vertical"
<span class="lineno"> 99</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 100</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"></span>
<span class="lineno"> 101</span>
<span class="lineno"> 102</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:122</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 119</span> android:gravity="center_vertical"
<span class="lineno"> 120</span> android:minHeight="48dp"
<span class="lineno"> 121</span> android:orientation="vertical"
<span class="lineno"> 122</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 123</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material">
<span class="lineno"> 124</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:123</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 120</span> android:minHeight="48dp"
<span class="lineno"> 121</span> android:orientation="vertical"
<span class="lineno"> 122</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 123</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"></span>
<span class="lineno"> 124</span>
<span class="lineno"> 125</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:145</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 142</span> android:gravity="center_vertical"
<span class="lineno"> 143</span> android:minHeight="48dp"
<span class="lineno"> 144</span> android:orientation="vertical"
<span class="lineno"> 145</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 146</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material">
<span class="lineno"> 147</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:146</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 143</span> android:minHeight="48dp"
<span class="lineno"> 144</span> android:orientation="vertical"
<span class="lineno"> 145</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 146</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"></span>
<span class="lineno"> 147</span>
<span class="lineno"> 148</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:169</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 166</span> android:gravity="center_vertical"
<span class="lineno"> 167</span> android:minHeight="48dp"
<span class="lineno"> 168</span> android:orientation="vertical"
<span class="lineno"> 169</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 170</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material">
<span class="lineno"> 171</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:170</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 167</span> android:minHeight="48dp"
<span class="lineno"> 168</span> android:orientation="vertical"
<span class="lineno"> 169</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 170</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"></span>
<span class="lineno"> 171</span>
<span class="lineno"> 172</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:193</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 190</span> android:gravity="center_vertical"
<span class="lineno"> 191</span> android:minHeight="48dp"
<span class="lineno"> 192</span> android:orientation="vertical"
<span class="lineno"> 193</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 194</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material">
<span class="lineno"> 195</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:194</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 191</span> android:minHeight="48dp"
<span class="lineno"> 192</span> android:orientation="vertical"
<span class="lineno"> 193</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 194</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"></span>
<span class="lineno"> 195</span>
<span class="lineno"> 196</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:216</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 213</span> android:gravity="center_vertical"
<span class="lineno"> 214</span> android:minHeight="48dp"
<span class="lineno"> 215</span> android:orientation="vertical"
<span class="lineno"> 216</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 217</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material">
<span class="lineno"> 218</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_drawer.xml">../../src/main/res/layout/fragment_drawer.xml</a>:217</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 214</span> android:minHeight="48dp"
<span class="lineno"> 215</span> android:orientation="vertical"
<span class="lineno"> 216</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 217</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"></span>
<span class="lineno"> 218</span>
<span class="lineno"> 219</span> &lt;TextView
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_folder.xml">../../src/main/res/layout/fragment_folder.xml</a>:96</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 93</span> android:id="@+id/versioningKeep"
<span class="lineno"> 94</span> android:layout_width="wrap_content"
<span class="lineno"> 95</span> android:layout_height="wrap_content"
<span class="lineno"> 96</span> android:layout_marginEnd="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 97</span> android:layout_marginRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 98</span> android:textAppearance="@style/TextAppearance.AppCompat.Caption"
</pre>
<span class="location"><a href="../../src/main/res/layout/fragment_folder.xml">../../src/main/res/layout/fragment_folder.xml</a>:97</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 94</span> android:layout_width="wrap_content"
<span class="lineno"> 95</span> android:layout_height="wrap_content"
<span class="lineno"> 96</span> android:layout_marginEnd="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 97</span> android:layout_marginRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 98</span> android:textAppearance="@style/TextAppearance.AppCompat.Caption"
<span class="lineno"> 99</span> tools:ignore="HardcodedText" />
</pre>
<span class="location"><a href="../../src/main/res/layout/item_device_list.xml">../../src/main/res/layout/item_device_list.xml</a>:7</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 4</span> android:layout_width="match_parent"
<span class="lineno"> 5</span> android:layout_height="wrap_content"
<span class="lineno"> 6</span> android:paddingBottom="8dp"
<span class="lineno"> 7</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 8</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 9</span> android:paddingTop="8dp">
</pre>
<span class="location"><a href="../../src/main/res/layout/item_device_list.xml">../../src/main/res/layout/item_device_list.xml</a>:8</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 5</span> android:layout_height="wrap_content"
<span class="lineno"> 6</span> android:paddingBottom="8dp"
<span class="lineno"> 7</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 8</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 9</span> android:paddingTop="8dp">
<span class="lineno"> 10</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/item_folder_list.xml">../../src/main/res/layout/item_folder_list.xml</a>:7</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 4</span> android:layout_width="match_parent"
<span class="lineno"> 5</span> android:layout_height="wrap_content"
<span class="lineno"> 6</span> android:paddingBottom="8dp"
<span class="lineno"> 7</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 8</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 9</span> android:paddingTop="8dp">
</pre>
<span class="location"><a href="../../src/main/res/layout/item_folder_list.xml">../../src/main/res/layout/item_folder_list.xml</a>:8</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 5</span> android:layout_height="wrap_content"
<span class="lineno"> 6</span> android:paddingBottom="8dp"
<span class="lineno"> 7</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 8</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 9</span> android:paddingTop="8dp">
<span class="lineno"> 10</span>
</pre>
<span class="location"><a href="../../src/main/res/layout/item_folder_picker.xml">../../src/main/res/layout/item_folder_picker.xml</a>:7</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 4</span> android:layout_height="wrap_content"
<span class="lineno"> 5</span> android:textAppearance="@style/TextAppearance.AppCompat.Body1"
<span class="lineno"> 6</span> android:gravity="center_vertical"
<span class="lineno"> 7</span> android:paddingLeft="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 8</span> android:paddingRight="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 9</span> android:minHeight="48dp" />
</pre>
<span class="location"><a href="../../src/main/res/layout/item_folder_picker.xml">../../src/main/res/layout/item_folder_picker.xml</a>:8</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 5</span> android:textAppearance="@style/TextAppearance.AppCompat.Body1"
<span class="lineno"> 6</span> android:gravity="center_vertical"
<span class="lineno"> 7</span> android:paddingLeft="@dimen/abc_action_bar_content_inset_material"
<span class="lineno"> 8</span> android:paddingRight="<span class="errorspan">@dimen/abc_action_bar_content_inset_material"</span>
<span class="lineno"> 9</span> android:minHeight="48dp" />
<span class="lineno"> 10</span>
</pre>
<span class="location"><a href="../../src/main/res/values/styles.xml">../../src/main/res/values/styles.xml</a>:24</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 21</span> &lt;item name="android:drawablePadding">32dp&lt;/item>
<span class="lineno"> 22</span> &lt;item name="android:gravity">start|center_vertical&lt;/item>
<span class="lineno"> 23</span> &lt;item name="android:textAppearance">@style/TextAppearance.AppCompat.Body1&lt;/item>
<span class="lineno"> 24</span> &lt;item name="android:paddingLeft"><span class="errorspan">@dimen/abc_action_bar_content_inset_material&lt;/item></span>
<span class="lineno"> 25</span> &lt;item name="android:paddingRight">@dimen/abc_action_bar_content_inset_material&lt;/item>
<span class="lineno"> 26</span> &lt;/style>
</pre>
<span class="location"><a href="../../src/main/res/values/styles.xml">../../src/main/res/values/styles.xml</a>:25</span>: <span class="message">The resource <code>@dimen/abc_action_bar_content_inset_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 22</span> &lt;item name="android:gravity">start|center_vertical&lt;/item>
<span class="lineno"> 23</span> &lt;item name="android:textAppearance">@style/TextAppearance.AppCompat.Body1&lt;/item>
<span class="lineno"> 24</span> &lt;item name="android:paddingLeft">@dimen/abc_action_bar_content_inset_material&lt;/item>
<span class="lineno"> 25</span> &lt;item name="android:paddingRight"><span class="errorspan">@dimen/abc_action_bar_content_inset_material&lt;/item></span>
<span class="lineno"> 26</span> &lt;/style>
<span class="lineno"> 27</span>
</pre>
<span class="location"><a href="../../src/main/res/values/themes.xml">../../src/main/res/values/themes.xml</a>:21</span>: <span class="message">The resource <code>@dimen/abc_action_bar_default_height_material</code> is marked as private in com.android.support:appcompat-v7</span><br /><pre class="errorlines">
<span class="lineno"> 18</span> &lt;item name="android:listDivider">@drawable/list_divider_inset&lt;/item>
<span class="lineno"> 19</span> &lt;item name="drawerArrowStyle">@style/Widget.Syncthing.DrawerArrowToggle&lt;/item>
<span class="lineno"> 20</span>
<span class="lineno"> 21</span> &lt;item name="android:actionBarSize"><span class="errorspan">@dimen/abc_action_bar_default_height_material&lt;/item></span>
<span class="lineno"> 22</span> &lt;/style>
<span class="lineno"> 23</span>
</pre>
</div>
</div>
<div class="metadata">Priority: 3 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Using private resources.</div>
<div class="explanation">
Private resources should not be referenced; the may not be present everywhere, and even where they are they may disappear without notice.<br/>
<br/>
To fix this, copy the resource into your own project instead.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "PrivateResource" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="Correctness:Messages"></a>
<div class="category"><a href="#" title="Return to top">Correctness:Messages</a><div class="categorySeparator"></div>
</div>
<a name="PluralsCandidate"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">PluralsCandidate: Potential Plurals</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/main/res/values/strings.xml">../../src/main/res/values/strings.xml</a>:69</span>: <span class="message">Formatting %d followed by words ("Files"): This should probably be a plural rather than a string</span><br /><pre class="errorlines">
<span class="lineno"> 66</span> &lt;string name="folder_list_empty">No folders found&lt;/string>
<span class="lineno"> 67</span>
<span class="lineno"> 68</span> &lt;!-- Format string for folder file count -->
<span class="lineno"> 69</span> <span class="errorspan">&lt;string name="files">%1$d / %2$d Files&lt;/string></span>
<span class="lineno"> 70</span>
<span class="lineno"> 71</span> &lt;!-- DevicesFragment -->
</pre>
</div>
<div class="metadata">Priority: 5 / 10<br/>
Category: Correctness:Messages</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Potential Plurals.</div>
<div class="explanation">
This lint check looks for potential errors in internationalization where you have translated a message which involves a quantity and it looks like other parts of the string may need grammatical changes.<br/>
<br/>
For example, rather than something like this:<br/>
&lt;string name="try_again">Try again in %d seconds.&lt;/string><br/>
you should be using a plural:<br/>
&lt;plurals name="try_again"><br/>
&lt;item quantity="one">Try again in %d second&lt;/item><br/>
&lt;item quantity="other">Try again in %d seconds&lt;/item><br/>
&lt;/plurals><br/>
This will ensure that in other languages the right set of translations are provided for the different quantity classes.<br/>
<br/>
(This check depends on some heuristics, so it may not accurately determine whether a string really should be a quantity. You can use tools:ignore to filter out false positives.
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/guide/topics/resources/string-resource.html#Plurals">http://developer.android.com/guide/topics/resources/string-resource.html#Plurals</a>
</div><br/>To suppress this error, use the issue id "PluralsCandidate" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="Performance"></a>
<div class="category"><a href="#" title="Return to top">Performance</a><div class="categorySeparator"></div>
</div>
<a name="Overdraw"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">Overdraw: Overdraw: Painting regions more than once</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/main/res/layout/widget_toolbar.xml">../../src/main/res/layout/widget_toolbar.xml</a>:9</span>: <span class="message">Possible overdraw: Root element paints background <code>?colorPrimary</code> with a theme that also paints a background (inferred theme is <code>@style/Theme.Syncthing</code>)</span><br /><pre class="errorlines">
<span class="lineno"> 6</span> android:layout_width="match_parent"
<span class="lineno"> 7</span> android:layout_height="?android:actionBarSize"
<span class="lineno"> 8</span> android:minHeight="?android:actionBarSize"
<span class="lineno"> 9</span> <span class="errorspan">android:background="?colorPrimary"</span>
<span class="lineno"> 10</span> android:elevation="@dimen/toolbar_elevation"
<span class="lineno"> 11</span> app:titleMarginStart="16dp"
</pre>
</div>
<div class="metadata">Priority: 3 / 10<br/>
Category: Performance</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Overdraw: Painting regions more than once.</div>
<div class="explanation">
If you set a background drawable on a root view, then you should use a custom theme where the theme background is null. Otherwise, the theme background will be painted first, only to have your custom background completely cover it; this is called "overdraw".<br/>
<br/>
NOTE: This detector relies on figuring out which layouts are associated with which activities based on scanning the Java code, and it's currently doing that using an inexact pattern matching algorithm. Therefore, it can incorrectly conclude which activity the layout is associated with and then wrongly complain that a background-theme is hidden.<br/>
<br/>
If you want your custom background on multiple pages, then you should consider making a custom theme with your custom background and just using that theme instead of a root element background.<br/>
<br/>
Of course it's possible that your custom drawable is translucent and you want it to be mixed with the background. However, you will get better performance if you pre-mix the background with your drawable and use that resulting image or color as a custom theme background instead.<br/>
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "Overdraw" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="Usability:Typography"></a>
<div class="category"><a href="#" title="Return to top">Usability:Typography</a><div class="categorySeparator"></div>
</div>
<a name="TypographyEllipsis"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">TypographyEllipsis: Ellipsis string can be replaced with ellipsis character</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/main/res/values-sv-rSE/strings.xml">../../src/main/res/values-sv-rSE/strings.xml</a>:13</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 10</span> &lt;!--Shown in the chooser dialog when sharing a Device ID-->
<span class="lineno"> 11</span> &lt;string name="send_device_id_to">Skicka enhets ID till&lt;/string>
<span class="lineno"> 12</span> &lt;!--Text for FoldersFragment and DevicesFragment loading view-->
<span class="lineno"> 13</span> &lt;string name="api_loading"><span class="errorspan">Laddar...&lt;/string></span>
<span class="lineno"> 14</span> &lt;string name="usage_reporting_dialog_title">Tillåt anonym användningsrapportering?&lt;/string>
<span class="lineno"> 15</span> &lt;string name="usage_reporting_dialog_description">Den krypterade användningsrapporten skickas dagligen. Den används för att spåra vanliga plattformar, katalog storlekar och appversioner. Om uppsättningen av de rapporterade uppgifterna ändras kommer du att bli tillfrågad med den här dialogrutan igen.\n\nDen aggregerade statistiken är offentligt tillgänglig på https://data.syncthing.net.&lt;/string>
</pre>
<span class="location"><a href="../../src/main/res/values-in/strings.xml">../../src/main/res/values-in/strings.xml</a>:18</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 15</span> &lt;!--Shown in the chooser dialog when sharing a Device ID-->
<span class="lineno"> 16</span> &lt;string name="send_device_id_to">Kirim ID Perangkat ke&lt;/string>
<span class="lineno"> 17</span> &lt;!--Text for FoldersFragment and DevicesFragment loading view-->
<span class="lineno"> 18</span> &lt;string name="api_loading"><span class="errorspan">Memuat...&lt;/string></span>
<span class="lineno"> 19</span> &lt;string name="usage_reporting_dialog_title">Perbolehkan Pelaporan Penggunaan Anonim?&lt;/string>
<span class="lineno"> 20</span> &lt;string name="yes">Ya&lt;/string>
</pre>
<span class="location"><a href="../../src/main/res/values-hu/strings.xml">../../src/main/res/values-hu/strings.xml</a>:20</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 17</span> &lt;!--Shown in the chooser dialog when sharing a Device ID-->
<span class="lineno"> 18</span> &lt;string name="send_device_id_to">Eszköz azonosító megosztása&lt;/string>
<span class="lineno"> 19</span> &lt;!--Text for FoldersFragment and DevicesFragment loading view-->
<span class="lineno"> 20</span> &lt;string name="api_loading"><span class="errorspan">Betöltés...&lt;/string></span>
<span class="lineno"> 21</span> &lt;string name="usage_reporting_dialog_title">Engedélyezed a névtelen felhasználási adatok küldését?&lt;/string>
<span class="lineno"> 22</span> &lt;string name="yes">Igen&lt;/string>
</pre>
<span class="location"><a href="../../src/main/res/values-bg/strings.xml">../../src/main/res/values-bg/strings.xml</a>:21</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 18</span> &lt;!--Shown in the chooser dialog when sharing a Device ID-->
<span class="lineno"> 19</span> &lt;string name="send_device_id_to">&#1048;&#1079;&#1087;&#1088;&#1072;&#1097;&#1072;&#1085;&#1077; &#1085;&#1072; &#1080;&#1076;&#1077;&#1085;&#1090;&#1080;&#1092;&#1080;&#1082;&#1072;&#1090;&#1086;&#1088;&#1072; &#1095;&#1088;&#1077;&#1079;&lt;/string>
<span class="lineno"> 20</span> &lt;!--Text for FoldersFragment and DevicesFragment loading view-->
<span class="lineno"> 21</span> &lt;string name="api_loading"><span class="errorspan">&#1047;&#1072;&#1088;&#1077;&#1078;&#1076;&#1072;&#1085;&#1077;...&lt;/string></span>
<span class="lineno"> 22</span> &lt;string name="usage_reporting_dialog_title">&#1056;&#1072;&#1079;&#1088;&#1077;&#1096;&#1080; &#1072;&#1085;&#1086;&#1085;&#1080;&#1084;&#1085;&#1086; &#1076;&#1086;&#1082;&#1083;&#1072;&#1076;&#1074;&#1072;&#1085;&#1077; &#1079;&#1072; &#1091;&#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1072;&#1090;&#1072; &#1085;&#1072; &#1087;&#1088;&#1086;&#1075;&#1088;&#1072;&#1084;&#1072;&#1090;&#1072;?&lt;/string>
<span class="lineno"> 23</span> &lt;string name="usage_reporting_dialog_description">&#1050;&#1088;&#1080;&#1087;&#1090;&#1080;&#1088;&#1072;&#1085;&#1080;&#1103;&#1090; &#1076;&#1086;&#1082;&#1083;&#1072;&#1076; &#1089;&#1077; &#1080;&#1079;&#1087;&#1088;&#1072;&#1097;&#1072; &#1077;&#1078;&#1077;&#1076;&#1085;&#1077;&#1074;&#1085;&#1086;. &#1048;&#1079;&#1087;&#1086;&#1083;&#1079;&#1074;&#1072; &#1089;&#1077;, &#1079;&#1072; &#1086;&#1090;&#1080;&#1095;&#1072;&#1085;&#1077; &#1085;&#1072; &#1087;&#1086;&#1083;&#1079;&#1074;&#1072;&#1085;&#1080;&#1090;&#1077; &#1087;&#1083;&#1072;&#1090;&#1092;&#1086;&#1088;&#1084;&#1080;, &#1088;&#1072;&#1079;&#1084;&#1077;&#1088; &#1085;&#1072; &#1087;&#1072;&#1087;&#1082;&#1080; &#1080; &#1074;&#1077;&#1088;&#1089;&#1080;&#1080; &#1085;&#1072; &#1087;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077;&#1090;&#1086;. &#1040;&#1082;&#1086; &#1089;&#1098;&#1073;&#1080;&#1088;&#1072;&#1085;&#1080;&#1090;&#1077; &#1076;&#1072;&#1085;&#1085;&#1080; &#1089;&#1077; &#1087;&#1088;&#1086;&#1084;&#1077;&#1085;&#1103;&#1090;, &#1097;&#1077; &#1073;&#1098;&#1076;&#1077;&#1090;&#1077; &#1080;&#1085;&#1092;&#1086;&#1088;&#1084;&#1080;&#1088;&#1072;&#1085; &#1089; &#1087;&#1086;&#1076;&#1086;&#1073;&#1077;&#1085; &#1085;&#1072; &#1090;&#1086;&#1079;&#1080; &#1076;&#1080;&#1072;&#1083;&#1086;&#1075;.\n\n&#1054;&#1073;&#1086;&#1073;&#1097;&#1077;&#1085;&#1072;&#1090;&#1072; &#1089;&#1090;&#1072;&#1090;&#1080;&#1089;&#1090;&#1080;&#1082;&#1072; &#1097;&#1077; &#1085;&#1072;&#1084;&#1077;&#1088;&#1080;&#1090;&#1077; &#1085;&#1072; https://data.syncthing.net.&lt;/string>
</pre>
<span class="location"><a href="../../src/main/res/values-fr/strings.xml">../../src/main/res/values-fr/strings.xml</a>:22</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 19</span> &lt;!--Shown in the chooser dialog when sharing a Device ID-->
<span class="lineno"> 20</span> &lt;string name="send_device_id_to">Envoyer ID appareil à&lt;/string>
<span class="lineno"> 21</span> &lt;!--Text for FoldersFragment and DevicesFragment loading view-->
<span class="lineno"> 22</span> &lt;string name="api_loading"><span class="errorspan">Chargement...&lt;/string></span>
<span class="lineno"> 23</span> &lt;string name="usage_reporting_dialog_title">Autoriser l\'envoi anonyme de rapports d\'utilisation ?&lt;/string>
<span class="lineno"> 24</span> &lt;string name="usage_reporting_dialog_description">Le rapport crypté des usages est envoyé tous les jours. Il est utilisé pour recueillir les types de plates-formes, la tailles des partages et les versions d\'applications. Si le type de données envoyées dans les rapports est modifié, vous verrez à nouveau cette boite de dialogue.\n\nL\'agrégation des statistiques est publique, et disponible sur https://data.syncthing.net.&lt;/string>
</pre>
<span class="location"><a href="../../src/main/res/values-cs/strings.xml">../../src/main/res/values-cs/strings.xml</a>:237</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 234</span> &lt;string name="log_android_title">Zobrazit log pro Android&lt;/string>
<span class="lineno"> 235</span> &lt;!--Title of the "log Syncthing" menu button-->
<span class="lineno"> 236</span> &lt;string name="log_syncthing_title">Zobrazit log pro Syncthing&lt;/string>
<span class="lineno"> 237</span> &lt;string name="retrieving_logs"><span class="errorspan">Získávám logy...&lt;/string></span>
<span class="lineno"> 238</span> &lt;!--Title of the "share log" menu button-->
<span class="lineno"> 239</span> &lt;string name="share_title">Sdílet&lt;/string>
</pre>
<span class="location"><a href="../../src/main/res/values-it/strings.xml">../../src/main/res/values-it/strings.xml</a>:238</span>: <span class="message">Replace "..." with ellipsis character (&#8230;, &amp;#8230;) ?</span><br /><pre class="errorlines">
<span class="lineno"> 235</span> &lt;string name="log_android_title">Mostra Registro di Android&lt;/string>
<span class="lineno"> 236</span> &lt;!--Title of the "log Syncthing" menu button-->
<span class="lineno"> 237</span> &lt;string name="log_syncthing_title">Mostra Registro di Syncthing&lt;/string>
<span class="lineno"> 238</span> &lt;string name="retrieving_logs"><span class="errorspan">Recupero log...&lt;/string></span>
<span class="lineno"> 239</span> &lt;!--Title of the "share log" menu button-->
<span class="lineno"> 240</span> &lt;string name="share_title">Condividi&lt;/string>
</pre>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT<br>
Priority: 5 / 10<br/>
Category: Usability:Typography</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Ellipsis string can be replaced with ellipsis character.</div>
<div class="explanation">
You can replace the string "..." with a dedicated ellipsis character, ellipsis character (&#8230;, &amp;#8230;). This can help make the text more readable.
</div>
<br/><div class="moreinfo">More info: <a href="http://en.wikipedia.org/wiki/Ellipsis">http://en.wikipedia.org/wiki/Ellipsis</a>
</div><br/>To suppress this error, use the issue id "TypographyEllipsis" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="Usability:Icons"></a>
<div class="category"><a href="#" title="Return to top">Usability:Icons</a><div class="categorySeparator"></div>
</div>
<a name="IconDensities"></a>
<div class="issue">
<div class="id"><a href="#" title="Return to top">IconDensities: Icon densities validation</a><div class="issueSeparator"></div>
</div>
<div class="warningslist">
<span class="location"><a href="../../src/main/res/drawable-mdpi">../../src/main/res/drawable-mdpi</a></span>: <span class="message">Missing the following drawables in <code>drawable-mdpi</code>: ic_add_folder_24dp_white.png, ic_add_white_24dp_active.png, ic_cellphone_black_24dp_active.png, ic_cellphone_black_24dp_inactive.png, ic_close_black_24dp.png... (17 more)</span><br />
</div>
<div class="metadata">Priority: 4 / 10<br/>
Category: Usability:Icons</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Icon densities validation.</div>
<div class="explanation">
Icons will look best if a custom version is provided for each of the major screen density classes (low, medium, high, extra high). This lint check identifies icons which do not have complete coverage across the densities.<br/>
<br/>
Low density is not really used much anymore, so this check ignores the ldpi density. To force lint to include it, set the environment variable <code>ANDROID_LINT_INCLUDE_LDPI=true</code>. For more information on current density usage, see <a href="http://developer.android.com/resources/dashboard/screens.html">http://developer.android.com/resources/dashboard/screens.html</a>
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/guide/practices/screens_support.html">http://developer.android.com/guide/practices/screens_support.html</a>
</div><br/>To suppress this error, use the issue id "IconDensities" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="MissingIssues"></a>
<div class="category">Disabled Checks<div class="categorySeparator"></div>
</div>
The following issues were not run by lint, either because the check is not enabled by default, or because it was disabled with a command line flag or via one or more lint.xml configuration files in the project directories.
<br/><br/>
<a name="AppLinksAutoVerifyError"></a>
<div class="issue">
<div class="id">AppLinksAutoVerifyError<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 5 / 10<br/>
Category: Correctness</div>
Severity: <span class="error">Error</span><div class="summary">
Explanation: App Links Auto Verification Failure.</div>
<div class="explanation">
Ensures that app links are correctly set and associated with website.
</div>
<br/><div class="moreinfo">More info: <a href="https://g.co/appindexing/applinks">https://g.co/appindexing/applinks</a>
</div><br/>To suppress this error, use the issue id "AppLinksAutoVerifyError" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="AppLinksAutoVerifyWarning"></a>
<div class="issue">
<div class="id">AppLinksAutoVerifyWarning<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 5 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Potential App Links Auto Verification Failure.</div>
<div class="explanation">
Ensures that app links are correctly set and associated with website.
</div>
<br/><div class="moreinfo">More info: <a href="https://g.co/appindexing/applinks">https://g.co/appindexing/applinks</a>
</div><br/>To suppress this error, use the issue id "AppLinksAutoVerifyWarning" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="BackButton"></a>
<div class="issue">
<div class="id">BackButton<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 6 / 10<br/>
Category: Usability</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Back button.</div>
<div class="explanation">
According to the Android Design Guide,<br/>
<br/>
"Other platforms use an explicit back button with label to allow the user to navigate up the application's hierarchy. Instead, Android uses the main action bar's app icon for hierarchical navigation and the navigation bar's back button for temporal navigation."<br/>
This check is not very sophisticated (it just looks for buttons with the label "Back"), so it is disabled by default to not trigger on common scenarios like pairs of Back/Next buttons to paginate through screens.
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/design/patterns/pure-android.html">http://developer.android.com/design/patterns/pure-android.html</a>
</div><br/>To suppress this error, use the issue id "BackButton" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="EasterEgg"></a>
<div class="issue">
<div class="id">EasterEgg<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 6 / 10<br/>
Category: Security</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Code contains easter egg.</div>
<div class="explanation">
An "easter egg" is code deliberately hidden in the code, both from potential users and even from other developers. This lint check looks for code which looks like it may be hidden from sight.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "EasterEgg" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="FieldGetter"></a>
<div class="issue">
<div class="id">FieldGetter<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 4 / 10<br/>
Category: Performance</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Using getter instead of field.</div>
<div class="explanation">
Accessing a field within the class that defines a getter for that field is at least 3 times faster than calling the getter. For simple getters that do nothing other than return the field, you might want to just reference the local field directly instead.<br/>
<br/>
<b>NOTE</b>: As of Android 2.3 (Gingerbread), this optimization is performed automatically by Dalvik, so there is no need to change your code; this is only relevant if you are targeting older versions of Android.
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/guide/practices/design/performance.html#internal_get_set">http://developer.android.com/guide/practices/design/performance.html#internal_get_set</a>
</div><br/>To suppress this error, use the issue id "FieldGetter" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="GoogleAppIndexingApiWarning"></a>
<div class="issue">
<div class="id">GoogleAppIndexingApiWarning<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Disabled By: Default<br/>
Priority: 5 / 10<br/>
Category: Usability</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Missing support for Google App Indexing Api.</div>
<div class="explanation">
Adds URLs to get your app into the Google index, to get installs and traffic to your app from Google Search.
</div>
<br/><div class="moreinfo">More info: <a href="https://g.co/AppIndexing/AndroidStudio">https://g.co/AppIndexing/AndroidStudio</a>
</div><br/>To suppress this error, use the issue id "GoogleAppIndexingApiWarning" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="GoogleAppIndexingWarning"></a>
<div class="issue">
<div class="id">GoogleAppIndexingWarning<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Disabled By: Project lint.xml file<br/>
Priority: 5 / 10<br/>
Category: Usability</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Missing support for Google App Indexing.</div>
<div class="explanation">
Adds URLs to get your app into the Google index, to get installs and traffic to your app from Google Search.
</div>
<br/><div class="moreinfo">More info: <a href="https://g.co/AppIndexing/AndroidStudio">https://g.co/AppIndexing/AndroidStudio</a>
</div><br/>To suppress this error, use the issue id "GoogleAppIndexingWarning" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="GradleOverrides"></a>
<div class="issue">
<div class="id">GradleOverrides<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Project lint.xml file<br/>
Priority: 4 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Value overridden by Gradle build script.</div>
<div class="explanation">
The value of (for example) <code>minSdkVersion</code> is only used if it is not specified in the <code>build.gradle</code> build scripts. When specified in the Gradle build scripts, the manifest value is ignored and can be misleading, so should be removed to avoid ambiguity.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "GradleOverrides" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="IconExpectedSize"></a>
<div class="issue">
<div class="id">IconExpectedSize<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 5 / 10<br/>
Category: Usability:Icons</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Icon has incorrect size.</div>
<div class="explanation">
There are predefined sizes (for each density) for launcher icons. You should follow these conventions to make sure your icons fit in with the overall look of the platform.
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/design/style/iconography.html">http://developer.android.com/design/style/iconography.html</a>
</div><br/>To suppress this error, use the issue id "IconExpectedSize" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="LogConditional"></a>
<div class="issue">
<div class="id">LogConditional<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 5 / 10<br/>
Category: Performance</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Unconditional Logging Calls.</div>
<div class="explanation">
The BuildConfig class (available in Tools 17) provides a constant, "DEBUG", which indicates whether the code is being built in release mode or in debug mode. In release mode, you typically want to strip out all the logging calls. Since the compiler will automatically remove all code which is inside a "if (false)" check, surrounding your logging calls with a check for BuildConfig.DEBUG is a good idea.<br/>
<br/>
If you <b>really</b> intend for the logging to be present in release mode, you can suppress this warning with a @SuppressLint annotation for the intentional logging calls.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "LogConditional" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="MangledCRLF"></a>
<div class="issue">
<div class="id">MangledCRLF<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Eclipse/ADT<br>
Disabled By: Default<br/>
Priority: 2 / 10<br/>
Category: Correctness</div>
Severity: <span class="error">Error</span><div class="summary">
Explanation: Mangled file line endings.</div>
<div class="explanation">
On Windows, line endings are typically recorded as carriage return plus newline: \r\n.<br/>
<br/>
This detector looks for invalid line endings with repeated carriage return characters (without newlines). Previous versions of the ADT plugin could accidentally introduce these into the file, and when editing the file, the editor could produce confusing visual artifacts.
</div>
<br/><div class="moreinfo">More info: <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421">https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421</a>
</div><br/>To suppress this error, use the issue id "MangledCRLF" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="MissingRegistered"></a>
<div class="issue">
<div class="id">MissingRegistered<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 8 / 10<br/>
Category: Correctness</div>
Severity: <span class="error">Error</span><div class="summary">
Explanation: Missing registered class.</div>
<div class="explanation">
If a class is referenced in the manifest or in a layout file, it must also exist in the project (or in one of the libraries included by the project. This check helps uncover typos in registration names, or attempts to rename or move classes without updating the manifest file properly.
</div>
<br/><div class="moreinfo">More info: <a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">http://developer.android.com/guide/topics/manifest/manifest-intro.html</a>
</div><br/>To suppress this error, use the issue id "MissingRegistered" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="MissingTranslation"></a>
<div class="issue">
<div class="id">MissingTranslation<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Eclipse/ADT<br>
Disabled By: Project lint.xml file<br/>
Priority: 8 / 10<br/>
Category: Correctness:Messages</div>
Severity: <span class="error">Fatal</span><div class="summary">
Explanation: Incomplete translation.</div>
<div class="explanation">
If an application has more than one locale, then all the strings declared in one language should also be translated in all other languages.<br/>
<br/>
If the string should <b>not</b> be translated, you can add the attribute <code>translatable="false"</code> on the <code>&lt;string></code> element, or you can define all your non-translatable strings in a resource file called <code>donottranslate.xml</code>. Or, you can ignore the issue with a <code>tools:ignore="MissingTranslation"</code> attribute.<br/>
<br/>
By default this detector allows regions of a language to just provide a subset of the strings and fall back to the standard language strings. You can require all regions to provide a full translation by setting the environment variable <code>ANDROID_LINT_COMPLETE_REGIONS</code>.<br/>
<br/>
You can tell lint (and other tools) which language is the default language in your <code>res/values/</code> folder by specifying <code>tools:locale="languageCode"</code> for the root <code>&lt;resources></code> element in your resource file. (The <code>tools</code> prefix refers to the namespace declaration <code>http://schemas.android.com/tools</code>.)
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "MissingTranslation" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="NegativeMargin"></a>
<div class="issue">
<div class="id">NegativeMargin<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 4 / 10<br/>
Category: Usability</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Negative Margins.</div>
<div class="explanation">
Margin values should be positive. Negative values are generally a sign that you are making assumptions about views surrounding the current one, or may be tempted to turn off child clipping to allow a view to escape its parent. Turning off child clipping to do this not only leads to poor graphical performance, it also results in wrong touch event handling since touch events are based strictly on a chain of parent-rect hit tests. Finally, making assumptions about the size of strings can lead to localization problems.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "NegativeMargin" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="NewerVersionAvailable"></a>
<div class="issue">
<div class="id">NewerVersionAvailable<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Disabled By: Default<br/>
Priority: 4 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Newer Library Versions Available.</div>
<div class="explanation">
This detector checks with a central repository to see if there are newer versions available for the dependencies used by this project. This is similar to the <code>GradleDependency</code> check, which checks for newer versions available in the Android SDK tools and libraries, but this works with any MavenCentral dependency, and connects to the library every time, which makes it more flexible but also <b>much</b> slower.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "NewerVersionAvailable" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="SelectableText"></a>
<div class="issue">
<div class="id">SelectableText<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Disabled By: Default<br/>
Priority: 7 / 10<br/>
Category: Usability</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Dynamic text should probably be selectable.</div>
<div class="explanation">
If a <code>&lt;TextView></code> is used to display data, the user might want to copy that data and paste it elsewhere. To allow this, the <code>&lt;TextView></code> should specify <code>android:textIsSelectable="true"</code>.<br/>
<br/>
This lint check looks for TextViews which are likely to be displaying data: views whose text is set dynamically. This value will be ignored on platforms older than API 11, so it is okay to set it regardless of your <code>minSdkVersion</code>.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "SelectableText" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="StopShip"></a>
<div class="issue">
<div class="id">StopShip<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Disabled By: Default<br/>
Priority: 10 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Code contains <code>STOPSHIP</code> marker.</div>
<div class="explanation">
Using the comment <code>// STOPSHIP</code> can be used to flag code that is incomplete but checked in. This comment marker can be used to indicate that the code should not be shipped until the issue is addressed, and lint will look for these.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "StopShip" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="TypographyQuotes"></a>
<div class="issue">
<div class="id">TypographyQuotes<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ & Eclipse/ADT<br>
Disabled By: Default<br/>
Priority: 5 / 10<br/>
Category: Usability:Typography</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Straight quotes can be replaced with curvy quotes.</div>
<div class="explanation">
Straight single quotes and double quotes, when used as a pair, can be replaced by "curvy quotes" (or directional quotes). This can make the text more readable.<br/>
<br/>
Note that you should never use grave accents and apostrophes to quote, `like this'.<br/>
<br/>
(Also note that you should not use curvy quotes for code fragments.)
</div>
<br/><div class="moreinfo">More info: <a href="http://en.wikipedia.org/wiki/Quotation_mark">http://en.wikipedia.org/wiki/Quotation_mark</a>
</div><br/>To suppress this error, use the issue id "TypographyQuotes" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="UnusedAttribute"></a>
<div class="issue">
<div class="id">UnusedAttribute<div class="issueSeparator"></div>
</div>
<div class="metadata">Note: This issue has an associated quickfix operation in Android Studio/IntelliJ<br>
Disabled By: Project lint.xml file<br/>
Priority: 6 / 10<br/>
Category: Correctness</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Attribute unused on older versions.</div>
<div class="explanation">
This check finds attributes set in XML files that were introduced in a version newer than the oldest version targeted by your application (with the <code>minSdkVersion</code> attribute).<br/>
<br/>
This is not an error; the application will simply ignore the attribute. However, if the attribute is important to the appearance of functionality of your application, you should consider finding an alternative way to achieve the same result with only available attributes, and then you can optionally create a copy of the layout in a layout-vNN folder which will be used on API NN or higher where you can take advantage of the newer attribute.<br/>
<br/>
Note: This check does not only apply to attributes. For example, some tags can be unused too, such as the new <code>&lt;tag></code> element in layouts introduced in API 21.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "UnusedAttribute" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="UnusedIds"></a>
<div class="issue">
<div class="id">UnusedIds<div class="issueSeparator"></div>
</div>
<div class="metadata">Disabled By: Default<br/>
Priority: 1 / 10<br/>
Category: Performance</div>
Severity: <span class="warning">Warning</span><div class="summary">
Explanation: Unused id.</div>
<div class="explanation">
This resource id definition appears not to be needed since it is not referenced from anywhere. Having id definitions, even if unused, is not necessarily a bad idea since they make working on layouts and menus easier, so there is not a strong reason to delete these.
</div>
<br/><div class="moreinfo">More info: </div><br/>To suppress this error, use the issue id "UnusedIds" as explained in the <a href="#SuppressInfo">Suppressing Warnings and Errors</a> section.<br/>
</div>
<a name="SuppressInfo"></a>
<div class="category">Suppressing Warnings and Errors<div class="categorySeparator"></div>
</div>
Lint errors can be suppressed in a variety of ways:<br/>
<br/>
1. With a <code>@SuppressLint</code> annotation in the Java code<br/>
2. With a <code>tools:ignore</code> attribute in the XML file<br/>
3. With ignore flags specified in the <code>build.gradle</code> file, as explained below<br/>
4. With a <code>lint.xml</code> configuration file in the project<br/>
5. With a <code>lint.xml</code> configuration file passed to lint via the --config flag<br/>
6. With the --ignore flag passed to lint.<br/>
<br/>
To suppress a lint warning with an annotation, add a <code>@SuppressLint("id")</code> annotation on the class, method or variable declaration closest to the warning instance you want to disable. The id can be one or more issue id's, such as <code>"UnusedResources"</code> or <code>{"UnusedResources","UnusedIds"}</code>, or it can be <code>"all"</code> to suppress all lint warnings in the given scope.<br/>
<br/>
To suppress a lint warning in an XML file, add a <code>tools:ignore="id"</code> attribute on the element containing the error, or one of its surrounding elements. You also need to define the namespace for the tools prefix on the root element in your document, next to the <code>xmlns:android</code> declaration:<br/>
<code>xmlns:tools="http://schemas.android.com/tools"</code><br/>
<br/>
To suppress a lint warning in a <code>build.gradle</code> file, add a section like this:<br/>
<br/>
android {<br/>
&nbsp;&nbsp;&nbsp;&nbsp;lintOptions {<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disable 'TypographyFractions','TypographyQuotes'<br/>
&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
}<br/>
<br/>
Here we specify a comma separated list of issue id's after the disable command. You can also use <code>warning</code> or <code>error</code> instead of <code>disable</code> to change the severity of issues.<br/>
<br/>
To suppress lint warnings with a configuration XML file, create a file named <code>lint.xml</code> and place it at the root directory of the project in which it applies.<br/>
<br/>
The format of the <code>lint.xml</code> file is something like the following:<br/>
<br/>
&lt;?xml version="1.0" encoding="UTF-8"?><br/>
&lt;lint><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Disable this given check in this project --><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;issue id="IconMissingDensityFolder" severity="ignore" /><br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Ignore the ObsoleteLayoutParam issue in the given files --><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;issue id="ObsoleteLayoutParam"><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ignore path="res/layout/activation.xml" /><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ignore path="res/layout-xlarge/activation.xml" /><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/issue><br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Ignore the UselessLeaf issue in the given file --><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;issue id="UselessLeaf"><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ignore path="res/layout/main.xml" /><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/issue><br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Change the severity of hardcoded strings to "error" --><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;issue id="HardcodedText" severity="error" /><br/>
&lt;/lint><br/>
<br/>
To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as:<br/>
<code>$ lint --ignore UnusedResources,UselessLeaf /my/project/path</code><br/>
<br/>
For more information, see <a href="http://g.co/androidstudio/suppressing-lint-warnings">http://g.co/androidstudio/suppressing-lint-warnings</a><br/>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment