Can I mark a resource in my android project as deprecated?

后端 未结 2 1548
北恋
北恋 2021-02-18 16:56

I have an android library for which I would like to mark some resources as deprecated. Drawables, dimensions, durations... I read somewhere that I could add deprecated=\"depreca

相关标签:
2条回答
  • 2021-02-18 17:40

    What I do is simply add a TODO statement. It does not flag the resource, but the doc keyword TODO does show up in Git and as marks in the gutter. Hopefully those warnings will be enough to keep you and others from using it.

    But not always. As we know, @Deprecated is essentially a stop-gap until something is really removed for good and the code is cleaned up properly.

    Here's an example of a shape.xml file that I no longer use (and want to @Deprecate).

    <?xml version="1.0" encoding="utf-8"?>
    <!--
        Border around card elements.  For now this is used only within the
        cards of the Questionnaire RecyclerView.
    
        TODO:  This file is obsolete. Use CardView instead.
    -->
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <stroke
            android:width="@dimen/tiny_card_margin"
            android:color="@color/colorPrimaryDark" />
        <solid
            android:color="@android:color/white" />
        <corners
            android:radius="4dp" />
    </shape>
    
    0 讨论(0)
  • 2021-02-18 17:48

    Short answer: Not possible.

    @deprecated tags are used by the Android source inside comments as it can be seen in fw/base core/res/values/attrs.xml (see line 3427 for autoText as referred to in the original post), in fw/base core/res/values/public.xml and in other places throughout the project, but it appears that the build tools used for building applications simply skip all comments meaning the annotiation tags get skipped as well in the process making this method fail.

    Example usage of deprecation annotations based on Android source:

    <!-- {@deprecated Use foobar instead.} -->
    <string name="foo">abc</string>
    <string name="foobar">abcd</string>
    
    0 讨论(0)
提交回复
热议问题