Updated Code style (markdown)

H. Lehmann 2020-10-05 10:55:18 +02:00
parent 2bec59b444
commit 04ef01e7fb
1 changed files with 11 additions and 1 deletions

@ -10,4 +10,14 @@ For the Java code, AntennaPod uses a style similar to [Google's Java style](http
### Resource ID naming
Please use lowerCamelCase for naming `@+id` resources. For `TextViews` and `ImageViews`, just describing the element is enough (`title`, `background`). For `ViewGroups` like `LinearLayouts`, describing is usually enough, too: `playbackControls`. Buttons should always have the suffix `Button` (`viewDetailsButton`, `playButton`) and floating action buttons (fab) the suffix `Fab` (`addFeedFab`). In rare cases where it is really clear what the id is referring to, it may also be named after the type of the element (`recyclerView`).
Please use lowerCamelCase for naming `@+id` resources. For some types listed in the table below, please add a suffix noting the type.
| View type | Examples | Naming |
| --- | --- | --- |
| Clickable items where only the action is important | `Button` that opens Settings, `ImageView` that triggers play/pause | Add suffix `Button`, even if it is not a Button view. Here, the action is more important than the view type. |
| `ViewGroup` like `LinearLayout`, `FrameLayout` | `LinearLayout` that shows player controls, `FrameLayout` that allows to hide the whole screen content while loading | Add suffix `Container`. In most cases, the Java code does not care what specific `ViewGroup` is used. It just cares that it can hide a group of other items. Cases where the actual type is especially important, such as `suggestionsGrid`, can be named differently. |
| Images whose main purpose is to show an image (as opposed to mainly being a button) | `ImageView` that serves as a background, `SquareImageView` that shows the cover | Add suffix `Image` |
| Text content | `TextView` that shows the position | Add suffix `Label` |
| Everything else | `Spinner` that allows to select options, `ProgressBar` that shows the position | Suffix with shortened view type. This ensures that a reader of the code knows what a view can be used for without looking at the layout files |
In cases where adding a name would be redundant, it may also be named only after the type of the element (for example `recyclerView`, `progressBar`).