Example usage for android.support.v4.content PermissionChecker checkCallingOrSelfPermission

List of usage examples for android.support.v4.content PermissionChecker checkCallingOrSelfPermission

Introduction

In this page you can find the example usage for android.support.v4.content PermissionChecker checkCallingOrSelfPermission.

Prototype

public static int checkCallingOrSelfPermission(@NonNull Context context, @NonNull String permission) 

Source Link

Document

Checks whether the IPC you are handling or your app has a given permission and whether the app op that corresponds to this permission is allowed.

Usage

From source file:com.rks.musicx.data.loaders.ArtistLoader.java

@Override
public List<Artist> loadInBackground() {

    List<Artist> artistList = new ArrayList<>();

    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        Cursor cursor = getContext().getContentResolver().query(MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI,
                null, null, null, sortorder);
        if (cursor != null && cursor.moveToFirst()) {
            int idCol = cursor.getColumnIndex(BaseColumns._ID);
            int nameCol = cursor.getColumnIndex(MediaStore.Audio.ArtistColumns.ARTIST);
            int albumsNbCol = cursor.getColumnIndex(MediaStore.Audio.ArtistColumns.NUMBER_OF_ALBUMS);
            int tracksNbCol = cursor.getColumnIndex(MediaStore.Audio.ArtistColumns.NUMBER_OF_TRACKS);
            do {//www. j  a  va2s  .c o m
                long id = cursor.getLong(idCol);
                String artistName = cursor.getString(nameCol);
                int albumCount = cursor.getInt(albumsNbCol);
                int trackCount = cursor.getInt(tracksNbCol);
                artistList.add(new Artist(id, artistName, albumCount, trackCount));
            } while (cursor.moveToNext());
            cursor.close();
        }
        if (cursor == null) {
            return Collections.emptyList();
        }
        return artistList;
    } else {
        return null;
    }

}

From source file:com.rks.musicx.data.loaders.ArtistAlbumLoader.java

@Override
public List<Artist> loadInBackground() {
    List<Artist> artistList = new ArrayList<>();

    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        Cursor cursor = getContext().getContentResolver().query(
                MediaStore.Audio.Artists.Albums.getContentUri("external", artistID), null, null, null,
                sortorder);/* w  w w  . j a  v  a2 s.c o  m*/
        if (cursor != null && cursor.moveToFirst()) {
            int idCol = cursor.getColumnIndex(BaseColumns._ID);
            int nameCol = cursor.getColumnIndex(MediaStore.Audio.Artists.Albums.ARTIST);
            int albumsNbCol = cursor.getColumnIndex(MediaStore.Audio.Artists.Albums.NUMBER_OF_SONGS_FOR_ARTIST);
            int tracksNbCol = cursor.getColumnIndex(MediaStore.Audio.Artists.Albums.NUMBER_OF_SONGS);
            do {
                long id = cursor.getLong(idCol);
                String artistName = cursor.getString(nameCol);
                int albumCount = cursor.getInt(albumsNbCol);
                int trackCount = cursor.getInt(tracksNbCol);
                artistList.add(new Artist(id, artistName, albumCount, trackCount));
            } while (cursor.moveToNext());
            cursor.close();
        }
        if (cursor == null) {
            return Collections.emptyList();
        }
        return artistList;
    } else {
        return null;
    }
}

From source file:com.rks.musicx.data.loaders.PlaylistLoaders.java

@Override
public List<Playlist> loadInBackground() {
    List<Playlist> playlistList = new ArrayList<>();
    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        Cursor cursor = getContext().getContentResolver().query(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
                dataCol, "", null, sortorder);
        if (cursor != null && cursor.moveToFirst()) {
            int idCol = cursor.getColumnIndex(MediaStore.Audio.Playlists._ID);
            int nameCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.NAME);
            do {/*from w w w .j av  a2 s  .  c  o m*/
                long id = cursor.getLong(idCol);
                String name = cursor.getString(nameCol);

                Playlist playlist = new Playlist();
                playlist.setId(id);
                playlist.setName(name);
                playlistList.add(playlist);
            } while (cursor.moveToNext());
            cursor.close();
        }
        if (cursor == null) {
            return Collections.emptyList();
        }
        return playlistList;
    } else {
        return null;
    }
}

From source file:com.rks.musicx.data.loaders.AlbumLoader.java

@Override
public List<Album> loadInBackground() {
    ArrayList<Album> albums = new ArrayList<>();
    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        Cursor musicCursor = getContext().getContentResolver()
                .query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, datacol, Where, selectionargs, sortorder);
        if (musicCursor != null && musicCursor.moveToFirst()) {
            int titleColumn = musicCursor.getColumnIndex(MediaStore.Audio.AlbumColumns.ALBUM);
            int idColumn = musicCursor.getColumnIndex(BaseColumns._ID);
            int artistColumn = musicCursor.getColumnIndex(MediaStore.Audio.AlbumColumns.ARTIST);
            int numOfSongsColumn = musicCursor.getColumnIndex(MediaStore.Audio.AlbumColumns.NUMBER_OF_SONGS);
            int albumfirstColumn = musicCursor.getColumnIndex(MediaStore.Audio.AlbumColumns.FIRST_YEAR);
            do {//w  ww.j  av  a2s  . c o m
                String albumName = musicCursor.getString(titleColumn);
                long albumId = musicCursor.getLong(idColumn);
                String artistName = musicCursor.getString(artistColumn);
                int year = musicCursor.getInt(albumfirstColumn);
                int no = musicCursor.getInt(numOfSongsColumn);
                Album album = new Album();
                /**
                 * Setting Album Metadata
                 */
                album.setArtistName(artistName);
                album.setAlbumName(albumName);
                album.setId(albumId);
                album.setTrackCount(no);
                album.setYear(year);
                albums.add(album);
            } while (musicCursor.moveToNext());
            musicCursor.close();
        }
        if (musicCursor == null) {
            return Collections.emptyList();
        }
        return albums;
    } else {
        return null;
    }
}

From source file:com.rks.musicx.data.loaders.FolderLoader.java

@Override
public List<Folder> loadInBackground() {
    List<Folder> folderList = new ArrayList<>();
    List<Song> songList = new ArrayList<>();
    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        FileExtensionFilter mFileExtensionFilter = new FileExtensionFilter(Constants.fileExtensions);
        if (dir != null) {
            File[] scanFolder = dir.listFiles(mFileExtensionFilter);
            if (scanFolder == null) {
                return null;
            }//w  w  w .ja  va2 s  .  co  m
            for (File aScanFolder : scanFolder) {
                Folder folder = new Folder();
                Cursor cursor = getContext().getContentResolver().query(
                        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                        new String[] { MediaStore.Audio.Media.DATA }, MediaStore.Audio.Media.DATA + " like ? ",
                        new String[] { "%" + aScanFolder.getAbsolutePath() + "%" }, null);
                if (cursor != null) {
                    int count = cursor.getCount();
                    if (count != 0) {
                        if (!aScanFolder.isDirectory()) {
                            String path = aScanFolder.getAbsolutePath();
                            Song song = Helper.getSongData(Extras.getInstance().getSongSortOrder(),
                                    getContext(), path);
                            songList.add(song);
                        }
                        if (!aScanFolder.getAbsolutePath().startsWith("/d")) {
                            Log.e("FolderLoader", "Path --> " + aScanFolder.getAbsolutePath());
                            folder.setFile(aScanFolder);
                            folder.setFileCount(count);
                            folder.setSongList(songList);
                            folderList.add(folder);
                        }
                    }
                }
                if (cursor != null) {
                    cursor.close();
                }
            }
            Collections.sort(folderList, new Comparator<Folder>() {
                @Override
                public int compare(Folder f1, Folder f2) {
                    if ((f1.getFile().isDirectory() && f2.getFile().isDirectory()))
                        return f1.getFile().getName().compareToIgnoreCase(f2.getFile().getName());
                    else if (f1.getFile().isDirectory() && !f2.getFile().isDirectory())
                        return -1;
                    else if (!f1.getFile().isDirectory() && f2.getFile().isDirectory())
                        return 1;
                    else if (!f1.getFile().isDirectory() && !f2.getFile().isDirectory())
                        return f1.getFile().getName().compareToIgnoreCase(f2.getFile().getName());
                    else
                        return 0;
                }

            });
            if (!dir.getAbsolutePath().equals("/")) {
                Folder folder = new Folder();
                if (dir.getParentFile() != null) {
                    folder.setFile(dir.getParentFile());
                    Log.e("FolderLoader", dir.getParentFile().getAbsolutePath());
                    folderList.add(0, folder);
                }
            }
        }

        return folderList;
    } else {
        Log.d("Folder", "Permission not granted");
        return Collections.emptyList();
    }
}

From source file:com.rks.musicx.data.loaders.DefaultSongLoader.java

public Song getSongData() {
    if (provider) {
        if (PermissionChecker.checkCallingOrSelfPermission(context,
                Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
            cursor = context.getContentResolver().query(uri, queryTable, selection, queryTable2, SortOrder);
            if (cursor != null && cursor.moveToFirst()) {
                int idCol = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
                int titleCol = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
                int artistCol = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
                int albumCol = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM);
                int albumIdCol = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
                int trackCol = cursor.getColumnIndex(MediaStore.Audio.Media.TRACK);
                int datacol = cursor.getColumnIndex(MediaStore.Audio.Media.DATA);

                /**/*w  w  w. j a  v  a  2s.c o  m*/
                 * @return songs metadata
                 */
                long id = cursor.getLong(idCol);
                String title = cursor.getString(titleCol);
                String artist = cursor.getString(artistCol);
                String album = cursor.getString(albumCol);
                long albumId = cursor.getLong(albumIdCol);
                int track = cursor.getInt(trackCol);
                String mSongPath = cursor.getString(datacol);

                song.setAlbum(album);
                song.setmSongPath(mSongPath);
                song.setArtist(artist);
                song.setId(id);
                song.setAlbumId(albumId);
                song.setTrackNumber(track);
                song.setTitle(title);
                songList.add(song);
            }
            if (cursor != null) {
                cursor.close();
            }
        } else {
            Log.e("DefaultSongLoader", "No read permissions");
        }
    } else {
        cursor = sqLiteDatabase.query(dbtable, queryTable, selection, queryTable2, groupby, having, SortOrder,
                limit);
        if (cursor != null && cursor.moveToFirst()) {
            int idCol = cursor.getColumnIndex(songId);
            int titleCol = cursor.getColumnIndex(songTitle);
            int artistCol = cursor.getColumnIndex(songArtist);
            int albumCol = cursor.getColumnIndex(songAlbum);
            int albumIdCol = cursor.getColumnIndex(songAlbumId);
            int trackCol = cursor.getColumnIndex(songTrack);
            int datacol = cursor.getColumnIndex(songData);

            /**
             * @return songs metadata
             */
            long id = cursor.getLong(idCol);
            String title = cursor.getString(titleCol);
            String artist = cursor.getString(artistCol);
            String album = cursor.getString(albumCol);
            long albumId = cursor.getLong(albumIdCol);
            int track = cursor.getInt(trackCol);
            String mSongPath = cursor.getString(datacol);

            song.setAlbum(album);
            song.setmSongPath(mSongPath);
            song.setArtist(artist);
            song.setId(id);
            song.setAlbumId(albumId);
            song.setTrackNumber(track);
            song.setTitle(title);
            songList.add(song);
        }
        if (cursor != null) {
            cursor.close();
        }
    }
    return song;
}

From source file:com.rks.musicx.data.loaders.TrackLoader.java

@Override
public List<Song> loadInBackground() {

    List<Song> songList = new ArrayList<>();

    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        Cursor cursor = getContext().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                datacol, Where, selectionargs, sortorder);

        if (cursor != null && cursor.moveToFirst()) {
            int idCol = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
            int titleCol = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
            int artistCol = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
            int albumCol = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM);
            int albumIdCol = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
            int trackCol = cursor.getColumnIndex(MediaStore.Audio.Media.TRACK);
            int datacol = cursor.getColumnIndex(MediaStore.Audio.Media.DATA);
            int yearCol = cursor.getColumnIndex(MediaStore.Audio.Media.YEAR);
            int artistIdCol = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST_ID);
            do {/*  www. jav  a2  s .  c  o m*/
                long id = cursor.getLong(idCol);
                String title = cursor.getString(titleCol);
                String artist = cursor.getString(artistCol);
                String album = cursor.getString(albumCol);
                long albumId = cursor.getLong(albumIdCol);
                int track = cursor.getInt(trackCol);
                String mSongPath = cursor.getString(datacol);
                String year = cursor.getString(yearCol);
                long artistId = cursor.getLong(artistIdCol);

                Song song = new Song();
                /*
                Setup metadata of songs
                 */
                song.setAlbum(album);
                song.setmSongPath(mSongPath);
                song.setArtist(artist);
                song.setId(id);
                song.setAlbumId(albumId);
                song.setTrackNumber(track);
                song.setTitle(title);
                song.setYear(year);
                song.setArtistId(artistId);
                songList.add(song);
            } while (cursor.moveToNext());
            cursor.close();
        }
        if (cursor == null) {
            return Collections.emptyList();
        }
        return songList;
    } else {
        return null;
    }
}

From source file:com.rks.musicx.data.loaders.PlaylistLoader.java

@Override
public List<Song> loadInBackground() {
    List<Song> playlist = new ArrayList<>();
    String sortorder = MediaStore.Audio.Playlists.Members.PLAY_ORDER;
    if (mPlaylistId == 0) {
        return null;
    }/*ww  w .ja v a2 s  .  c om*/
    if (PermissionChecker.checkCallingOrSelfPermission(getContext(),
            Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
        Cursor cursor = getContext().getContentResolver().query(
                MediaStore.Audio.Playlists.Members.getContentUri("external", mPlaylistId), sProjection, "",
                null, sortorder);
        if (cursor != null && cursor.moveToFirst()) {
            int idCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.AUDIO_ID);
            if (idCol == -1) {
                idCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members._ID);
            }
            int titleCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.TITLE);
            int artistCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.ARTIST);
            int albumCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.ALBUM);
            int albumIdCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.ALBUM_ID);
            int trackCol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.TRACK);
            int datacol = cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.DATA);
            do {
                long id = cursor.getLong(idCol);
                String title = cursor.getString(titleCol);
                String artist = cursor.getString(artistCol);
                String album = cursor.getString(albumCol);
                long albumId = cursor.getLong(albumIdCol);
                int track = cursor.getInt(trackCol);
                String mSongPath = cursor.getString(datacol);
                Song song = new Song();
                /*
                 Setup metadata of playlist
                */
                song.setAlbum(album);
                song.setmSongPath(mSongPath);
                song.setArtist(artist);
                song.setId(id);
                song.setAlbumId(albumId);
                song.setTrackNumber(track);
                song.setTitle(title);
                playlist.add(song);
            } while (cursor.moveToNext());
            cursor.close();
        }
        if (cursor == null) {
            Collections.emptyList();
        }
        return playlist;
    } else {
        return null;
    }
}

From source file:com.rks.musicx.misc.utils.permissionManager.java

public static boolean isSystemAlertGranted(@NonNull Context context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        boolean result = PermissionChecker.checkCallingOrSelfPermission(context,
                Manifest.permission.SYSTEM_ALERT_WINDOW) == PermissionChecker.PERMISSION_GRANTED;
        if (result || Settings.canDrawOverlays(context)) {
            return true;
        } else {/*from   www . java 2s  . c o  m*/
            return false;
        }
    } else {
        return true;
    }
}

From source file:com.rks.musicx.misc.utils.permissionManager.java

public static boolean isAudioRecordGranted(@NonNull Context context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (PermissionChecker.checkCallingOrSelfPermission(context,
                Manifest.permission.RECORD_AUDIO) == PermissionChecker.PERMISSION_GRANTED) {
            return true;
        } else {/*from ww w .  ja v  a 2s. com*/
            return false;
        }
    } else {
        return true;
    }
}