Add contribution templates

Add contribution templates for this project.
This commit is contained in:
OxygenCobalt 2020-12-19 12:23:10 -07:00
parent 953e1291b6
commit f85bd85c92
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
15 changed files with 103 additions and 40 deletions

View file

@ -10,9 +10,9 @@ Please keep in mind when reporting an issue:
- **Is it still relevant in the latest version?** Make sure to test it in the latest version.
If you do make an issue, Make sure to provide:
- A summary of what you were doing before the bug/crash
- What do you did that caused the bug/crash
- A trace/logcat if possible, the longer the better.
- A description of the bug/crash
- A summary of the steps to create the bug/crash
- A stack trace/logcat if possible, the longer the better.
If you have knowledge of Android/Kotlin in general, you could also go about fixing the bug yourself and opening a [Pull Request](https://github.com/OxygenCobalt/Auxio/pulls).
@ -23,7 +23,7 @@ These should also be logged in the [Issues](https://github.com/OxygenCobalt/Aux
Please keep in mind when requesting a feature:
- **Has it already been requested?** Make sure request for this feature is not already here.
- **Has it been already added?** Make sure this feature has not already been added in the most recent release.
- **Will it be accepted?** Read the [Accepted Additions and Requests](../info/ADDITIONS.md) in order to see the likelihood that your request will be accepted.
- **Will it be accepted?** Read the [Accepted Additions and Requests](../info/ADDITIONS.md) in order to see the likelihood that your request will be implemented.
If you do make a request, provide the following:
- What kind of addition is this? (A Full Feature? A new customization option? A UI Change?)

32
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,32 @@
---
name: Bug/Crash Report
about: Report an issue with Auxio
labels: bug
assignees: ''
---
**Describe the bug/crash**
<!-- A clear and concise description of what the bug or crash is. -->
**To Reproduce**
<!--
Steps to reproduce the bug/crash:
1. Go to X
2. Click on Y
3. Scroll down to Z
4. See error
-->
**Logs/Stack Traces**
<!-- If possible, provide a stack trace or a Logcat. This can help identify the issue. -->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Phone Information**
<!-- Please provide information about your phone's android version/model. -->
**Due Diligence**
- [ ] I have read the [Contribution Guidelines](../CONTRIBUTING.md).

View file

@ -0,0 +1,20 @@
---
name: Bug/Crash Report
about: Propose an idea for Auxio
labels: enhancement
assignees: ''
---
**Describe the feature you want to implement**
<!-- A clear and concise description of what you want to be added. -->
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Why do you think this will improve everyone's usage of Auxio?**
<!-- Provide a rationale here -->
**Due Diligence**
- [ ] I have read the [Accepted Additions and Requests](../../info/ADDITIONS.md), and the [Contribution Guidelines](../CONTRIBUTING.md).

28
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,28 @@
<!-- Please fill out all this information. -->
**What is it?**
- [ ] Bugfix (user facing)
- [ ] Feature (user facing)
- [ ] Codebase improvement (dev facing)
- [ ] Meta improvement to the project (dev facing)
**Description of changes**
<!-- Bullet points or free-form text -->
- Do this
- Fix that
- Listen to music
**Fixes the following issues**
<!-- Also add any other links relevant to your change. -->
-
**Any additional information**
<!-- Also add any information relevant to this PR -->
**APK testing**
<!-- Please create a debug APK for your changes. -->
debug.zip
**Due Diligence**
- [ ] I have read the [Contribution Guidelines](CONTRIBUTING.md) and [Accepted additions & Requests](../info/ADDITIONS.md).

View file

@ -16,7 +16,10 @@
Auxio is a local music player for android that I primarily built for myself.
It only has the features that I use out of a music player and nothing more, with a UI/UX mostly derived from [Spotify](https://spotify.com), but with elements from [Phonograph](https://github.com/kabouzeid/Phonograph) and [Music Player GO](https://github.com/OxygenCobalt/Auxio). Its meant to be consistent and reliable, while still being customizable and extendable if one wants to add their own features that I (Personally) don't need.
It only has the features that I use out of a music player and nothing more, with a Spotify-Like UI/UX combined with elements from [Phonograph](https://github.com/kabouzeid/Phonograph) and [Music Player GO](https://github.com/enricocid/Music-Player-GO).
Its meant to be consistent and reliable, while still being customizable and extendable if one wants to add their own features that I (Personally) don't need.
**Note:** Auxio is still early in development, meaning that some things may change as time passes.
## Screenshots
@ -40,6 +43,7 @@ It only has the features that I use out of a music player and nothing more, with
- Full playback persistence system
- Embedded covers support
- Search Functionality
- Audio Focus / Headset Management
- No internet connectivity whatsoever
- Kotlin from the ground-up
- Modular, feature-based architecture

View file

@ -121,7 +121,7 @@ class PlaybackStateDatabase(context: Context) :
/**
* Read the stored [PlaybackState] from the database, if there is one.
* @return The stored [PlaybackState], null if there isn't one,.
* @return The stored [PlaybackState], null if there isn't one.
*/
fun readState(): PlaybackState? {
val database = writableDatabase

View file

@ -27,13 +27,9 @@ class LibraryViewModel : ViewModel(), SettingsManager.Callback {
private var mDisplayMode = DisplayMode.SHOW_ARTISTS
private var mIsNavigating = false
/** The current [SortMode] */
val sortMode: LiveData<SortMode> get() = mSortMode
/** The current library data */
val libraryData: LiveData<List<BaseModel>> get() = mLibraryData
/** The results from the last search query */
val searchResults: LiveData<List<BaseModel>> get() = mSearchResults
/** If LibraryFragment is already navigating */
val isNavigating: Boolean get() = mIsNavigating
private val settingsManager = SettingsManager.getInstance()
@ -110,9 +106,6 @@ class LibraryViewModel : ViewModel(), SettingsManager.Callback {
}
}
/**
* Reset the search query.
*/
fun resetQuery() {
mSearchResults.value = listOf()
}
@ -120,7 +113,7 @@ class LibraryViewModel : ViewModel(), SettingsManager.Callback {
// --- LIBRARY FUNCTIONS ---
/**
* Update the current [SortMode].
* Update the current [SortMode] with a menu id.
* @param itemId The id of the menu item selected.
*/
fun updateSortMode(@IdRes itemId: Int) {

View file

@ -28,7 +28,7 @@ class MusicStore private constructor() {
private var mSongs = listOf<Song>()
val songs: List<Song> get() = mSongs
/** All parent models loaded by Auxio */
/** All parent models (ex Albums, Artists) loaded by Auxio */
val parents: MutableList<BaseModel> by lazy {
val parents = mutableListOf<BaseModel>()
parents.addAll(mGenres)

View file

@ -100,7 +100,7 @@ fun ImageView.bindArtistImage(artist: Artist) {
}
/**
* Bind the genre image for an artist.
* Bind the genre image for a genre.
*/
@BindingAdapter("genreImage")
fun ImageView.bindGenreImage(genre: Genre) {

View file

@ -53,23 +53,20 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback {
val parent: LiveData<BaseModel?> get() = mParent
/** The current playback position, in seconds */
val position: LiveData<Long> get() = mPosition
/** The current queue determined my [mode] and [parent] */
/** The current queue determined by [mode] and [parent] */
val queue: LiveData<MutableList<Song>> get() = mQueue
/** The queue created by the user. */
val userQueue: LiveData<MutableList<Song>> get() = mUserQueue
/** The current [PlaybackMode] that also determines the queue */
val mode: LiveData<PlaybackMode> get() = mMode
/** Whether the playback is paused or played. */
val isPlaying: LiveData<Boolean> get() = mIsPlaying
/** Whether the queue is shuffled or not. */
val isShuffling: LiveData<Boolean> get() = mIsShuffling
/** The current [LoopMode] */
/** The current repeat mode */
val loopMode: LiveData<LoopMode> get() = mLoopMode
/** Whether the user is seeking or not */
val isSeeking: LiveData<Boolean> get() = mIsSeeking
/** Whether to nav to an item or not */
val navToItem: LiveData<BaseModel?> get() = mNavToItem
/** Whether the play/pause button on CompactPlaybackFragment can animate */
val canAnimate: Boolean get() = mCanAnimate
/** The position as a duration string. */

View file

@ -156,7 +156,7 @@ class QueueAdapter(
}
/**
* Generic ViewHolder for the **user queue header**. Has the clear queue button.
* ViewHolder for the **user queue header**. Has the clear queue button.
*/
inner class UserQueueHeaderViewHolder(
context: Context,

View file

@ -1,5 +1,8 @@
package org.oxycblt.auxio.playback.state
/**
* Enum that determines the playback repeat mode.
*/
enum class LoopMode {
NONE, ONCE, INFINITE;

View file

@ -851,7 +851,6 @@ class PlaybackStateManager private constructor() {
/**
* Create an ordered queue based on an [Artist].
* @return A list of the songs in the [Artist], ordered.
*/
private fun orderSongsInArtist(artist: Artist): MutableList<Song> {
val final = mutableListOf<Song>()
@ -865,7 +864,6 @@ class PlaybackStateManager private constructor() {
/**
* Create an ordered queue based on a [Genre].
* @return A list of the songs in the [Genre], ordered.
*/
private fun orderSongsInGenre(genre: Genre): MutableList<Song> {
val final = mutableListOf<Song>()
@ -887,29 +885,17 @@ class PlaybackStateManager private constructor() {
* remove them on destruction with [removeCallback].
*/
interface Callback {
/** Called when the song updates */
fun onSongUpdate(song: Song?) {}
/** Called when the parent updates */
fun onParentUpdate(parent: BaseModel?) {}
/** Called when the position updates */
fun onPositionUpdate(position: Long) {}
/** Called when the queue updates */
fun onQueueUpdate(queue: MutableList<Song>) {}
/** Called when the user queue updates */
fun onUserQueueUpdate(userQueue: MutableList<Song>) {}
/** Called when the mode updates */
fun onModeUpdate(mode: PlaybackMode) {}
/** Called when the index updates */
fun onIndexUpdate(index: Int) {}
/** Called when the playing status changes */
fun onPlayingUpdate(isPlaying: Boolean) {}
/** Called when the shuffle status changes */
fun onShuffleUpdate(isShuffling: Boolean) {}
/** Called when the loop mode changes */
fun onLoopUpdate(mode: LoopMode) {}
/** Called when a seek is confirmed */
fun onSeekConfirm(position: Long) {}
/** Called when the restore process is finished */
fun onRestoreFinish() {}
}

View file

@ -96,7 +96,7 @@ class SongsFragment : Fragment() {
}
/**
* Go through the fast scroller process.
* Go through the fast scroller setup process.
* @param binding Binding required
*/
private fun setupFastScroller(binding: FragmentSongsBinding) {

View file

@ -18,7 +18,7 @@ These will be accepted/added if I see the value in the addition of those options
## Feature Additions and UI Changes
These are far less likely to be accepted/added. As I said, I want to avoid Auxio from becoming overly bloated with features I do not use, and therefore **I will only accept features/UI changes that directly benefit my own usage.** If they do not, then I will reject/ignore them.
These are far less likely to be accepted/added. As I said, I want to avoid Auxio from becoming overly bloated with features I do not use, and therefore **I will only accept features/UI changes that directly benefit my own usage.** If they do not, then I will reject/ignore them. This does not rule out certain additions, but I am generally less likely to accept these kinds of requests.
Feel free to fork Auxio to add your own features however.