<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.5.0-dev" type="baseline" client="" dependencies="true" name="" variant="all" version="8.5.0-dev">

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="    myCpu.setText(String.format(&quot;CPU: %d&quot;, myTooltip.getCpuId()));"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/com/android/tools/profilers/cpu/CpuKernelTooltipView.java"
            line="85"
            column="19"/>
    </issue>

    <issue
        id="DefaultLocale"
        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
        errorLine1="        threadsPanel.setTitle(String.format(&quot;THREADS (%d)&quot;, myThreads.getModel().getSize()));"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/com/android/tools/profilers/cpu/CpuThreadsView.java"
            line="170"
            column="31"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int MARKER_LENGTH = JBUI.scale(5);"
        errorLine2="                                               ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="35"
            column="48"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int TIME_AXIS_HEIGHT = JBUI.scale(15);"
        errorLine2="                                                  ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="37"
            column="51"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int Y_AXIS_TOP_MARGIN = JBUI.scale(30);"
        errorLine2="                                                   ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="42"
            column="52"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int MONITOR_LEGEND_RIGHT_PADDING = JBUI.scale(12);"
        errorLine2="                                                              ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="48"
            column="63"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int PROFILER_LEGEND_RIGHT_PADDING = JBUI.scale(9);"
        errorLine2="                                                               ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="53"
            column="64"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int ROW_HEIGHT_PADDING = JBUI.scale(4);"
        errorLine2="                                                    ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="55"
            column="53"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int TABLE_COLUMN_CELL_SPARKLINE_RIGHT_PADDING = JBUI.scale(2);"
        errorLine2="                                                                           ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="64"
            column="76"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int TABLE_COLUMN_CELL_SPARKLINE_TOP_BOTTOM_PADDING = JBUI.scale(1);"
        errorLine2="                                                                                ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="65"
            column="81"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int PROFILING_INSTRUCTIONS_BACKGROUND_ARC_DIAMETER = JBUI.scale(16);"
        errorLine2="                                                                                ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="69"
            column="81"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int PROFILING_INSTRUCTIONS_ICON_PADDING = JBUI.scale(1);"
        errorLine2="                                                                     ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="70"
            column="70"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int FILTER_TEXT_FIELD_WIDTH = JBUI.scale(245);"
        errorLine2="                                                         ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="72"
            column="58"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  public static final int TOOLBAR_HEIGHT = JBUI.scale(31);"
        errorLine2="                                                ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerLayout.java"
            line="77"
            column="49"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="  private static final int MINIMUM_MONITOR_HEIGHT = JBUI.scale(50);"
        errorLine2="                                                         ~~~~~">
        <location
            file="src/com/android/tools/profilers/ProfilerMonitorView.java"
            line="43"
            column="58"/>
    </issue>

    <issue
        id="JbUiStored"
        message="Do not store `JBUI.scale` scaled results in fields; this will not work correctly on dynamic theme or font size changes"
        errorLine1="    private static final int SIZE = JBUI.scale(10);"
        errorLine2="                                         ~~~~~">
        <location
            file="src/com/android/tools/profilers/sessions/SessionItemView.java"
            line="221"
            column="42"/>
    </issue>

</issues>
