├── Android
├── MusicPlayer
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── witekio
│ │ │ │ └── whitepaper
│ │ │ │ └── musicplayer
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── SharedViewModel.java
│ │ │ │ ├── layout
│ │ │ │ ├── adapter
│ │ │ │ │ ├── AlbumListAdapter.java
│ │ │ │ │ ├── AlbumSectionAdapter.java
│ │ │ │ │ ├── AlbumViewHolder.java
│ │ │ │ │ ├── ArtistAlbumListAdapter.java
│ │ │ │ │ ├── ArtistSectionAdapter.java
│ │ │ │ │ ├── ArtistViewHolder.java
│ │ │ │ │ ├── BaseViewHolder.java
│ │ │ │ │ ├── GenreListAdapter.java
│ │ │ │ │ ├── SectionAdapter.java
│ │ │ │ │ ├── SongSectionAdapter.java
│ │ │ │ │ └── SongViewHolder.java
│ │ │ │ ├── fragment
│ │ │ │ │ ├── AbstractListFragment.java
│ │ │ │ │ ├── AlbumFragment.java
│ │ │ │ │ ├── AlbumListFragment.java
│ │ │ │ │ ├── ArtistFilteredAlbumListFragment.java
│ │ │ │ │ ├── ArtistListFragment.java
│ │ │ │ │ ├── BackFragment.java
│ │ │ │ │ ├── DashboardFragment.java
│ │ │ │ │ ├── FilteredAlbumListFragment.java
│ │ │ │ │ ├── GenreListFragment.java
│ │ │ │ │ ├── PlayFragment.java
│ │ │ │ │ ├── SongListFragment.java
│ │ │ │ │ └── SplashScreenFragment.java
│ │ │ │ └── model
│ │ │ │ │ └── Section.java
│ │ │ │ └── view
│ │ │ │ └── SongView.java
│ │ │ └── res
│ │ │ ├── color
│ │ │ ├── category_text_color.xml
│ │ │ ├── play_pause_color.xml
│ │ │ └── song_artist.xml
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ ├── album_border.xml
│ │ │ ├── album_song_background.xml
│ │ │ ├── back_arrow_selector.xml
│ │ │ ├── category_button_background.xml
│ │ │ ├── dashboard_player_background.xml
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── icon.png
│ │ │ ├── icon_album.png
│ │ │ ├── icon_album_drawable.xml
│ │ │ ├── icon_back_dark.png
│ │ │ ├── icon_back_light.png
│ │ │ ├── icon_next.png
│ │ │ ├── icon_pause.png
│ │ │ ├── icon_play.png
│ │ │ ├── icon_play_disabled.xml
│ │ │ ├── icon_prev.png
│ │ │ ├── icon_repeat_dark.png
│ │ │ ├── icon_repeat_light.png
│ │ │ ├── icon_shuffle_dark.png
│ │ │ ├── icon_shuffle_light.png
│ │ │ ├── icon_vol_down.png
│ │ │ ├── icon_vol_up.png
│ │ │ ├── play_pause.xml
│ │ │ ├── play_pause_icon.xml
│ │ │ ├── repeat_selector.xml
│ │ │ ├── shuffle_selector.xml
│ │ │ ├── song_background.xml
│ │ │ ├── timing_seek_bar.xml
│ │ │ ├── volume_seek_bar.xml
│ │ │ └── volume_seek_bar_thumb.xml
│ │ │ ├── font
│ │ │ ├── titillium_web.xml
│ │ │ ├── titillium_web_black.ttf
│ │ │ ├── titillium_web_bold.ttf
│ │ │ ├── titillium_web_bold_italic.ttf
│ │ │ ├── titillium_web_extra_ligh_italic.ttf
│ │ │ ├── titillium_web_extra_light.ttf
│ │ │ ├── titillium_web_italic.ttf
│ │ │ ├── titillium_web_light.ttf
│ │ │ ├── titillium_web_light_italic.ttf
│ │ │ ├── titillium_web_regular.ttf
│ │ │ ├── titillium_web_semi_bold.ttf
│ │ │ └── titillium_web_semi_bold_italic.ttf
│ │ │ ├── layout
│ │ │ ├── album_layout.xml
│ │ │ ├── back_button.xml
│ │ │ ├── category_button.xml
│ │ │ ├── category_buttons.xml
│ │ │ ├── dashboard_layout.xml
│ │ │ ├── generic_list_layout.xml
│ │ │ ├── header.xml
│ │ │ ├── item_album.xml
│ │ │ ├── item_album_song.xml
│ │ │ ├── item_artist.xml
│ │ │ ├── item_artist_album.xml
│ │ │ ├── item_genre.xml
│ │ │ ├── item_song.xml
│ │ │ ├── list_section.xml
│ │ │ ├── main_layout.xml
│ │ │ ├── play_layout.xml
│ │ │ ├── simple_list_layout.xml
│ │ │ └── splash_screen_layout.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── navigation
│ │ │ └── nav_item.xml
│ │ │ ├── values-sw600dp
│ │ │ └── dimens.xml
│ │ │ └── values
│ │ │ ├── attrs.xml
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ ├── build.gradle
│ ├── gradle.properties
│ └── settings.gradle
└── MusicPlayerBackend
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── witekio
│ │ └── whitepaper
│ │ └── musicplayer
│ │ └── backend
│ │ ├── ListMediaPlayer.java
│ │ ├── MediaModel.java
│ │ ├── MediaModelBuilder.java
│ │ ├── MetadataExtractor.java
│ │ ├── ParsingException.java
│ │ ├── RetrieverHandler.java
│ │ └── model
│ │ ├── Album.java
│ │ ├── Artist.java
│ │ ├── Filter.java
│ │ ├── FilterType.java
│ │ ├── Filterable.java
│ │ ├── Song.java
│ │ └── TerFunction.java
│ └── res
│ └── values
│ └── strings.xml
├── Qt
├── .gitignore
└── MusicPlayerApp
│ ├── .clang-format
│ ├── MusicPlayer2 components for PS Bridge.psd
│ ├── MusicPlayerApp.pro
│ ├── MusicPlayerBackend
│ ├── MusicPlayerBackend.pro
│ ├── albummodel.cpp
│ ├── albummodel.h
│ ├── artistmodel.cpp
│ ├── artistmodel.h
│ ├── genremodel.cpp
│ ├── genremodel.h
│ ├── mediametadataparser.cpp
│ ├── mediametadataparser.h
│ ├── musicPlayer.qmltypes
│ ├── musicPlayerBackend.json
│ ├── musicplayerbackend.cpp
│ ├── musicplayerbackend.h
│ ├── musicplayerbackendplugin.cpp
│ ├── musicplayerbackendplugin.h
│ ├── qmldir
│ ├── songmodel.cpp
│ ├── songmodel.h
│ └── songs.qrc
│ └── MusicPlayerUI
│ ├── MusicPlayer2
│ ├── AlbumGridItem.qml
│ ├── AlbumListItem.qml
│ ├── AlbumSongsView.ui.qml
│ ├── AlbumsListView.qml
│ ├── AlbumsView.ui.qml
│ ├── AllSongsView.ui.qml
│ ├── AppView.qml
│ ├── ArtistAlbumsView.ui.qml
│ ├── ArtistListItem.qml
│ ├── ArtistsListView.qml
│ ├── ArtistsView.ui.qml
│ ├── CategoryButton.qml
│ ├── GenreListItem.qml
│ ├── GenresListView.qml
│ ├── GenresView.ui.qml
│ ├── IconButton.qml
│ ├── IconToggleButton.qml
│ ├── ListHighlight.qml
│ ├── ListSectionHeader.qml
│ ├── MainView.ui.qml
│ ├── MusicPlayer2.qml
│ ├── MusicPlayer2.qmlproject
│ ├── MusicPlayer2.qmlproject.qtds
│ ├── NavigationButton.qml
│ ├── NowPlayingButton.qml
│ ├── PlayView.ui.qml
│ ├── ResolutionsComboBox.qml
│ ├── ScreenArea.qml
│ ├── SimpleSongListItem.qml
│ ├── SongListItem.qml
│ ├── SongListView.qml
│ ├── SplashView.ui.qml
│ ├── ViewHeader.qml
│ ├── assets
│ │ ├── icon_album.png
│ │ ├── icon_back_dark.png
│ │ ├── icon_back_light.png
│ │ ├── icon_builtWithQt.png
│ │ ├── icon_close_dark.png
│ │ ├── icon_close_light.png
│ │ ├── icon_next.png
│ │ ├── icon_pause.png
│ │ ├── icon_play.png
│ │ ├── icon_prev.png
│ │ ├── icon_qt.png
│ │ ├── icon_repeat_dark.png
│ │ ├── icon_repeat_light.png
│ │ ├── icon_shuffle_dark.png
│ │ ├── icon_shuffle_light.png
│ │ ├── icon_vol_down.png
│ │ └── icon_vol_up.png
│ ├── imports
│ │ ├── MusicPlayer2
│ │ │ ├── Constants.qml
│ │ │ ├── QtFontBold.qml
│ │ │ ├── QtFontRegular.qml
│ │ │ ├── TitilliumWeb-Bold.ttf
│ │ │ ├── TitilliumWeb-Regular.ttf
│ │ │ └── qmldir
│ │ └── QtQuick
│ │ │ └── Studio
│ │ │ ├── Components
│ │ │ ├── ArcItem.qml
│ │ │ ├── BorderItem.qml
│ │ │ ├── FlipableItem.qml
│ │ │ ├── IsoItem.qml
│ │ │ ├── PieItem.qml
│ │ │ ├── RectangleItem.qml
│ │ │ ├── SvgPathItem.qml
│ │ │ ├── TriangleItem.qml
│ │ │ ├── designer
│ │ │ │ ├── ArcItemSpecifics.qml
│ │ │ │ ├── BorderItemSpecifics.qml
│ │ │ │ ├── FlipableItemSpecifics.qml
│ │ │ │ ├── IsoItemSpecifics.qml
│ │ │ │ ├── MyPlugin.metainfo
│ │ │ │ ├── PieItemSpecifics.qml
│ │ │ │ ├── RectangleItemSpecifics.qml
│ │ │ │ ├── SvgPathItemSpecifics.qml
│ │ │ │ ├── TriangleItemSpecifics.qml
│ │ │ │ └── images
│ │ │ │ │ ├── custom-border-16px.png
│ │ │ │ │ ├── custom-border-24px.png
│ │ │ │ │ ├── custom-border-24px@2x.png
│ │ │ │ │ ├── custom-rectangle-16px.png
│ │ │ │ │ ├── custom-rectangle-24px.png
│ │ │ │ │ ├── custom-rectangle-24px@2x.png
│ │ │ │ │ ├── iso-icons-16px.png
│ │ │ │ │ ├── iso-icons-24px.png
│ │ │ │ │ ├── iso-icons-24px@2x.png
│ │ │ │ │ ├── item-arc-16px.png
│ │ │ │ │ ├── item-arc-24px.png
│ │ │ │ │ ├── item-arc-24px@2x.png
│ │ │ │ │ ├── item-flippable-16px.png
│ │ │ │ │ ├── item-flippable-24px.png
│ │ │ │ │ ├── item-flippable-24px@2x.png
│ │ │ │ │ ├── item-pie-16px.png
│ │ │ │ │ ├── item-pie-24px.png
│ │ │ │ │ ├── item-pie-24px@2x.png
│ │ │ │ │ ├── item-svg-16px.png
│ │ │ │ │ ├── item-svg-24px.png
│ │ │ │ │ ├── item-svg-24px@2x.png
│ │ │ │ │ ├── item-triangle-16px.png
│ │ │ │ │ ├── item-triangle-24px.png
│ │ │ │ │ └── item-triangle-24px@2x.png
│ │ │ └── qmldir
│ │ │ └── Effects
│ │ │ ├── BlendItem.qml
│ │ │ ├── BrightnessContrastItem.qml
│ │ │ ├── ColorOverlayItem.qml
│ │ │ ├── ColorizeItem.qml
│ │ │ ├── DirectionalBlurItem.qml
│ │ │ ├── DropShadowItem.qml
│ │ │ ├── FastBlurItem.qml
│ │ │ ├── GaussianBlurItem.qml
│ │ │ ├── GlowItem.qml
│ │ │ ├── HueSaturationItem.qml
│ │ │ ├── MaskItem.qml
│ │ │ ├── MaskedBlurItem.qml
│ │ │ ├── RadialBlurItem.qml
│ │ │ ├── RotationItem.qml
│ │ │ ├── SaturationItem.qml
│ │ │ ├── ZoomBlurItem.qml
│ │ │ ├── designer
│ │ │ ├── BrightnessContrastItemSpecifics.qml
│ │ │ ├── ColorOverlayItemSpecifics.qml
│ │ │ ├── ColorizeItemSpecifics.qml
│ │ │ ├── DirectionalBlurItemSpecifics.qml
│ │ │ ├── DropShadowItemSpecifics.qml
│ │ │ ├── FastBlurItemSpecifics.qml
│ │ │ ├── GlowItemSpecifics.qml
│ │ │ ├── HueSaturationItemSpecifics.qml
│ │ │ ├── MyPlugin.metainfo
│ │ │ ├── RadialBlurItemSpecifics.qml
│ │ │ ├── SaturationItemSpecifics.qml
│ │ │ ├── ZoomBlurItemSpecifics.qml
│ │ │ └── images
│ │ │ │ ├── blend-mode-16px.png
│ │ │ │ ├── blend-mode-24px.png
│ │ │ │ ├── blend-mode-24px@2x.png
│ │ │ │ ├── brightness-contrast-16px.png
│ │ │ │ ├── brightness-contrast-24px.png
│ │ │ │ ├── brightness-contrast-24px@2x.png
│ │ │ │ ├── colourize-16px.png
│ │ │ │ ├── colourize-24px.png
│ │ │ │ ├── colourize-24px@2x.png
│ │ │ │ ├── directional-blur-16px.png
│ │ │ │ ├── directional-blur-24px.png
│ │ │ │ ├── directional-blur-24px@2x.png
│ │ │ │ ├── drop-shadow-16px.png
│ │ │ │ ├── drop-shadow-24px.png
│ │ │ │ ├── drop-shadow-24px@2x.png
│ │ │ │ ├── fast-blur-16px.png
│ │ │ │ ├── fast-blur-24px.png
│ │ │ │ ├── fast-blur-24px@2x.png
│ │ │ │ ├── gamma-adjust-16px.png
│ │ │ │ ├── gamma-adjust-24px.png
│ │ │ │ ├── gamma-adjust-24px@2x.png
│ │ │ │ ├── glow-16px.png
│ │ │ │ ├── glow-24px.png
│ │ │ │ ├── glow-24px@2x.png
│ │ │ │ ├── hue-satuartion-16px.png
│ │ │ │ ├── hue-satuartion-24px.png
│ │ │ │ ├── hue-satuartion-24px@2x.png
│ │ │ │ ├── mask-16px.png
│ │ │ │ ├── mask-24px.png
│ │ │ │ ├── mask-24px@2x.png
│ │ │ │ ├── mask-blur-16px.png
│ │ │ │ ├── mask-blur-24px.png
│ │ │ │ ├── mask-blur-24px@2x.png
│ │ │ │ ├── radial-blur-16px.png
│ │ │ │ ├── radial-blur-24px.png
│ │ │ │ ├── radial-blur-24px@2x.png
│ │ │ │ ├── saturation-16px.png
│ │ │ │ ├── saturation-24px.png
│ │ │ │ ├── saturation-24px@2x.png
│ │ │ │ ├── zoom-blur-16px.png
│ │ │ │ ├── zoom-blur-24px.png
│ │ │ │ └── zoom-blur-24px@2x.png
│ │ │ └── qmldir
│ └── qtquickcontrols2.conf
│ ├── MusicPlayerUI.pro
│ ├── main.cpp
│ ├── main.qml
│ └── qml.qrc
├── README.md
└── doc
└── img
├── android_all_songs.png
├── android_avd_manager_launcher.png
├── android_device_selection_emulator.png
├── android_devices.png
├── android_home.png
├── android_playing_song.png
├── android_project_structure.png
├── device_debug_mode.png
├── device_file_transfer.png
├── device_uninstall_for_all_users.png
├── qt_all_songs.png
├── qt_home.png
├── qt_mingw_settings.png
├── qt_playing_song.png
├── qt_project_structure.png
├── qt_run_settings.png
└── witekio.png
/Android/MusicPlayer/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 29
5 | buildToolsVersion '29.0.2'
6 | defaultConfig {
7 | applicationId "com.witekio.whitepaper.musicplayer"
8 | minSdkVersion 28
9 | targetSdkVersion 29
10 | versionCode 2
11 | versionName "v0.2"
12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13 | }
14 |
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 |
22 | compileOptions {
23 | sourceCompatibility = 1.8
24 | targetCompatibility = 1.8
25 | }
26 |
27 | }
28 |
29 | dependencies {
30 | implementation fileTree(dir: 'libs', include: ['*.jar'])
31 | implementation 'androidx.appcompat:appcompat:1.1.0'
32 | implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
33 |
34 | implementation "androidx.navigation:navigation-fragment:2.2.0"
35 | implementation "androidx.navigation:navigation-ui:2.2.0"
36 |
37 | implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
38 | implementation 'org.jetbrains:annotations:15.0'
39 |
40 | implementation project(path: ':musicplayerbackend')
41 | }
42 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/SharedViewModel.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.annotation.NonNull;
6 | import androidx.lifecycle.ViewModel;
7 |
8 | import com.witekio.whitepaper.musicplayer.backend.ListMediaPlayer;
9 | import com.witekio.whitepaper.musicplayer.backend.MediaModel;
10 |
11 | public class SharedViewModel extends ViewModel {
12 |
13 | private MediaModel mMediaModel;
14 | private ListMediaPlayer mMediaPlayer;
15 |
16 | public void initialize(Context context) {
17 | mMediaPlayer = new ListMediaPlayer(context);
18 | }
19 |
20 | public void setMediaModel(@NonNull MediaModel mediaModel) {
21 | mMediaModel = mediaModel;
22 | }
23 | public MediaModel getMediaModel() {
24 | return mMediaModel;
25 | }
26 |
27 | public ListMediaPlayer getListMediaPlayer() {
28 | return mMediaPlayer;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/adapter/AlbumSectionAdapter.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.adapter;
2 |
3 | import android.content.Context;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | import com.witekio.whitepaper.musicplayer.R;
9 | import com.witekio.whitepaper.musicplayer.backend.model.Album;
10 | import com.witekio.whitepaper.musicplayer.layout.model.Section;
11 |
12 | import java.util.Comparator;
13 | import java.util.List;
14 | import java.util.function.Consumer;
15 |
16 | public class AlbumSectionAdapter extends SectionAdapter {
17 |
18 | private final Context mContext;
19 | private final Consumer mOnAlbumSelected;
20 |
21 | public AlbumSectionAdapter(Context context, List albums, Consumer onAlbumSelected) {
22 | super(albums);
23 | mContext = context;
24 | mOnAlbumSelected = onAlbumSelected;
25 | }
26 |
27 | @Override
28 | protected boolean isSameSection(Section lastSection, Album element) {
29 | return lastSection.getTitle().equals(getSectionLabel(element));
30 | }
31 |
32 | @Override
33 | protected String getSectionLabel(Album element) {
34 | return String.valueOf(element.getName().charAt(0));
35 | }
36 |
37 | @Override
38 | protected Comparator super Album> getComparator() {
39 | return (Comparator) (one, two) -> one.getName().compareTo(two.getName());
40 | }
41 |
42 | @Override
43 | protected BaseViewHolder getElementViewHolder(ViewGroup parent) {
44 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_album, parent, false);
45 | return new AlbumViewHolder(mContext, view, mOnAlbumSelected);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/adapter/AlbumViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.adapter;
2 |
3 | import android.content.Context;
4 | import android.graphics.Bitmap;
5 | import android.view.View;
6 | import android.widget.ImageView;
7 | import android.widget.TextView;
8 |
9 | import com.witekio.whitepaper.musicplayer.R;
10 | import com.witekio.whitepaper.musicplayer.backend.model.Album;
11 |
12 | import java.util.function.Consumer;
13 |
14 | class AlbumViewHolder extends BaseViewHolder {
15 |
16 | private final Context mContext;
17 | private final View mView;
18 | private final Consumer mOnAlbumSelected;
19 |
20 | private final TextView mAlbumName;
21 | private final TextView mArtistName;
22 | private final ImageView mAlbumArtView;
23 |
24 | public AlbumViewHolder(Context context, View itemView, Consumer onAlbumSelected) {
25 | super(itemView);
26 | mContext = context;
27 | mView = itemView;
28 | mOnAlbumSelected = onAlbumSelected;
29 | mAlbumName = itemView.findViewById(R.id.album_name);
30 | mArtistName = itemView.findViewById(R.id.album_artist);
31 | mAlbumArtView = itemView.findViewById(R.id.album_art_view);
32 | }
33 |
34 | @Override
35 | void bind(Object item) {
36 | if (item instanceof Album) {
37 | Album album = (Album) item;
38 |
39 | mAlbumName.setText(album.getName());
40 | mArtistName.setText(album.getArtistName());
41 |
42 | Bitmap albumArt = album.getArt(mContext);
43 | if (albumArt != null) {
44 | mAlbumArtView.setImageBitmap(albumArt);
45 | } else {
46 | mAlbumArtView.setImageResource(R.drawable.icon_album);
47 | }
48 |
49 | mView.setOnClickListener(view -> mOnAlbumSelected.accept(album));
50 | }
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/adapter/ArtistSectionAdapter.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.adapter;
2 |
3 | import android.view.LayoutInflater;
4 | import android.view.View;
5 | import android.view.ViewGroup;
6 |
7 | import com.witekio.whitepaper.musicplayer.R;
8 | import com.witekio.whitepaper.musicplayer.backend.MediaModel;
9 | import com.witekio.whitepaper.musicplayer.backend.model.Artist;
10 | import com.witekio.whitepaper.musicplayer.layout.model.Section;
11 |
12 | import java.util.Comparator;
13 | import java.util.List;
14 | import java.util.function.Consumer;
15 |
16 | public class ArtistSectionAdapter extends SectionAdapter {
17 |
18 | private final Consumer mOnArtistSelected;
19 | private final MediaModel mMediaModel;
20 |
21 | public ArtistSectionAdapter(List artists, MediaModel mediaModel, Consumer onArtistSelected) {
22 | super(artists);
23 | mMediaModel = mediaModel;
24 | mOnArtistSelected = onArtistSelected;
25 | }
26 |
27 | @Override
28 | protected boolean isSameSection(Section lastSection, Artist element) {
29 | return lastSection.getTitle().equals(getSectionLabel(element));
30 | }
31 |
32 | @Override
33 | protected String getSectionLabel(Artist element) {
34 | return String.valueOf(element.getName().charAt(0));
35 | }
36 |
37 | @Override
38 | protected Comparator super Artist> getComparator() {
39 | return (Comparator) (one, two) -> one.getName().compareTo(two.getName());
40 | }
41 |
42 | @Override
43 | protected BaseViewHolder getElementViewHolder(ViewGroup parent) {
44 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_artist, parent, false);
45 | return new ArtistViewHolder(mMediaModel, view, mOnArtistSelected);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/adapter/ArtistViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.adapter;
2 |
3 | import android.view.View;
4 | import android.widget.TextView;
5 |
6 | import androidx.annotation.NonNull;
7 |
8 | import com.witekio.whitepaper.musicplayer.R;
9 | import com.witekio.whitepaper.musicplayer.backend.MediaModel;
10 | import com.witekio.whitepaper.musicplayer.backend.model.Artist;
11 | import com.witekio.whitepaper.musicplayer.backend.model.FilterType;
12 |
13 | import java.util.function.Consumer;
14 |
15 | class ArtistViewHolder extends BaseViewHolder {
16 |
17 | private final MediaModel mMediaModel;
18 | private final Consumer mOnArtistSelected;
19 | private final TextView mArtistName;
20 | private final TextView mAlbumCount;
21 | private final TextView mSongCount;
22 |
23 | ArtistViewHolder(@NonNull MediaModel mediaModel, @NonNull View itemView, Consumer onArtistSelected) {
24 | super(itemView);
25 | mMediaModel = mediaModel;
26 | mOnArtistSelected = onArtistSelected;
27 | mArtistName = itemView.findViewById(R.id.artist_name);
28 | mAlbumCount = itemView.findViewById(R.id.album_count);
29 | mSongCount = itemView.findViewById(R.id.song_count);
30 | }
31 |
32 | void bind(Object item) {
33 | if (item instanceof Artist) {
34 | Artist artist = (Artist) item;
35 | mArtistName.setText(artist.getName());
36 |
37 | mMediaModel.setFilter(FilterType.ARTIST, artist.getName());
38 | mAlbumCount.setText(String.valueOf(mMediaModel.countFilteredAlbums()));
39 | mSongCount.setText(String.valueOf(mMediaModel.countFilteredSongs()));
40 |
41 | itemView.setOnClickListener(view -> mOnArtistSelected.accept(artist));
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/adapter/BaseViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.adapter;
2 |
3 | import android.view.View;
4 |
5 | import androidx.annotation.NonNull;
6 | import androidx.recyclerview.widget.RecyclerView;
7 |
8 | public abstract class BaseViewHolder extends RecyclerView.ViewHolder {
9 |
10 | BaseViewHolder(@NonNull View itemView) {
11 | super(itemView);
12 | }
13 |
14 | abstract void bind(Object item);
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/adapter/GenreListAdapter.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.adapter;
2 |
3 | import android.view.LayoutInflater;
4 | import android.view.View;
5 | import android.view.ViewGroup;
6 | import android.widget.TextView;
7 |
8 | import androidx.annotation.NonNull;
9 | import androidx.recyclerview.widget.RecyclerView;
10 |
11 | import com.witekio.whitepaper.musicplayer.R;
12 | import com.witekio.whitepaper.musicplayer.backend.MediaModel;
13 | import com.witekio.whitepaper.musicplayer.backend.model.FilterType;
14 |
15 | import java.util.List;
16 | import java.util.function.Consumer;
17 |
18 | public class GenreListAdapter extends RecyclerView.Adapter {
19 |
20 | private final List mGenres;
21 | private final Consumer mOnGenreSelected;
22 | private final MediaModel mMediaModel;
23 |
24 | public GenreListAdapter(List genres, MediaModel mediaModel, Consumer onGenreSelected) {
25 | mGenres = genres;
26 | mMediaModel = mediaModel;
27 | mOnGenreSelected = onGenreSelected;
28 | }
29 |
30 | @NonNull
31 | @Override
32 | public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
33 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_genre, parent, false);
34 | return new ViewHolder(view);
35 | }
36 |
37 | @Override
38 | public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
39 | holder.bind(mGenres.get(position));
40 | }
41 |
42 | @Override
43 | public int getItemCount() {
44 | return mGenres.size();
45 | }
46 |
47 | class ViewHolder extends RecyclerView.ViewHolder {
48 |
49 | private final TextView mGenreName;
50 | private final TextView mAlbumCount;
51 | private final TextView mArtistCount;
52 |
53 | ViewHolder(@NonNull View itemView) {
54 | super(itemView);
55 | mGenreName = itemView.findViewById(R.id.genre_name);
56 | mAlbumCount = itemView.findViewById(R.id.album_count);
57 | mArtistCount = itemView.findViewById(R.id.artist_count);
58 | }
59 |
60 | void bind(String genre) {
61 | mGenreName.setText(genre);
62 |
63 | mMediaModel.setFilter(FilterType.GENRE, genre);
64 | mAlbumCount.setText(String.valueOf(mMediaModel.countFilteredAlbums()));
65 | mArtistCount.setText(String.valueOf(mMediaModel.countFilteredArtists()));
66 |
67 | itemView.setOnClickListener(view -> mOnGenreSelected.accept(genre));
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/fragment/AbstractListFragment.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 | import android.widget.TextView;
8 |
9 | import androidx.annotation.NonNull;
10 | import androidx.annotation.Nullable;
11 | import androidx.lifecycle.ViewModelProvider;
12 | import androidx.recyclerview.widget.LinearLayoutManager;
13 | import androidx.recyclerview.widget.RecyclerView;
14 |
15 | import com.witekio.whitepaper.musicplayer.R;
16 | import com.witekio.whitepaper.musicplayer.SharedViewModel;
17 |
18 | abstract class AbstractListFragment extends BackFragment {
19 |
20 | SharedViewModel mSharedViewModel;
21 |
22 | @Override
23 | public void onCreate(@Nullable Bundle savedInstanceState) {
24 | mSharedViewModel = new ViewModelProvider(getActivity()).get(SharedViewModel.class);
25 | super.onCreate(savedInstanceState);
26 | }
27 |
28 | @Nullable
29 | @Override
30 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
31 | View layout = inflater.inflate(R.layout.generic_list_layout, container, false);
32 |
33 | setupBack(layout);
34 |
35 | TextView title = layout.findViewById(R.id.title);
36 | title.setText(getTitle());
37 |
38 | RecyclerView recyclerView = layout.findViewById(R.id.list_sections);
39 | LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
40 | recyclerView.setLayoutManager(linearLayoutManager);
41 | recyclerView.setAdapter(getAdapter());
42 | return layout;
43 | }
44 |
45 | protected abstract String getTitle();
46 |
47 | protected abstract RecyclerView.Adapter getAdapter();
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/fragment/AlbumListFragment.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.util.Log;
5 | import android.view.View;
6 |
7 | import androidx.navigation.Navigation;
8 | import androidx.recyclerview.widget.RecyclerView;
9 |
10 | import com.witekio.whitepaper.musicplayer.R;
11 | import com.witekio.whitepaper.musicplayer.backend.model.Album;
12 | import com.witekio.whitepaper.musicplayer.backend.model.Filter;
13 | import com.witekio.whitepaper.musicplayer.backend.model.FilterType;
14 | import com.witekio.whitepaper.musicplayer.layout.adapter.AlbumSectionAdapter;
15 |
16 | import java.util.List;
17 |
18 | public class AlbumListFragment extends AbstractListFragment {
19 |
20 | private static final String TAG = "ALBUM_LIST";
21 |
22 | @Override
23 | protected String getTitle() {
24 | return getString(R.string.all_albums);
25 | }
26 |
27 | @Override
28 | protected RecyclerView.Adapter getAdapter() {
29 | List albums = mSharedViewModel.getMediaModel().getAlbums();
30 | return new AlbumSectionAdapter(getContext(), albums, this::onAlbumSelected);
31 | }
32 |
33 | void onAlbumSelected(Album album) {
34 | View view = getView();
35 | if (view == null) {
36 | Log.e(TAG, "Can't navigate: View is null");
37 | return;
38 | }
39 | Bundle bundle = new Bundle();
40 | bundle.putSerializable(Filter.class.toString(), new Filter(FilterType.ALBUM, album.getName()));
41 | Navigation.findNavController(view).navigate(R.id.album_fragment, bundle);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/fragment/ArtistListFragment.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.util.Log;
5 | import android.view.View;
6 |
7 | import androidx.navigation.Navigation;
8 | import androidx.recyclerview.widget.RecyclerView;
9 |
10 | import com.witekio.whitepaper.musicplayer.R;
11 | import com.witekio.whitepaper.musicplayer.backend.MediaModel;
12 | import com.witekio.whitepaper.musicplayer.backend.model.Artist;
13 | import com.witekio.whitepaper.musicplayer.backend.model.Filter;
14 | import com.witekio.whitepaper.musicplayer.backend.model.FilterType;
15 | import com.witekio.whitepaper.musicplayer.layout.adapter.ArtistSectionAdapter;
16 |
17 | public class ArtistListFragment extends AbstractListFragment {
18 |
19 | private static final String TAG = "ARTIST_LIST";
20 |
21 | @Override
22 | protected String getTitle() {
23 | return getString(R.string.all_artists);
24 | }
25 |
26 | @Override
27 | protected RecyclerView.Adapter getAdapter() {
28 | MediaModel mediaModel = mSharedViewModel.getMediaModel();
29 | return new ArtistSectionAdapter(mediaModel.getArtists(), mediaModel, this::onArtistSelected);
30 | }
31 |
32 | private void onArtistSelected(Artist artist) {
33 |
34 | View view = getView();
35 | if (view == null) {
36 | Log.e(TAG, "Navigation failed : View is null");
37 | return;
38 | }
39 |
40 | Bundle bundle = new Bundle();
41 | bundle.putSerializable(Filter.class.toString(), new Filter(FilterType.ARTIST, artist.getName()));
42 | Navigation.findNavController(view).navigate(R.id.artist_filtered_album_list_fragment, bundle);
43 |
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/fragment/BackFragment.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.fragment;
2 |
3 | import android.view.View;
4 |
5 | import androidx.fragment.app.Fragment;
6 | import androidx.navigation.Navigation;
7 |
8 | import com.witekio.whitepaper.musicplayer.R;
9 |
10 | abstract class BackFragment extends Fragment {
11 |
12 | void setupBack(View layout) {
13 | View back = layout.findViewById(R.id.back_button);
14 | back.setOnClickListener(view -> Navigation.findNavController(view).popBackStack());
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/fragment/FilteredAlbumListFragment.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | import androidx.annotation.NonNull;
9 | import androidx.annotation.Nullable;
10 | import androidx.recyclerview.widget.RecyclerView;
11 |
12 | import com.witekio.whitepaper.musicplayer.backend.model.Album;
13 | import com.witekio.whitepaper.musicplayer.backend.model.Filter;
14 | import com.witekio.whitepaper.musicplayer.layout.adapter.AlbumSectionAdapter;
15 |
16 | import java.util.List;
17 |
18 | public class FilteredAlbumListFragment extends AlbumListFragment {
19 |
20 | @Nullable
21 | @Override
22 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
23 | if (savedInstanceState == null) {
24 | savedInstanceState = getArguments();
25 | }
26 | if (savedInstanceState != null && savedInstanceState.containsKey(Filter.class.toString())) {
27 | Filter filter = (Filter) savedInstanceState.getSerializable(Filter.class.toString());
28 | mSharedViewModel.getMediaModel().setFilter(filter);
29 | }
30 | return super.onCreateView(inflater, container, savedInstanceState);
31 | }
32 |
33 | protected String getTitle() {
34 | Filter filter = mSharedViewModel.getMediaModel().getFilter();
35 | if (filter == null){
36 | return super.getTitle();
37 | } else {
38 | return filter.getValue();
39 | }
40 | }
41 |
42 | @Override
43 | protected RecyclerView.Adapter getAdapter() {
44 | List albums = mSharedViewModel.getMediaModel().getFilteredAlbums();
45 | return new AlbumSectionAdapter(getContext(), albums, this::onAlbumSelected);
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/fragment/SongListFragment.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.fragment;
2 |
3 | import android.util.Log;
4 |
5 | import androidx.navigation.Navigation;
6 | import androidx.recyclerview.widget.RecyclerView;
7 |
8 | import com.witekio.whitepaper.musicplayer.R;
9 | import com.witekio.whitepaper.musicplayer.backend.ListMediaPlayer;
10 | import com.witekio.whitepaper.musicplayer.backend.model.Song;
11 | import com.witekio.whitepaper.musicplayer.layout.adapter.SongSectionAdapter;
12 |
13 | import java.io.IOException;
14 | import java.util.List;
15 |
16 | public class SongListFragment extends AbstractListFragment{
17 |
18 | private static final String TAG = "SONG_LIST";
19 |
20 | @Override
21 | protected String getTitle() {
22 | return getString(R.string.all_songs);
23 | }
24 |
25 | @Override
26 | protected RecyclerView.Adapter getAdapter() {
27 | List songs = mSharedViewModel.getMediaModel().getSongs();
28 | return new SongSectionAdapter(getContext(), mSharedViewModel.getListMediaPlayer(), songs, song -> onSongSelected(songs, song));
29 | }
30 |
31 | private void onSongSelected(List songs, Song song) {
32 | if (getView() == null) {
33 | Log.e(TAG, "View is null, can't navigate");
34 | return;
35 | }
36 | ListMediaPlayer mediaPlayer = mSharedViewModel.getListMediaPlayer();
37 | try {
38 | mediaPlayer.setPlaylist(songs, songs.indexOf(song));
39 | Navigation.findNavController(getView()).navigate(R.id.play_fragment);
40 | } catch (IOException | IllegalStateException e) {
41 | Log.e(TAG, "Song file cannot be read [" + (song == null ? "No song" : song.getUri()) + "] : " + e.getMessage());
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/layout/model/Section.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.layout.model;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | public class Section {
6 |
7 | private final String mTitle;
8 | private int mCount;
9 |
10 | public Section(@NonNull String title) {
11 | mTitle = title;
12 | mCount = 0;
13 | }
14 |
15 | public void increment() {
16 | ++mCount;
17 | }
18 |
19 | public int getCount() {
20 | return mCount;
21 | }
22 |
23 | @NonNull
24 | public String getTitle() {
25 | return mTitle;
26 | }
27 | }
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/java/com/witekio/whitepaper/musicplayer/view/SongView.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.widget.RelativeLayout;
6 |
7 | import com.witekio.whitepaper.musicplayer.R;
8 |
9 | public class SongView extends RelativeLayout {
10 |
11 | private static final int[] STATE_PLAYING = {R.attr.state_playing};
12 | private static final int[] STATE_PAUSED = {R.attr.state_paused};
13 |
14 | private boolean mPlayingState = false;
15 | private boolean mPausedState = false;
16 |
17 | public SongView(Context context) {
18 | super(context);
19 | }
20 |
21 | public SongView(Context context, AttributeSet attrs) {
22 | super(context, attrs);
23 | }
24 |
25 | public SongView(Context context, AttributeSet attrs, int defStyleAttr) {
26 | super(context, attrs, defStyleAttr);
27 | }
28 |
29 | public SongView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
30 | super(context, attrs, defStyleAttr, defStyleRes);
31 | }
32 |
33 | @Override
34 | protected int[] onCreateDrawableState(int extraSpace) {
35 | final int[] drawableState = super.onCreateDrawableState(extraSpace + 2);
36 | if (mPlayingState) {
37 | mergeDrawableStates(drawableState, STATE_PLAYING);
38 | }
39 | if (mPausedState) {
40 | mergeDrawableStates(drawableState, STATE_PAUSED);
41 | }
42 | return drawableState;
43 | }
44 |
45 | public void setPlayingState(boolean playingState) {
46 | mPlayingState = playingState;
47 | }
48 |
49 | public void setPausedState(boolean pausedState) {
50 | mPausedState = pausedState;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/color/category_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/color/play_pause_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/color/song_artist.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable-v24/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
12 |
13 |
19 |
22 |
25 |
26 |
27 |
28 |
34 |
35 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/album_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/album_song_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
-
7 |
8 |
-
9 |
10 |
11 |
12 |
13 | -
16 |
17 |
18 |
19 |
20 |
21 |
22 | -
23 |
24 |
-
25 |
26 |
27 |
28 |
29 | -
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | -
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/back_arrow_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
-
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | -
15 |
16 |
-
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/category_button_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 | -
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/dashboard_player_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 | -
9 |
10 |
11 |
12 |
13 | -
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_album.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_album_drawable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_back_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_back_dark.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_back_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_back_light.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_next.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_pause.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_play.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_play_disabled.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_prev.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_repeat_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_repeat_dark.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_repeat_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_repeat_light.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_shuffle_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_shuffle_dark.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_shuffle_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_shuffle_light.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_vol_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_vol_down.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/icon_vol_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/drawable/icon_vol_up.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/play_pause.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/play_pause_icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/repeat_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
-
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | -
16 |
17 |
-
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/shuffle_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
-
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | -
16 |
17 |
-
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/song_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
-
7 |
8 |
-
9 |
10 |
11 |
12 |
13 | -
16 |
17 |
18 |
19 |
20 |
21 |
22 | -
23 |
24 |
-
25 |
26 |
27 |
28 |
29 | -
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | -
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/timing_seek_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
6 |
7 |
8 |
9 |
10 |
11 |
12 | -
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/volume_seek_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/drawable/volume_seek_bar_thumb.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
13 |
14 |
18 |
19 |
23 |
24 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_black.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_bold.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_bold_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_bold_italic.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_extra_ligh_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_extra_ligh_italic.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_extra_light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_extra_light.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_italic.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_light.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_light_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_light_italic.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_regular.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_semi_bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_semi_bold.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/font/titillium_web_semi_bold_italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/font/titillium_web_semi_bold_italic.ttf
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/album_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
23 |
24 |
30 |
31 |
36 |
37 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/back_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/category_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
17 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/category_buttons.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
15 |
16 |
24 |
25 |
33 |
34 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/generic_list_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
19 |
20 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/header.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
27 |
28 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/item_album.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
25 |
26 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/item_album_song.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
27 |
28 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/item_artist.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
16 |
17 |
26 |
27 |
35 |
36 |
37 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/item_artist_album.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
24 |
25 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/item_genre.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
16 |
17 |
26 |
27 |
35 |
36 |
37 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/item_song.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
23 |
24 |
30 |
31 |
32 |
33 |
44 |
45 |
51 |
52 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/list_section.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
17 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/main_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
16 |
17 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/simple_list_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
19 |
20 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/layout/splash_screen_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
22 |
23 |
29 |
30 |
36 |
37 |
43 |
44 |
45 |
46 |
54 |
55 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Android/MusicPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/navigation/nav_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
15 |
16 |
20 |
21 |
25 |
26 |
30 |
31 |
35 |
36 |
40 |
41 |
45 |
46 |
50 |
51 |
55 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/values-sw600dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 45dp
4 | 95dp
5 | 160dp
6 | 200dp
7 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #00ade9
4 | #09102b
5 | #3a4055
6 | #cecfd5
7 | #848895
8 | #3d4257
9 | #282c43
10 | #7f09102b
11 |
12 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 12sp
4 | 18sp
5 | 22sp
6 | 34sp
7 |
8 | // margin definitions
9 | 8dp
10 | 12dp
11 | 24dp
12 | 32dp
13 | 60dp
14 |
15 | // item sizes
16 | 40
17 | 56
18 | 80
19 |
20 | 23dp
21 | 45dp
22 | 95dp
23 | 160dp
24 |
25 | 80dp
26 | 32dp
27 |
28 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | MusicPlayer
3 | Music
4 | Player
5 | Genres
6 | Artists
7 | Albums
8 | Songs
9 | by
10 | In order to read your music files, MusicPlayer needs permission to access, read only, to your storage.
11 | Understood!
12 | Permission issue
13 | Fatal permission issue
14 | You choose to doesn\'t allow MusicPlayer to access on reading to your storage. We respect your decision but MusicPlayer cannot work properly under this condition. Accordingly, MusicPlayer is going to stop now.
15 | So long…
16 | ALL SONGS
17 | previous song
18 | play song
19 | next song
20 | now
21 | playing
22 | Album picture
23 | Volume down
24 | Data issue
25 | OK
26 | Selection of folder wasn\'t successful. Could you try again?
27 | ]]>
28 | shuffle button
29 | repeat button
30 | ALL ALBUMS
31 | back button
32 | Volume up
33 | ALL GENRES
34 | Album art
35 | Witekio Logo
36 | ALL ARTISTS
37 |
38 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | google()
6 | jcenter()
7 |
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.5.3'
11 |
12 | // NOTE: Do not place your application dependencies here; they belong
13 | // in the individual module build.gradle files
14 | }
15 | }
16 |
17 | allprojects {
18 | repositories {
19 | google()
20 | jcenter()
21 |
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app's APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 |
21 |
--------------------------------------------------------------------------------
/Android/MusicPlayer/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app',
2 | ':musicplayerbackend'
3 |
4 | rootProject.name='MusicPlayer'
5 | project(':musicplayerbackend').projectDir = new File('../MusicPlayerBackend')
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea
5 | .DS_Store
6 | /build
7 | /captures
8 | .externalNativeBuild
9 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 29
5 | buildToolsVersion "29.0.2"
6 | defaultConfig {
7 | minSdkVersion 28
8 | targetSdkVersion 29
9 | versionCode 1
10 | versionName "1.0"
11 |
12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13 | }
14 |
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 |
22 | compileOptions {
23 | sourceCompatibility = 1.8
24 | targetCompatibility = 1.8
25 | }
26 | }
27 |
28 | dependencies {
29 | implementation fileTree(dir: 'libs', include: ['*.jar'])
30 |
31 | implementation 'androidx.appcompat:appcompat:1.1.0'
32 | implementation 'org.jetbrains:annotations:15.0'
33 | implementation 'androidx.documentfile:documentfile:1.0.1'
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/ParsingException.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend;
2 |
3 | class ParsingException extends Throwable {
4 |
5 | ParsingException(RuntimeException e) {
6 | super(e);
7 | }
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/RetrieverHandler.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend;
2 |
3 | import android.content.Context;
4 | import android.media.MediaMetadataRetriever;
5 | import android.net.Uri;
6 |
7 | class RetrieverHandler implements AutoCloseable {
8 |
9 | private final MediaMetadataRetriever inner;
10 |
11 | RetrieverHandler(Context context, Uri uri) throws ParsingException {
12 | inner = new MediaMetadataRetriever();
13 | setDataSource(context, uri);
14 | }
15 |
16 | @Override
17 | public void close() {
18 | inner.release();
19 | }
20 |
21 | private void setDataSource(Context context, Uri uri) throws IllegalArgumentException, ParsingException {
22 | try {
23 | inner.setDataSource(context, uri);
24 | } catch (RuntimeException e) {
25 | throw new ParsingException(e);
26 | }
27 | }
28 |
29 | public String extractMetadata(int keyCode) {
30 | return inner.extractMetadata(keyCode);
31 | }
32 |
33 | public byte[] getEmbeddedPicture() {
34 | return inner.getEmbeddedPicture();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/model/Album.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend.model;
2 |
3 | import android.content.Context;
4 | import android.graphics.Bitmap;
5 |
6 | import org.jetbrains.annotations.NotNull;
7 |
8 | import java.util.Objects;
9 | import java.util.function.Function;
10 |
11 | public class Album implements Comparable, Filterable {
12 |
13 | private final String mName;
14 | private final String mArtistName;
15 | private final String mGenre;
16 | private final Function mArtCallback;
17 |
18 | public Album(@NotNull String name, @NotNull String artistName, @NotNull String genre, @NotNull Function artCallback) {
19 | mName = name;
20 | mArtistName = artistName;
21 | mGenre = genre;
22 | mArtCallback = artCallback;
23 | }
24 |
25 | public String getName() {
26 | return mName;
27 | }
28 |
29 | public String getArtistName() {
30 | return mArtistName;
31 | }
32 |
33 | public Bitmap getArt(Context context) {
34 | return mArtCallback.apply(context);
35 | }
36 |
37 | @Override
38 | public int compareTo(Album o) {
39 | return mName.compareTo(o.mName);
40 | }
41 |
42 | @Override
43 | public boolean equals(Object o) {
44 | if (this == o) {
45 | return true;
46 | }
47 | if (!(o instanceof Album)) {
48 | return false;
49 | }
50 | Album album = (Album) o;
51 | return Objects.equals(mName, album.mName);
52 | }
53 |
54 | @Override
55 | public int hashCode() {
56 | return Objects.hash(mName);
57 | }
58 |
59 | @Override
60 | public String getField(FilterType filter) {
61 | switch (filter) {
62 | case ALBUM:
63 | return mName;
64 | case GENRE:
65 | return mGenre;
66 | case ARTIST:
67 | return mArtistName;
68 | default:
69 | throw new IllegalArgumentException("Filter " + filter + " doesn't exist for " + this.getClass());
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/model/Artist.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend.model;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.util.Objects;
6 |
7 | public class Artist implements Comparable, Filterable {
8 |
9 | private final String mName;
10 | private final String mGenre;
11 |
12 | public Artist(@NotNull String name, @NotNull String genre) {
13 | mName = name;
14 | mGenre = genre;
15 | }
16 |
17 | public String getName() {
18 | return mName;
19 | }
20 |
21 | @Override
22 | public String getField(FilterType filter) {
23 | if (FilterType.GENRE.equals(filter)) {
24 | return mGenre;
25 | } else {
26 | throw new IllegalArgumentException("Filter " + filter + " doesn't exist for " + this.getClass());
27 | }
28 | }
29 |
30 | @Override
31 | public int compareTo(Artist o) {
32 | return mName.compareTo(o.mName);
33 | }
34 |
35 | @Override
36 | public boolean equals(Object o) {
37 | if (this == o) {
38 | return true;
39 | }
40 | if (!(o instanceof Artist)) {
41 | return false;
42 | }
43 | Artist artist = (Artist) o;
44 | return Objects.equals(mName, artist.mName);
45 | }
46 |
47 | @Override
48 | public int hashCode() {
49 | return Objects.hash(mName);
50 | }
51 |
52 | }
53 |
54 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/model/Filter.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend.model;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import java.io.Serializable;
6 |
7 | public class Filter implements Serializable {
8 |
9 | private final FilterType mType;
10 | private final String mValue;
11 |
12 | public Filter(@NonNull FilterType type, @NonNull String value) {
13 | mType = type;
14 | mValue = value;
15 | }
16 |
17 | public String getValue() {
18 | return mValue;
19 | }
20 |
21 | public FilterType getType() {
22 | return mType;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/model/FilterType.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend.model;
2 |
3 | public enum FilterType {
4 |
5 | GENRE,
6 | ARTIST,
7 | ALBUM
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/model/Filterable.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend.model;
2 |
3 | public interface Filterable {
4 |
5 | String getField(FilterType filter);
6 | }
7 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/java/com/witekio/whitepaper/musicplayer/backend/model/TerFunction.java:
--------------------------------------------------------------------------------
1 | package com.witekio.whitepaper.musicplayer.backend.model;
2 |
3 | @FunctionalInterface
4 | public interface TerFunction {
5 |
6 | /**
7 | * Applies this function to the given arguments.
8 | *
9 | * @param t the first function argument
10 | * @param u the second function argument
11 | * @param v the third function argument
12 | * @return the function result
13 | */
14 | R apply(T t, U u, V v);
15 | }
16 |
--------------------------------------------------------------------------------
/Android/MusicPlayerBackend/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Backend
3 |
4 |
--------------------------------------------------------------------------------
/Qt/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.gitignore.io/api/qt,qml,c++,qtcreator
2 | # Edit at https://www.gitignore.io/?templates=qt,qml,c++,qtcreator
3 |
4 | ### C++ ###
5 | # Prerequisites
6 | *.d
7 |
8 | # Compiled Object files
9 | *.slo
10 | *.lo
11 | *.o
12 | *.obj
13 |
14 | # Precompiled Headers
15 | *.gch
16 | *.pch
17 |
18 | # Compiled Dynamic libraries
19 | *.so
20 | *.dylib
21 | *.dll
22 |
23 | # Fortran module files
24 | *.mod
25 | *.smod
26 |
27 | # Compiled Static libraries
28 | *.lai
29 | *.la
30 | *.a
31 | *.lib
32 |
33 | # Executables
34 | *.exe
35 | *.out
36 | *.app
37 |
38 | ### QML ###
39 | # Cached binary representations of QML and JS files
40 | *.qmlc
41 | *.jsc
42 |
43 | ### Qt ###
44 | # C++ objects and libs
45 |
46 | # Qt-es
47 | object_script.*.Release
48 | object_script.*.Debug
49 | *_plugin_import.cpp
50 | /.qmake.cache
51 | /.qmake.stash
52 | *.pro.user
53 | *.pro.user.*
54 | *.qbs.user
55 | *.qbs.user.*
56 | *.moc
57 | moc_*.cpp
58 | moc_*.h
59 | qrc_*.cpp
60 | ui_*.h
61 | Makefile*
62 | *build-*
63 |
64 | # Qt unit tests
65 | target_wrapper.*
66 |
67 | # QtCreator
68 | *.autosave
69 |
70 | # QtCreator Qml
71 | *.qmlproject.user
72 | *.qmlproject.user.*
73 |
74 | # QtCreator CMake
75 | CMakeLists.txt.user*
76 |
77 | # QtCreator 4.8< compilation database
78 | compile_commands.json
79 |
80 | # QtCreator local machine specific files for imported projects
81 | *creator.user*
82 |
83 | ### QtCreator ###
84 | # gitignore for Qt Creator like IDE for pure C/C++ project without Qt
85 | #
86 | # Reference: http://doc.qt.io/qtcreator/creator-project-generic.html
87 |
88 |
89 |
90 | # Qt Creator autogenerated files
91 |
92 |
93 | # A listing of all the files included in the project
94 | *.files
95 |
96 | # Include directories
97 | *.includes
98 |
99 | # Project configuration settings like predefined Macros
100 | *.config
101 |
102 | # Qt Creator settings
103 | *.creator
104 |
105 | # User project settings
106 | *.creator.user*
107 |
108 | # Qt Creator backups
109 |
110 | # End of https://www.gitignore.io/api/qt,qml,c++,qtcreator
111 |
112 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayer2 components for PS Bridge.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayer2 components for PS Bridge.psd
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerApp.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS += \
4 | MusicPlayerUI \
5 | MusicPlayerBackend
6 |
7 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerBackend/MusicPlayerBackend.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = lib
2 | TARGET = musicPlayerBackend
3 | QT += qml quick multimedia
4 | CONFIG += plugin c++11
5 |
6 | TARGET = $$qtLibraryTarget($$TARGET)
7 | uri = io.qt
8 |
9 | # Input
10 | SOURCES += \
11 | albummodel.cpp \
12 | artistmodel.cpp \
13 | genremodel.cpp \
14 | mediametadataparser.cpp \
15 | musicplayerbackendplugin.cpp \
16 | musicplayerbackend.cpp \
17 | songmodel.cpp
18 |
19 | HEADERS += \
20 | albummodel.h \
21 | artistmodel.h \
22 | genremodel.h \
23 | mediametadataparser.h \
24 | musicplayerbackendplugin.h \
25 | musicplayerbackend.h \
26 | songmodel.h
27 |
28 | DISTFILES += qmldir \
29 | musicPlayer.qmltypes
30 |
31 | !equals(_PRO_FILE_PWD_, $$OUT_PWD) {
32 | copy_qmldir.target = $$OUT_PWD/qmldir
33 | copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
34 | copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
35 | QMAKE_EXTRA_TARGETS += copy_qmldir
36 | PRE_TARGETDEPS += $$copy_qmldir.target
37 | }
38 |
39 | # DESTDIR = $$[QT_INSTALL_QML]/io/qt/
40 |
41 | qmldir.files = qmldir \
42 | musicPlayer.qmltypes
43 |
44 | unix|windows {
45 | installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /)
46 | qmldir.path = $$installPath
47 | target.path = $$installPath
48 | INSTALLS += target qmldir
49 | }
50 |
51 | RESOURCES +=
52 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerBackend/musicPlayerBackend.json:
--------------------------------------------------------------------------------
1 | {
2 | "Keys" : [ ]
3 | }
4 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerBackend/musicplayerbackendplugin.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | **
3 | ** Copyright (C) 2019 The Qt Company Ltd.
4 | ** Contact: http://www.qt.io/licensing/
5 | **
6 | ** $QT_BEGIN_LICENSE:BSD$
7 | ** You may use this file under the terms of the BSD license as follows:
8 | **
9 | ** "Redistribution and use in source and binary forms, with or without
10 | ** modification, are permitted provided that the following conditions are
11 | ** met:
12 | ** * Redistributions of source code must retain the above copyright
13 | ** notice, this list of conditions and the following disclaimer.
14 | ** * Redistributions in binary form must reproduce the above copyright
15 | ** notice, this list of conditions and the following disclaimer in
16 | ** the documentation and/or other materials provided with the
17 | ** distribution.
18 | ** * Neither the name of The Qt Company Ltd nor the names of its
19 | ** contributors may be used to endorse or promote products derived
20 | ** from this software without specific prior written permission.
21 | **
22 | **
23 | ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 | ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 | ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 | ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27 | ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29 | ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30 | ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31 | ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 | ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 | ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
34 | **
35 | ** $QT_END_LICENSE$
36 | **
37 | ****************************************************************************/
38 |
39 | #pragma once
40 |
41 | #include
42 |
43 | class MusicPlayerBackendPlugin : public QQmlExtensionPlugin
44 | {
45 | Q_OBJECT
46 | Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
47 |
48 | public:
49 | void registerTypes(const char *uri) override;
50 | };
51 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerBackend/qmldir:
--------------------------------------------------------------------------------
1 | module io.qt
2 | plugin musicPlayerBackend
3 | typeinfo musicPlayer.qmltypes
4 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerBackend/songs.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/AlbumsListView.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | ListView {
7 | clip: true
8 |
9 | // backend req
10 | model: Constants.simulationMode ? artistModel : filteredAlbumModel
11 |
12 | delegate: AlbumListItem {
13 | iconWidth: Constants.tinyCell
14 | albumLabelColor: Constants.qtLightGrey
15 | // backend req
16 | albumLabel: albumName
17 | artistLabel: artistName
18 | albumArtSource: albumArt
19 | }
20 | focus: true
21 |
22 | // the list uses sections, where the first character of artistName of artistModel
23 | // is used to define in which section the artist belongs
24 | section.property: "albumName"
25 | section.criteria: ViewSection.FirstCharacter
26 | section.delegate: ListSectionHeader {
27 | sectionLabel: section
28 | // backendReq
29 | sectionCountLabel: Constants.simulationMode ? 999 : musicPlayerBackend.albumItemCount(
30 | section)
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/AlbumsView.ui.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | // displays list of albums
7 | // - all albums
8 | // - selected genre (GenresView.ui.qml)
9 | Rectangle {
10 | id: albumsView
11 |
12 | property alias viewLabel: header.viewNameText
13 |
14 | width: displayArea.currWidth
15 | height: displayArea.currHeight
16 |
17 | color: showLayout ? "firebrick" : Constants.qtDarkBlue
18 |
19 | ViewHeader {
20 | id: header
21 | viewNameText: "ALL ALBUMS"
22 | }
23 |
24 | Rectangle {
25 | id: listBackground
26 |
27 | anchors.top: header.bottom
28 | anchors.right: parent.right
29 | anchors.bottom: parent.bottom
30 | anchors.left: parent.left
31 |
32 | anchors.topMargin: 0
33 | anchors.rightMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
34 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
35 | anchors.bottomMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
36 |
37 | color: Constants.qtDarkBlue
38 |
39 | AlbumsListView {
40 | id: albumsListView
41 |
42 | anchors.fill: parent
43 | }
44 | }
45 | }
46 |
47 | /*##^## Designer {
48 | D{i:0;autoSize:true;height:480;width:640}
49 | }
50 | ##^##*/
51 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/AllSongsView.ui.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | // displays a list of all songs
7 | Rectangle {
8 | id: songsView
9 |
10 | property alias viewLabel: header.viewNameText
11 |
12 | width: displayArea.currWidth
13 | height: displayArea.currHeight
14 |
15 | color: showLayout ? "firebrick" : Constants.qtDarkBlue
16 |
17 | ViewHeader {
18 | id: header
19 | viewNameText: "ALL SONGS"
20 | }
21 |
22 | Rectangle {
23 | id: listBackground
24 |
25 | anchors.top: header.bottom
26 | anchors.right: parent.right
27 | anchors.bottom: parent.bottom
28 | anchors.left: parent.left
29 |
30 | anchors.topMargin: 0
31 | anchors.rightMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
32 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
33 | anchors.bottomMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
34 |
35 | color: Constants.qtDarkBlue
36 |
37 | SongListView {
38 | id: songsListView
39 |
40 | anchors.fill: parent
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ArtistAlbumsView.ui.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | // displays the albums of the selected artist
7 | // uses GridView
8 | Rectangle {
9 | id: albumsView
10 |
11 | property alias viewLabel: header.viewNameText
12 |
13 | width: displayArea.currWidth
14 | height: displayArea.currHeight
15 |
16 | color: showLayout ? "firebrick" : Constants.qtDarkBlue
17 |
18 | ViewHeader {
19 | id: header
20 | viewNameText: "ARTIST NAME"
21 | }
22 |
23 | Rectangle {
24 | id: gridBackground
25 |
26 | anchors.top: header.bottom
27 | anchors.right: parent.right
28 | anchors.bottom: parent.bottom
29 | anchors.left: parent.left
30 |
31 | anchors.topMargin: 0
32 | anchors.rightMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
33 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
34 | anchors.bottomMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
35 |
36 | color: Constants.qtDarkBlue
37 |
38 | GridView {
39 | id: albumsGridView
40 | clip: true
41 |
42 | // this is a bit of a hack, because GridView component's implementation
43 | // need to define grid's width by defining number of columns and cell sizes that INCLUDE the margins
44 | width: cellWidth * 3
45 | height: parent.height
46 |
47 | anchors.centerIn: parent
48 | anchors.top: parent.top
49 | anchors.bottom: parent.bottom
50 |
51 | // Cell height and width includes margins. Actual item is smaller
52 | cellHeight: parent.width > Constants.breakpointWidth ? (Constants.normalCell + Constants.wideMargin) : (Constants.smallCell + Constants.normalMargin)
53 | cellWidth: parent.width > Constants.breakpointWidth ? (Constants.normalCell + Constants.wideMargin) : (Constants.smallCell + Constants.normalMargin)
54 | delegate: AlbumGridItem {
55 | albumLabel: albumName
56 | albumArtSource: albumArt
57 | }
58 |
59 | // backend req
60 | model: Constants.simulationMode ? artistModel : filteredAlbumModel // artistModel
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ArtistsListView.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | ListView {
7 | // backend req
8 | model: Constants.simulationMode ? artistModel : filteredArtistModel
9 |
10 | delegate: ArtistListItem {
11 | artistLabel: artistName
12 |
13 | // artist specific album and song counts comes from the back-end
14 | // backend req
15 | albumCountLabel: {
16 | if (Constants.simulationMode)
17 | 9
18 | else {
19 | musicPlayerBackend.setArtistFilter(artistName)
20 | filteredAlbumModel.rowCount()
21 | }
22 | }
23 | songCountLabel: {
24 | if (Constants.simulationMode)
25 | 99
26 | else
27 | filteredSongModel.rowCount()
28 | }
29 | }
30 |
31 | // the list uses sections, where the first character of artistName of artistModel
32 | // is used to define in which section the artist belongs
33 | section.property: "artistName"
34 | section.criteria: ViewSection.FirstCharacter
35 | section.delegate: ListSectionHeader {
36 | sectionLabel: section
37 | // backend req
38 | sectionCountLabel: {
39 | if (Constants.simulationMode)
40 | 99
41 | else
42 | musicPlayerBackend.artistItemCount(section)
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ArtistsView.ui.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | Rectangle {
7 | id: artistsView
8 |
9 | property alias viewLabel: header.viewNameText
10 |
11 | width: displayArea.currWidth
12 | height: displayArea.currHeight
13 |
14 | color: showLayout ? "firebrick" : Constants.qtDarkBlue
15 |
16 | ViewHeader {
17 | id: header
18 | viewNameText: ""
19 | }
20 |
21 | Rectangle {
22 | id: listBackground
23 |
24 | anchors.top: header.bottom
25 | anchors.right: parent.right
26 | anchors.bottom: parent.bottom
27 | anchors.left: parent.left
28 |
29 | anchors.topMargin: 0
30 | anchors.rightMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
31 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
32 | anchors.bottomMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
33 |
34 | color: Constants.qtDarkBlue
35 | clip: true
36 |
37 | ArtistsListView {
38 | id: artistsListView
39 |
40 | anchors.fill: parent
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/GenresListView.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | // displays a list of genres
7 | ListView {
8 | delegate: GenreListItem {
9 | // backend req
10 | genreLabel: Constants.simulationMode ? albumGenre : genre // albumGenre
11 | albumCountLabel: {
12 | if (Constants.simulationMode)
13 | 999
14 | else {
15 | musicPlayerBackend.setGenreFilter(genreLabel)
16 | filteredAlbumModel.rowCount()
17 | }
18 | }
19 | artistCountLabel: {
20 | if (Constants.simulationMode)
21 | 99
22 | else
23 | filteredArtistModel.rowCount()
24 | }
25 | }
26 |
27 | model: Constants.simulationMode ? artistModel : genreModel // artistModel
28 | }
29 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/GenresView.ui.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | // displays a list of genres
7 | Rectangle {
8 | id: genresView
9 |
10 | property alias viewLabel: header.viewNameText
11 |
12 | width: displayArea.currWidth
13 | height: displayArea.currHeight
14 |
15 | color: showLayout ? "firebrick" : Constants.qtDarkBlue
16 |
17 | ViewHeader {
18 | id: header
19 | viewNameText: "GENRES"
20 | }
21 |
22 | Rectangle {
23 | id: listBackground
24 |
25 | anchors.top: header.bottom
26 | anchors.right: parent.right
27 | anchors.bottom: parent.bottom
28 | anchors.left: parent.left
29 |
30 | anchors.topMargin: 0
31 | anchors.rightMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
32 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
33 | anchors.bottomMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
34 |
35 | color: Constants.qtDarkBlue
36 | clip: true
37 |
38 | GenresListView {
39 | id: genresListView
40 |
41 | anchors.fill: parent
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/IconButton.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 | import MusicPlayer2 1.0
3 |
4 | // a button with an icon
5 | // previous and next songs in PlayView.ui.qml
6 | Item {
7 | id: iconButton
8 |
9 | property alias iconSource: icon.source
10 | property alias buttonMouseArea: iconButtonMouseArea
11 |
12 | width: parent.width
13 | height: parent.height
14 |
15 | state: ""
16 |
17 | Image {
18 | id: icon
19 |
20 | width: parent.width
21 | height: parent.width
22 | anchors.centerIn: parent
23 | }
24 |
25 | MouseArea {
26 | id: iconButtonMouseArea
27 | anchors.fill: parent
28 | onPressed: {
29 | parent.state = "pressed"
30 | }
31 | onReleased: {
32 | parent.state = "released"
33 | }
34 | }
35 |
36 | states: [
37 | State {
38 | name: "pressed"
39 | PropertyChanges {
40 | target: iconButton
41 | scale: 0.8
42 | }
43 | }
44 | ]
45 |
46 | transitions: [
47 | Transition {
48 | NumberAnimation {
49 | properties: "scale"
50 | duration: 100
51 | }
52 | },
53 | Transition {
54 | NumberAnimation {
55 | properties: "scale"
56 | duration: 100
57 | }
58 | }
59 | ]
60 | }
61 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ListHighlight.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import MusicPlayer2 1.0
3 |
4 | // displays a background for a list item highlight
5 | Rectangle {
6 | width: parent.width
7 | height: Constants.listItemHeight
8 |
9 | color: Constants.qtMediumBlue
10 |
11 | Rectangle {
12 | width: 1
13 | height: parent.height
14 | color: Constants.qtLightGrey
15 | anchors.top: parent.top
16 | anchors.topMargin: 0
17 | anchors.left: parent.left
18 | anchors.leftMargin: 0
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ListSectionHeader.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import MusicPlayer2 1.0
3 |
4 | // header used for separating the sections in the lists of the following views
5 | // - AlbumsView.ui.qml
6 | // - AllSongsView.ui.qml
7 | // - ArtistsView.ui.qml
8 | Rectangle {
9 | id: rectangle
10 |
11 | property alias sectionLabel: sectionText.text
12 | property alias sectionCountLabel: sectionCountText.text
13 |
14 | width: parent.width
15 | height: Constants.listSectionHeight
16 |
17 | color: Constants.qtDarkGrey
18 |
19 | Text {
20 | id: sectionText
21 | text: ""
22 | verticalAlignment: Text.AlignVCenter
23 | anchors.verticalCenter: parent.verticalCenter
24 | anchors.left: parent.left
25 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.normalMargin : Constants.tinyMargin
26 | font {
27 | pixelSize: Constants.smallFontSize
28 | family: Constants.qtFontBold.name
29 | bold: true
30 | }
31 | color: Constants.qtLightGrey
32 | elide: Text.ElideRight
33 | }
34 | Text {
35 | id: sectionCountText
36 | text: qsTr("999")
37 | horizontalAlignment: Text.AlignRight
38 | verticalAlignment: Text.AlignVCenter
39 | anchors.verticalCenter: parent.verticalCenter
40 | anchors.right: parent.right
41 | anchors.rightMargin: parent.width > Constants.breakpointWidth ? Constants.normalMargin : Constants.tinyMargin
42 | font {
43 | pixelSize: Constants.smallFontSize
44 | family: Constants.qtFontRegular.name
45 | }
46 | color: Constants.qtLightGrey
47 | elide: Text.ElideRight
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/MusicPlayer2.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 | import MusicPlayer2 1.0
3 |
4 | Item {
5 | width: Constants.width
6 | height: Constants.height
7 |
8 | AppView {}
9 | }
10 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/MusicPlayer2.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "MusicPlayer2.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 |
13 | JavaScriptFiles {
14 | directory: "."
15 | }
16 |
17 | ImageFiles {
18 | directory: "."
19 | }
20 |
21 | Files {
22 | filter: "*.conf"
23 | files: ["qtquickcontrols2.conf"]
24 | }
25 |
26 | Files {
27 | filter: "qmldir"
28 | directory: "."
29 | }
30 |
31 | Environment {
32 | QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf"
33 | QT_AUTO_SCREEN_SCALE_FACTOR: "1"
34 | }
35 |
36 | /* List of plugin directories passed to QML runtime */
37 | importPaths: [ "imports" , "/Users/Shared/Qt/5.12.3/clang_64/qml" ]
38 | // Adding a real backend path seems to crash the qmlscene
39 |
40 | /* Required for deployment */
41 | targetDirectory: "/opt/MusicPlayer2"
42 | }
43 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ResolutionsComboBox.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 | import QtQuick.Controls 2.5
3 | import MusicPlayer2 1.0
4 |
5 | // displays a combobox for selecting different resolutions
6 | ComboBox {
7 | id: control
8 | height: 30
9 | rightPadding: 0
10 | width: 140
11 |
12 | font {
13 | family: Constants.qtFontRegular.name
14 | pixelSize: Constants.smallFontSize
15 | }
16 | textRole: "key"
17 |
18 | // model for the resolutions
19 | // - key = name in the combobox
20 | // - width
21 | // - height
22 | model: ListModel {
23 | id: resoModel
24 | ListElement {
25 | key: "5:4 (SXGA)"
26 | width: "1024"
27 | height: "1280"
28 | }
29 | ListElement {
30 | key: "8:5 (WXGA)"
31 | width: "800"
32 | height: "1280"
33 | }
34 | ListElement {
35 | key: "4:3 (XGA)"
36 | width: "768"
37 | height: "1024"
38 | }
39 | ListElement {
40 | key: "16:9 (HD720)"
41 | width: "720"
42 | height: "1280"
43 | }
44 | ListElement {
45 | key: "16:9 (WVGA)"
46 | width: "480"
47 | height: "854"
48 | }
49 | ListElement {
50 | key: "3:2"
51 | width: "480"
52 | height: "720"
53 | }
54 | ListElement {
55 | key: "4:3 (VGA)"
56 | width: "480"
57 | height: "640"
58 | }
59 | }
60 | onActivated: {
61 | displayArea.currWidth = resoModel.get(currentIndex).width
62 | displayArea.currHeight = resoModel.get(currentIndex).height
63 | }
64 | }
65 |
66 | /*##^## Designer {
67 | D{i:0;height:24;width:140}
68 | }
69 | ##^##*/
70 |
71 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/SongListView.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Controls 2.3
3 | import QtQuick.Layouts 1.3
4 | import MusicPlayer2 1.0
5 |
6 | ListView {
7 | clip: true
8 |
9 | // backend req
10 | model: Constants.simulationMode ? albumModel : filteredSongModel // albumModel
11 |
12 | delegate: SongListItem {
13 | albumArtSource: albumArt
14 | songLabelColor: ListView.isCurrentItem ? Constants.qtGreen : Constants.qtLightGrey
15 | songLabel: songName
16 | artistLabel: artistName
17 | albumLabel: albumName
18 | totalDuration: duration
19 | audioFileUrl: Constants.simulationMode ? "" : audioFile
20 |
21 | // show play/pause icon only for selected song
22 | showPlayIcon: ListView.isCurrentItem ? 1 : 0
23 | }
24 | focus: true
25 |
26 | section.property: "artistName"
27 | section.criteria: ViewSection.FirstCharacter
28 | section.delegate: ListSectionHeader {
29 | sectionLabel: section
30 | sectionCountLabel: {
31 | if (Constants.simulationMode)
32 | 9999
33 | else
34 | musicPlayerBackend.songItemCount(section)
35 | }
36 | }
37 | highlight: ListHighlight {}
38 | }
39 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/SplashView.ui.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import MusicPlayer2 1.0
3 |
4 | // displays the splash screen in ScreenArea.qml when the app is started
5 |
6 | Rectangle {
7 | id: rectangle
8 |
9 | color: Constants.qtDarkBlue
10 |
11 | Item {
12 | id: element
13 | height: musicLabel.height + playerLabel.height + qtIcon.height
14 | anchors.verticalCenterOffset: -72
15 | anchors.verticalCenter: parent.verticalCenter
16 | anchors.horizontalCenter: parent.horizontalCenter
17 |
18 | Text {
19 | id: musicLabel
20 | font {
21 | pixelSize: Constants.largeFontSize
22 | bold: true
23 | family: Constants.qtFontBold.name
24 | }
25 | color: Constants.qtGreen
26 | text: "MUSIC "
27 | verticalAlignment: Text.AlignBottom
28 | anchors.top: parent.top
29 | anchors.topMargin: 0
30 | anchors.horizontalCenter: parent.horizontalCenter
31 | }
32 | Text {
33 | id: playerLabel
34 | font {
35 | pixelSize: Constants.largeFontSize
36 | family: Constants.qtFontRegular.name
37 | }
38 | color: Constants.qtLightGrey
39 | text: "PLAYER"
40 | verticalAlignment: Text.AlignTop
41 | anchors.top: musicLabel.bottom
42 | anchors.topMargin: -12
43 | anchors.horizontalCenter: parent.horizontalCenter
44 | }
45 | Text {
46 | id: byLabel
47 | font {
48 | pixelSize: Constants.smallFontSize
49 | family: Constants.qtFontRegular.name
50 | }
51 | text: "by"
52 | verticalAlignment: Text.AlignVCenter
53 | anchors.top: playerLabel.bottom
54 | anchors.topMargin: Constants.normalMargin
55 | color: Constants.qtLightGrey
56 | anchors.horizontalCenter: playerLabel.horizontalCenter
57 | }
58 | Image {
59 | id: qtIcon
60 | x: 149
61 | anchors.top: byLabel.bottom
62 | anchors.topMargin: Constants.wideMargin
63 | anchors.horizontalCenter: parent.horizontalCenter
64 | source: "assets/icon_qt.png"
65 | }
66 | }
67 | }
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | /*##^## Designer {
77 | D{i:0;autoSize:true;height:480;width:640}D{i:3;anchors_y:0}D{i:5;anchors_y:163}
78 | }
79 | ##^##*/
80 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/ViewHeader.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import MusicPlayer2 1.0
3 |
4 | Rectangle {
5 | id: headerRow
6 | property alias viewNameText: headerText.text
7 |
8 | color: showLayout ? "darkviolet" : Constants.qtDarkBlue
9 |
10 | anchors.left: parent.left
11 | anchors.leftMargin: 0
12 | anchors.top: parent.top
13 | anchors.topMargin: 0
14 |
15 | height: Constants.smallButton + 2
16 | * (parent.width
17 | > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin)
18 | width: parent.width
19 |
20 | z: 10
21 |
22 | NavigationButton {
23 | id: backButton
24 | anchors.top: parent.top
25 | anchors.topMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
26 | anchors.left: parent.left
27 | anchors.leftMargin: parent.width > Constants.breakpointWidth ? Constants.wideMargin : Constants.normalMargin
28 |
29 | lightIconSource: "assets/icon_back_light.png"
30 | darkIconSource: "assets/icon_back_dark.png"
31 | }
32 |
33 | Text {
34 | id: headerText
35 | font {
36 | pixelSize: Constants.largeFontSize
37 | family: Constants.qtFontBold.name
38 | bold: true
39 | }
40 | color: Constants.qtLightGrey
41 | horizontalAlignment: Text.AlignHCenter
42 | anchors.verticalCenter: backButton.verticalCenter
43 |
44 | anchors.left: backButton.right
45 | anchors.leftMargin: Constants.smallMargin
46 | anchors.right: parent.right
47 | anchors.rightMargin: Constants.wideMargin + 12
48 |
49 | elide: Text.ElideRight
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_album.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_back_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_back_dark.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_back_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_back_light.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_builtWithQt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_builtWithQt.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_close_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_close_dark.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_close_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_close_light.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_next.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_pause.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_play.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_prev.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_qt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_qt.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_repeat_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_repeat_dark.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_repeat_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_repeat_light.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_shuffle_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_shuffle_dark.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_shuffle_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_shuffle_light.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_vol_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_vol_down.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_vol_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/assets/icon_vol_up.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/Constants.qml:
--------------------------------------------------------------------------------
1 | pragma Singleton
2 |
3 | import QtQuick 2.10
4 |
5 | QtObject {
6 | // Use the simulated backend
7 | readonly property bool simulationMode: false
8 |
9 | // size for AppView
10 | readonly property int width: 1200
11 | readonly property int height: 1310
12 |
13 | // small - large screen breakpoints
14 | readonly property int breakpointWidth: 480
15 | readonly property int breakpointHeight: 720
16 |
17 | // fonts
18 | readonly property FontLoader qtFontBold: QtFontBold {}
19 | readonly property FontLoader qtFontRegular: QtFontRegular {}
20 |
21 | readonly property FontLoader mySystemFont: FontLoader {
22 | name: "Arial"
23 | }
24 |
25 | readonly property font font: Qt.font({
26 | "family": mySystemFont.name,
27 | "pointSize": Qt.application.font.pixelSize
28 | })
29 | readonly property font largeFont: Qt.font({
30 | "family": mySystemFont.name,
31 | "pointSize": Qt.application.font.pixelSize * 1.6
32 | })
33 |
34 | // color definitions
35 | readonly property color qtDarkBlue: "#09102b"
36 | readonly property color qtMediumBlue: "#222840"
37 | readonly property color qtGreen: "#17a81a"
38 | readonly property color qtDarkGrey: "#3a4055"
39 | readonly property color qtLightGrey: "#cecfd5"
40 |
41 | // font size definitions
42 | readonly property int tinyFontSize: 12
43 | readonly property int smallFontSize: 18
44 | readonly property int normalFontSize: 24
45 | readonly property int largeFontSize: 36
46 |
47 | // margin definitions
48 | readonly property int tinyMargin: 8
49 | readonly property int smallMargin: 12
50 | readonly property int normalMargin: 24
51 | readonly property int largeMargin: 32
52 | readonly property int wideMargin: 60
53 |
54 | // item sizes
55 | readonly property int smallButton: 40
56 | readonly property int normalButton: 56
57 | readonly property int largeButton: 80
58 |
59 | readonly property int tinyCell: 56
60 | readonly property int smallCell: 120
61 | readonly property int normalCell: 200
62 | readonly property int largeCell: 260
63 |
64 | readonly property int listItemHeight: 80
65 | readonly property int listSectionHeight: 32
66 | }
67 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/QtFontBold.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 |
3 | FontLoader {
4 | source: "TitilliumWeb-Bold.ttf"
5 | }
6 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/QtFontRegular.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 |
3 | FontLoader {
4 | source: "TitilliumWeb-Regular.ttf"
5 | }
6 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/TitilliumWeb-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/TitilliumWeb-Bold.ttf
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/TitilliumWeb-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/TitilliumWeb-Regular.ttf
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/MusicPlayer2/qmldir:
--------------------------------------------------------------------------------
1 | singleton Constants 1.0 Constants.qml
2 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/FlipableItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.9
2 |
3 | Flipable {
4 | id: flipable
5 | width: 240
6 | height: 240
7 |
8 | property alias flipAngle: rotation.angle
9 | property real opacityFront: 1
10 | property real opacityBack: 1
11 | property int xAxis: 0
12 | property int yAxis: 1
13 |
14 | Binding {
15 | target: flipable.front
16 | value: opacityFront
17 | property: "opacity"
18 | when: flipable.front !== undefined
19 | }
20 |
21 | Binding {
22 | target: flipable.back
23 | value: opacityBack
24 | property: "opacity"
25 | when: flipable.back !== undefined
26 | }
27 |
28 | property bool flipped: false
29 |
30 | Component.onCompleted: {
31 | flipable.front = flipable.children[0]
32 | flipable.back = flipable.children[1]
33 | }
34 |
35 | transform: Rotation {
36 | id: rotation
37 | origin.x: flipable.width / 2
38 | origin.y: flipable.height / 2
39 | axis.x: flipable.xAxis
40 | axis.y: flipable.yAxis
41 | axis.z: 0
42 | angle: 0 // the default angle
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/IsoItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtQuick 2.9
3 | import QtQuick.Extras 1.4
4 |
5 | Picture {}
6 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/RectangleItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 | import QtQuick.Shapes 1.0
3 |
4 | Shape {
5 | id: root
6 | width: 200
7 | height: 150
8 |
9 | property int radius: 10
10 |
11 | property int topLeftRadius: radius
12 | property int bottomLeftRadius: radius
13 | property int topRightRadius: radius
14 | property int bottomRightRadius: radius
15 |
16 | property alias gradient: path.fillGradient
17 | property alias strokeStyle: path.strokeStyle
18 | property alias strokeWidth: path.strokeWidth
19 | property alias strokeColor: path.strokeColor
20 | property alias dashPattern: path.dashPattern
21 | property alias joinStyle: path.joinStyle
22 | property alias fillColor: path.fillColor
23 | property alias dashOffset: path.dashOffset
24 |
25 | property bool antialiasing: false
26 | layer.enabled: antialiasing
27 | layer.smooth: antialiasing
28 | layer.textureSize: Qt.size(width * 2, height * 2)
29 |
30 | Item {
31 | anchors.fill: parent
32 | anchors.margins: -root.strokeWidth / 2
33 | }
34 |
35 | ShapePath {
36 | id: path
37 | joinStyle: ShapePath.MiterJoin
38 |
39 | strokeWidth: 4
40 | strokeColor: "red"
41 |
42 | startX: root.topLeftRadius
43 | startY: 0
44 |
45 | PathLine {
46 | x: root.width - root.topRightRadius
47 | y: 0
48 | }
49 |
50 | PathArc {
51 | x: root.width
52 | y: root.topRightRadius
53 | radiusX: root.topRightRadius
54 | radiusY: root.topRightRadius
55 | }
56 |
57 | PathLine {
58 | x: root.width
59 | y: root.height - root.bottomRightRadius
60 | }
61 |
62 | PathArc {
63 | x: root.width - root.bottomRightRadius
64 | y: root.height
65 | radiusX: root.bottomRightRadius
66 | radiusY: root.bottomRightRadius
67 | }
68 |
69 | PathLine {
70 | x: root.bottomLeftRadius
71 | y: root.height
72 | }
73 |
74 | PathArc {
75 | x: 0
76 | y: root.height - root.bottomLeftRadius
77 | radiusX: root.bottomLeftRadius
78 | radiusY: root.bottomLeftRadius
79 | }
80 | PathLine {
81 | x: 0
82 | y: root.topLeftRadius
83 | }
84 |
85 | PathArc {
86 | x: root.topLeftRadius
87 | y: 0
88 | radiusX: root.topLeftRadius
89 | radiusY: root.topLeftRadius
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/SvgPathItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtQuick.Timeline 1.0
3 | import QtQuick.Shapes 1.0
4 |
5 | Shape {
6 | width: 200
7 | height: 200
8 |
9 | property alias gradient: shape.fillGradient
10 | property alias strokeStyle: shape.strokeStyle
11 | property alias strokeWidth: shape.strokeWidth
12 | property alias strokeColor: shape.strokeColor
13 | property alias dashPattern: shape.dashPattern
14 | property alias joinStyle: shape.joinStyle
15 | property alias fillColor: shape.fillColor
16 | property alias path: pathSvg.path
17 | property alias dashOffset: shape.dashOffset
18 |
19 | property bool antialiasing: false
20 | layer.enabled: antialiasing
21 | layer.smooth: antialiasing
22 | layer.textureSize: Qt.size(width * 2, height * 2)
23 |
24 | id: svgPathItem
25 |
26 | ShapePath {
27 | id: shape
28 | strokeWidth: 4
29 | strokeColor: "red"
30 |
31 | PathSvg {
32 | id: pathSvg
33 |
34 | path: "M91,70.6c4.6,0,8.6,2.4,10.9,6.3l19.8,34.2c2.3,3.9,2.3,8.7,0,12.6c-2.3,3.9-6.4,6.3-10.9,6.3H71.2 c-4.6,0-8.6-2.4-10.9-6.3c-2.3-3.9-2.3-8.7,0-12.6l19.8-34.2C82.4,72.9,86.4,70.6,91,70.6 M91,69.6c-4.6,0-9.2,2.3-11.8,6.8l-19.8,34.2c-5.2,9.1,1.3,20.4,11.8,20.4h39.5c10.5,0,17-11.3,11.8-20.4l-19.8-34.2C100.2,71.9,95.6,69.6,91,69.6L91,69.6z"
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/IsoItemSpecifics.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import HelperWidgets 2.0
3 | import QtQuick.Layouts 1.0
4 |
5 | Column {
6 | anchors.left: parent.left
7 | anchors.right: parent.right
8 |
9 | Section {
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 | caption: qsTr("Icon Color")
13 |
14 | ColorEditor {
15 | caption: qsTr("Icon Color")
16 | backendValue: backendValues.color
17 | supportGradient: false
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-border-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-border-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-border-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-border-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-border-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-border-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-rectangle-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-rectangle-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-rectangle-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-rectangle-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-rectangle-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/custom-rectangle-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/iso-icons-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/iso-icons-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/iso-icons-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/iso-icons-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/iso-icons-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/iso-icons-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-arc-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-arc-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-arc-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-arc-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-arc-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-arc-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-flippable-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-flippable-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-flippable-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-flippable-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-flippable-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-flippable-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-pie-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-pie-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-pie-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-pie-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-pie-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-pie-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-svg-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-svg-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-svg-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-svg-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-svg-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-svg-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-triangle-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-triangle-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-triangle-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-triangle-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-triangle-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/designer/images/item-triangle-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Components/qmldir:
--------------------------------------------------------------------------------
1 | ArcItem 1.0 ArcItem.qml
2 | PieItem 1.0 PieItem.qml
3 | TriangleItem 1.0 TriangleItem.qml
4 | SvgPathItem 1.0 SvgPathItem.qml
5 | FlipableItem 1.0 FlipableItem.qml
6 | RectangleItem 1.0 RectangleItem.qml
7 | BorderItem 1.0 BorderItem.qml
8 | IsoItem 1.0 IsoItem.qml
9 |
10 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/BlendItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias mode: blend.mode
9 |
10 | implicitWidth: Math.max(32, stack.implicitWidth)
11 | implicitHeight: Math.max(32, stack.implicitHeight)
12 |
13 | Item {
14 | z: -1
15 | id: stack
16 | implicitWidth: blend.source.width + blend.source.x
17 | implicitHeight: blend.source.height + blend.source.y
18 |
19 | visible: false
20 | }
21 |
22 | Blend {
23 | id: blend
24 | anchors.fill: parent
25 | mode: "subtract"
26 | source: root.background
27 | foregroundSource: root.foreground
28 | }
29 |
30 | property Item background
31 | property Item foreground
32 |
33 | property Item foo: Item {}
34 |
35 | Component.onCompleted: {
36 | root.background = stack.children[0]
37 | root.foreground = stack.children[1]
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/BrightnessContrastItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 |
9 | property alias brightness: brightCont.brightness
10 | property alias contrast: brightCont.contrast
11 | property alias cached: brightCont.cached
12 |
13 | implicitWidth: Math.max(32, stack.implicitWidth)
14 | implicitHeight: Math.max(32, stack.implicitHeight)
15 |
16 | Item {
17 | id: stack
18 | implicitWidth: childrenRect.width + childrenRect.x
19 | implicitHeight: childrenRect.height + childrenRect.y
20 | visible: false
21 | }
22 |
23 | BrightnessContrast {
24 | id: brightCont
25 | anchors.fill: stack
26 | source: stack
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/ColorOverlayItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias content: stack.children
8 |
9 | property alias overlayColor: colorOverlay.color
10 | property alias cached: colorOverlay.cached
11 |
12 | implicitWidth: Math.max(32, stack.implicitWidth)
13 | implicitHeight: Math.max(32, stack.implicitHeight)
14 |
15 | Item {
16 | id: stack
17 |
18 | implicitWidth: childrenRect.width + childrenRect.x
19 | implicitHeight: childrenRect.height + childrenRect.y
20 |
21 | visible: false
22 | }
23 |
24 | ColorOverlay {
25 | id: colorOverlay
26 | anchors.fill: stack
27 | source: stack
28 | color: "#80fff000"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/ColorizeItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias colorizeHue: colorize.hue
9 | property alias colorizeSaturation: colorize.saturation
10 | property alias colorizeLightness: colorize.lightness
11 | property alias cached: colorize.cached
12 |
13 | implicitWidth: Math.max(32, stack.implicitWidth)
14 | implicitHeight: Math.max(32, stack.implicitHeight)
15 |
16 | Item {
17 | id: stack
18 | implicitWidth: childrenRect.width + childrenRect.x
19 | implicitHeight: childrenRect.height + childrenRect.y
20 |
21 | visible: false
22 | }
23 |
24 | Colorize {
25 | id: colorize
26 | anchors.fill: stack
27 | source: stack
28 | hue: 0.0
29 | saturation: 0
30 | lightness: 0
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/DirectionalBlurItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 |
9 | property alias directionalBlurAngle: directionalBlur.angle
10 | property alias directionalBlurLength: directionalBlur.length
11 | property alias directionalBlurSamples: directionalBlur.samples
12 | property alias directionalBlurBorder: directionalBlur.transparentBorder
13 | property alias cached: directionalBlur.cached
14 |
15 | implicitWidth: Math.max(32, stack.implicitWidth)
16 | implicitHeight: Math.max(32, stack.implicitHeight)
17 |
18 | Item {
19 | id: stack
20 | implicitWidth: childrenRect.width + childrenRect.x
21 | implicitHeight: childrenRect.height + childrenRect.y
22 |
23 | visible: false
24 | }
25 |
26 | DirectionalBlur {
27 | id: directionalBlur
28 | anchors.fill: stack
29 | source: stack
30 | angle: 90
31 | length: 32
32 | samples: 16
33 | transparentBorder: true
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/DropShadowItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias horizontalOffset: dropShadow.horizontalOffset
9 | property alias verticalOffset: dropShadow.verticalOffset
10 | property alias radius: dropShadow.radius
11 | property alias samples: dropShadow.samples
12 | property alias spread: dropShadow.spread
13 | property alias transparentBorder: dropShadow.transparentBorder
14 | property alias color: dropShadow.color
15 | property alias cached: dropShadow.cached
16 |
17 | implicitWidth: Math.max(32, stack.implicitWidth)
18 | implicitHeight: Math.max(32, stack.implicitHeight)
19 |
20 | Item {
21 | id: stack
22 | implicitWidth: childrenRect.width + childrenRect.x
23 | implicitHeight: childrenRect.height + childrenRect.y
24 |
25 | visible: false
26 | }
27 |
28 | DropShadow {
29 | id: dropShadow
30 | anchors.fill: stack
31 | source: stack
32 | horizontalOffset: 3
33 | verticalOffset: 3
34 | radius: 8.0
35 | samples: 17
36 | spread: 4
37 | transparentBorder: true
38 | color: "#80000000"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/FastBlurItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.8
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | layer.enabled: true
8 |
9 | default property alias contentStack: stack.children
10 | property alias radius: blur.radius
11 | property alias transparentBorder: blur.transparentBorder
12 | property alias cached: blur.cached
13 |
14 | implicitWidth: Math.max(32, stack.implicitWidth)
15 | implicitHeight: Math.max(32, stack.implicitHeight)
16 |
17 | Item {
18 | id: stack
19 |
20 | implicitWidth: childrenRect.width + childrenRect.x
21 | implicitHeight: childrenRect.height + childrenRect.y
22 | }
23 |
24 | FastBlur {
25 | id: blur
26 |
27 | transparentBorder: true
28 | anchors.fill: stack
29 | source: stack
30 | radius: 12
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/GaussianBlurItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias content: stack.children
8 | property alias gaussianBlurRadius: gaussianBlur.radius
9 | property alias gaussianBlurSamples: gaussianBlur.samples
10 |
11 | implicitWidth: Math.max(32, stack.implicitWidth)
12 | implicitHeight: Math.max(32, stack.implicitHeight)
13 |
14 | Item {
15 | implicitWidth: contentItem.width
16 | implicitHeight: contentItem.height
17 | visible: true
18 | id: stack
19 | }
20 |
21 | GaussianBlur {
22 | id: gaussianBlur
23 | anchors.fill: stack
24 | source: stack
25 | radius: 32
26 | samples: 16
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/GlowItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias radius: glow.radius
9 | property alias samples: glow.samples
10 | property alias spread: glow.spread
11 | property alias color: glow.color
12 | property alias transparentBorder: glow.transparentBorder
13 | property alias cached: glow.cached
14 |
15 | implicitWidth: Math.max(32, stack.implicitWidth)
16 | implicitHeight: Math.max(32, stack.implicitHeight)
17 |
18 | Item {
19 | id: stack
20 | implicitWidth: childrenRect.width + childrenRect.x
21 | implicitHeight: childrenRect.height + childrenRect.y
22 | visible: false
23 | }
24 |
25 | Glow {
26 | id: glow
27 | anchors.fill: stack
28 | radius: 5
29 | samples: 16
30 | spread: 0.5
31 | color: "#ffffffff"
32 | transparentBorder: true
33 | source: stack
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/HueSaturationItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias adjustHue: hueSat.hue
9 | property alias adjustSaturation: hueSat.saturation
10 | property alias adjustLightness: hueSat.lightness
11 | property alias cached: hueSat.cached
12 |
13 | implicitWidth: Math.max(32, stack.implicitWidth)
14 | implicitHeight: Math.max(32, stack.implicitHeight)
15 |
16 | Item {
17 | id: stack
18 | implicitWidth: childrenRect.width + childrenRect.x
19 | implicitHeight: childrenRect.height + childrenRect.y
20 |
21 | visible: false
22 | }
23 |
24 | HueSaturation {
25 | id: hueSat
26 | anchors.fill: stack
27 | source: stack
28 | hue: 0.0
29 | saturation: 0.5
30 | lightness: -0.2
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/MaskItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias invert: blend.invert
9 |
10 | implicitWidth: Math.max(32, stack.implicitWidth)
11 | implicitHeight: Math.max(32, stack.implicitHeight)
12 |
13 | Item {
14 | z: -1
15 | id: stack
16 | implicitWidth: blend.source.width + blend.source.x
17 | implicitHeight: blend.source.height + blend.source.y
18 |
19 | visible: false
20 | }
21 |
22 | OpacityMask {
23 | id: blend
24 | anchors.fill: parent
25 | source: root.background
26 | maskSource: root.foreground
27 | }
28 |
29 | property Item background
30 | property Item foreground
31 |
32 | property Item foo: Item {}
33 |
34 | Component.onCompleted: {
35 | root.background = stack.children[0]
36 | root.foreground = stack.children[1]
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/MaskedBlurItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 | default property alias contentStack: stack.children
7 | property alias maskBlurRadius: maskedBlur.radius
8 | property alias maskBlurSamples: maskedBlur.samples
9 | property alias gradientStopPosition1: stop1.position
10 | property alias gradientStopPosition2: stop2.position
11 | property alias gradientStopPosition3: stop3.position
12 | property alias gradientStopPosition4: stop4.position
13 | property alias maskRotation: gradient.rotation
14 |
15 | implicitWidth: Math.max(32, stack.implicitWidth)
16 | implicitHeight: Math.max(32, stack.implicitHeight)
17 |
18 | Item {
19 | id: stack
20 | implicitWidth: childrenRect.width + childrenRect.x
21 | implicitHeight: childrenRect.height + childrenRect.y
22 |
23 | visible: false
24 | }
25 |
26 | Item {
27 | id: mask
28 | width: stack.width
29 | height: stack.height
30 | visible: false
31 |
32 | LinearGradient {
33 | id: gradient
34 | height: stack.height * 2
35 | width: stack.width * 2
36 | y: -stack.height / 2
37 | x: -stack.width / 2
38 | rotation: 0
39 | gradient: Gradient {
40 | GradientStop {
41 | id: stop1
42 | position: 0.2
43 | color: "#ffffffff"
44 | }
45 | GradientStop {
46 | id: stop2
47 | position: 0.5
48 | color: "#00ffffff"
49 | }
50 | GradientStop {
51 | id: stop3
52 | position: 0.8
53 | color: "#00ffffff"
54 | }
55 | GradientStop {
56 | id: stop4
57 | position: 1.0
58 | color: "#ffffffff"
59 | }
60 | }
61 | start: Qt.point(stack.width / 2, 0)
62 | end: Qt.point(stack.width + stack.width / 2, 100)
63 | }
64 | }
65 |
66 | MaskedBlur {
67 | id: maskedBlur
68 | anchors.fill: stack
69 | source: stack
70 | maskSource: mask
71 | radius: 32
72 | samples: 16
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/RadialBlurItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias cached: radialBlur.cached
9 | property alias samples: radialBlur.samples
10 | property alias verticalOffset: radialBlur.verticalOffset
11 | property alias horizontalOffset: radialBlur.horizontalOffset
12 | property alias transparentBorder: radialBlur.transparentBorder
13 | property alias angle: radialBlur.angle
14 |
15 | implicitWidth: Math.max(32, stack.implicitWidth)
16 | implicitHeight: Math.max(32, stack.implicitHeight)
17 |
18 | Item {
19 | id: stack
20 |
21 | implicitWidth: childrenRect.width + childrenRect.x
22 | implicitHeight: childrenRect.height + childrenRect.y
23 | }
24 |
25 | RadialBlur {
26 | id: radialBlur
27 | anchors.fill: stack
28 | source: stack
29 | verticalOffset: 12
30 | horizontalOffset: 12
31 | samples: 16
32 | angle: 45
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/RotationItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.10
2 |
3 | Item {
4 | id: root
5 | property alias originX: rotation.origin.x
6 | property alias originY: rotation.origin.y
7 | property alias axisX: rotation.axis.x
8 | property alias axisY: rotation.axis.y
9 | property alias axisZ: rotation.axis.z
10 | property alias angle: rotation.angle
11 |
12 | implicitWidth: childrenRect.width + childrenRect.x
13 | implicitHeight: childrenRect.height + childrenRect.y
14 |
15 | transform: Rotation {
16 | id: rotation
17 | origin.x: root.width / 2
18 | origin.y: root.height / 2
19 | angle: 45
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/SaturationItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias desaturation: desaturate.desaturation
9 | property alias cached: desaturate.cached
10 |
11 | implicitWidth: Math.max(32, stack.implicitWidth)
12 | implicitHeight: Math.max(32, stack.implicitHeight)
13 |
14 | Item {
15 | id: stack
16 |
17 | implicitWidth: childrenRect.width + childrenRect.x
18 | implicitHeight: childrenRect.height + childrenRect.y
19 |
20 | visible: false
21 | }
22 |
23 | Desaturate {
24 | id: desaturate
25 | source: stack
26 | anchors.fill: stack
27 |
28 | desaturation: 0.5
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/ZoomBlurItem.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import QtGraphicalEffects 1.0
3 |
4 | Item {
5 | id: root
6 |
7 | default property alias contentStack: stack.children
8 | property alias zoomBlurLength: zoomBlur.length
9 | property alias zoomBlurSamples: zoomBlur.samples
10 | property alias zoomBlurHoffset: zoomBlur.horizontalOffset
11 | property alias zoomBlurVoffset: zoomBlur.verticalOffset
12 | property alias cached: zoomBlur.cached
13 | property alias transparentBorder: zoomBlur.transparentBorder
14 |
15 | implicitWidth: Math.max(32, stack.implicitWidth)
16 | implicitHeight: Math.max(32, stack.implicitHeight)
17 |
18 | Item {
19 | id: stack
20 |
21 | implicitWidth: childrenRect.width + childrenRect.x
22 | implicitHeight: childrenRect.height + childrenRect.y
23 | }
24 |
25 | ZoomBlur {
26 | id: zoomBlur
27 | anchors.fill: stack
28 | source: stack
29 | length: 32
30 | samples: 16
31 | horizontalOffset: 0
32 | verticalOffset: 0
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/BrightnessContrastItemSpecifics.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import HelperWidgets 2.0
3 | import QtQuick.Layouts 1.0
4 |
5 | Column {
6 | anchors.left: parent.left
7 | anchors.right: parent.right
8 |
9 | Section {
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 | caption: "Brightness and Contrast"
13 |
14 | SectionLayout {
15 | rows: 2
16 | Label {
17 | text: qsTr("brightness")
18 | toolTip: qsTr("This property defines how much the source brightness is increased or decreased.")
19 | }
20 | SecondColumnLayout {
21 | SpinBox {
22 | backendValue: backendValues.brightness
23 | Layout.preferredWidth: 80
24 | decimals: 1
25 | minimumValue: -1
26 | maximumValue: 1
27 | stepSize: 0.1
28 | }
29 | ExpandingSpacer {}
30 | }
31 |
32 | Label {
33 | text: qsTr("contrast")
34 | toolTip: qsTr("This property defines how much the source contrast is increased or decreased. The decrease of the contrast is linear, but the increase is applied with a non-linear curve to allow very high contrast adjustment at the high end of the value range.")
35 | }
36 | SecondColumnLayout {
37 | SpinBox {
38 | backendValue: backendValues.contrast
39 | Layout.preferredWidth: 80
40 | decimals: 1
41 | minimumValue: -1
42 | maximumValue: 1
43 | stepSize: 0.1
44 | }
45 | ExpandingSpacer {}
46 | }
47 | }
48 | }
49 |
50 | Section {
51 | anchors.left: parent.left
52 | anchors.right: parent.right
53 | caption: "Caching"
54 |
55 | SectionLayout {
56 | rows: 2
57 | Label {
58 | text: qsTr("cached")
59 | toolTip: qsTr("This property allows the effect output pixels to be cached in order to improve the rendering performance.")
60 | }
61 | SecondColumnLayout {
62 | CheckBox {
63 | Layout.fillWidth: true
64 | backendValue: backendValues.cached
65 | text: backendValues.cached.valueToString
66 | }
67 | }
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/ColorOverlayItemSpecifics.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import HelperWidgets 2.0
3 | import QtQuick.Layouts 1.0
4 |
5 | Column {
6 | anchors.left: parent.left
7 | anchors.right: parent.right
8 |
9 | Section {
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 | caption: qsTr("Overlay Color")
13 |
14 | ColorEditor {
15 | caption: qsTr("Overlay Color")
16 | backendValue: backendValues.overlayColor
17 | supportGradient: false
18 | }
19 | }
20 |
21 | Section {
22 | anchors.left: parent.left
23 | anchors.right: parent.right
24 | caption: "Caching"
25 |
26 | SectionLayout {
27 | rows: 2
28 | Label {
29 | text: qsTr("cached")
30 | toolTip: qsTr("This property allows the effect output pixels to be cached in order to improve the rendering performance.")
31 | }
32 | SecondColumnLayout {
33 | CheckBox {
34 | Layout.fillWidth: true
35 | backendValue: backendValues.cached
36 | text: backendValues.cached.valueToString
37 | }
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/FastBlurItemSpecifics.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import HelperWidgets 2.0
3 | import QtQuick.Layouts 1.0
4 |
5 | Column {
6 | anchors.left: parent.left
7 | anchors.right: parent.right
8 |
9 | Section {
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 | caption: "Blur Details"
13 |
14 | SectionLayout {
15 | rows: 2
16 | Label {
17 | text: qsTr("radius")
18 | toolTip: qsTr("This property defines the distance of the neighboring pixels which affect the blurring of an individual pixel. A larger radius increases the blur effect.")
19 | }
20 | SecondColumnLayout {
21 | SpinBox {
22 | backendValue: backendValues.radius
23 | Layout.preferredWidth: 80
24 | decimals: 1
25 | minimumValue: 0
26 | maximumValue: 100
27 | stepSize: 1
28 | }
29 | ExpandingSpacer {}
30 | }
31 | }
32 | }
33 |
34 | Section {
35 | anchors.left: parent.left
36 | anchors.right: parent.right
37 | caption: "Caching and Border"
38 |
39 | SectionLayout {
40 | rows: 2
41 | Label {
42 | text: qsTr("cached")
43 | toolTip: qsTr("This property allows the effect output pixels to be cached in order to improve the rendering performance.")
44 | }
45 | SecondColumnLayout {
46 | CheckBox {
47 | Layout.fillWidth: true
48 | backendValue: backendValues.cached
49 | text: backendValues.cached.valueToString
50 | }
51 | ExpandingSpacer {}
52 | }
53 | Label {
54 | text: qsTr("transparent border")
55 | toolTip: qsTr("When set to true, the exterior of the item is padded with a transparent edge, making sampling outside the source texture use transparency instead of the edge pixels.")
56 | }
57 | SecondColumnLayout {
58 | CheckBox {
59 | Layout.fillWidth: true
60 | backendValue: backendValues.transparentBorder
61 | text: backendValues.transparentBorder.valueToString
62 | }
63 | }
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/SaturationItemSpecifics.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.0
2 | import HelperWidgets 2.0
3 | import QtQuick.Layouts 1.0
4 |
5 | Column {
6 | anchors.left: parent.left
7 | anchors.right: parent.right
8 |
9 | Section {
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 | caption: "Desaturation"
13 |
14 | SectionLayout {
15 | rows: 2
16 | Label {
17 | text: qsTr("desaturation")
18 | toolTip: qsTr("This property defines how much the source colors are desaturated.")
19 | }
20 | SecondColumnLayout {
21 | SpinBox {
22 | backendValue: backendValues.desaturation
23 | Layout.preferredWidth: 80
24 | decimals: 1
25 | minimumValue: 0
26 | maximumValue: 1
27 | stepSize: 0.1
28 | }
29 | ExpandingSpacer {}
30 | }
31 | }
32 | }
33 |
34 | Section {
35 | anchors.left: parent.left
36 | anchors.right: parent.right
37 | caption: "Caching"
38 |
39 | SectionLayout {
40 | rows: 2
41 | Label {
42 | text: qsTr("cached")
43 | toolTip: qsTr("This property allows the effect output pixels to be cached in order to improve the rendering performance.")
44 | }
45 | SecondColumnLayout {
46 | CheckBox {
47 | Layout.fillWidth: true
48 | backendValue: backendValues.cached
49 | text: backendValues.cached.valueToString
50 | }
51 | }
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/blend-mode-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/blend-mode-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/blend-mode-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/blend-mode-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/blend-mode-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/blend-mode-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/brightness-contrast-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/brightness-contrast-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/brightness-contrast-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/brightness-contrast-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/brightness-contrast-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/brightness-contrast-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/colourize-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/colourize-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/colourize-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/colourize-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/colourize-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/colourize-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/directional-blur-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/directional-blur-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/directional-blur-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/directional-blur-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/directional-blur-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/directional-blur-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/drop-shadow-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/drop-shadow-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/drop-shadow-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/drop-shadow-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/drop-shadow-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/drop-shadow-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/fast-blur-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/fast-blur-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/fast-blur-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/fast-blur-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/fast-blur-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/fast-blur-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/gamma-adjust-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/gamma-adjust-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/gamma-adjust-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/gamma-adjust-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/gamma-adjust-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/gamma-adjust-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/glow-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/glow-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/glow-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/glow-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/glow-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/glow-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/hue-satuartion-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/hue-satuartion-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/hue-satuartion-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/hue-satuartion-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/hue-satuartion-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/hue-satuartion-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-blur-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-blur-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-blur-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-blur-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-blur-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/mask-blur-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/radial-blur-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/radial-blur-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/radial-blur-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/radial-blur-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/radial-blur-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/radial-blur-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/saturation-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/saturation-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/saturation-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/saturation-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/saturation-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/saturation-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/zoom-blur-16px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/zoom-blur-16px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/zoom-blur-24px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/zoom-blur-24px.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/zoom-blur-24px@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/designer/images/zoom-blur-24px@2x.png
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/imports/QtQuick/Studio/Effects/qmldir:
--------------------------------------------------------------------------------
1 | FastBlurItem 1.0 FastBlurItem.qml
2 | GlowItem 1.0 GlowItem.qml
3 | ZoomBlurItem 1.0 ZoomBlurItem.qml
4 | RadialBlurItem 1.0 RadialBlurItem.qml
5 | SaturationItem 1.0 SaturationItem.qml
6 | DirectionalBlurItem 1.0 DirectionalBlurItem.qml
7 | ColorOverlayItem 1.0 ColorOverlayItem.qml
8 | DropShadowItem 1.0 DropShadowItem.qml
9 | ColorizeItem 1.0 ColorizeItem.qml
10 | BrightnessContrastItem 1.0 BrightnessContrastItem.qml
11 | HueSaturationItem 1.0 HueSaturationItem.qml
12 | MaskedBlurItem 1.0 MaskedBlurItem.qml
13 | BlendItem 1.0 BlendItem.qml
14 | MaskItem 1.0 MaskItem.qml
15 | RotationItem 1.0 RotationItem.qml
16 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayer2/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | ; This file can be edited to change the style of the application
2 | ; Read "Qt Quick Controls 2 Configuration File" for details:
3 | ; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html
4 |
5 | [Controls]
6 | Style=Default
7 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/MusicPlayerUI.pro:
--------------------------------------------------------------------------------
1 | QT += quick qml multimedia
2 | CONFIG += c++11
3 |
4 | # The following define makes your compiler emit warnings if you use
5 | # any Qt feature that has been marked deprecated (the exact warnings
6 | # depend on your compiler). Refer to the documentation for the
7 | # deprecated API to know how to port your code away from it.
8 | DEFINES += QT_DEPRECATED_WARNINGS
9 |
10 | # You can also make your code fail to compile if it uses deprecated APIs.
11 | # In order to do so, uncomment the following line.
12 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
13 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
14 |
15 | SOURCES += \
16 | main.cpp
17 |
18 | RESOURCES += qml.qrc
19 |
20 | # Additional import path used to resolve QML modules in Qt Creator's code model
21 | QML_IMPORT_PATH = MusicPlayer2/imports \
22 | MusicPlayer2/assets
23 |
24 | # Additional import path used to resolve QML modules just for Qt Quick Designer
25 | QML_DESIGNER_IMPORT_PATH =
26 |
27 | # Default rules for deployment.
28 | qnx: target.path = /tmp/$${TARGET}/bin
29 | else: unix:!android:!mac: target.path = /opt/$${TARGET}/bin
30 | !isEmpty(target.path): INSTALLS += target
31 |
--------------------------------------------------------------------------------
/Qt/MusicPlayerApp/MusicPlayerUI/main.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.12
2 | import QtQuick.Window 2.12
3 | import "qrc:/MusicPlayer2"
4 | import MusicPlayer2 1.0
5 |
6 | Window {
7 | visible: true
8 | width: Constants.width
9 | height: Constants.height
10 | title: qsTr("Music Player")
11 |
12 | MusicPlayer2 {
13 | anchors.fill: parent
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/doc/img/android_all_songs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_all_songs.png
--------------------------------------------------------------------------------
/doc/img/android_avd_manager_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_avd_manager_launcher.png
--------------------------------------------------------------------------------
/doc/img/android_device_selection_emulator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_device_selection_emulator.png
--------------------------------------------------------------------------------
/doc/img/android_devices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_devices.png
--------------------------------------------------------------------------------
/doc/img/android_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_home.png
--------------------------------------------------------------------------------
/doc/img/android_playing_song.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_playing_song.png
--------------------------------------------------------------------------------
/doc/img/android_project_structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/android_project_structure.png
--------------------------------------------------------------------------------
/doc/img/device_debug_mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/device_debug_mode.png
--------------------------------------------------------------------------------
/doc/img/device_file_transfer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/device_file_transfer.png
--------------------------------------------------------------------------------
/doc/img/device_uninstall_for_all_users.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/device_uninstall_for_all_users.png
--------------------------------------------------------------------------------
/doc/img/qt_all_songs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/qt_all_songs.png
--------------------------------------------------------------------------------
/doc/img/qt_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/qt_home.png
--------------------------------------------------------------------------------
/doc/img/qt_mingw_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/qt_mingw_settings.png
--------------------------------------------------------------------------------
/doc/img/qt_playing_song.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/qt_playing_song.png
--------------------------------------------------------------------------------
/doc/img/qt_project_structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/qt_project_structure.png
--------------------------------------------------------------------------------
/doc/img/qt_run_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/qt_run_settings.png
--------------------------------------------------------------------------------
/doc/img/witekio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Witekio/qt-and-android-whitepaper-apps/1d07b75687ee3ec726723b212fb62eeb8b91e65f/doc/img/witekio.png
--------------------------------------------------------------------------------