Overview
Lint | |
1 | warning ObsoleteLintCustomCheck: Obsolete custom lint check |
1 | warning IidCompatibilityCheckFailure: Firebase IID Compatibility Check Unable To Run |
Correctness | |
14 | warning InlinedApi: Using inlined constants on older versions |
1 | warning SimpleDateFormat: Implied locale in date format |
2 | warning UnusedAttribute: Attribute unused on older versions |
9 | warning InflateParams: Layout Inflation without a Parent |
232 | warning NonConstantResourceId: Checks use of resource IDs in places requiring constants. |
1 | warning SQLiteString: Using STRING instead of TEXT |
1 | warning
UseSwitchCompatOrMaterialCode: Replace usage of Switch widget |
3 | warning VectorRaster: Vector Image Generation |
1 | warning SourceLockedOrientationActivity: Incompatible setRequestedOrientation value |
Security | |
1 | warning AcceptsUserCertificates: Allowing User Certificates |
4 | warning ExportedService: Exported service does not require permission |
1 | warning InsecureBaseConfiguration: Insecure Base Configuration |
Performance | |
18 | warning StaticFieldLeak: Static Field Leaks |
1 | warning HandlerLeak: Handler reference leaks |
2 | warning
MergeRootFrame: FrameLayout can be replaced with <merge> tag |
2 | warning NestedWeights: Nested layout weights |
5 | warning Overdraw: Overdraw: Painting regions more than once |
1 | warning UsableSpace: Using getUsableSpace() |
Accessibility | |
3 | warning ClickableViewAccessibility: Accessibility in Custom Views |
6 | warning KeyboardInaccessibleWidget: Keyboard inaccessible widget |
Internationalization | |
1 | warning RelativeOverlap: Overlapping items in RelativeLayout |
Disabled Checks (43) |
Obsolete custom lint check
../../../../../root/.gradle/caches/transforms-2/files-2.1/c0ab38c2f5aed4f1186ed0c0289328e5/appcompat-1.2.0/jars/lint.jar:
Applies to variants: qaDebug
Does not apply to variants: genericDebug, genericRelease, gplayDebug, gplayRelease, qaRelease, versionDevDebug, versionDevRelease
Applies to variants: qaDebug
Does not apply to variants: genericDebug, genericRelease, gplayDebug, gplayRelease, qaRelease, versionDevDebug, versionDevRelease
ObsoleteLintCustomCheck
Warning
Priority 10/10
Firebase IID Compatibility Check Unable To Run
IidCompatibilityCheckFailure
Information
Priority 1/10
Using inlined constants on older versions
../../../src/main/java/com/owncloud/android/datamodel/MediaProvider.java:55:
52 // fixed query parameters 53 private static final Uri IMAGES_MEDIA_URI = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 54 private static final String[] FILE_PROJECTION = new String[]{MediaStore.MediaColumns.DATA}; 55 private static final String IMAGES_FILE_SELECTION = MediaStore.Images.Media.BUCKET_ID + "="; 56 private static final String[] IMAGES_FOLDER_PROJECTION = {MediaStore.Images.Media.BUCKET_ID, 57 MediaStore.Images.Media.BUCKET_DISPLAY_NAME}; 58 private static final String IMAGES_FOLDER_SORT_ORDER = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " ASC";../../../src/main/java/com/owncloud/android/datamodel/MediaProvider.java:56:
53 private static final Uri IMAGES_MEDIA_URI = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 54 private static final String[] FILE_PROJECTION = new String[]{MediaStore.MediaColumns.DATA}; 55 private static final String IMAGES_FILE_SELECTION = MediaStore.Images.Media.BUCKET_ID + "="; 56 private static final String[] IMAGES_FOLDER_PROJECTION = {MediaStore.Images.Media.BUCKET_ID, 57 MediaStore.Images.Media.BUCKET_DISPLAY_NAME}; 58 private static final String IMAGES_FOLDER_SORT_ORDER = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " ASC";../../../src/main/java/com/owncloud/android/datamodel/MediaProvider.java:57:
54 private static final String[] FILE_PROJECTION = new String[]{MediaStore.MediaColumns.DATA}; 55 private static final String IMAGES_FILE_SELECTION = MediaStore.Images.Media.BUCKET_ID + "="; 56 private static final String[] IMAGES_FOLDER_PROJECTION = {MediaStore.Images.Media.BUCKET_ID, 57 MediaStore.Images.Media.BUCKET_DISPLAY_NAME}; 58 private static final String IMAGES_FOLDER_SORT_ORDER = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " ASC"; 59 60 private static final String[] VIDEOS_FOLDER_PROJECTION = {MediaStore.Video.Media.BUCKET_ID,../../../src/main/java/com/owncloud/android/datamodel/MediaProvider.java:58:
55 private static final String IMAGES_FILE_SELECTION = MediaStore.Images.Media.BUCKET_ID + "="; 56 private static final String[] IMAGES_FOLDER_PROJECTION = {MediaStore.Images.Media.BUCKET_ID, 57 MediaStore.Images.Media.BUCKET_DISPLAY_NAME}; 58 private static final String IMAGES_FOLDER_SORT_ORDER = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " ASC"; 59 60 private static final String[] VIDEOS_FOLDER_PROJECTION = {MediaStore.Video.Media.BUCKET_ID, 61 MediaStore.Video.Media.BUCKET_DISPLAY_NAME};../../../src/main/java/com/owncloud/android/datamodel/MediaProvider.java:60:
57 MediaStore.Images.Media.BUCKET_DISPLAY_NAME}; 58 private static final String IMAGES_FOLDER_SORT_ORDER = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " ASC"; 59 60 private static final String[] VIDEOS_FOLDER_PROJECTION = {MediaStore.Video.Media.BUCKET_ID, 61 MediaStore.Video.Media.BUCKET_DISPLAY_NAME}; 62 63 private MediaProvider() {+ 9 More Occurrences...
InlinedApi
Correctness
Warning
Priority 6/10
Implied locale in date format
../../../src/main/java/third_parties/ezvcard_android/ContactOperations.java:477:
474 } 475 476 private void convertBirthdays(List<NonEmptyContentValues> contentValues, VCard vcard) { 477 DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 478 for (Birthday birthday : vcard.getBirthdays()) { 479 Date date = birthday.getDate(); 480 if (date == null) {
SimpleDateFormat
Correctness
Warning
Priority 6/10
Attribute unused on older versions
../../../src/main/res/layout/files_picker.xml:63:
60 android:layout_height="wrap_content" 61 android:layout_marginEnd="@dimen/standard_half_margin" 62 android:layout_weight="1" 63 android:stateListAnimator="@null" 64 app:cornerRadius="@dimen/button_corner_radius" 65 android:text="@string/common_cancel" /> 66 </LinearLayout>../../../src/main/res/layout/list_item.xml:26:
23 android:layout_height="@dimen/standard_list_item_size" 24 android:baselineAligned="false" 25 android:descendantFocusability="blocksDescendants" 26 android:foreground="?android:attr/selectableItemBackground" 27 android:orientation="horizontal"> 28 29 <androidx.constraintlayout.widget.ConstraintLayout
UnusedAttribute
Correctness
Warning
Priority 6/10
Layout Inflation without a Parent
../../../src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactsBackupFragment.java:125:
122 if (ThemeUtils.themingEnabled(getContext())) { 123 getContext().getTheme().applyStyle(R.style.FallbackThemingTheme, true); 124 } 125 View view = inflater.inflate(R.layout.contacts_backup_fragment, null); 126 ButterKnife.bind(this, view); 127 128 setHasOptionsMenu(true);../../../src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.java:360:
357 public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 358 Log_OC.d(TAG, "onCreateView"); 359 360 View v = inflater.inflate(R.layout.list_fragment, null); 361 setupEmptyList(v); 362 363 mRecyclerView = v.findViewById(R.id.list_root);../../../src/main/java/com/owncloud/android/media/MediaControlView.java:78:
75 ViewGroup.LayoutParams.MATCH_PARENT 76 ); 77 LayoutInflater inflate = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 78 root = inflate.inflate(R.layout.media_control, null); 79 initControllerView(root); 80 addView(root, frameParams);../../../src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.java:109:
106 @Override 107 protected void onCreate(Bundle savedInstanceState) { 108 super.onCreate(savedInstanceState); 109 final View view = getLayoutInflater().inflate(R.layout.file_list_actions_bottom_sheet_fragment, null); 110 setContentView(view); 111 112 if (getWindow() != null) {../../../src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.java:150:
147 LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 148 149 for (Creator creator : directEditing.getCreators().values()) { 150 View creatorView = vi.inflate(R.layout.file_list_actions_bottom_sheet_creator, null); 151 ((TextView) creatorView.findViewById(R.id.creator_name)).setText( 152 String.format(fileActivity.getString(R.string.editor_placeholder), 153 fileActivity.getString(R.string.create_new),+ 4 More Occurrences...
InflateParams
Correctness
Warning
Priority 5/10
Checks use of resource IDs in places requiring constants.
../../../src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java:70:
67 private static final String TAG = ActivitiesActivity.class.getSimpleName(); 68 private static final int UNDEFINED = -1; 69 70 @BindView(R.id.empty_list_view) 71 public LinearLayout emptyContentContainer; 72 73 @BindView(R.id.swipe_containing_list)../../../src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java:73:
70 @BindView(R.id.empty_list_view) 71 public LinearLayout emptyContentContainer; 72 73 @BindView(R.id.swipe_containing_list) 74 public SwipeRefreshLayout swipeListRefreshLayout; 75 76 @BindView(R.id.empty_list_view_text)../../../src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java:76:
73 @BindView(R.id.swipe_containing_list) 74 public SwipeRefreshLayout swipeListRefreshLayout; 75 76 @BindView(R.id.empty_list_view_text) 77 public TextView emptyContentMessage; 78 79 @BindView(R.id.empty_list_view_headline)../../../src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java:79:
76 @BindView(R.id.empty_list_view_text) 77 public TextView emptyContentMessage; 78 79 @BindView(R.id.empty_list_view_headline) 80 public TextView emptyContentHeadline; 81 82 @BindView(R.id.empty_list_icon)../../../src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java:82:
79 @BindView(R.id.empty_list_view_headline) 80 public TextView emptyContentHeadline; 81 82 @BindView(R.id.empty_list_icon) 83 public ImageView emptyContentIcon; 84 85 @BindView(R.id.empty_list_progress)+ 227 More Occurrences...
NonConstantResourceId
Correctness
Warning
Priority 5/10
Using STRING instead of TEXT
../../../src/main/java/com/owncloud/android/providers/FileContentProvider.java:880:
877 } 878 879 private void createFileSystemTable(SQLiteDatabase db) { 880 db.execSQL("CREATE TABLE IF NOT EXISTS " + ProviderTableMeta.FILESYSTEM_TABLE_NAME + "(" 881 + ProviderTableMeta._ID + " INTEGER PRIMARY KEY, " // id 882 + ProviderTableMeta.FILESYSTEM_FILE_LOCAL_PATH + " TEXT, " 883 + ProviderTableMeta.FILESYSTEM_FILE_IS_FOLDER + " INTEGER, "
SQLiteString
Correctness
Warning
Priority 5/10
Replace usage of Switch widget
../../../src/main/java/com/owncloud/android/ui/ThemeableSwitchPreference.java:74:
71 View child = viewGroup.getChildAt(i); 72 73 if (child instanceof Switch) { 74 Switch switchView = (Switch) child; 75 76 if(thumbColorStateList == null && trackColorStateList == null) { 77 int thumbColor = ThemeUtils.primaryAccentColor(getContext());
UseSwitchCompatOrMaterialCode
Correctness
Warning
Priority 5/10
Vector Image Generation
../../../src/main/res/drawable/ic_circles.xml:1:
1 <vector android:autoMirrored="true" 2 android:height="64dp" 3 android:viewportHeight="57" 4 android:viewportWidth="57"../../../src/main/res/drawable/ic_edit.xml:23:
20 ~ along with this program. If not, see <https://www.gnu.org/licenses/>. 21 --> 22 23 <vector android:autoMirrored="true" 24 android:height="24dp" 25 android:viewportHeight="24" 26 android:viewportWidth="24"../../../src/main/res/drawable/ic_post_add.xml:23:
20 ~ along with this program. If not, see <https://www.gnu.org/licenses/>. 21 --> 22 23 <vector android:autoMirrored="true" 24 android:height="24dp" 25 android:viewportHeight="24" 26 android:viewportWidth="24"
VectorRaster
Correctness
Warning
Priority 5/10
Incompatible setRequestedOrientation value
../../../src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java:310:
307 308 /// load user interface 309 if (webViewLoginMethod) { 310 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 311 setContentView(R.layout.account_setup_webview); 312 mLoginWebView = findViewById(R.id.login_webview); 313 initWebViewLogin(webloginUrl, false);
SourceLockedOrientationActivity
Correctness
Warning
Priority 4/10
Allowing User Certificates
../../../src/main/res/xml/network_security_config.xml:9:
6 <!-- Trust preinstalled CAs --> 7 <certificates src="system"/> 8 <!-- Additionally trust user added CAs --> 9 <certificates src="user"/> 10 </trust-anchors> 11 </base-config> 12 </network-security-config>
AcceptsUserCertificates
Security
Warning
Priority 5/10
Exported service does not require permission
../../../src/gplay/AndroidManifest.xml:65:
Does not apply to variants: genericDebug, genericRelease, qaDebug, qaRelease, versionDevDebug, versionDevRelease
../../../src/main/AndroidManifest.xml:180:
62 tools:replace="android:targetActivity"/> 63 64 65 <service 66 android:name=".services.firebase.NCFirebaseMessagingService"> 67 <intent-filter> 68 <action android:name="com.google.firebase.MESSAGING_EVENT"/>Applies to variants: gplayDebug, gplayRelease
Does not apply to variants: genericDebug, genericRelease, qaDebug, qaRelease, versionDevDebug, versionDevRelease
../../../src/main/AndroidManifest.xml:180:
177 android:label="@string/app_name" 178 android:theme="@style/Theme.ownCloud.Fullscreen" /> 179 180 <service 181 android:name=".authentication.AccountAuthenticatorService" 182 android:exported="true" > 183 <intent-filter android:priority="100" >../../../src/main/AndroidManifest.xml:192:
189 android:resource="@xml/authenticator" /> 190 </service> 191 192 <service 193 android:name=".syncadapter.FileSyncService" 194 android:exported="true" > 195 <intent-filter>../../../src/main/AndroidManifest.xml:398:
395 android:theme="@style/Theme.ownCloud" /> 396 397 398 <service 399 android:name=".services.AccountManagerService" 400 android:enabled="true" 401 android:exported="true" >
ExportedService
Security
Warning
Priority 5/10
Insecure Base Configuration
../../../src/main/res/xml/network_security_config.xml:4:
1 <?xml version="1.0" encoding="utf-8"?> 2 3 <network-security-config> 4 <base-config cleartextTrafficPermitted="true"> 5 <trust-anchors> 6 <!-- Trust preinstalled CAs --> 7 <certificates src="system"/>
InsecureBaseConfiguration
Security
Warning
Priority 5/10
Static Field Leaks
../../../src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java:527:
524 525 } 526 527 private AsyncTask<Void, Void, Boolean> loadContactsTask = new AsyncTask<Void, Void, Boolean>() { 528 529 @Override 530 protected void onPreExecute() {../../../src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactsBackupFragment.java:218:
215 216 private void refreshBackupFolder(final String backupFolderPath, 217 final ContactsPreferenceActivity contactsPreferenceActivity) { 218 AsyncTask<String, Integer, Boolean> task = new AsyncTask<String, Integer, Boolean>() { 219 @Override 220 protected Boolean doInBackground(String... path) { 221 FileDataStorageManager storageManager = new FileDataStorageManager(account,../../../src/main/java/com/owncloud/android/ui/asynctasks/CopyAndUploadContentUrisTask.java:58:
55 */ 56 private WeakReference<OnCopyTmpFilesTaskListener> mListener; 57 58 /** 59 * Reference to application context, used to access app resources. Holding it should not be a problem, 60 * since it needs to exist until the end of the AsyncTask although the caller Activity were finished 61 * before.../../../src/main/java/com/owncloud/android/ui/activity/ErrorsWhileCopyingHandlerActivity.java:209:
206 /** 207 * Asynchronous task performing the move of all the local files to the ownCloud folder. 208 */ 209 private class MoveFilesTask extends AsyncTask<Void, Void, Boolean> { 210 211 /** 212 * Updates the UI before trying the movement../../../src/main/java/com/owncloud/android/ui/asynctasks/FetchRemoteFileTask.java:49:
46 private Account account; 47 private String fileId; 48 private FileDataStorageManager storageManager; 49 private FileDisplayActivity fileDisplayActivity; 50 51 public FetchRemoteFileTask(Account account, 52 String fileId,+ 13 More Occurrences...
StaticFieldLeak
Performance
Warning
Priority 6/10
Handler reference leaks
../../../src/main/java/com/owncloud/android/media/MediaControlView.java:165:
162 } 163 164 165 private Handler handler = new Handler() { 166 @Override 167 public void handleMessage(Message msg) { 168 int pos;
HandlerLeak
Performance
Warning
Priority 4/10
FrameLayout can be replaced with <merge> tag
../../../src/main/res/layout/account_setup_webview.xml:2:
1 <?xml version="1.0" encoding="utf-8"?> 2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent">../../../src/main/res/layout/video_layout.xml:19:
16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 --> 19 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 20 android:layout_width="match_parent" 21 android:layout_height="match_parent" >
MergeRootFrame
Performance
Warning
Priority 4/10
Nested layout weights
../../../src/main/res/layout/first_run_activity.xml:40:
37 android:id="@+id/contentPanel" 38 android:layout_width="match_parent" 39 android:layout_height="0dp" 40 android:layout_weight="1"/> 41 42 <com.owncloud.android.ui.whatsnew.ProgressIndicator 43 android:id="@+id/progressIndicator"../../../src/main/res/layout/whats_new_activity.xml:63:
60 android:layout_width="0dp" 61 android:layout_height="match_parent" 62 android:layout_gravity="center_vertical|center_horizontal" 63 android:layout_weight="1" 64 android:gravity="center" 65 android:paddingLeft="0dp" 66 android:paddingRight="0dp"
NestedWeights
Performance
Warning
Priority 3/10
Overdraw: Painting regions more than once
../../../src/main/res/layout/activity_row.xml:23:
20 android:id="@+id/list_item" 21 android:layout_width="match_parent" 22 android:layout_height="@dimen/activity_row_layout_height" 23 android:background="?android:attr/activatedBackgroundIndicator" 24 android:minWidth="@dimen/activity_row_layout_min_width_independent" 25 android:orientation="horizontal" 26 android:paddingEnd="@dimen/standard_padding"../../../src/main/res/layout/generic_explanation.xml:22:
19 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 20 android:layout_width="match_parent" 21 android:layout_height="match_parent" 22 android:background="@color/bg_default" 23 android:id="@+id/explanation" 24 android:orientation="vertical">../../../src/main/res/layout/info_box.xml:27:
24 android:layout_width="match_parent" 25 android:layout_height="wrap_content" 26 android:layout_gravity="center_horizontal|bottom" 27 android:background="@color/filelist_icon_background" 28 android:gravity="center" 29 android:padding="@dimen/standard_half_padding" 30 android:visibility="gone">../../../src/main/res/layout/toolbar_standard.xml:27:
24 android:id="@+id/appbar" 25 android:layout_width="match_parent" 26 android:layout_height="wrap_content" 27 android:background="@color/bg_default" 28 tools:viewBindingIgnore="true"> 29 30 <FrameLayout../../../src/main/res/layout/user_info_layout.xml:25:
22 xmlns:tools="http://schemas.android.com/tools" 23 android:layout_width="match_parent" 24 android:layout_height="match_parent" 25 android:background="@color/bg_default" 26 android:orientation="vertical"> 27 28 <include layout="@layout/toolbar_standard" />
Overdraw
Performance
Warning
Priority 3/10
Using getUsableSpace()
../../../src/main/java/com/owncloud/android/utils/FileStorageUtils.java:140:
137 */ 138 public static long getUsableSpace() { 139 File savePath = new File(MainApp.getStoragePath()); 140 return savePath.getUsableSpace(); 141 } 142 143 /**
UsableSpace
Performance
Warning
Priority 3/10
Accessibility in Custom Views
../../../src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.java:374:
371 372 mScaleGestureDetector = new ScaleGestureDetector(MainApp.getAppContext(), new ScaleListener()); 373 374 getRecyclerView().setOnTouchListener((view, motionEvent) -> { 375 mScaleGestureDetector.onTouchEvent(motionEvent); 376 377 if (motionEvent.getAction() == MotionEvent.ACTION_UP) {../../../src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java:196:
193 mPreviewContainer = view.findViewById(R.id.file_preview_container); 194 mImagePreview = view.findViewById(R.id.image_preview); 195 mVideoPreview = view.findViewById(R.id.video_preview); 196 mVideoPreview.setOnTouchListener(this); 197 198 mMediaController = view.findViewById(R.id.media_controller);../../../src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java:622:
619 } 620 621 @Override 622 public boolean onTouch(View v, MotionEvent event) { 623 if (event.getAction() == MotionEvent.ACTION_DOWN && v.equals(mVideoPreview)) { 624 // added a margin on the left to avoid interfering with gesture to open navigation drawer 625 if (event.getX() / Resources.getSystem().getDisplayMetrics().density > MIN_DENSITY_RATIO) {
ClickableViewAccessibility
Accessibility
Warning
Priority 6/10
Keyboard inaccessible widget
../../../src/main/res/layout/activity_list_layout.xml:25:
22 android:id="@+id/drawer_layout" 23 android:layout_width="match_parent" 24 android:layout_height="match_parent" 25 android:clickable="true" 26 android:fitsSystemWindows="true"> 27 28 <androidx.coordinatorlayout.widget.CoordinatorLayout../../../src/main/res/layout/community_layout.xml:26:
23 xmlns:app="http://schemas.android.com/apk/res-auto" 24 android:layout_width="match_parent" 25 android:layout_height="match_parent" 26 android:clickable="true" 27 android:fitsSystemWindows="true"> 28 29 <!-- The main content view -->../../../src/main/res/layout/contacts_preference.xml:25:
22 android:id="@+id/drawer_layout" 23 android:layout_width="match_parent" 24 android:layout_height="match_parent" 25 android:clickable="true" 26 android:fitsSystemWindows="true"> 27 28 <!-- The main content view -->../../../src/main/res/layout/files.xml:24:
21 android:id="@+id/drawer_layout" 22 android:layout_width="match_parent" 23 android:layout_height="match_parent" 24 android:clickable="true" 25 android:fitsSystemWindows="true"> 26 27 <androidx.coordinatorlayout.widget.CoordinatorLayout../../../src/main/res/layout/notifications_layout.xml:27:
24 android:id="@+id/drawer_layout" 25 android:layout_width="match_parent" 26 android:layout_height="match_parent" 27 android:clickable="true" 28 android:fitsSystemWindows="true"> 29 30 <androidx.coordinatorlayout.widget.CoordinatorLayout../../../src/main/res/layout/preview_image_activity.xml:24:
21 android:id="@+id/drawer_layout" 22 android:layout_width="match_parent" 23 android:layout_height="match_parent" 24 android:clickable="true" > 25 26 <com.owncloud.android.ui.components.CustomViewPager 27 android:id="@+id/fragmentPager"
KeyboardInaccessibleWidget
Accessibility
Warning
Priority 3/10
Overlapping items in RelativeLayout
../../../src/main/res/layout/synced_folders_settings_layout.xml:382:
379 android:layout_alignParentStart="true" 380 android:text="@string/common_delete" /> 381 382 <LinearLayout 383 android:layout_width="wrap_content" 384 android:layout_height="wrap_content" 385 android:layout_alignParentEnd="true">
RelativeOverlap
Internationalization
Warning
Priority 3/10
Disabled Checks
One or more 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.
Suppressing Warnings and Errors
Lint errors can be suppressed in a variety of ways:
1. With a
2. With a
3. With a //noinspection comment in the source code
4. With ignore flags specified in the
5. With a
6. With a
7. With the --ignore flag passed to lint.
To suppress a lint warning with an annotation, add a
To suppress a lint warning with a comment, add a
To suppress a lint warning in an XML file, add a
To suppress a lint warning in a
Here we specify a comma separated list of issue id's after the disable command. You can also use
To suppress lint warnings with a configuration XML file, create a file named
The format of the
To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as:
For more information, see https://developer.android.com/studio/write/lint.html#config
1. With a
@SuppressLint
annotation in the Java code2. With a
tools:ignore
attribute in the XML file3. With a //noinspection comment in the source code
4. With ignore flags specified in the
build.gradle
file, as explained below5. With a
lint.xml
configuration file in the project6. With a
lint.xml
configuration file passed to lint via the --config flag7. With the --ignore flag passed to lint.
To suppress a lint warning with an annotation, add a
@SuppressLint("id")
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 "UnusedResources"
or {"UnusedResources","UnusedIds"}
, or it can be "all"
to suppress all lint warnings in the given scope.To suppress a lint warning with a comment, add a
//noinspection id
comment on the line before the statement with the error.To suppress a lint warning in an XML file, add a
tools:ignore="id"
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 xmlns:android
declaration:xmlns:tools="http://schemas.android.com/tools"
To suppress a lint warning in a
build.gradle
file, add a section like this:android { lintOptions { disable 'TypographyFractions','TypographyQuotes' } }
Here we specify a comma separated list of issue id's after the disable command. You can also use
warning
or error
instead of disable
to change the severity of issues.To suppress lint warnings with a configuration XML file, create a file named
lint.xml
and place it at the root directory of the module in which it applies.The format of the
lint.xml
file is something like the following:<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- Ignore everything in the test source set --> <issue id="all"> <ignore path="\*/test/\*" /> </issue> <!-- Disable this given check in this project --> <issue id="IconMissingDensityFolder" severity="ignore" /> <!-- Ignore the ObsoleteLayoutParam issue in the given files --> <issue id="ObsoleteLayoutParam"> <ignore path="res/layout/activation.xml" /> <ignore path="res/layout-xlarge/activation.xml" /> <ignore regexp="(foo|bar)\.java" /> </issue> <!-- Ignore the UselessLeaf issue in the given file --> <issue id="UselessLeaf"> <ignore path="res/layout/main.xml" /> </issue> <!-- Change the severity of hardcoded strings to "error" --> <issue id="HardcodedText" severity="error" /> </lint>
To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as:
$ lint --ignore UnusedResources,UselessLeaf /my/project/path
For more information, see https://developer.android.com/studio/write/lint.html#config