Hytod

Untitled

Jul 5th, 2023 (edited)
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.91 KB | None | 0 0
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3.  
  4.  
  5. List<Songs> songsList = new ArrayList<>();
  6. RecyclerView recyclerView;
  7.  
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. recyclerView = findViewById(R.id.main_recyclerview);
  13. permission();
  14.  
  15.  
  16.  
  17. }
  18.  
  19. private void permission() {
  20. if ((ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_MEDIA_AUDIO) != PackageManager.PERMISSION_GRANTED) ||
  21. (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_MEDIA_VIDEO) != PackageManager.PERMISSION_GRANTED) ||
  22. (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_MEDIA_IMAGES) != PackageManager.PERMISSION_GRANTED) ||
  23. (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) ||
  24. (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.MANAGE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) ||
  25. (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
  26.  
  27. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
  28. ActivityCompat.requestPermissions(MainActivity.this,
  29. new String[]{
  30. Manifest.permission.READ_MEDIA_AUDIO,
  31. Manifest.permission.READ_MEDIA_IMAGES,
  32. Manifest.permission.READ_MEDIA_VIDEO
  33. }, 1);
  34.  
  35. } else {
  36. ActivityCompat.requestPermissions(MainActivity.this,
  37. new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
  38. Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
  39. }
  40.  
  41. } else {
  42.  
  43. }
  44. }
  45.  
  46. /*Handle permission request results*/
  47. @Override
  48. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  49. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  50. if (requestCode == 1) {
  51. boolean allPermissionsGranted = true;
  52. for (int grantResult : grantResults) {
  53. if (grantResult != PackageManager.PERMISSION_GRANTED) {
  54. allPermissionsGranted = false;
  55. break;
  56. }else {
  57.  
  58. }
  59. }
  60. if (!allPermissionsGranted) {
  61. showPermissionRequiredDialog();
  62. }else{
  63.  
  64. }
  65. }
  66.  
  67. }
  68.  
  69.  
  70. private void showPermissionRequiredDialog() {
  71. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  72. builder.setTitle("Permission Required")
  73. .setMessage("This permission is required to access the app.")
  74. .setPositiveButton("Go to Settings", new DialogInterface.OnClickListener() {
  75. @Override
  76. public void onClick(DialogInterface dialog, int which) {
  77. Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
  78. Uri uri = Uri.fromParts("package", getPackageName(), null);
  79. intent.setData(uri);
  80. startActivity(intent);
  81. }
  82. })
  83. .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  84. @Override
  85. public void onClick(DialogInterface dialog, int which) {
  86. finish();
  87. }
  88. })
  89. .setCancelable(false)
  90. .show();
  91. }
  92.  
  93.  
  94.  
  95. private void fetchSong() {
  96. final String[] column = {MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.DATA};
  97. final String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0";
  98. Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,column,selection,null,null);
  99. while (cursor.moveToNext()) {
  100. Songs songData = new Songs(cursor.getString(0),cursor.getString(1),cursor.getString(2));
  101. if (new File(songData.getPath()).exists()){
  102. songsList.add(songData);
  103. }
  104. recyclerView.setHasFixedSize(true);
  105. recyclerView.setLayoutManager(new LinearLayoutManager(this));
  106. AdapterRecycler adapterRecycler = new AdapterRecycler(this,songsList);
  107. recyclerView.setAdapter(adapterRecycler);
  108. recyclerView.getAdapter().notifyDataSetChanged();
  109.  
  110. }
  111. }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment