File indexing completed on 2024-05-19 08:41:41
0001 /* 0002 SPDX-FileCopyrightText: 2018 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #ifndef ANDROIDFILELISTING_H 0008 #define ANDROIDFILELISTING_H 0009 0010 #include "../abstractfile/abstractfilelisting.h" 0011 0012 #include "datatypes.h" 0013 0014 #include <QObject> 0015 #include <QString> 0016 #include <QUrl> 0017 #include <QHash> 0018 0019 #include <memory> 0020 0021 class AndroidFileListingPrivate; 0022 class MusicAudioTrack; 0023 0024 class AndroidFileListing : public AbstractFileListing 0025 { 0026 0027 Q_OBJECT 0028 0029 public: 0030 AndroidFileListing(QObject *parent = nullptr); 0031 0032 ~AndroidFileListing() override; 0033 0034 void applicationAboutToQuit() override; 0035 0036 static void registerNativeMethods(); 0037 0038 static AndroidFileListing* currentInstance(); 0039 0040 void androidMusicTracksScanStarted(); 0041 0042 void newMusicTrack(const QString &trackDescription); 0043 0044 void androidMusicTracksScanFinished(); 0045 0046 void androidMusicAlbumsScanStarted(); 0047 0048 void newMusicAlbum(const QString &albumDescription); 0049 0050 void androidMusicAlbumsScanFinished(); 0051 0052 void readExternalStoragePermissionIsOk(); 0053 0054 void readExternalStoragePermissionIsKo(); 0055 0056 Q_SIGNALS: 0057 0058 public Q_SLOTS: 0059 0060 private Q_SLOTS: 0061 0062 private: 0063 void executeInit(QHash<QUrl, QDateTime> allFiles) override; 0064 0065 void triggerRefreshOfContent() override; 0066 0067 DataTypes::TrackDataType scanOneFile(const QUrl &scanFile, const QFileInfo &scanFileInfo, FileSystemWatchingModes watchForFileSystemChanges) override; 0068 0069 static AndroidFileListing* mCurrentInstance; 0070 0071 std::unique_ptr<AndroidFileListingPrivate> d; 0072 0073 }; 0074 0075 #endif // ANDROIDFILELISTING_H