/Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/medication/MedicationDialog.java:351: Warning: Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead. For strings meant to be internal use Locale.ROOT, otherwise Locale.getDefault(). [DefaultLocale] String lowerQuery = query.toLowerCase(); ~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/medication/MedicationDialog.java:353: Warning: Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead. For strings meant to be internal use Locale.ROOT, otherwise Locale.getDefault(). [DefaultLocale] if (p.nome != null && p.nome.toLowerCase().contains(lowerQuery)) { ~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleAppointmentFragment.java:82: Warning: Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead. For strings meant to be internal use Locale.ROOT, otherwise Locale.getDefault(). [DefaultLocale] String lowerReason = reason.toLowerCase(); ~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleViewModel.java:80: Warning: Implicitly using the default locale is a common source of bugs: Use String.format(Locale, ...) instead [DefaultLocale] String date = String.format("%02d/%02d/%04d", dayOfMonth, month + 1, year); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleViewModel.java:187: Warning: Implicitly using the default locale is a common source of bugs: Use String.format(Locale, ...) instead [DefaultLocale] String todayStr = String.format("%02d/%02d/%04d", ^ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleViewModel.java:201: Warning: Implicitly using the default locale is a common source of bugs: Use String.format(Locale, ...) instead [DefaultLocale] addSlot(slots, String.format("%02d:00", hour), bookedTimes); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleViewModel.java:205: Warning: Implicitly using the default locale is a common source of bugs: Use String.format(Locale, ...) instead [DefaultLocale] addSlot(slots, String.format("%02d:30", hour), bookedTimes); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "DefaultLocale": Calling String#toLowerCase() or #toUpperCase() without specifying an explicit locale is a common source of bugs. The reason for that is that those methods will use the current locale on the user's device, and even though the code appears to work correctly when you are developing the app, it will fail in some locales. For example, in the Turkish locale, the uppercase replacement for i is not I. If you want the methods to just perform ASCII replacement, for example to convert an enum name, call String#toUpperCase(Locale.ROOT) instead. If you really want to use the current locale, call String#toUpperCase(Locale.getDefault()) instead. https://developer.android.com/reference/java/util/Locale.html#default_locale /Users/230405/Desktop/papcuida/app/build.gradle:13: Warning: Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details. [OldTargetApi] targetSdk 35 ~~~~~~~~~~~~ Explanation for issues of type "OldTargetApi": When your application or sdk runs on a version of Android that is more recent than your targetSdk specifies that it has been tested with, various compatibility modes kick in. This ensures that your application continues to work, but it may look out of place. For example, if the targetSdk is less than 14, your app may get an option button in the UI. To fix this issue, set the targetSdk to the highest available value. Then test your app to make sure everything works correctly. You may want to consult the compatibility notes to see what changes apply to each version you are adding support for: https://developer.android.com/reference/android/os/Build.VERSION_CODES.html as well as follow this guide: https://developer.android.com/distribute/best-practices/develop/target-sdk. html https://developer.android.com/distribute/best-practices/develop/target-sdk.html /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_main.xml:9: Warning: Replace the tag with FragmentContainerView. [FragmentTagUsage from androidx.fragment] tag as the preferred way of adding fragments via XML. Unlike the tag, FragmentContainerView uses a normal FragmentTransaction under the hood to add the initial fragment, allowing further FragmentTransaction operations on the FragmentContainerView and providing a consistent timing for lifecycle events. https://developer.android.com/reference/androidx/fragment/app/FragmentContainerView.html Vendor: Android Open Source Project Identifier: androidx.fragment Feedback: https://issuetracker.google.com/issues/new?component=460964 /Users/230405/Desktop/papcuida/app/src/main/AndroidManifest.xml:53: Warning: Consider splitting data tag into multiple tags with individual attributes to avoid confusion [IntentFilterUniqueDataAttributes] tags should only declare a single unique attribute (i.e. scheme OR host, but not both). This better matches the runtime behavior of intent filters, as they combine all of the declared data attributes into a single matcher which is allowed to handle any combination across attribute types. For example, the following two declarations are the same: They both handle all of the following: * http://example.com * https://example.com * http://example.org * https://example.org The second one better communicates the combining behavior and is clearer to an external reader that one should not rely on the scheme/host being self contained. It is not obvious in the first that http://example.org is also matched, which can lead to confusion (or incorrect behavior) with a more complex set of schemes/hosts. Note that this does not apply to host + port, as those must be declared in the same tag and are only associated with each other. https://developer.android.com/guide/components/intents-filters /Users/230405/Desktop/papcuida/app/build.gradle:8: Warning: A newer version of compileSdk than 35 is available: 37 [GradleDependency] compileSdk 35 ~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:39: Warning: A newer version of androidx.appcompat:appcompat than 1.6.1 is available: 1.7.1 [GradleDependency] implementation 'androidx.appcompat:appcompat:1.6.1' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:41: Warning: A newer version of com.google.android.material:material than 1.11.0 is available: 1.13.0 [GradleDependency] implementation 'com.google.android.material:material:1.11.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:42: Warning: A newer version of androidx.constraintlayout:constraintlayout than 2.1.4 is available: 2.2.1 [GradleDependency] implementation 'androidx.constraintlayout:constraintlayout:2.1.4' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:43: Warning: A newer version of androidx.lifecycle:lifecycle-livedata-ktx than 2.7.0 is available: 2.10.0 [GradleDependency] implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:44: Warning: A newer version of androidx.lifecycle:lifecycle-viewmodel-ktx than 2.7.0 is available: 2.10.0 [GradleDependency] implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:45: Warning: A newer version of androidx.navigation:navigation-fragment than 2.7.7 is available: 2.9.7 [GradleDependency] implementation 'androidx.navigation:navigation-fragment:2.7.7' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:46: Warning: A newer version of androidx.navigation:navigation-ui than 2.7.7 is available: 2.9.7 [GradleDependency] implementation 'androidx.navigation:navigation-ui:2.7.7' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:50: Warning: A newer version of androidx.credentials:credentials than 1.5.0 is available: 1.6.0 [GradleDependency] implementation 'androidx.credentials:credentials:1.5.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:51: Warning: A newer version of androidx.credentials:credentials-play-services-auth than 1.5.0 is available: 1.6.0 [GradleDependency] implementation 'androidx.credentials:credentials-play-services-auth:1.5.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:53: Warning: A newer version of com.google.android.libraries.identity.googleid:googleid than 1.1.1 is available: 1.2.0 [GradleDependency] implementation 'com.google.android.libraries.identity.googleid:googleid:1.1.1' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:57: Warning: A newer version of androidx.test.ext:junit than 1.1.5 is available: 1.3.0 [GradleDependency] androidTestImplementation 'androidx.test.ext:junit:1.1.5' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:58: Warning: A newer version of androidx.test.espresso:espresso-core than 3.5.1 is available: 3.7.0 [GradleDependency] androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:61: Warning: A newer version of com.google.android.gms:play-services-location than 21.0.1 is available: 21.3.0 [GradleDependency] implementation 'com.google.android.gms:play-services-location:21.0.1' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:69: Warning: A newer version of com.google.firebase:firebase-bom than 32.7.2 is available: 34.12.0 [GradleDependency] implementation platform('com.google.firebase:firebase-bom:32.7.2') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "GradleDependency": This detector looks for usages of libraries where the version you are using is not the current stable release. Using older versions is fine, and there are cases where you deliberately want to stick with an older version. However, you may simply not be aware that a more recent version is available, and that is what this lint check helps find. /Users/230405/Desktop/papcuida/app/build.gradle:64: Warning: A newer version of com.squareup.retrofit2:retrofit than 2.9.0 is available: 3.0.0 [NewerVersionAvailable] implementation 'com.squareup.retrofit2:retrofit:2.9.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:65: Warning: A newer version of com.squareup.retrofit2:converter-gson than 2.9.0 is available: 3.0.0 [NewerVersionAvailable] implementation 'com.squareup.retrofit2:converter-gson:2.9.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/build.gradle:66: Warning: A newer version of com.squareup.okhttp3:okhttp than 4.10.0 is available: 5.3.2 [NewerVersionAvailable] implementation 'com.squareup.okhttp3:okhttp:4.10.0' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "NewerVersionAvailable": 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 GradleDependency 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 much slower. /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleAppointmentFragment.java:140: Warning: Use of this function is discouraged because resource reflection makes it harder to perform build optimizations and compile-time verification of code. It is much more efficient to retrieve resources by identifier (e.g. R.foo.bar) than by name (e.g. getIdentifier("bar", "foo", null)). [DiscouragedApi] int yearSpinnerId = android.content.res.Resources.getSystem().getIdentifier("year", "id", "android"); ~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleAppointmentFragment.java:149: Warning: Use of this function is discouraged because resource reflection makes it harder to perform build optimizations and compile-time verification of code. It is much more efficient to retrieve resources by identifier (e.g. R.foo.bar) than by name (e.g. getIdentifier("bar", "foo", null)). [DiscouragedApi] int daySpinnerId = android.content.res.Resources.getSystem().getIdentifier("day", "id", "android"); ~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/ScheduleAppointmentFragment.java:150: Warning: Use of this function is discouraged because resource reflection makes it harder to perform build optimizations and compile-time verification of code. It is much more efficient to retrieve resources by identifier (e.g. R.foo.bar) than by name (e.g. getIdentifier("bar", "foo", null)). [DiscouragedApi] int monthSpinnerId = android.content.res.Resources.getSystem().getIdentifier("month", "id", "android"); ~~~~~~~~~~~~~ Explanation for issues of type "DiscouragedApi": Discouraged APIs are allowed and are not deprecated, but they may be unfit for common use (e.g. due to slow performance or subtle behavior). /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/appointments/AppointmentAdapter.java:20: Warning: It will always be more efficient to use more specific change events if you can. Rely on notifyDataSetChanged as a last resort. [NotifyDataSetChanged] notifyDataSetChanged(); ~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/medication/MedicationAdapter.java:32: Warning: It will always be more efficient to use more specific change events if you can. Rely on notifyDataSetChanged as a last resort. [NotifyDataSetChanged] notifyDataSetChanged(); ~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/medication/MedicationDialog.java:347: Warning: It will always be more efficient to use more specific change events if you can. Rely on notifyDataSetChanged as a last resort. [NotifyDataSetChanged] recyclerAdapter.notifyDataSetChanged(); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/medication/MedicationDialog.java:358: Warning: It will always be more efficient to use more specific change events if you can. Rely on notifyDataSetChanged as a last resort. [NotifyDataSetChanged] recyclerAdapter.notifyDataSetChanged(); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/ui/schedule/TimeSlotAdapter.java:28: Warning: It will always be more efficient to use more specific change events if you can. Rely on notifyDataSetChanged as a last resort. [NotifyDataSetChanged] notifyDataSetChanged(); ~~~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "NotifyDataSetChanged": The RecyclerView adapter's onNotifyDataSetChanged method does not specify what about the data set has changed, forcing any observers to assume that all existing items and structure may no longer be valid. `LayoutManager`s will be forced to fully rebind and relayout all visible views. /Users/230405/Desktop/papcuida/app/src/main/java/com/example/cuida/utils/AlarmScheduler.java:36: Warning: Unnecessary; Build.VERSION.SDK_INT >= Build.VERSION_CODES.M is always true here (SDK_INT ≥ 24 and < 31) [ObsoleteSdkInt] } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "ObsoleteSdkInt": This check flags version checks that are not necessary, because the minSdkVersion (or surrounding known API level) is already at least as high as the version checked for. Similarly, it also looks for resources in -vNN folders, such as values-v14 where the version qualifier is less than or equal to the minSdkVersion, where the contents should be merged into the best folder. /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_register.xml:59: Warning: Set android:baselineAligned="false" on this element for better performance [DisableBaselineAlignment] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_login.xml:7: Warning: Possible overdraw: Root element paints background @color/background_color with a theme that also paints a background (inferred theme is @style/Theme.Cuida) [Overdraw] android:background="@color/background_color"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_register.xml:7: Warning: Possible overdraw: Root element paints background @color/background_color with a theme that also paints a background (inferred theme is @style/Theme.Cuida) [Overdraw] android:background="@color/background_color"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_reset_password.xml:8: Warning: Possible overdraw: Root element paints background @color/background_color with a theme that also paints a background (inferred theme is @style/Theme.Cuida) [Overdraw] android:background="@color/background_color"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:9: Warning: Possible overdraw: Root element paints background @color/background_color with a theme that also paints a background (inferred theme is @style/Theme.Cuida) [Overdraw] android:background="@color/background_color"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "Overdraw": 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". 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. 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. 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. /Users/230405/Desktop/papcuida/app/src/main/res/drawable/bg_search_results.xml:2: Warning: The resource R.drawable.bg_search_results appears to be unused [UnusedResources] ^ /Users/230405/Desktop/papcuida/app/src/main/res/values/colors.xml:5: Warning: The resource R.color.primary_light_color appears to be unused [UnusedResources] #E3F2FD ~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/values/colors.xml:18: Warning: The resource R.color.purple_200 appears to be unused [UnusedResources] #90CAF9 ~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/values/colors.xml:19: Warning: The resource R.color.purple_500 appears to be unused [UnusedResources] #0066CC ~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/values/colors.xml:20: Warning: The resource R.color.purple_700 appears to be unused [UnusedResources] #004C99 ~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/values/colors.xml:21: Warning: The resource R.color.teal_200 appears to be unused [UnusedResources] #69F0AE ~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/drawable/ic_launcher.xml:1: Warning: The resource R.drawable.ic_launcher appears to be unused [UnusedResources] like this: ```xml ``` /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_appointments.xml:6: Warning: This LinearLayout layout or its FrameLayout parent is unnecessary [UselessParent] ^ Explanation for issues of type "MonochromeLauncherIcon": The system may use the coloring of the user's chosen wallpaper and theme to tint app icons. Providing a layer (which will be used for tinting) for every adaptive icon is strongly recommended, otherwise Android 16 QPR 2 and above will simply tint the color version of the icon, which may look unusual. Devices running earlier Android versions will (with no monochrome layer) show the untinted color icon for your app, which will look inconsistent. /Users/230405/Desktop/papcuida/app/src/main/res/drawable/ic_logo.png: Warning: Found bitmap drawable res/drawable/ic_logo.png in densityless folder [IconLocation] Explanation for issues of type "IconLocation": The res/drawable folder is intended for density-independent graphics such as shapes defined in XML. For bitmaps, move it to drawable-mdpi and consider providing higher and lower resolution versions in drawable-ldpi, drawable-hdpi and drawable-xhdpi. If the icon really is density independent (for example a solid color) you can place it in drawable-nodpi. https://developer.android.com/guide/practices/screens_support.html /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_forgot_password.xml:10: Warning: Missing contentDescription attribute on image [ContentDescription] ~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_reset_password.xml:20: Warning: Hardcoded string "Nova Palavra-passe", should use @string resource [HardcodedText] android:text="Nova Palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_reset_password.xml:29: Warning: Hardcoded string "Insira e confirme a sua nova palavra-passe.", should use @string resource [HardcodedText] android:text="Insira e confirme a sua nova palavra-passe." ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_reset_password.xml:43: Warning: Hardcoded string "Nova palavra-passe", should use @string resource [HardcodedText] android:hint="Nova palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_reset_password.xml:56: Warning: Hardcoded string "Confirmar palavra-passe", should use @string resource [HardcodedText] android:hint="Confirmar palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/activity_reset_password.xml:64: Warning: Hardcoded string "Guardar Palavra-passe", should use @string resource [HardcodedText] android:text="Guardar Palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:13: Warning: Hardcoded string "Nome do Medicamento", should use @string resource [HardcodedText] android:hint="Nome do Medicamento" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:42: Warning: Hardcoded string "Horários", should use @string resource [HardcodedText] android:text="Horários" ~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:54: Warning: Hardcoded string "Adicionar", should use @string resource [HardcodedText] android:text="Adicionar" ~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:68: Warning: Hardcoded string "Via de Administração", should use @string resource [HardcodedText] android:text="Via de Administração" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:85: Warning: Hardcoded string "Via Oral (Pela boca)", should use @string resource [HardcodedText] android:text="Via Oral (Pela boca)" /> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:91: Warning: Hardcoded string "Via Tópica (Na pele)", should use @string resource [HardcodedText] android:text="Via Tópica (Na pele)" /> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:97: Warning: Hardcoded string "Via Inalatória (Pela nariz/boca)", should use @string resource [HardcodedText] android:text="Via Inalatória (Pela nariz/boca)" /> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_add_medication.xml:104: Warning: Hardcoded string "Notas (Opcional)", should use @string resource [HardcodedText] android:hint="Notas (Opcional)" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_change_password.xml:11: Warning: Hardcoded string "Alterar Palavra-passe", should use @string resource [HardcodedText] android:text="Alterar Palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_change_password.xml:26: Warning: Hardcoded string "Nova Palavra-passe", should use @string resource [HardcodedText] android:hint="Nova Palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_change_password.xml:41: Warning: Hardcoded string "Cancelar", should use @string resource [HardcodedText] android:text="Cancelar" ~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_change_password.xml:48: Warning: Hardcoded string "Salvar", should use @string resource [HardcodedText] android:text="Salvar" /> ~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:31: Warning: Hardcoded string "Mudar Foto", should use @string resource [HardcodedText] android:text="Mudar Foto" ~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:37: Warning: Hardcoded string "Editar Dados", should use @string resource [HardcodedText] android:text="Editar Dados" ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:52: Warning: Hardcoded string "Nome", should use @string resource [HardcodedText] android:hint="Nome" ~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:65: Warning: Hardcoded string "Idade", should use @string resource [HardcodedText] android:hint="Idade" ~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:79: Warning: Hardcoded string "Nº Utente", should use @string resource [HardcodedText] android:hint="Nº Utente" ~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:93: Warning: Hardcoded string "Email", should use @string resource [HardcodedText] android:hint="Email" ~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:103: Warning: Hardcoded string "Alterar Palavra-passe", should use @string resource [HardcodedText] android:text="Alterar Palavra-passe" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:117: Warning: Hardcoded string "Cancelar", should use @string resource [HardcodedText] android:text="Cancelar" ~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/dialog_edit_profile.xml:124: Warning: Hardcoded string "Salvar", should use @string resource [HardcodedText] android:text="Salvar" /> ~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_appointments.xml:25: Warning: Hardcoded string "Futuras", should use @string resource [HardcodedText] android:text="Futuras" ~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_appointments.xml:38: Warning: Hardcoded string "Passadas", should use @string resource [HardcodedText] android:text="Passadas" ~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_home.xml:23: Warning: Hardcoded string "Olá, utilizador!", should use @string resource [HardcodedText] android:text="Olá, utilizador!" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_home.xml:52: Warning: Hardcoded string "Próxima Medicação", should use @string resource [HardcodedText] android:text="Próxima Medicação" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_home.xml:61: Warning: Hardcoded string "Paracetamol 500mg", should use @string resource [HardcodedText] android:text="Paracetamol 500mg" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_home.xml:69: Warning: Hardcoded string "Hoje, 14:00", should use @string resource [HardcodedText] android:text="Hoje, 14:00" ~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_home.xml:80: Warning: Hardcoded string "Marcar Consulta", should use @string resource [HardcodedText] android:text="Marcar Consulta" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_medication.xml:34: Warning: Hardcoded string "Ainda não tem medicamentos guardados.", should use @string resource [HardcodedText] android:text="Ainda não tem medicamentos guardados." ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_medication.xml:52: Warning: Hardcoded string "Adicionar Medicamento", should use @string resource [HardcodedText] android:contentDescription="Adicionar Medicamento"/> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:39: Warning: Hardcoded string "Nome do Utilizador", should use @string resource [HardcodedText] android:text="Nome do Utilizador" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:49: Warning: Hardcoded string "email@exemplo.com", should use @string resource [HardcodedText] android:text="email@exemplo.com" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:70: Warning: Hardcoded string "Idade: ", should use @string resource [HardcodedText] android:text="Idade: " ~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:78: Warning: Hardcoded string "--", should use @string resource [HardcodedText] android:text="--" ~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:93: Warning: Hardcoded string "Nº Utente: ", should use @string resource [HardcodedText] android:text="Nº Utente: " ~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:101: Warning: Hardcoded string "--", should use @string resource [HardcodedText] android:text="--" ~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:114: Warning: Hardcoded string "Editar Dados", should use @string resource [HardcodedText] android:text="Editar Dados" ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_profile.xml:125: Warning: Hardcoded string "Terminar Sessão", should use @string resource [HardcodedText] android:text="Terminar Sessão" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:11: Warning: Hardcoded string "Agendar Consulta", should use @string resource [HardcodedText] android:text="Agendar Consulta" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:20: Warning: Hardcoded string "Selecionar Data", should use @string resource [HardcodedText] android:text="Selecionar Data" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:37: Warning: Hardcoded string "Selecionar Horário", should use @string resource [HardcodedText] android:text="Selecionar Horário" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:52: Warning: Hardcoded string "Selecionar Médico/Especialidade", should use @string resource [HardcodedText] android:text="Selecionar Médico/Especialidade" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:62: Warning: Hardcoded string "Escolha o médico", should use @string resource [HardcodedText] android:hint="Escolha o médico"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:81: Warning: Hardcoded string "Motivo da Consulta", should use @string resource [HardcodedText] android:hint="Motivo da Consulta" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_schedule_appointment.xml:91: Warning: Hardcoded string "Confirmar Agendamento", should use @string resource [HardcodedText] android:text="Confirmar Agendamento"/> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_sns24.xml:23: Warning: Hardcoded string "Ligar SNS 24 (808 24 24 24)", should use @string resource [HardcodedText] android:text="Ligar SNS 24 (808 24 24 24)" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_sns24.xml:39: Warning: Hardcoded string "Triagem com Inteligência Artificial", should use @string resource [HardcodedText] android:text="Triagem com Inteligência Artificial" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_sns24.xml:48: Warning: Hardcoded string "Descreva o que está a sentir...", should use @string resource [HardcodedText] android:hint="Descreva o que está a sentir..." ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_sns24.xml:65: Warning: Hardcoded string "Analisar Sintomas", should use @string resource [HardcodedText] android:text="Analisar Sintomas" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/fragment_sns24.xml:85: Warning: Hardcoded string "Hospital mais próximo", should use @string resource [HardcodedText] android:text="Hospital mais próximo" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_appointment.xml:28: Warning: Hardcoded string "Tipo de Consulta", should use @string resource [HardcodedText] android:text="Tipo de Consulta" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_appointment.xml:37: Warning: Hardcoded string "Pendente", should use @string resource [HardcodedText] android:text="Pendente" ~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_appointment.xml:56: Warning: Hardcoded string "dd/MM/yyyy", should use @string resource [HardcodedText] android:text="dd/MM/yyyy" ~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_appointment.xml:63: Warning: Hardcoded string "HH:mm", should use @string resource [HardcodedText] android:text="HH:mm" ~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_appointment.xml:71: Warning: Hardcoded string "Motivo: --", should use @string resource [HardcodedText] android:text="Motivo: --" ~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_medication.xml:37: Warning: Hardcoded string "Nome Medicamento", should use @string resource [HardcodedText] android:text="Nome Medicamento" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_medication.xml:46: Warning: Hardcoded string "Dosagem", should use @string resource [HardcodedText] android:text="Dosagem" ~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_medication.xml:53: Warning: Hardcoded string "Observações", should use @string resource [HardcodedText] android:text="Observações" ~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_medication.xml:62: Warning: Hardcoded string "HH:mm", should use @string resource [HardcodedText] android:text="HH:mm" ~~~~~~~~~~~~~~~~~~~~ /Users/230405/Desktop/papcuida/app/src/main/res/layout/item_time_slot.xml:6: Warning: Hardcoded string "09:00", should use @string resource [HardcodedText] android:text="09:00" ~~~~~~~~~~~~~~~~~~~~ Explanation for issues of type "HardcodedText": Hardcoding text attributes directly in layout files is bad for several reasons: * When creating configuration variations (for example for landscape or portrait) you have to repeat the actual text (and keep it up to date when making changes) * The application cannot be translated to other languages by just adding new translations for existing string resources. There are quickfixes to automatically extract this hardcoded string into a resource lookup. 0 errors, 155 warnings