From d2d933ed8fa569bd2da8fd8e28053962e7e32823 Mon Sep 17 00:00:00 2001
From: norohind <60548839+norohind@users.noreply.github.com>
Date: Wed, 17 Aug 2022 00:38:20 +0300
Subject: [PATCH] Make bypass .nomedia, bypass .nomedia under Android 11+
 (android.permission.MANAGE_EXTERNAL_STORAGE) update gradle to some higher
 version

---
 app/build.gradle                                   | 14 ++++++--------
 app/src/main/AndroidManifest.xml                   |  1 +
 .../android/medialibrary/MediaScanner.java         |  4 ++--
 .../android/vanilla/LibraryActivity.java           | 10 ++++++++++
 build.gradle                                       |  2 +-
 gradle/wrapper/gradle-wrapper.properties           |  7 +++----
 6 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 0d558ba1..a83a1e6d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,12 +1,9 @@
 apply plugin: 'com.android.application'
 
 android {
-    lintOptions {
-        disable 'MissingTranslation'
-        disable 'ExtraTranslation'
-    }
+	compileSdkVersion 32
 
-    compileSdkVersion rootProject.ext.compileSdkVersion
+	compileSdkVersion 32 // rootProject.ext.compileSdkVersion
 
     defaultConfig {
         applicationId "ch.blinkenlights.android.vanilla"
@@ -21,10 +18,11 @@ android {
             zipAlignEnabled true
         }
     }
+	lint {
+		abortOnError false
+		disable 'MissingTranslation', 'ExtraTranslation'
+	}
 
-    lintOptions {
-        abortOnError false
-    }
 }
 
 dependencies {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index efaa4283..0eada1bc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -30,6 +30,7 @@ THE SOFTWARE.
 	<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
 	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+	<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
 	<!-- This is needed for isWiredHeadsetOn() to work in some cases. (bug?) -->
 	<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 	<!-- Playlist shortcuts -->
diff --git a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java
index bf41d8ca..569522d7 100644
--- a/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java
+++ b/app/src/main/java/ch/blinkenlights/android/medialibrary/MediaScanner.java
@@ -445,8 +445,8 @@ public class MediaScanner implements Handler.Callback {
 		if (!dir.isDirectory())
 			return;
 
-		if (new File(dir, ".nomedia").exists())
-			return;
+//		if (new File(dir, ".nomedia").exists())
+//			return;
 
 		if (isDotfile(dir))
 			return;
diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java b/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java
index 6ecdb811..aedf5396 100644
--- a/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java
+++ b/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java
@@ -36,9 +36,12 @@ import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.Color;
+import android.os.Build;
 import android.os.Bundle;
+import android.os.Environment;
 import android.os.Handler;
 import android.os.Message;
+import android.provider.Settings;
 import android.support.iosched.tabs.VanillaTabLayout;
 import android.text.TextUtils;
 import android.view.KeyEvent;
@@ -54,6 +57,7 @@ import android.widget.TextView;
 import android.widget.SearchView;
 import android.widget.Toast;
 
+import androidx.annotation.RequiresApi;
 import androidx.viewpager.widget.ViewPager;
 
 import java.io.File;
@@ -155,6 +159,7 @@ public class LibraryActivity
 	private LibraryAdapter mCurrentAdapter;
 
 
+	@RequiresApi(api = Build.VERSION_CODES.R)
 	@Override
 	public void onCreate(Bundle state)
 	{
@@ -188,6 +193,11 @@ public class LibraryActivity
 			PermissionRequestActivity.showWarning(this, getIntent());
 		}
 
+		if (!Environment.isExternalStorageManager()) {
+			Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
+			startActivity(intent);
+		}
+
 		mVanillaTabLayout = (VanillaTabLayout)findViewById(R.id.sliding_tabs);
 		mVanillaTabLayout.setOnPageChangeListener(pagerAdapter);
 
diff --git a/build.gradle b/build.gradle
index e1a76206..59803e7f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:4.0.0'
+        classpath 'com.android.tools.build:gradle:7.2.2'
     }
 }
 allprojects {
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5cb32e56..ec6d3f40 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,7 +1,6 @@
-#Wed Jun 27 14:32:00 EDT 2018
+#Sun Aug 14 22:38:11 MSK 2022
 distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
 distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
-distributionSha256Sum=10065868c78f1207afb3a92176f99a37d753a513dff453abb6b5cceda4058cda
+zipStoreBase=GRADLE_USER_HOME