mirror of https://github.com/tuskyapp/Tusky.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
706 lines
31 KiB
706 lines
31 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<issues format="6" by="lint 8.8.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.8.2)" variant="all" version="8.8.2"> |
|
|
|
<issue |
|
id="GestureBackNavigation" |
|
message="If intercepting back events, this should be handled through the registration of callbacks on the window level; Please see https://developer.android.com/about/versions/13/features/predictive-back-gesture" |
|
errorLine1=" if (keyCode == KeyEvent.KEYCODE_BACK) {" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt" |
|
line="1281" |
|
column="28"/> |
|
</issue> |
|
|
|
<issue |
|
id="DefaultLocale" |
|
message="Implicitly using the default locale is a common source of bugs: Use `toUpperCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`." |
|
errorLine1=" sb.append(language.toUpperCase());" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/StatusDetailedViewHolder.java" |
|
line="102" |
|
column="32"/> |
|
</issue> |
|
|
|
<issue |
|
id="InvalidPackage" |
|
message="Invalid package reference in org.bouncycastle:bcprov-jdk15on; not included in Android: `javax.naming.directory`. Referenced from `org.bouncycastle.jce.provider.CrlCache`."> |
|
<location |
|
file="$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.70/4636a0d01f74acaf28082fb62b317f1080118371/bcprov-jdk15on-1.70.jar"/> |
|
</issue> |
|
|
|
<issue |
|
id="InvalidPackage" |
|
message="Invalid package reference in org.bouncycastle:bcprov-jdk15on; not included in Android: `javax.naming`. Referenced from `org.bouncycastle.jce.provider.X509LDAPCertStoreSpi`."> |
|
<location |
|
file="$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.70/4636a0d01f74acaf28082fb62b317f1080118371/bcprov-jdk15on-1.70.jar"/> |
|
</issue> |
|
|
|
<issue |
|
id="InvalidPackage" |
|
message="Invalid package reference in org.pageseeder.diffx:pso-diffx; not included in Android: `javax.xml.stream.events`. Referenced from `org.pageseeder.diffx.load.XMLEventLoader`."> |
|
<location |
|
file="$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.pageseeder.diffx/pso-diffx/1.1.1/b655ebc87588a857a4f3d88cf98bcefa87a6105b/pso-diffx-1.1.1.jar"/> |
|
</issue> |
|
|
|
<issue |
|
id="InvalidPackage" |
|
message="Invalid package reference in org.pageseeder.diffx:pso-diffx; not included in Android: `javax.xml.stream`. Referenced from `org.pageseeder.diffx.format.StrictXMLDiffOutput`."> |
|
<location |
|
file="$GRADLE_USER_HOME/caches/modules-2/files-2.1/org.pageseeder.diffx/pso-diffx/1.1.1/b655ebc87588a857a4f3d88cf98bcefa87a6105b/pso-diffx-1.1.1.jar"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="Overriding `@layout/exo_player_control_view` which is marked as private in androidx.media3:media3-ui:1.5.1. If deliberate, use tools:override="true", otherwise pick a different name."> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@color/exo_bottom_bar_background` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:background="@color/exo_bottom_bar_background"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="39" |
|
column="29"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_controls_padding` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:padding="@dimen/exo_styled_controls_padding"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="41" |
|
column="26"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@layout/exo_player_control_rewind_button` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" <include layout="@layout/exo_player_control_rewind_button" />" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="48" |
|
column="26"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@layout/exo_player_control_ffwd_button` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" <include layout="@layout/exo_player_control_ffwd_button" />" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="54" |
|
column="26"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_bottom_bar_height` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:layout_height="@dimen/exo_styled_bottom_bar_height"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="63" |
|
column="32"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_bottom_bar_margin_top` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:layout_marginTop="@dimen/exo_styled_bottom_bar_margin_top"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="64" |
|
column="35"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@color/exo_bottom_bar_background` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:background="@color/exo_bottom_bar_background"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="66" |
|
column="29"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_bottom_bar_time_padding` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:paddingStart="@dimen/exo_styled_bottom_bar_time_padding"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="72" |
|
column="35"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_bottom_bar_time_padding` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:paddingEnd="@dimen/exo_styled_bottom_bar_time_padding"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="73" |
|
column="33"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_bottom_bar_time_padding` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:paddingLeft="@dimen/exo_styled_bottom_bar_time_padding"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="74" |
|
column="34"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_bottom_bar_time_padding` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:paddingRight="@dimen/exo_styled_bottom_bar_time_padding"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="75" |
|
column="35"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_progress_layout_height` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:layout_height="@dimen/exo_styled_progress_layout_height"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="141" |
|
column="32"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_progress_margin_bottom` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:layout_marginBottom="@dimen/exo_styled_progress_margin_bottom"/>" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="143" |
|
column="38"/> |
|
</issue> |
|
|
|
<issue |
|
id="PrivateResource" |
|
message="The resource `@dimen/exo_styled_minimal_controls_margin_bottom` is marked as private in androidx.media3:media3-ui:1.5.1" |
|
errorLine1=" android:layout_marginBottom="@dimen/exo_styled_minimal_controls_margin_bottom"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="149" |
|
column="38"/> |
|
</issue> |
|
|
|
<issue |
|
id="PluralsCandidate" |
|
message="Formatting %d followed by words ("posts"): This should probably be a plural rather than a string" |
|
errorLine1=" <string name="notification_summary_report_format">%1$s · %2$d posts attached</string>" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/values/strings.xml" |
|
line="113" |
|
column="5"/> |
|
</issue> |
|
|
|
<issue |
|
id="PluralsCandidate" |
|
message="Formatting %d followed by words ("and"): This should probably be a plural rather than a string" |
|
errorLine1=" <string name="pref_title_http_proxy_port_message">Port should be between %1$d and %2$d</string>" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/values/strings.xml" |
|
line="326" |
|
column="5"/> |
|
</issue> |
|
|
|
<issue |
|
id="PluralsCandidate" |
|
message="Formatting %d followed by words ("others"): This should probably be a plural rather than a string" |
|
errorLine1=" <string name="notification_summary_large">%1$s, %2$s, %3$s and %4$d others</string>" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/values/strings.xml" |
|
line="397" |
|
column="5"/> |
|
</issue> |
|
|
|
<issue |
|
id="PluralsCandidate" |
|
message="Formatting %d followed by words ("more"): This should probably be a plural rather than a string" |
|
errorLine1=" <string name="conversation_more_recipients">%1$s, %2$s and %3$d more</string>" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/values/strings.xml" |
|
line="578" |
|
column="5"/> |
|
</issue> |
|
|
|
<issue |
|
id="PluralsCandidate" |
|
message="Formatting %d followed by words ("people"): This should probably be a plural rather than a string" |
|
errorLine1=" <string name="accessibility_talking_about_tag">%1$d people are talking about hashtag %2$s</string>" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/values/strings.xml" |
|
line="795" |
|
column="5"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `ber (Berber languages)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `el (Greek)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `fi (Finnish)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `fy (Western Frisian)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `in (Indonesian)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `lv (Latvian)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `ml (Malayalam)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `si (Sinhala)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnusedTranslation" |
|
message="The language `sk (Slovak)` is present in this project, but not declared in the `localeConfig` resource" |
|
errorLine1=" android:localeConfig="@xml/locales_config"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="21" |
|
column="31"/> |
|
</issue> |
|
|
|
<issue |
|
id="DataExtractionRules" |
|
message="The attribute `android:allowBackup` is deprecated from Android 12 and higher and may be removed in future versions. Consider adding the attribute `android:dataExtractionRules` specifying an `@xml` resource which configures cloud backups and device transfers on Android 12 and higher." |
|
errorLine1=" android:allowBackup="false"" |
|
errorLine2=" ~~~~~"> |
|
<location |
|
file="src/main/AndroidManifest.xml" |
|
line="15" |
|
column="30"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" accountFieldAdapter.notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/components/account/AccountActivity.kt" |
|
line="484" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/AccountAdapter.kt" |
|
line="78" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/AccountFieldEditAdapter.kt" |
|
line="45" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/AccountFieldEditAdapter.kt" |
|
line="51" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/components/announcements/AnnouncementAdapter.kt" |
|
line="175" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/components/accountlist/adapter/MutesAdapter.kt" |
|
line="118" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/PollAdapter.kt" |
|
line="62" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/PreviewPollOptionsAdapter.kt" |
|
line="34" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt" |
|
line="54" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="NotifyDataSetChanged" |
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort." |
|
errorLine1=" notifyDataSetChanged()" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt" |
|
line="161" |
|
column="13"/> |
|
</issue> |
|
|
|
<issue |
|
id="ConvertToWebp" |
|
message="One or more images in this project can be converted to the WebP format which typically results in smaller file sizes, even for lossless conversion"> |
|
<location |
|
file="src/blue/res/mipmap-xxxhdpi/ic_launcher.png"/> |
|
</issue> |
|
|
|
<issue |
|
id="NegativeMargin" |
|
message="Margin values should not be negative" |
|
errorLine1=" android:layout_marginStart="-14dp"" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/item_conversation.xml" |
|
line="252" |
|
column="9"/> |
|
</issue> |
|
|
|
<issue |
|
id="ReportShortcutUsage" |
|
message="Calling this method indicates use of dynamic shortcuts, but there are no calls to methods that track shortcut usage, such as `pushDynamicShortcut` or `reportShortcutUsed`. Calling these methods is recommended, as they track shortcut usage and allow launchers to adjust which shortcuts appear based on activation history. Please see https://developer.android.com/develop/ui/views/launch/shortcuts/managing-shortcuts#track-usage" |
|
errorLine1=" ShortcutManagerCompat.setDynamicShortcuts(context, shortcuts)" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/util/ShareShortcutHelper.kt" |
|
line="101" |
|
column="13"/> |
|
</issue> |
|
|
|
<issue |
|
id="ClickableViewAccessibility" |
|
message="Custom view ``ImageView`` has `setOnTouchListener` called on it but does not override `performClick`" |
|
errorLine1=" binding.imageView.setOnTouchListener { _, event ->" |
|
errorLine2=" ^"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt" |
|
line="95" |
|
column="13"/> |
|
</issue> |
|
|
|
<issue |
|
id="ClickableViewAccessibility" |
|
message="`onTouch` lambda should call `View#performClick` when a click is detected" |
|
errorLine1=" binding.imageView.setOnTouchListener { _, event ->" |
|
errorLine2=" ^"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/TabAdapter.kt" |
|
line="95" |
|
column="50"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_prev"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="45" |
|
column="10"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_play_pause"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="51" |
|
column="10"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_next"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="56" |
|
column="10"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_vr"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="96" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_shuffle"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="99" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_repeat_toggle"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="102" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_subtitle"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="105" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_settings"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="108" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_fullscreen"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="111" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_overflow_show"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="114" |
|
column="14"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_overflow_hide"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="130" |
|
column="18"/> |
|
</issue> |
|
|
|
<issue |
|
id="ContentDescription" |
|
message="Missing `contentDescription` attribute on image" |
|
errorLine1=" <ImageButton android:id="@id/exo_minimal_fullscreen"" |
|
errorLine2=" ~~~~~~~~~~~"> |
|
<location |
|
file="src/main/res/layout/exo_player_control_view.xml" |
|
line="154" |
|
column="10"/> |
|
</issue> |
|
|
|
<issue |
|
id="SetTextI18n" |
|
message="Do not concatenate text displayed with `setText`. Use resource string with placeholders." |
|
errorLine1=" cardMetadata.setText(providerName + metadataJoiner + TimestampUtils.getRelativeTimeSpanString(context, card.getPublishedAt().getTime(), System.currentTimeMillis()));" |
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java" |
|
line="1188" |
|
column="42"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnknownNullness" |
|
message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations" |
|
errorLine1=" protected TextView getStatusInfo() {" |
|
errorLine2=" ~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/adapter/StatusViewHolder.java" |
|
line="149" |
|
column="15"/> |
|
</issue> |
|
|
|
<issue |
|
id="UnknownNullness" |
|
message="Should explicitly declare type here since implicit type does not specify nullness" |
|
errorLine1="val hashtagPattern = Pattern.compile(HASHTAG_EXPRESSION, Pattern.CASE_INSENSITIVE or Pattern.MULTILINE)" |
|
errorLine2=" ~~~~~~~~~~~~~~"> |
|
<location |
|
file="src/main/java/com/keylesspalace/tusky/util/StringUtils.kt" |
|
line="12" |
|
column="5"/> |
|
</issue> |
|
|
|
</issues>
|
|
|