<?xml version="1.0" encoding="UTF-8"?>
<issues format="5" by="lint 3.5.0">

    <issue
        id="DefaultLocale"
        severity="Warning"
        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()`."
        category="Correctness"
        priority="6"
        summary="Implied default locale in case conversion"
        explanation="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&apos;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`.&#xA;&#xA;If you want the methods to just perform ASCII replacement, for example to convert an enum name, call `String#toUpperCase(Locale.US)` instead. If you really want to use the current locale, call `String#toUpperCase(Locale.getDefault())` instead."
        url="http://developer.android.com/reference/java/util/Locale.html#default_locale"
        urls="http://developer.android.com/reference/java/util/Locale.html#default_locale"
        errorLine1="        return dataTypeName.toUpperCase() + &quot;_RECORDING&quot;;"
        errorLine2="                            ~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/RecordingApi.java"
            line="64"
            column="29"/>
    </issue>

    <issue
        id="SimpleDateFormat"
        severity="Warning"
        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
        category="Correctness"
        priority="6"
        summary="Implied locale in date format"
        explanation="Almost all callers should use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()` to get a ready-made instance of SimpleDateFormat suitable for the user&apos;s locale. The main reason you&apos;d create an instance this class directly is because you need to format/parse a specific machine-readable format, in which case you almost certainly want to explicitly ask for US to ensure that you get ASCII digits (rather than, say, Arabic digits).&#xA;&#xA;Therefore, you should either use the form of the SimpleDateFormat constructor where you pass in an explicit locale, such as Locale.US, or use one of the get instance methods, or suppress this error if really know what you are doing."
        url="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        urls="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        errorLine1="        Format formatter = new SimpleDateFormat(&quot;EEE&quot;);"
        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/BodyHistory.java"
            line="241"
            column="28"/>
    </issue>

    <issue
        id="SimpleDateFormat"
        severity="Warning"
        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
        category="Correctness"
        priority="6"
        summary="Implied locale in date format"
        explanation="Almost all callers should use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()` to get a ready-made instance of SimpleDateFormat suitable for the user&apos;s locale. The main reason you&apos;d create an instance this class directly is because you need to format/parse a specific machine-readable format, in which case you almost certainly want to explicitly ask for US to ensure that you get ASCII digits (rather than, say, Arabic digits).&#xA;&#xA;Therefore, you should either use the form of the SimpleDateFormat constructor where you pass in an explicit locale, such as Locale.US, or use one of the get instance methods, or suppress this error if really know what you are doing."
        url="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        urls="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        errorLine1="        Format formatter = new SimpleDateFormat(&quot;EEE&quot;);"
        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/CalorieHistory.java"
            line="139"
            column="28"/>
    </issue>

    <issue
        id="SimpleDateFormat"
        severity="Warning"
        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
        category="Correctness"
        priority="6"
        summary="Implied locale in date format"
        explanation="Almost all callers should use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()` to get a ready-made instance of SimpleDateFormat suitable for the user&apos;s locale. The main reason you&apos;d create an instance this class directly is because you need to format/parse a specific machine-readable format, in which case you almost certainly want to explicitly ask for US to ensure that you get ASCII digits (rather than, say, Arabic digits).&#xA;&#xA;Therefore, you should either use the form of the SimpleDateFormat constructor where you pass in an explicit locale, such as Locale.US, or use one of the get instance methods, or suppress this error if really know what you are doing."
        url="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        urls="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        errorLine1="        Format formatter = new SimpleDateFormat(&quot;EEE&quot;);"
        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/DistanceHistory.java"
            line="96"
            column="28"/>
    </issue>

    <issue
        id="SimpleDateFormat"
        severity="Warning"
        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
        category="Correctness"
        priority="6"
        summary="Implied locale in date format"
        explanation="Almost all callers should use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()` to get a ready-made instance of SimpleDateFormat suitable for the user&apos;s locale. The main reason you&apos;d create an instance this class directly is because you need to format/parse a specific machine-readable format, in which case you almost certainly want to explicitly ask for US to ensure that you get ASCII digits (rather than, say, Arabic digits).&#xA;&#xA;Therefore, you should either use the form of the SimpleDateFormat constructor where you pass in an explicit locale, such as Locale.US, or use one of the get instance methods, or suppress this error if really know what you are doing."
        url="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        urls="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        errorLine1="        Format formatter = new SimpleDateFormat(&quot;EEE&quot;);"
        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/HeartrateHistory.java"
            line="225"
            column="28"/>
    </issue>

    <issue
        id="SimpleDateFormat"
        severity="Warning"
        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
        category="Correctness"
        priority="6"
        summary="Implied locale in date format"
        explanation="Almost all callers should use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()` to get a ready-made instance of SimpleDateFormat suitable for the user&apos;s locale. The main reason you&apos;d create an instance this class directly is because you need to format/parse a specific machine-readable format, in which case you almost certainly want to explicitly ask for US to ensure that you get ASCII digits (rather than, say, Arabic digits).&#xA;&#xA;Therefore, you should either use the form of the SimpleDateFormat constructor where you pass in an explicit locale, such as Locale.US, or use one of the get instance methods, or suppress this error if really know what you are doing."
        url="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        urls="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        errorLine1="        DateFormat dateFormat = new SimpleDateFormat(&quot;yyyy-MM-dd&apos;T&apos;HH:mm:ss.SSSZ&quot;);"
        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/StepHistory.java"
            line="64"
            column="33"/>
    </issue>

    <issue
        id="SimpleDateFormat"
        severity="Warning"
        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
        category="Correctness"
        priority="6"
        summary="Implied locale in date format"
        explanation="Almost all callers should use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()` to get a ready-made instance of SimpleDateFormat suitable for the user&apos;s locale. The main reason you&apos;d create an instance this class directly is because you need to format/parse a specific machine-readable format, in which case you almost certainly want to explicitly ask for US to ensure that you get ASCII digits (rather than, say, Arabic digits).&#xA;&#xA;Therefore, you should either use the form of the SimpleDateFormat constructor where you pass in an explicit locale, such as Locale.US, or use one of the get instance methods, or suppress this error if really know what you are doing."
        url="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        urls="http://developer.android.com/reference/java/text/SimpleDateFormat.html"
        errorLine1="        DateFormat dateFormat = new SimpleDateFormat(&quot;yyyy-MM-dd&apos;T&apos;HH:mm:ss.SSSZ&quot;);"
        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/StepHistory.java"
            line="271"
            column="33"/>
    </issue>

    <issue
        id="GradleDependency"
        severity="Warning"
        message="A newer version of com.android.tools.build:gradle than 3.3.1 is available: 3.5.0"
        category="Correctness"
        priority="4"
        summary="Obsolete Gradle Dependency"
        explanation="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."
        errorLine1="        classpath &apos;com.android.tools.build:gradle:3.3.1&apos;"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/build.gradle"
            line="10"
            column="9"/>
    </issue>

    <issue
        id="GradleDynamicVersion"
        severity="Warning"
        message="Avoid using + in version numbers; can lead to unpredictable and unrepeatable builds (com.facebook.react:react-native:+)"
        category="Correctness"
        priority="4"
        summary="Gradle Dynamic Version"
        explanation="Using `+` in dependencies lets you automatically pick up the latest available version rather than a specific, named version. However, this is not recommended; your builds are not repeatable; you may have tested with a slightly different version than what the build server used. (Using a dynamic version as the major version number is more problematic than using it in the minor version position.)"
        errorLine1="    implementation &apos;com.facebook.react:react-native:+&apos;"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/build.gradle"
            line="37"
            column="5"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        severity="Warning"
        message="This `AsyncTask` class should be static or leaks might occur (com.reactnative.googlefit.BodyHistory.DeleteDataTask)"
        category="Performance"
        priority="6"
        summary="Static Field Leaks"
        explanation="A static field will leak contexts.&#xA;&#xA;Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a `Fragment` or `Activity`, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected.&#xA;&#xA;Similarly, direct field references to activities and fragments from these longer running instances can cause leaks.&#xA;&#xA;ViewModel classes should never point to Views or non-application Contexts."
        errorLine1="    private class DeleteDataTask extends AsyncTask&lt;Void, Void, Void> {"
        errorLine2="                  ~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/BodyHistory.java"
            line="141"
            column="19"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        severity="Warning"
        message="This `AsyncTask` class should be static or leaks might occur (com.reactnative.googlefit.BodyHistory.InsertAndVerifyDataTask)"
        category="Performance"
        priority="6"
        summary="Static Field Leaks"
        explanation="A static field will leak contexts.&#xA;&#xA;Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a `Fragment` or `Activity`, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected.&#xA;&#xA;Similarly, direct field references to activities and fragments from these longer running instances can cause leaks.&#xA;&#xA;ViewModel classes should never point to Views or non-application Contexts."
        errorLine1="    private class InsertAndVerifyDataTask extends AsyncTask&lt;Void, Void, Void> {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/BodyHistory.java"
            line="176"
            column="19"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        severity="Warning"
        message="This `AsyncTask` class should be static or leaks might occur (com.reactnative.googlefit.CalorieHistory.InsertAndVerifyDataTask)"
        category="Performance"
        priority="6"
        summary="Static Field Leaks"
        explanation="A static field will leak contexts.&#xA;&#xA;Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a `Fragment` or `Activity`, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected.&#xA;&#xA;Similarly, direct field references to activities and fragments from these longer running instances can cause leaks.&#xA;&#xA;ViewModel classes should never point to Views or non-application Contexts."
        errorLine1="    private class InsertAndVerifyDataTask extends AsyncTask&lt;Void, Void, Void> {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/CalorieHistory.java"
            line="190"
            column="19"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        severity="Warning"
        message="This `AsyncTask` class should be static or leaks might occur (com.reactnative.googlefit.HeartrateHistory.DeleteDataTask)"
        category="Performance"
        priority="6"
        summary="Static Field Leaks"
        explanation="A static field will leak contexts.&#xA;&#xA;Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a `Fragment` or `Activity`, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected.&#xA;&#xA;Similarly, direct field references to activities and fragments from these longer running instances can cause leaks.&#xA;&#xA;ViewModel classes should never point to Views or non-application Contexts."
        errorLine1="    private class DeleteDataTask extends AsyncTask&lt;Void, Void, Void> {"
        errorLine2="                  ~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/HeartrateHistory.java"
            line="124"
            column="19"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        severity="Warning"
        message="This `AsyncTask` class should be static or leaks might occur (com.reactnative.googlefit.HeartrateHistory.InsertAndVerifyDataTask)"
        category="Performance"
        priority="6"
        summary="Static Field Leaks"
        explanation="A static field will leak contexts.&#xA;&#xA;Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a `Fragment` or `Activity`, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected.&#xA;&#xA;Similarly, direct field references to activities and fragments from these longer running instances can cause leaks.&#xA;&#xA;ViewModel classes should never point to Views or non-application Contexts."
        errorLine1="    private class InsertAndVerifyDataTask extends AsyncTask&lt;Void, Void, Void> {"
        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="/Users/pokpakornklinkasen/Documents/workspace/japan/prevent-dementia/prevent-dementia/node_modules/react-native-google-fit/android/src/main/java/com/reactnative/googlefit/HeartrateHistory.java"
            line="159"
            column="19"/>
    </issue>

</issues>
