From 93fd2913be1dcb9066074cf4dc19ba58a4e0c0cb Mon Sep 17 00:00:00 2001 From: Eugene Cheung Date: Wed, 30 Aug 2017 19:33:30 -0400 Subject: [PATCH 1/3] Bump support libraries to v26.0.2 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index e41a88c2..27aa368d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } ext { - supportLibVersion = '26.0.1' + supportLibVersion = '26.0.2' } dependencies { From 115be9ddc38020f68fb6bfd94056d87372ad03be Mon Sep 17 00:00:00 2001 From: tkashkin Date: Thu, 31 Aug 2017 10:28:24 +0300 Subject: [PATCH 2/3] SD card write access using SAF API (#94) (#241) * SD card write access using SAF API * SAF file deletion * Added SAF guide to show user how to grant sdcard access * Handle revoked sdcard uri * Show SAF guide when deleting songs * Delete songs in AsyncTask * Wrap Activities in WeakReferences --- app/src/main/AndroidManifest.xml | 3 + .../gramophone/dialogs/DeleteSongsDialog.java | 180 ++++++++++- .../ui/activities/saf/SAFGuideActivity.java | 52 ++++ .../tageditor/AbsTagEditorActivity.java | 132 ++++++-- .../kabouzeid/gramophone/util/FileUtil.java | 12 + .../kabouzeid/gramophone/util/MusicUtil.java | 39 ++- .../gramophone/util/PreferenceUtil.java | 11 + .../kabouzeid/gramophone/util/SAFUtil.java | 291 ++++++++++++++++++ app/src/main/res/drawable-v21/saf_guide_1.png | Bin 0 -> 13232 bytes app/src/main/res/drawable-v21/saf_guide_2.png | Bin 0 -> 15813 bytes app/src/main/res/drawable-v21/saf_guide_3.png | Bin 0 -> 29579 bytes app/src/main/res/drawable-v26/saf_guide_1.png | Bin 0 -> 19017 bytes app/src/main/res/drawable-v26/saf_guide_2.png | Bin 0 -> 23438 bytes app/src/main/res/drawable-v26/saf_guide_3.png | Bin 0 -> 17716 bytes app/src/main/res/values/strings.xml | 15 + 15 files changed, 693 insertions(+), 42 deletions(-) create mode 100644 app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java create mode 100644 app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java create mode 100644 app/src/main/res/drawable-v21/saf_guide_1.png create mode 100644 app/src/main/res/drawable-v21/saf_guide_2.png create mode 100644 app/src/main/res/drawable-v21/saf_guide_3.png create mode 100644 app/src/main/res/drawable-v26/saf_guide_1.png create mode 100644 app/src/main/res/drawable-v26/saf_guide_2.png create mode 100644 app/src/main/res/drawable-v26/saf_guide_3.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0c73348..4ed887e6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -113,6 +113,9 @@ android:name=".ui.activities.intro.AppIntroActivity" android:label="@string/intro_label" android:theme="@style/Theme.Intro" /> + diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java index da7ef178..00b5eb84 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java @@ -1,24 +1,41 @@ package com.kabouzeid.gramophone.dialogs; +import android.annotation.TargetApi; +import android.app.Activity; import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; +import android.support.v4.app.FragmentActivity; import android.text.Html; +import android.widget.Toast; import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; import com.kabouzeid.gramophone.R; +import com.kabouzeid.gramophone.misc.DialogAsyncTask; import com.kabouzeid.gramophone.model.Song; +import com.kabouzeid.gramophone.ui.activities.saf.SAFGuideActivity; import com.kabouzeid.gramophone.util.MusicUtil; +import com.kabouzeid.gramophone.util.SAFUtil; +import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** * @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad) */ public class DeleteSongsDialog extends DialogFragment { + private ArrayList songsToRemove; + private Song currentSong; + @NonNull public static DeleteSongsDialog create(Song song) { ArrayList list = new ArrayList<>(); @@ -54,14 +71,171 @@ public class DeleteSongsDialog extends DialogFragment { .content(content) .positiveText(R.string.delete_action) .negativeText(android.R.string.cancel) + .autoDismiss(false) .onPositive(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { - if (getActivity() == null) - return; - MusicUtil.deleteTracks(getActivity(), songs); + songsToRemove = songs; + new DeleteSongsAsyncTask(DeleteSongsDialog.this).execute(new DeleteSongsAsyncTask.LoadingInfo(songs, null)); + } + }) + .onNegative(new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog materialDialog, @NonNull DialogAction dialogAction) { + dismiss(); } }) .build(); } + + private void deleteSongs(List songs, List safUris) { + MusicUtil.deleteTracks(getActivity(), songs, safUris); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + private void deleteSongsKitkat() { + if (songsToRemove.size() < 1) { + dismiss(); + return; + } + + currentSong = songsToRemove.remove(0); + + if (!SAFUtil.isSAFRequired(currentSong)) { + deleteSongs(Collections.singletonList(currentSong), null); + deleteSongsKitkat(); + } else { + Toast.makeText(getActivity(), String.format(getString(R.string.saf_pick_file), currentSong.data), Toast.LENGTH_LONG).show(); + SAFUtil.openFilePicker(this); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + switch (requestCode) { + case SAFGuideActivity.REQUEST_CODE_SAF_GUIDE: + SAFUtil.openTreePicker(this); + break; + + case SAFUtil.REQUEST_SAF_PICK_TREE: + case SAFUtil.REQUEST_SAF_PICK_FILE: + new DeleteSongsAsyncTask(this).execute(new DeleteSongsAsyncTask.LoadingInfo(requestCode, resultCode, intent)); + break; + } + } + + private static class DeleteSongsAsyncTask extends DialogAsyncTask { + private WeakReference dialog; + private WeakReference activity; + + public DeleteSongsAsyncTask(DeleteSongsDialog dialog) { + super(dialog.getActivity()); + this.dialog = new WeakReference<>(dialog); + this.activity = new WeakReference<>(dialog.getActivity()); + } + + @Override + protected Void doInBackground(LoadingInfo... params) { + try { + LoadingInfo info = params[0]; + + DeleteSongsDialog dialog = this.dialog.get(); + FragmentActivity activity = this.activity.get(); + + if (dialog == null || activity == null) + return null; + + if (!info.isIntent) { + if (!SAFUtil.isSAFRequiredForSongs(info.songs)) { + dialog.deleteSongs(info.songs, null); + } else { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (SAFUtil.isSDCardAccessGranted(activity)) { + dialog.deleteSongs(info.songs, null); + } else { + dialog.startActivityForResult(new Intent(activity, SAFGuideActivity.class), SAFGuideActivity.REQUEST_CODE_SAF_GUIDE); + } + } else { + dialog.deleteSongsKitkat(); + } + } + } else { + switch (info.requestCode) { + case SAFUtil.REQUEST_SAF_PICK_TREE: + if (info.resultCode == Activity.RESULT_OK) { + SAFUtil.saveTreeUri(activity, info.intent); + dialog.deleteSongs(dialog.songsToRemove, null); + } + break; + + case SAFUtil.REQUEST_SAF_PICK_FILE: + if (info.resultCode == Activity.RESULT_OK) { + dialog.deleteSongs(Collections.singletonList(dialog.currentSong), Collections.singletonList(info.intent.getData())); + } + break; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + @Override + protected void onPostExecute(Void v) { + super.onPostExecute(v); + + DeleteSongsDialog dialog = this.dialog.get(); + FragmentActivity activity = this.activity.get(); + if (dialog != null && activity != null && !activity.isFinishing()) { + dialog.dismiss(); + } + } + + @Override + protected void onCancelled() { + super.onCancelled(); + + DeleteSongsDialog dialog = this.dialog.get(); + FragmentActivity activity = this.activity.get(); + if (dialog != null && activity != null && !activity.isFinishing()) { + dialog.dismiss(); + } + } + + @Override + protected Dialog createDialog(@NonNull Context context) { + return new MaterialDialog.Builder(context) + .title(R.string.deleting_songs) + .cancelable(false) + .progress(true, 0) + .build(); + } + + public static class LoadingInfo { + public boolean isIntent; + + public List songs; + public List safUris; + + public int requestCode; + public int resultCode; + public Intent intent; + + public LoadingInfo(List songs, List safUris) { + this.isIntent = false; + this.songs = songs; + this.safUris = safUris; + } + + public LoadingInfo(int requestCode, int resultCode, Intent intent) { + this.isIntent = true; + this.requestCode = requestCode; + this.resultCode = resultCode; + this.intent = intent; + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java new file mode 100644 index 00000000..aff54327 --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java @@ -0,0 +1,52 @@ +package com.kabouzeid.gramophone.ui.activities.saf; + +import android.os.Build; +import android.os.Bundle; + +import com.heinrichreimersoftware.materialintro.app.IntroActivity; +import com.heinrichreimersoftware.materialintro.slide.SimpleSlide; +import com.kabouzeid.gramophone.R; + + +public class SAFGuideActivity extends IntroActivity { + + public static final int REQUEST_CODE_SAF_GUIDE = 98; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setButtonCtaVisible(false); + setButtonNextVisible(false); + setButtonBackVisible(false); + + setButtonCtaTintMode(BUTTON_CTA_TINT_MODE_TEXT); + + String title = String.format(getString(R.string.saf_guide_slide1_title), getString(R.string.app_name)); + + addSlide(new SimpleSlide.Builder() + .title(title) + .description(Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1 ? R.string.saf_guide_slide1_description_before_o : R.string.saf_guide_slide1_description) + .image(R.drawable.saf_guide_1) + .background(R.color.md_indigo_300) + .backgroundDark(R.color.md_indigo_400) + .layout(R.layout.fragment_simple_slide_large_image) + .build()); + addSlide(new SimpleSlide.Builder() + .title(R.string.saf_guide_slide2_title) + .description(R.string.saf_guide_slide2_description) + .image(R.drawable.saf_guide_2) + .background(R.color.md_indigo_500) + .backgroundDark(R.color.md_indigo_600) + .layout(R.layout.fragment_simple_slide_large_image) + .build()); + addSlide(new SimpleSlide.Builder() + .title(R.string.saf_guide_slide3_title) + .description(R.string.saf_guide_slide3_description) + .image(R.drawable.saf_guide_3) + .background(R.color.md_indigo_700) + .backgroundDark(R.color.md_indigo_800) + .layout(R.layout.fragment_simple_slide_large_image) + .build()); + } +} diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java index cf9ab563..06dfcada 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java @@ -1,5 +1,6 @@ package com.kabouzeid.gramophone.ui.activities.tageditor; +import android.annotation.TargetApi; import android.app.Activity; import android.app.Dialog; import android.app.SearchManager; @@ -9,6 +10,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.MediaScannerConnection; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -20,6 +22,7 @@ import android.view.View; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.Toast; import com.afollestad.materialdialogs.MaterialDialog; import com.github.ksoichiro.android.observablescrollview.ObservableScrollView; @@ -31,25 +34,25 @@ import com.kabouzeid.gramophone.misc.DialogAsyncTask; import com.kabouzeid.gramophone.misc.SimpleObservableScrollViewCallbacks; import com.kabouzeid.gramophone.misc.UpdateToastMediaScannerCompletionListener; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; +import com.kabouzeid.gramophone.ui.activities.saf.SAFGuideActivity; import com.kabouzeid.gramophone.util.MusicUtil; +import com.kabouzeid.gramophone.util.SAFUtil; import com.kabouzeid.gramophone.util.Util; import org.jaudiotagger.audio.AudioFile; import org.jaudiotagger.audio.AudioFileIO; -import org.jaudiotagger.audio.exceptions.CannotReadException; -import org.jaudiotagger.audio.exceptions.CannotWriteException; -import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException; -import org.jaudiotagger.audio.exceptions.ReadOnlyFileException; import org.jaudiotagger.tag.FieldKey; import org.jaudiotagger.tag.Tag; -import org.jaudiotagger.tag.TagException; import org.jaudiotagger.tag.images.Artwork; import org.jaudiotagger.tag.images.ArtworkFactory; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -95,6 +98,11 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { }; private List songPaths; + private List savedSongPaths; + private String currentSongPath; + private Map savedTags; + private ArtworkInfo savedArtworkInfo; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -257,6 +265,16 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { fab.setEnabled(true); } + private void hideFab() { + fab.animate() + .setDuration(500) + .setInterpolator(new OvershootInterpolator()) + .scaleX(0) + .scaleY(0) + .start(); + fab.setEnabled(false); + } + protected void setImageBitmap(@Nullable final Bitmap bitmap, int bgColor) { if (bitmap == null) { image.setImageResource(R.drawable.default_album_art); @@ -278,15 +296,52 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { protected void writeValuesToFiles(@NonNull final Map fieldKeyValueMap, @Nullable final ArtworkInfo artworkInfo) { Util.hideSoftKeyboard(this); - new WriteTagsAsyncTask(this).execute(new WriteTagsAsyncTask.LoadingInfo(getSongPaths(), fieldKeyValueMap, artworkInfo)); + hideFab(); + + savedSongPaths = getSongPaths(); + savedTags = fieldKeyValueMap; + savedArtworkInfo = artworkInfo; + + if (!SAFUtil.isSAFRequired(savedSongPaths)) { + writeTags(savedSongPaths); + } else { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (SAFUtil.isSDCardAccessGranted(this)) { + writeTags(savedSongPaths); + } else { + startActivityForResult(new Intent(this, SAFGuideActivity.class), SAFGuideActivity.REQUEST_CODE_SAF_GUIDE); + } + } else { + writeTagsKitkat(); + } + } + } + + private void writeTags(List paths) { + new WriteTagsAsyncTask(this).execute(new WriteTagsAsyncTask.LoadingInfo(paths, savedTags, savedArtworkInfo)); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + private void writeTagsKitkat() { + if (savedSongPaths.size() < 1) return; + + currentSongPath = savedSongPaths.remove(0); + + if (!SAFUtil.isSAFRequired(currentSongPath)) { + writeTags(Collections.singletonList(currentSongPath)); + writeTagsKitkat(); + } else { + Toast.makeText(this, String.format(getString(R.string.saf_pick_file), currentSongPath), Toast.LENGTH_LONG).show(); + SAFUtil.openFilePicker(this); + } } private static class WriteTagsAsyncTask extends DialogAsyncTask { - Context applicationContext; + private WeakReference activity; - public WriteTagsAsyncTask(Context context) { - super(context); - applicationContext = context; + public WriteTagsAsyncTask(Activity activity) { + super(activity); + this.activity = new WeakReference<>(activity); } @Override @@ -312,6 +367,14 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { for (String filePath : info.filePaths) { publishProgress(++counter, info.filePaths.size()); try { + Uri safUri = null; + + if (filePath.contains(SAFUtil.SEPARATOR)) { + String[] fragments = filePath.split(SAFUtil.SEPARATOR); + filePath = fragments[0]; + safUri = Uri.parse(fragments[1]); + } + AudioFile audioFile = AudioFileIO.read(new File(filePath)); Tag tag = audioFile.getTagOrCreateAndSetDefault(); @@ -336,8 +399,10 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } } - audioFile.commit(); - } catch (@NonNull CannotReadException | IOException | CannotWriteException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) { + Activity activity = this.activity.get(); + + SAFUtil.write(activity, audioFile, safUri); + } catch (@NonNull Exception e) { e.printStackTrace(); } } @@ -351,7 +416,18 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } } - return info.filePaths.toArray(new String[info.filePaths.size()]); + Collection paths = info.filePaths; + + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { // remove SAF URI from paths + paths = new ArrayList<>(info.filePaths.size()); + for (String path : info.filePaths) { + if (path.contains(SAFUtil.SEPARATOR)) + path = path.split(SAFUtil.SEPARATOR)[0]; + paths.add(path); + } + } + + return paths.toArray(new String[paths.size()]); } catch (Exception e) { e.printStackTrace(); return null; @@ -371,8 +447,10 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } private void scan(String[] toBeScanned) { - Context context = getContext(); - MediaScannerConnection.scanFile(applicationContext, toBeScanned, null, context instanceof Activity ? new UpdateToastMediaScannerCompletionListener((Activity) context, toBeScanned) : null); + Activity activity = this.activity.get(); + if (activity != null) { + MediaScannerConnection.scanFile(activity, toBeScanned, null, new UpdateToastMediaScannerCompletionListener(activity, toBeScanned)); + } } @Override @@ -421,14 +499,32 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } @Override - protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent imageReturnedIntent) { - super.onActivityResult(requestCode, resultCode, imageReturnedIntent); + protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); switch (requestCode) { case REQUEST_CODE_SELECT_IMAGE: if (resultCode == RESULT_OK) { - Uri selectedImage = imageReturnedIntent.getData(); + Uri selectedImage = intent.getData(); loadImageFromFile(selectedImage); } + break; + + case SAFGuideActivity.REQUEST_CODE_SAF_GUIDE: + SAFUtil.openTreePicker(this); + break; + + case SAFUtil.REQUEST_SAF_PICK_TREE: + if (resultCode == RESULT_OK) { + SAFUtil.saveTreeUri(this, intent); + writeTags(savedSongPaths); + } + break; + + case SAFUtil.REQUEST_SAF_PICK_FILE: + if (resultCode == RESULT_OK) { + writeTags(Collections.singletonList(currentSongPath + SAFUtil.SEPARATOR + intent.getDataString())); + } + break; } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java index df54e766..3a5f43e6 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java @@ -12,6 +12,7 @@ import com.kabouzeid.gramophone.loader.SortedCursor; import com.kabouzeid.gramophone.model.Song; import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; @@ -190,4 +191,15 @@ public final class FileUtil { fin.close(); return ret; } + + public static byte[] readBytes(InputStream stream) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[4096]; + int count; + while ((count = stream.read(buffer)) != -1) { + baos.write(buffer, 0, count); + } + stream.close(); + return baos.toByteArray(); + } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java index 4f299565..8728564c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java @@ -1,5 +1,6 @@ package com.kabouzeid.gramophone.util; +import android.app.Activity; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; @@ -14,7 +15,6 @@ import android.provider.Settings; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; -import android.util.Log; import android.widget.Toast; import com.kabouzeid.gramophone.R; @@ -23,7 +23,6 @@ import com.kabouzeid.gramophone.loader.PlaylistLoader; import com.kabouzeid.gramophone.loader.SongLoader; import com.kabouzeid.gramophone.model.Artist; import com.kabouzeid.gramophone.model.Playlist; -import com.kabouzeid.gramophone.model.PlaylistSong; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics; @@ -175,7 +174,7 @@ public class MusicUtil { return albumArtDir; } - public static void deleteTracks(@NonNull final Context context, @NonNull final List songs) { + public static void deleteTracks(@NonNull final Activity activity, @NonNull final List songs, @Nullable final List safUris) { final String[] projection = new String[]{ BaseColumns._ID, MediaStore.MediaColumns.DATA }; @@ -190,7 +189,7 @@ public class MusicUtil { selection.append(")"); try { - final Cursor cursor = context.getContentResolver().query( + final Cursor cursor = activity.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection.toString(), null, null); if (cursor != null) { @@ -199,37 +198,35 @@ public class MusicUtil { cursor.moveToFirst(); while (!cursor.isAfterLast()) { final int id = cursor.getInt(0); - final Song song = SongLoader.getSong(context, id); + final Song song = SongLoader.getSong(activity, id); MusicPlayerRemote.removeFromQueue(song); cursor.moveToNext(); } // Step 2: Remove selected tracks from the database - context.getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, + activity.getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, selection.toString(), null); // Step 3: Remove files from card cursor.moveToFirst(); + int i = 0; while (!cursor.isAfterLast()) { final String name = cursor.getString(1); - try { // File.delete can throw a security exception - final File f = new File(name); - if (!f.delete()) { - // I'm not sure if we'd ever get here (deletion would - // have to fail, but no exception thrown) - Log.e("MusicUtils", "Failed to delete file " + name); - } - cursor.moveToNext(); - } catch (@NonNull final SecurityException ex) { - cursor.moveToNext(); - } catch (NullPointerException e) { - Log.e("MusicUtils", "Failed to find file " + name); - } + final Uri safUri = safUris == null || safUris.size() <= i ? null : safUris.get(i); + SAFUtil.delete(activity, name, safUri); + i++; + cursor.moveToNext(); } cursor.close(); } - context.getContentResolver().notifyChange(Uri.parse("content://media"), null); - Toast.makeText(context, context.getString(R.string.deleted_x_songs, songs.size()), Toast.LENGTH_SHORT).show(); + activity.getContentResolver().notifyChange(Uri.parse("content://media"), null); + + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(activity, activity.getString(R.string.deleted_x_songs, songs.size()), Toast.LENGTH_SHORT).show(); + } + }); } catch (SecurityException ignored) { } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index 565df23e..69df6d5e 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -3,6 +3,7 @@ package com.kabouzeid.gramophone.util; import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; +import android.net.Uri; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.annotation.StyleRes; @@ -71,6 +72,8 @@ public final class PreferenceUtil { public static final String SYNCHRONIZED_LYRICS_SHOW = "synchronized_lyrics_show"; + public static final String SAF_SDCARD_URI = "saf_sdcard_uri"; + private static PreferenceUtil sInstance; private final SharedPreferences mPreferences; @@ -406,4 +409,12 @@ public final class PreferenceUtil { public final boolean synchronizedLyricsShow() { return mPreferences.getBoolean(SYNCHRONIZED_LYRICS_SHOW, true); } + + public final String getSAFSDCardUri() { + return mPreferences.getString(SAF_SDCARD_URI, ""); + } + + public final void setSAFSDCardUri(Uri uri) { + mPreferences.edit().putString(SAF_SDCARD_URI, uri.toString()).apply(); + } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java new file mode 100644 index 00000000..80038481 --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java @@ -0,0 +1,291 @@ +package com.kabouzeid.gramophone.util; + +import android.annotation.TargetApi; +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.content.UriPermission; +import android.net.Uri; +import android.os.Build; +import android.os.ParcelFileDescriptor; +import android.provider.DocumentsContract; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.provider.DocumentFile; +import android.text.TextUtils; +import android.util.Log; +import android.widget.Toast; + +import com.kabouzeid.gramophone.R; +import com.kabouzeid.gramophone.model.Song; + +import org.jaudiotagger.audio.AudioFile; +import org.jaudiotagger.audio.exceptions.CannotWriteException; +import org.jaudiotagger.audio.generic.Utils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class SAFUtil { + + public static final String TAG = SAFUtil.class.getSimpleName(); + public static final String SEPARATOR = "###/SAF/###"; + + public static final int REQUEST_SAF_PICK_FILE = 42; + public static final int REQUEST_SAF_PICK_TREE = 43; + + public static boolean isSAFRequired(File file) { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && !file.canWrite(); + } + + public static boolean isSAFRequired(String path) { + return isSAFRequired(new File(path)); + } + + public static boolean isSAFRequired(AudioFile audio) { + return isSAFRequired(audio.getFile()); + } + + public static boolean isSAFRequired(Song song) { + return isSAFRequired(song.data); + } + + public static boolean isSAFRequired(List paths) { + for (String path : paths) { + if (isSAFRequired(path)) return true; + } + return false; + } + + public static boolean isSAFRequiredForSongs(List songs) { + for (Song song : songs) { + if (isSAFRequired(song)) return true; + } + return false; + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + public static void openFilePicker(Activity activity) { + Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("audio/*"); + i.putExtra("android.content.extra.SHOW_ADVANCED", true); + activity.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_FILE); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + public static void openFilePicker(Fragment fragment) { + Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("audio/*"); + i.putExtra("android.content.extra.SHOW_ADVANCED", true); + fragment.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_FILE); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static void openTreePicker(Activity activity) { + Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + i.putExtra("android.content.extra.SHOW_ADVANCED", true); + activity.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_TREE); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static void openTreePicker(Fragment fragment) { + Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + i.putExtra("android.content.extra.SHOW_ADVANCED", true); + fragment.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_TREE); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + public static void saveTreeUri(Context context, Intent data) { + Uri uri = data.getData(); + context.getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); + PreferenceUtil.getInstance(context).setSAFSDCardUri(uri); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static boolean isTreeUriSaved(Context context) { + return !TextUtils.isEmpty(PreferenceUtil.getInstance(context).getSAFSDCardUri()); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public static boolean isSDCardAccessGranted(Context context) { + if (!isTreeUriSaved(context)) return false; + + String sdcardUri = PreferenceUtil.getInstance(context).getSAFSDCardUri(); + + List perms = context.getContentResolver().getPersistedUriPermissions(); + for (UriPermission perm : perms) { + if (perm.getUri().toString().equals(sdcardUri) && perm.isWritePermission()) return true; + } + + return false; + } + + /** + * https://github.com/vanilla-music/vanilla-music-tag-editor/commit/e00e87fef289f463b6682674aa54be834179ccf0#diff-d436417358d5dfbb06846746d43c47a5R359 + * Finds needed file through Document API for SAF. It's not optimized yet - you can still gain wrong URI on + * files such as "/a/b/c.mp3" and "/b/a/c.mp3", but I consider it complete enough to be usable. + * + * @param dir - document file representing current dir of search + * @param segments - path segments that are left to find + * @return URI for found file. Null if nothing found. + */ + @Nullable + public static Uri findDocument(DocumentFile dir, List segments) { + for (DocumentFile file : dir.listFiles()) { + int index = segments.indexOf(file.getName()); + if (index == -1) { + continue; + } + + if (file.isDirectory()) { + segments.remove(file.getName()); + return findDocument(file, segments); + } + + if (file.isFile() && index == segments.size() - 1) { + // got to the last part + return file.getUri(); + } + } + + return null; + } + + public static void write(Context context, AudioFile audio, Uri safUri) { + if (isSAFRequired(audio)) { + writeSAF(context, audio, safUri); + } else { + try { + writeFile(audio); + } catch (CannotWriteException e) { + e.printStackTrace(); + } + } + } + + public static void writeFile(AudioFile audio) throws CannotWriteException { + audio.commit(); + } + + public static void writeSAF(Context context, AudioFile audio, Uri safUri) { + Uri uri = null; + + if (context == null) { + Log.e(TAG, "writeSAF: context == null"); + return; + } + + if (isTreeUriSaved(context)) { + List pathSegments = new ArrayList<>(Arrays.asList(audio.getFile().getAbsolutePath().split("/"))); + Uri sdcard = Uri.parse(PreferenceUtil.getInstance(context).getSAFSDCardUri()); + uri = findDocument(DocumentFile.fromTreeUri(context, sdcard), pathSegments); + } + + if (uri == null) { + uri = safUri; + } + + if (uri == null) { + Log.e(TAG, "writeSAF: Can't get SAF URI"); + toast(context, context.getString(R.string.saf_error_uri)); + return; + } + + try { + // copy file to app folder to use jaudiotagger + final File original = audio.getFile(); + File temp = File.createTempFile("tmp-media", '.' + Utils.getExtension(original)); + Utils.copy(original, temp); + temp.deleteOnExit(); + audio.setFile(temp); + writeFile(audio); + + ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "rw"); + if (pfd == null) { + Log.e(TAG, "writeSAF: SAF provided incorrect URI: " + uri); + return; + } + + // now read persisted data and write it to real FD provided by SAF + FileInputStream fis = new FileInputStream(temp); + byte[] audioContent = FileUtil.readBytes(fis); + FileOutputStream fos = new FileOutputStream(pfd.getFileDescriptor()); + fos.write(audioContent); + fos.close(); + + temp.delete(); + } catch (final Exception e) { + Log.e(TAG, "writeSAF: Failed to write to file descriptor provided by SAF", e); + + toast(context, String.format(context.getString(R.string.saf_write_failed), e.getLocalizedMessage())); + } + } + + public static void delete(Context context, String path, Uri safUri) { + if (isSAFRequired(path)) { + deleteSAF(context, path, safUri); + } else { + try { + deleteFile(path); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void deleteFile(String path) { + new File(path).delete(); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + public static void deleteSAF(Context context, String path, Uri safUri) { + Uri uri = null; + + if (context == null) { + Log.e(TAG, "deleteSAF: context == null"); + return; + } + + if (isTreeUriSaved(context)) { + List pathSegments = new ArrayList<>(Arrays.asList(path.split("/"))); + Uri sdcard = Uri.parse(PreferenceUtil.getInstance(context).getSAFSDCardUri()); + uri = findDocument(DocumentFile.fromTreeUri(context, sdcard), pathSegments); + } + + if (uri == null) { + uri = safUri; + } + + if (uri == null) { + Log.e(TAG, "deleteSAF: Can't get SAF URI"); + toast(context, context.getString(R.string.saf_error_uri)); + return; + } + + try { + DocumentsContract.deleteDocument(context.getContentResolver(), uri); + } catch (final Exception e) { + Log.e(TAG, "deleteSAF: Failed to delete a file descriptor provided by SAF", e); + + toast(context, String.format(context.getString(R.string.saf_delete_failed), e.getLocalizedMessage())); + } + } + + private static void toast(final Context context, final String message) { + if (context instanceof Activity) { + ((Activity) context).runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + } + }); + } + } + +} diff --git a/app/src/main/res/drawable-v21/saf_guide_1.png b/app/src/main/res/drawable-v21/saf_guide_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d31be5b5e7f61771363c9c5757150e55cb6dee71 GIT binary patch literal 13232 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 a$Y63uYQ^7;dmn)I(0ID~xvX^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yem^-DCqp zLj^N4Jwp>yGc!XS1tSAPBYguSeFHOHLlY}gGbE!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L02=9ZF3nBND}m`vLFl!_sTY(OKmlUql3J8mmYU*L zl%J~r_Ow+dZnv1>G!Lpb1-Dzwaq88#Q?StoMJ-ZP!-Rrd+(1llssyD_I|W42Pt8lQ zRVq@lw^KXHmc_teW$x+X7*cWT&0O{x;ivzP>u;{!eqov~w{G?Oz0(_*l)O_rKcsVX zD0OsoG5_FHQc~#ZXn5cdc(ZB2o10=>x&azXyWh>7`^Wy|MTuKYYqvSPeE#>)j2OM? zr@vO(&wpRM^N!~$vwUpDk+-Pj7FR_7RzX^z_!Kw{MrE%=HUb;$N#~&rtpJ`}gA^S4uh+CZ1e! z^v$$8ckdPz7xB6+Zjqbx==eMugzkhYNv6S8|!#N^4Pc=f;gdL4veRb)w z<;U-Ioj!AFQ>nR)k`R+gRseslt<9sZ7`^YG*Y-&4*ljzzD{_aWmDRUbw^+Ax?Ueb* zeK~4-#=Lp+HvYemc$wOMSm1n=7lF6WIgnuk)_h`|WXm*7a2jgI2zI`&Ku$ z`*V}!=H=&Rc8hA=;T32Si`m*$f4J)41ox$3iz9dL-f3xVy>RP`l3!=eoOv@RCgS1y z*RP+xtbFxm=bSk)8xpk=*jo)|K1n!43-aU`@TyOrT+w@@c>8D(G;<|dy zY}?~qFxR0qs4zT9n&-V<#oFNA+af~mloyx&ebfClzGkoF&ena4yY|1IKEIB~S0%_Z zE9%z_@nu(5gynwyr22v*fp=Gr=H|GA$G3<&)~zpfyuNUI$aA$lR{vQem=~X1VJ`9R z^29SUY&4%7YMuF6?8s4dpP2?_k3J`F+Ei?`dGp4ufGNCvB5b-wc8V7dpFO)K>FRDSP>Ka8Qu)x)|HCS0>MPik05YdN6mHmg)6s4!@-#H+MMhH8?0z75HUC zf}Gf9t!o)qvU-0#TFSwaKeyr5iHC3I$V~q5y-v#KXVvL#vb(>nxcchAt*v6ZGs;Do z{dV${&X1ZLygABr&(}Sz-FfP&+EckiF7>`*KfPpAcw9ZRc4pzK2lv!|)>gA}?s2N@ z>^Pnfo)pO(vj6+4bsI~}#iyUW|G(hPlgygBE5empSFg#}NBuv$J$!w<``*Aa6Af2p zEC^kAa1QtG4_Ac$y4xF{`KH;rbkC9f=VWjB&i#Dr>I&&^eBa8=tq)$3JDV$7bm%bm zL&3y{)1MU0?B5>V`AMKvl`YzKS4mq4$40iV&2D_skKR1#nf30&#m8)a=N5@%|1-GBV3P@W?zBXgls#;VA~TwUDM?Ae!3pN<&y z&$Vi{(Fx$cx89;@UGpn z_k3%dkDs4z;Ofn9xC&p~-tB&V-CXuBFIxp}?|5px|J2l9-`_QE%iY~BB-q}VU2yln z!shuue%;PJadL9{`P$82t3TI;th{pYUfqx2X1mBw_jdVDQ^cSb^4nZg0i=_I{px`V{lk|u}|Vx zNLbjnf6eVNu`%c7@!$P(m*20iZ~vQnw|D-3a8P;varT$DRyxm~cGf=XXXJK9e_jc@ zs*C@pJy!jIe^Pmm9o&(gp1%FT)W}Cy7942kSbd#kAqTHv+p!g2W}mlT z9k^CY?i&BPZpOrbxd#sZ{rzXdYf}~ z8GgUwc!p8b{@vQk+Qs!^`8aoTaHeh&GO^kC?8t=oPhbB3{%1ux%WVC3YZsha`{uE2 z(T!kgPxD) z9X=d)ch>{?cWZ9%$b34hRATn0-&LRb9iO~;Qu67|&6}U^N9?Uxxp(f}quzqX&-cxn zKE3_-vLyZEj}|To{97dZ`})3iS^46NS#I{m zVq0H-i!V=-n7KU2@%p*9w|nRRnlyX%>n6+1udc4WyeyQvqT*SN$NG1%&-VWbdM$Rg zjYq2B(U+Uig`AsqU-qc$Kj&~E!{nu;4h!q|wjYik;-BVI_3x%+@pE-m^~F19d+iW7 z?N|FGu{J|ST7JDoT-TyN=Y;!SQ?<%J|E!*%I#Dd+wa4Z=d-jxz*SC}gYfY{2^zwSu z`(m~PZ{DA8yYJlD(^y;W9@~FRKzy@q+&@pJM{oV!-g;wSQSmlh+E;C{Pto-9Nx%Pe z9V*)5C-^L)>Epb=U0zGwG-Gy7Iv+lJpX+x^vcB&0SY@b=ARACSxO`K$&~? z(i=>kWUX9N^D(zc_t>V_CvQxWvo~GBdc?q%YuBvu@MX)E-p_73v0}xK+n!my+gx^g z%1acntBY^b2|9D{?t<&-OI4%G#l3R=RZqG2Z04p*mzM^;T)cBpk$ZZ$nSRh7fhk#` zl{;rj{`B&C$8lnB-v7Wuo3!0eK5qND+|{k~Df_lXEl)LgGhg^)vrVmS6o+P>_{?q@FbGbiMQ&ok(C?vzOlFOV$RfXS> zi+id3)FmxX0w+wK-5@07#Oc}EZTqf&VatnXTaS^LbR8402|45Xu&-$@r;^ElXIfklsAHSU{l`fOFNy$$S7nAo~8rCoO z>&YF-;7!HF=UZc+XlBXf{?}Mk$;@(X-OJ~XAHRDgBr807;#A$q9^S!DTcd0X&zz9d z@9FK@_w(tq+;88?{Q2MfKPX+i)#`4eeZQ7S(bTBLAzEj`mtB-zVx%c_scK!#=hRCk zQIiwwVi)b5E0o!`=Unj0r$&-#g6jj4+r@9sIm2%J;%nPB-Pw=-{g7Nghky5rch6Q` z%bHr$>X*N7NzdYDX0g@Bl6>7dkJKo+@4QoE=c>c|K6Uw#oGRykJ13M{?F~!c$JQ3K zQs-HxHs??AqtR#9T9}7Ve=_CDojZGkVnxHlObvegD_*ek_s_66ll(rf#q%tR-!Zc1pZ^`Oq%K;r>6{-PhMe+I}nx3iIQ8WTmm; zTf@D(pFf4%wJxn#6kaZ`zh3)#z6r-F4^7UtHu>h^|y9DPt%DhZ{>Ne z-xj|^6Df>inWuR{N%@3ml5HZQ&q=~sSdo9pH6V*2NUSI#n7@&Dp&?wUQeSF?CO zZO(4rR($`bz)O?QM>%ISwOU(QX*~JFxObQToS#`yZp-dWn%uET(3$OUT(MA}T;HEv zB9*z!%x94=oVzbZ^8_sIlD{rx}h?YzLfcDCukNtfMH6to2U zZwS;@mt=&5T9w%*-YXHcs?QUH~(MO-e{A&C6{MSZ(efh2)`j zo)-A@GgH5QPubpze}BHLS#w=X_g}_W@y*M9S{l2j)n59$a$>%2T-ep~`OlUVzUVsQ z{b7zx^}hSY=Y8iH%XgJ!+$}o#Jib)Yq~`Cm_ZMnQvaUyke>$ByanWDpZNGhcjLnx4%AKe*QTBzMZU4*GrACweHVm_c&Fh zi5)B2F@M^;nUg20r~TI7{k{J8S+wD_q$2{!Vw%_vNv_59zsX$+@*7OVobv z!9SB8FF&t($Iq@*&*Wj5(5|J-^>W_6-t99hPTjs7to86C=Mo=>Zqr$NFGzd;V2#^Y zb|&GBT2;|=_bY0jP2Km}*qnJeW#-FwS$3f!uL4%IIyx0)X~`*-?XkI|YsQur@zegu zlnPa;olmunB+b!!J0Jxk-t&IXfSRfuI~U$EQQwzp z8p7rqhl}R=D3JND}8v)`zhgD)XS2#FJFAt`bA%2`+k0(Qp7r!*!%TA^h0K> z_nRNH+U@Hv$I@qK=e&CKW=rz)c$AKWJS$ z+dTK)3dfj3xh&8A_tx`$68ZmVWvhQ&Q;Uy>k5#3fiiW|1lmBWz6a?I#_kz!FKL1`( z@py%IDtEFEJbcj1)EYOpVHR^$`RfbIQa#T*=~d8-J+#-7kJ{ z;d=D`?VERRUT&zd;hTT_dgqrMne{h+|NhDS@We4y?dv*q+4nBBu7CdQsimdWvZd)c zzy7Hk#(q}5pfXS7X3@fHyYGp7U3I3&k^A&fHl5Ei)?djr%YG^@opp7^w`+5z$IZ0j zT$-8Vbm(~Y_1Ww9C;pVW5XIRMFBf$xYVwWX51%BK>L^!R&Q^;)d7C>lPBlNDo&EQk zHE$kGPncv@%O;-uvngzKu-4QKGK=+HZqA&rA^5qo>NI@=tL@pFKQ(XP{_o4_pWM@D znXReU{B-J{eZSO~sv{y@kG1Od#aeG!8+P=6TF#w=`}-C(m6jGB^ETSF$!|WlYj4!* zD$_k$CVwvV&WQMUi}}&RgKKA*7M2&=7CkBn^Yivh98K=Y6Z?M_3x$5~Ly+t0=PNu$%Hr*bq)j!W_bg$WWw`g{$F8rE% zMQUxuGWnKCd*{mD^IRHKo|ixE!|Po8J-;t{ePO96w@E!K({pW0)LP3vAGMDsBy`x7 zol};jrhQJ-d$hgd)NXxA)<(gPetmoqB5t#_wo0wc-g`>Zib+STzN&EJG;byE3&AT) z>-DwH7gfr-vsa(qE?#AG47mR{s=wW4uL1KP`TRis4C}eJ7V1 z*+l=~3gX&%=bP5eN34tH%#~Tof7aOIbgPp+bK!>Vo6j{L5^@f>U1{K|xBvBCo%=N> zKAyLlU7CAzb^25NMzf6^y2Agy9%cCdbHmp9n&e(LVOinoPcwWi|9OUTk^UL?JG1yFn#+ggPl@0UdYqX3zjkxd z?%W%DuFmMMC^0qX-MPAxi8+}+z-T3YVc{R`ai zr|amOgng?{3MuDXP)v~SvhX@(~m{| zK|lJgF10pH|C!2@ms->sqL#itrb4-m5BeMf9I)AKV6n*(H zIe)>EbDpV3Z+*)DUJ##V`E%~vxpSMFn}2kN-tqdJC?xjd3ag3sC5PMd{Pg~D{Ov1S z)U~M2OpeQDr~grn`R}I8OA_9=(c6UA*EO&3yw*Yubyb}p@511Y-;p`HcOEi3^;YE6 z{=de%)$jbge?OJoJlpk_c<>6ny_*laW|ajd?mKmGZg5)U;R!s?>zM(-+n9h4Tc5%8j7s;ACzswKMW5SH#C-HOtT+a~cd1T6V z)VpvN%SxXIOZzw~9fV$$#GTW-yZTyA@X7U?76(uBlb$u{OLfkduUkYM)kG^?E1XUR zIDJ-JdhFp>Dc#)bYj~G`d5Af&R#cp@#{z5 z?vm}>Z~A+Et<>JQ2`67wRjhw|>G{rP>-@B33mw<+^H&lp1H<-s)ZcWasB#{*(6|b??+pV!N%Wc3Qv0r@U^tvarfN zy?36gV&*<|Kht6p(>0xq&G~)S*437~YYN`Y@LFy7p2KwJo0Ltr*1huznWyF*J^fTz z+uVI?Pt}^OaMV1OU>*P8!Mr~=Tz|etSNye&$9Giuvdj&;@bb+5We24fTOWv){vxzE zuy4YZOkMZivkjVM=9PfGbg#TaIN-F&8cNk&2bvNr(Coqx-C)tFIFeV zni5*={)IKZb&k~K9Z!EeIF{A??`&}W+|J&-7vZIetNo_R$b3KUw!iwB#+2%%p~oFf znI9Jwr^)?|)tq`Z`=Xiu^7jv-OY7f!Ek7qyy+8K)vU~gFOW%B~Z~w0PB&CqW`;@bg zmr7lq-%6=cvqjJPqSQJS3WGFaM7TcB@LltzXW5ZGG5Xc)>^t{tImeP>B6;_X?4G^a z*Vo4Fj{bV^Fa3e)(jlKRe6o zo@IfhuNPZqJb4*>_vTkGw_CrupZnd}B{+5FyZ29I=FOV2`g**Vr_qb8QzlFi=j>gm zc`|fv3{%VIBP53G-=_S~;%9 z8V1&GtKa+LjiJ4Jde0*n(JqzHyj4-6vuE4BUH|vvPD=@SsSExmo|qdMf8hT)XTtQk zE3dXJRXb}@rQpBbc>ZpVhdPtHt>3Ez&HU*h|H}Q;wC4wr(M{R!o$RVZB6r&n{~FA_8eY3W!8=urLA)c10y7>tS+2QjyU{m|8ckK z+txYz>z?jj!4banQ%F$LVyBz?%VMjocjwl&^KkQ6Nr*qre7@mf(T#&UW`8q^T<5p^ zg#6c&I?E@U&FCpwdFA@e*2RuNbt+R%9u5|=-&>Ivby)0hv-Hezr&;~7TYH#APibd* za{s&0J16Gu((@;8e~exqC-!9Nm)v~CxBDUwmX6;WLk zMb}Q8*^;x?ZSkqwmBv|>zvWD0ZFe+Ju_;kGlrArp&)<2`HFNvo{~Pi`SDm;2`FvG( z`sNU=&)c6jxvUGY3p7qBeQsy8a>@Di_viZe7+UV9 zt71NjPpaCxH|XV(E#7C(ZmXG{Z@1(4>65NYFF(z^@@%Rjr*2!^KiQR)_5I3TVaom~ zF_Y{rTB@)A{*imd|I{K&|1Vz-sBW=%@b<};HO}YLUz_ciI=j|H(M(bQy6?)ImyfUC zIQ`rw=n;2&dArK7>B}0wzZE&+J>k#WRX>l*T&g}7aK&Ld``Lg)?v0Z;lqWBJ^3-m7 z{qbq5r_bZhx^ZavrrmS*dadvG@c;eg(M{d(L&aBLv8OCp>UihwOp#A-<&RgJOqgQN zc~QBA5|!fXp(>$DmF4+Z`Jy!hwW>-F+A9~>w8 z|NU^7-@5$WpZ?S5PoBKFuXeZB(p}ei>i>Sd9v)wNwC#|Jj`fqLkJk6yE`EOQ=FOXP zZL6={yjgi-f?{A`;B2$pqJjbrE-o$}o;`(+kIl2KE?6GEJ}xpcQd~do%$YMG8X|FV zaXV})KP_3mKL7u}zZ*5SM)g`ge*F0NmzTl<0u7pdeSO>V%YT2%ozbuQIQG-0PiFb| zYQDa@s^&Y(B>$d`rKRL8?Ww02nb~&i+!?#8gp<$R%`GXgXy>2l@pT6;vGGbhdHAsL zsltKpZ*PaMkF(X$vaq;u_wLFiHDq*4q7j@&uL{yp&4)YitJ z(&M#_Kl2G$t{uMa&!^M+4~2M6ZWRy|{CLS*|KY=1TeJ87c+@>*%9O&#$7=t6 zy}se&-|zS5+t=4cMM*s>xxFnn;@oNd{eOPH-=F;KJ$W|?qaTNrfp_1BdvSMIP+Jj8N>f9e1C|Nr^-Jo@3hM{Tp zHJxrzQ>otM<9)KWRVGHfoXqmKwq`$n^r)$4mQ`uiVz=H4M<#X^Y%P3z?CR?9_7#49 ze$r++4IzJjeRZypwXdr=(jmCmt#?(>Qm!M%ejT3q?d@%GiKa#7ksA^m54Z6Kb|@YE z5Vc2uad*kfOHo_1_Wpjidq(b$4-a>jy`6M2#ozw#m+1VxtS2vWUs)S%Ze>;V?afUC z$-1PY7g!fuXkA*tdFQZ5p{o6#56&7{`T6HnRQ?AY+FSko-TnRYS7kpju9bWm=H%q` z_t)3@e?QYz93(wCju@SfvX%O*U&hNm!SeDlUuX9Vn^L`7RKhsfW;MrYiN?3KKl-DQ z@i4tt%GAin=t-;J6fS2m{kT0jH;r^yWVx0l%uG7ozo0qoQO?%v>&MiO%6_rl(faVm zo2a$del5FU^r&pZW`#7(YnOLTlImSH$LoYj%@3hN2k!1JU(Bdj6VSHsVB(hM+i7QK zB_8<9@Xw~e^G#=pp+{ z$jQ%t{bdQOSl=nJqNFXIALUfu+}No6$gf8H$@8bDrysq!E@tPY#qRu9mR{TIzQW8< z&E;liXGOWay}b^jzar;DyA_ zhs)>yZ^)|R=jU3P6%`fF+kEcXk&=DCaYpRsw6iONmw!0K#w%4(S;@-6vL<4qlgz(` zY{w=D&8x1eTIAsBtG7(@&7svFL^km~K6&QMnTuizWTx>LZ&X_`({R#}140u!N@tko z%N=ida!yV6ADipDwNYESe8cwea7dYCY27*Kye0q3mlYS-_~m%Cy$b&tc$_|Wu8p%p zDnCE}%Cw9l9+M6na9G2+Nt{P{q@#(mH{R88&cXuS;S3fww z*wIyfF#BWW#C13LW~ggvy}Ge6c|+iwCh@q<4L9%Ad_Jqc?*~(UV(dx1*j*jgEvIBP zRG0bB@3Y@EN4%v{L+IX)Lgv4Fw@SH0i@#6c{2{H7RgnJT!osE6iI%LlU%lOa|J{X! zhdYJU72ckjsx9Ato|QBG%#22RlV3Vs5m8efXm>HqmZ)8Lrs;;}qxFaE8$@07y5dZ( zH8Qj7MQ(ah_$xz3*zS+4@qZ1i?JGTOx%(5}9x;6A?BnD#qvffC)3=HJ|KnKH9xBK6 zO=Fdmlq@VP3|$pcSYEFGL1fwT<;$Qy<;T-~ZQ4O)c%#mdpyy+w7Ak2ys1p`0(?yv&~u) za!*cD-L`m*{{BBjzrVe;v$M0bv^+gse|^~6Th;IPmOncqsjjZRH*SB{RjvH|_xu0- zdfm)#w<2bz(GlT(<;yQi&f9*Uv$%E2lqurzHH9Z8C|*l_cW3A4&*$yu+t=@Fnr@pa zWY_dm!))(YkBv$PH!uD7yfJof_4j)_3X{*zv&}6xR=QvI_SV*lkB@kz%|g~jeckIU~kIwyH)@mnu zBwt-ydwWx=ck@93Sy@>jAt6CQ#fW`uclK7BFA;t2GU46*{q`m%Q#?K7GK6;R+O^2Z z*?G#z6xV;b7xo1{nELLQs=B&)&JBU`UteFdJ74&9^s#YZecsJYN6($(dzNh?wMT!I zZ_AA7)5Yhx>b`pYy86`>&Fbpkj?HX|T$@1Uf6&U1wPBCNRJFq-)SMHtUpPKKal+$8 z`Hv3|XPIXA$y$rO>{{W{xx4CX)|s7YXQfzlwjI8*GI%4?_Po1NHWeR^bc((fdFFGd zT~qOv`7PC`xQVig{|pQiH8fU~T<14ZXtFAQwA}4|S!)HJXFdJ>{~!0;UufQvagphh0_Xk8=dx24KR-9unKj$C zXLsi1WhbJqtoFD4D)K6VpPyfcOa5D@`n-zIXU%t)yfn(brn5&muH)#TW0#lvC!hN8 z@bFRQ>=`Xj9D6udM^{XE{r!~odYy<34l+j-?{K}*Y0Q+hE^F~v5q|Xk565|?Vl1ci zB?KnzXui|k+v_^v+xz?fw_cBHUbiFn-X6=ew!L?Em2PI+vGvI@T`So=D}Pv@)Zh1m zsZ@Uz!xKfX;43R0AMbBJQ;}F!R@ORcf@j3TvNH=VF8=zM&#my^zkk}S){bT5qt!)-^53^R_@E|K5kdcEP0C~NM++HF2gpCUXt>VCaczp^Oc z#btl{qlf?heP1u33aSf_KKb+W^X)B}%?BTznQ3fz!#UyFx>#!!l_w7lHhbiROchr1 znPFS~twT_GLX>--%uM5SzFPrNQL}zbc3N?JO{DSb^(>4!N9Qy>JrVIl{hdNx^_Lfo zMI|>jB(n3#NSJ1cxOE0E^ZEGgTiawwNy%<8-A6Mf{1H##7T2pe68`bm*Vl}Uj2C?V z@XFn?RT9km^71mfRbmg<_o}b2S~p!df1bZNi073E7pq%I>8mS_XFIRAwYM+6>od=0 zXZH1VJDBYadtBtU<=>b4*|}!(KJhC}4Ln2!x2HmIWyf~0{fpKpEVzGjYxeZ79l5t3Z>wbZzW@F88>=TiIy~QKDyvP|lnpXV zTUxBsG!zx#jZIkllVkD+#e(mG#t+k5PZ$&i7he`I{IOuJz#W$r_j^1ez6rhi;a2gq z(lK>W!xO!prUxpbcDGb)3@3R;923fm(ta|FMLkbAs3T|bhRj|K#mO6VRL`6i5cyfU zB2Iwkj)kaPWF52P;eh9NBn6E)PX{=y{POjNJw@z^A^TfJTUQUiU7J7q zX%+ZHd=rWa;^#6lGPkzpzkl>- z((KvNLPAROesA!ctoHw}&CSlv&igf=&-O?fpL%J^EN|d*h--R_d%v8ldET9mkB`^? z`FMO|^6|8^w7C6se_O@le!Sg&|JvH&EYobg=xsiF)7QuEuX}fA=ZD}~|NnYLMcwL? zwNAJ)+28Kv-TnTaO5Sf`h$l|3+=k+nauV-eh%uC-n~VnjZxp zqx6!j4;)^zM(3l?R|RY9>QhrRCr+Fg7#P^$JJoAz$;(T+(c5AJDyJ{)y%5!iu&{mzZ9* zZ@eF!zqj@GdHer=PE1tJoxgSagvpbY?Ognnzdj5`D82%R8?6^7c5?! zTvJoi%*GoarX=AV=+x1;V75h}QW7thqiA_~`R(9_)jAR1&#I`a|Ni+i^6gRGB!M(G zcJ^f6#03=xc?#?HY>3*Lwdmvzktq|V^cRWfisn|`-&dP)>g((4>r)jqG&p?aolUnq z3zDz%nP($;PWir7$%_js0vCVyQ1H>D`jJAxDXg7&bme)#^~U0>ne|39D48{Rwo z_RLJ<`1-%4Yt~kT#jnokIDUG%KKC?ko0lb4(;|*$Gu&b0H|4xoV`$^7sFl^w)}6*H zX(Gk@?(ww@lWA4Ka<)|_tByOj^CfC@d=j!!lwKdd|KF$6`pcIuPgd&ke;p?&GJpTS zU)p<)ikxY?CGm25#ziHO`5o^BmE9gFCzxo&&dF+G=@u z`8}t%->=iI^N-k`7b|l3+RV3a-q`*95-idE`|hsN;(~&P#tZ%{Ll#-JR&#vVnteS< zamGUL>3TcrA0BG``1tr^+~zFE9H(OVUq?Kll5c8+I()!so3>Z|rUGjL1{bDVS9JI`!{69=)YOB1`Wq@No*- zW}VihthHTp@&p?nPR_{_Y*ILP&YtM$ajL-Qhd|)U5Vq!n-`IsMEiH{^o;i4M;fFJl zl9DrmWi~wu4PPH;D%D&1>Pn!7$Ri$3PR`EG&U^RnJ(~WtYOkH0U7StP+M=hYSl89g zojrSZ-d(Fb*SBO|j>y^EzqUijX@+j}Hc+opSk0&6-OlF*PftzNp0O$a{ytUjX(exN zTr7KL|Nl?%?QOXeCr;e)_0y+AQ(C#jLB+7sub)3VkJsei+LHPBSg&dJwVuAdch}e7 zUlY0c(W6IgywYsmf{z6%4mPpMT9s_jD}H-xt9zeJ<=?N@Z-ⅈg5IP68N~*|8GmW z_g)!ZUf!!OOE@$>?#L~8bHmWw++1B=rs4$fs}=X-N+@9m>U zm%8`MrJtX-HfZUoQ&Y7k=JZON_jPqi8K<2Q_P1FWqGiaOa`^44(A9RoUMR0_@i^h! z&bKw=B2(A0<;$G|eOBf%dhf3NUAEkB?h);;YO1QT_H{NE78V*B9c#O$Ol?^wHfi$Y z?mupFd<#swe+GAb*=mq}PUfPvLD`##JM(NRH#zh-L>2z~^K*r9;@lhJ2SUrs%QKX{ zxFCheSKYStXhyrV9m2LGdnssbl4R+ z&ptalyM4Pw#RrAB-Ibr8>F@vZ>Dk%Y>-T<(S{t?X+L}n?+FxIo?)wM@WeGVMa448X z-d?8vuZziRL7o^w;^@99TJyAAX1>?(bIX{qw7D*rS#((0}m}8Rz-)+X=h#hKTOH+etvFlpvk`P_p15$ z_*N(yZgAP!!&Us~NT6jA6bRp!+P{mtDQZEuy`>9jHNaND-(+N>)p8U<%%c>DSBy(ua#7S?g!qIC9yKzU3| z%mYO(*NnEJkUROEn)mMAllZOp%OLR2KLZ5?hDBCZR(w(>8CO;WZoAJOwmOVA|LwbX zedX;N|NZ+ngM^U%5mLLFk3V0NtEk?>T+M2IdaLK3 zzb)x;N0!~&n?3zUwcqPpMvYL)NlQo1knS?fG!y;+6m>(8L#LhLe*MG{foT!BJVF zGUepX%nk+p8$3T2-!r;-##K^-WBNHx_ivn8qUHfdkKPO1QM1p1d7?)}=(0^y4eC$d z;y(1O^w9O!J4&@oGWfV03q-hLw#^Gq)$-=d)el&=;g9l>TN*s|^Iy#Lj7Sr@mZva> z(hl(Pq9uKE;w~Pz)kVi)OTs+GH1{hh+;8(Ko4!gRMnEtjIdR>C=S=eUh*!qE4)# z1{2(4m4Db;?r=<*AmHV}LAkd;nF_va0B(mON{+*6O8`>JqR1eSUsP2<*+N5+NV{pE zWgzVa1wCqU09wZZ62+IA|8sV_1U=we*wQj3|H&PeB`$^sMf@u+W~__fpZ9k|t9P)M2Zv&dfDXdHlJ7ee{n-nQqqOX z%Is0w^LY8ibs|38tA2m<*s-uVYac#(bZJZG>U999fX+YAnFZcRTU_zrXWqzs=lwo5Ji z_+xh!trKF;EaI6e)ogN`_EV7&zy85bU*5)bS15YZ? zZCUO&x2vb;&DGW7Y)-kiw%pvFfB(Gw|2dN;eX{t==*8mJd}0?Huhaq~{Y}5u$L+OB z3b0{jO%$5OH*@Ap`#&EJ@2ULUCu3=paG>F6xA^z>_xB%?Q=L3}cJ-GR7oVM-y*=yd zsuL1276l1qWoB0EySAmi3!ONv+iPo0jjN!z`1h0Q^A8+OJly6x&t_-va=-gEpL_k5 zug*wz`fxjc|JIC)Nw2P~T;Y9wj%D)PcW>VOxl??8YxecLudl9hoaqYd))L{mvvK?O z?X_I9J<=Wu>Q6rvsoTEx&d%cJ3!U4ms;d_Vt&QIPZu$JWs`dIEa^YFm*V!f?>zQSm z?R4nFhk_mk?eKMXw&h00$KPKYy*=;twzW=QK|2jkPuDLmF822J*4B|;_T%?&d7BD> z&jE)n9XWlPyEJ^hU2Vbhzu)h#&k$nr_dj3v_gCqg8-nE*&IO3X>?~qses<{h1Z}1l z4N|6AAwN=jo&IG?DLz~qz1`x6PVKAf>-#Tl$-25qw2WJUWkT1%g9kkhaaDW}z|6x= h9EwX~KK*CnVOXH({B@nhwJgxaYEM@`mvv4FO#p$ms7C+* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v21/saf_guide_3.png b/app/src/main/res/drawable-v21/saf_guide_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2317a82ccd3b001c152502a3ccbbc711755a02ed GIT binary patch literal 29579 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

F8)2L; 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 HDWM4f0X>Uk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v26/saf_guide_2.png b/app/src/main/res/drawable-v26/saf_guide_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc84b279a0212e9da695ddc0aea50dc9b383d1a GIT binary patch literal 23438 zcmeAS@N?(olHy`uVBq!ia0y~yVANq?U=rnEV_;y&esHLlfq{Xuz$3Dlfq`2Xgc%uT z&5>YWU{FZ*2=ZlMs8VHMXlQ0&`1zlKq2UDsLl6f8qi6&JgVl5f2J!ssQSuWQ7@|cy zT^vIyZoRo%J}2br-~S)4>s~&6uI$Fraz}xe9!Hv1L&aC$TQ&;d1Bj;%YKI26ByD*oMl=QNwh%?hVK4|p!S1&ij~ zK4y>`A}Zo~&?MKy*YUbYPPO{)CA_DuznL;?*#w`NSKKeJSk;txON1r1g;|g1^1q8Y z@}<-B)@Y^hcAvd1l)}p$I`xLoBlg>pqOBE5-fG#4UTb|^(wOR~l{@L&tQWI(IY+GQ zayqu5==WnkA@9)Q#O+(nT32cDya@HVpC{P%MN>_tU~^{lB%g1`H|u8~-Rt*T_`y#z zbH61%R-r7GRTZq8pXVQ5yLw0LEkEISj*o9=F7pjGIvpF%yL6l3S;o2C74N<&zX+0C z;(y)g-M%7?mpvzMf8O@!`zsBvb)T}lQaOK??h0vJ(Vfj=~%4nPHUi#$b zZNBGoChsb~)_IqqqV$`Z7x&&7%l>W^m2xiE-{1a!=)cdO_jP-G?`ywbi;ZU(>=IsWezYuV?oEf#+)1LV zr8B%FcEs*HQSef0_BPdwj?@>IO`9^K*4!6z4;EGbA)7{|2w@viD${Cj1voR}q%EiN45;X~iTX{3DJlk-|wDmCil)$(*%2Maw zY)Q7vzV*XKDz3ln{NjsKOm4(XPPuw)#^&>F&3ZbAZyCDi&OR2=_RqGv;?cB;dy2km zC@Gp>T&5$v&FtcC?-o`4p2v6F`%@2RFE6^Y@NL9y%f6;ZU%GQ|+&VH-y(IPRYW2_e zl#hQpd09Ou@KyTdZ7i!+P4Jj~<;wDzMV~#M*%jJ2&i6|W{`Q+aY~RiDBM-KnE3M!A zK;d82PX)6z*(#a~RgaWUv!AeZC71N-M-xmrf5raTBPF`D?%u53Q^V78mn^y9ogB;- z+IpC6T5#MXZtbVqw~ALy%FcWC_n-Xd6>mOkT>qE7FIZQyZR=&Z-&3WNV#+E@{O#K>rKzM?U``@XyNpIC!e2wRq<}y;g@$!4=u~}&AD;w$SmK& zy0QXG{`hK+^=EG$*>Qib>-oM!wRrocHHnFlX0NZC6`k|EYf)9fda!|e?auRWtJ%ZW zXnJq|me?n8W!crQ*JBF=>i@n~xaPf7^~m>k$GcQF*?gJqZ1HW$yPSK|7^D~ZM)t|v zX}j<9;^eKfhLi_)jMVO1u#O!yhHC9)a&-im) zux8hmY0`4PWY)X?KKA|dTBg(64sOfola1SX`2Hi$X5Xuve6Ips&i5q>c{er%5KpI7JKe>~Wfd*)w`c4(>RwGh+7cRMdv<{p!>`~BWi#&U`7>+NP6S1(qK z)$6?Lmt*sSnErvBS6E8@Iou5tA|!u-~GN6FXI$5wwz6`y$R&Z1NQbM7BIpFThT zu=yWPyB`I{vbWjhe!u>yY_-`ji`pdlHkpV+p3C<;X-%^}w6n~6PR_NWyzR~#>Svov z`KP?Rq<7>+;?94ocV*04w4vR4e%ztE!P71Xcqc~%ggsfh;y|*- zcJj}PHgw$I=N%roQ_-#Pe$c(zClR;As%}Kg{c)^uk#%t7v*+f*RYmuMyDPt)Q!Y;Y zA{%-3cg3|03fa%eusbYjs;iDg&s_@_A^EBbeLbMTD)u~rQ(rygwl-T!RG z!ksxYe|-RALo zt)#b^F&aEM5OhOgY4vd?hH2|^kG#J8;)+?ryQ`5qHZeAw6Lq{Hk$j?YY04(CjcU#1 z_A8UlJ-_|pvgxCc0>}N_p-;7sm({K2I=w0P*0f(49qBXvzN?CeJ+2;~lYGN*=?m4m zJ9@d(FUN6w{F=Bm$$83#`$wz$dmc8NW4-^|@G)nz+0r^a`@P@w?&{nBF#f*F#EEfk z>uRZr2Rom}6cq8Zt+SZF?=Dy6`^{SOY7<%aTP$Vwzi%@s{=Px`@A+|OjxPWDsI^|^ z;399nW&YDS>g#J1KZ{*2xVOYoVp;3PRgL@qKKA(c{SC9_$4xU;F018w*UXsq_b$_F zl}8U7SDya)bYpD9k7F#;)@439qHJC8F8;pzbrDd=B}8XW=6M%;=ySP@W97u{U;S2V zvi#X;>~lwNYJ>mbw?X?q$sGPOvHJA3oe!SKiL~8ao3}Xg)b+4jRYCptXKs6GB@1Pr z65!jx`6K4fL;24)Lgqf$^YL!wk5&uSBy zZFVd(T5!Rd6UVRJQVG2+v_RvnZZ|bXZU7?H9AWPAs>+ z8@X++^{;0|Z!IP_XWp#1D>ZS#@t1$HDy4mcJC1EWA{1HT`?GKT^?QjAUVUR{{dE4P zZFKU*eA~S~*EVQ$KIvzAW;Ve$Z%4DhqxQubI~7?Y58qn&bK3vk->_x{<-d@WumJ-NRBvx%{_bn5=Uq4pu$C+0=(HoFj1a1k%yc=;Hg~}cpFKPH*;YIF*tcv&-rJIlC+=-dD+Las8k6 zimko4-=E{kaUZE!JZ#@STwcDIKQuIAuj<+M?#C}?IaMxvZGB$&uXEmxV`{>&!81zy zSeMI%xg>f#{#0#lkeVj@_Vk@kFNGelPrLt~{rj2J!`qJOrX@L_v=c+t0ws%uZ}z5d+o=VRyDH$o;a-IVgaZCa|M^PQASmZE=t{Sew_Dp9jV z#W8tu=W*3sC&e=M%S`j57jC-Ys+AoWv>;gK(u!5*AC=aBKlylnaKh5fVkfs8oh!cm z`IW=mk>OJxUi=^Ktdv~%YlTvuoXj$dHO0TquI^O#4GB$*UhJ3{;2bQvN_ta*bE1d3 z%!R16lhbYo$QyU6`i8J7IreUdXJ+*g&RXR5`K#4e!{%jETF);I3R?P99mRJ;k-;PTtg8Zp|5oT!I%`tP%c@6~EJBiGaPS zUhG26)Q>Musj!!S-dK}7jraB@mOb~^->#X??9FI)JBi&k;H*YDZ9Q_VTm zb6w;#kJ%yDrN6v>v^YN8e&(8^?cTF)L`+_qJCWPBS<#l+WT}tXT3@3L=?!_Ja$&iC z#^sSsO$}}5|E6XvH4>Y+;MjqAb$50-*(3%=K1%yB!Ju=C>vu1Hx#@=Qw*YcrPWZ2CU?gwvae>m&|54~*PocXZKK&m4sZ zp@o_E*XLJHXFk29c<$T9Y)`bNxi7!|;o~GVwl5zRFW8V!I>|k5b!xzRhIUzzN4t)j zUtT`Bzy9w!=J&cC!BQ7rURB)w<=e8{$hzX|R?qaj1L9T$i<|y@d;av#%P(^SW;gG! z%PKl)fBo~LH*9QQzZ9QOmF-aXotE!mn3mD_dDp*>Iilru;l1A1=Ps_FowdnFCickx z*gNxPu{HnNaZowDEG0IyZSlVibMDU#I;U96v}gZ@&c$qPE7qMa`tZ|Rqw|H$pWl8w z@1B;+)&D!ivVU(nv-h>78r?5q{+{0U<@KxNbB8S4`u^v~`=Z*kS!NR#__-FY z(~63os`ljihP8LJHZK*N>wDWMWs})k@7OK6MH5dwN%OYZ5rY@ zR4?ymsWq3gl(yMY%ilMI)>$s*eZAT^=12YOogX`OMcPc|_AFA4)wa2E+($^Wd!49U zRq2P1zw2|KY)juZ>FgoV<cQX?wzt; zRi7F;-u>aK$xr_MdiT80Z-1s~Z!g>XI=RKc()_hnm6Df?4_w=&Bi^ga_+ZNGu#YFt zLu9VdI^%&g=6YPgeE)^6E{o*2dZMZ=E{ppRYK3>y9KR>9+5j2EV&4 z#Q!AQng%vcx6fH(v8M3K0Rww^$%pgAS8be?zUJ@c!?S;U@4osVaHU4s$JLL$etefU zjVZVttm?9Tt)d?mTB6`x!;@cC`6B$|ES&Nm+Ktz{#E}zUB6u>Jn{BUMgCdK z5@wi9`})*MuGEluzx&eLjErG&u-=9 zZM*qQ+^jydX@b8icgB}@GqTt1`*GKKx01?4!GPV;E&+a6NNr@^rHo%#{~n;=iD63Ab-fWfJ*H|3U7Xi?+EDMp$c z87@syr_GmScFguOeRfUs&aS4^r*i63Prf}fYuSVEt9D*|zUoltVda)TQmZCeYwg&n z=Iwmv$m_t3InuG=A1g(CPP<(eiK)s{z9Du$(7oRqU#Fg4IqrK)Ascxb^Ehw@cNe6G1=sVeSEtIv8@!e0@p)g61~D38?aZ%)gt9aI*4 ze6#!O5h1b1bz%>18Q)%{wR5Alc#rPmuHaLQKi=Q|>KDpZ5D;$9yz6)5KEtCMo4J4d zJkPZ;H)5~l*;QvV?P7$MZ@O|+a&h;{ZYiCp>5mTh#pUhaAe-A2V`BF9m}~shJLZRW zb0;y(sr4~*|H8kqq_%6mti+==i;MqeZ?@}yy2{W~M{(bz%P;R;K7X)rGe(5ge zDJ~^q>%9wK+F$>CLf-1*{{NTTHoJ*WK6k4mXR>uw#be>Pj+y zUn}_h+{&vlbzYMCcP>n2T|N2B%O|Q&uJ8E2G%$`jh`wrLUN^>UMyx-_|o3opgdCe?P(hkmXff1&(H6k8(xy+jt$q) zEfD0(*z>J$if-vz>u;af8M&OTuJW?wpYIp+pH*>J>u93*G}inx-9h5UMY%b#5AU)X zZo86}8UAWnwKc!=D&sqUolL*`-F7>%{^92pBCRFQ_kAs7-tN6{$pP2YjkB*mbBo-p z+I)R&fWU>9A@5SJHA&20@AcqX=uB0on%8AhpM4U(`-5@iuh19s3^cg97Hx@GH?Ov6 zWmRaX$5P!*Y$D<>*4&wqc(TnzFZQS1U8~I02dv%FjUUQ07i)3ltUNo(@XZ~MlF)^# z?79a@`dVXqPL>p}P-gcgCvm&-b(iCVMS~=}&z44V{gG-_>^-)_v-ZxC+=<-#&C8#x zzgla%lkfMh9geYA7A!g7>iC)A;<72OrOwk9gfHE3pf&eqP-pZL2lPKYrJ-z1_PdN8%S#i*)tn~wA{t!=a5_&E7|^nu4=CsJ}t zw*Gwa>-!znFYkXZ`t*3_CwHdLCvSanjXt~HC^_P+GrLH-&!oMRj|Yo>*m+gfNnPH; zdiA$`D?|5e{#_e<`OH%7a~oRni|^0f%g4H;IquE%g;Vdh*L4Ki{(4t;Ft;n_O#I9T zSN5+{nzccLC)21Qh+|_u+qC0Lg?uB{+`ZLuf3*;2hSBBa0!jCIbS|IjmB*0$f@Cy>;Cdc98G?VX-#v30!> zQOd~;Q_uQpF4o}Mw#e-Lnp1Yxd(ZH1Ff6i<`V(#cR)G2RwvD={f8KoM=G0;9#28Q{ zd}rmVu4S)Z%u~C!J~PR;*L8(K_o5j)A2|iidVcJYx^%?ONWUr1?iUM-zpA%9sxvnUnl$5OP+^^R+`CdxUO|$N0PqlPHL+8%5 z*zdgk&(F&oI!musUp3*~tM~Arfho`7117r5RYaZMw9dVf!Kdr2ytpF3w0FwOV@`)R z#72Y_CzzV^GKPefYVkZ(H~Tqjk%q>!rd3)iwso!B9kbIYg z*7x$0%Zf+rj=e2QzP&9tbnBW8QEk`G{n}LLm2*2!Ho~c+cJrZ4I;%qiGG}dbUjEzP zc0*LI@XB>9H_V?NetA0%6iL;#8=}fKJ+FVa=1|bL=BG2iOmmlL5%?XJaPr`WYbtA7 zZn$rKlOu-Q9rj4zRBVBChdC9$`B%T$BXgV0mvz3oYw^={#>Nv)L_~zuZPHV0xzXL2 z8u_5K`TBZhu8$GZa<8f}EEVhxIKg^DMVRd+&k2h##UpW?I;S^vio95$apu>S&gJ*| zKK^?oGCPZB!@}5==Q`}{{OpxZoM>kLvB!)zkU4Z}k#|RI{?Qxf&S-~y4tXvVv0Eri zQ2gSKllkvgKKuAw>Vrs@jIqiAPG=?toqH1!KV|pY7%c58R(IL)`;n27pg1pYB&V+8 zKIep|%e%eQCJROEzQohx5_83!x9`tgw`cXU9`HY(UT|{<$J<-G8vbxzSCihJvh(v% zws#d9+Rjf~Uin-8?QG}M6P_&;*sUPJ^XX>#{J_xAqYvBV`xa@;Shh2|$xwnPX_i{2 zOViu)?%Q;@_uubdmU-myNBJ*b7Tp!%bezw0KSd)?DYGJL|lZZ|h1GRLj|&VIN4%iWEaU&_rr9-p0X?2E?s ze=Fy3F7EPBy&SQu*E@VhMYibTU%z*JSmGol#k(hO@?|&Cjo-R->h~<|I?m5sbj?su zXyqF@>#B%|6`#MUbH-KJ`zhsKp0eph+{0()>Y^8xxh!9J&?R)g&8(f9|1-P(eD(Tg z*VK-vd+wnNwq0}yJ@7VYg78;YJC+(d`L0D9N?r!t$up1LRdUe8H$7(qO>tTEFx}uQ|b&G6I-wE%{4JrdQ4^0N{+c*7BLA;Jow6FcDApBW2nO1jR(&a zz1+bO%m3-qhyUG4(rR(v=dIafa_^tbLHqfulxJ?!{IJ^QPn7cUKZU~4+a+C`wCd)2 zX*^L9DH7y+xq?e#S?}$o0(`qUT8lzw-d>v^VYZ9y;RZjACBj_0KU9VA96t8^a?#Wn zkMp)+5yxMLakR$96oi{@|FgX@;DmPdssr0{YwYAZU793~(>`2um;ZRq`u&G*xAPyD z?JnFIb7qd^D~S;*YWU4Ptwr|FO~3DkH1U(?2XPG_YT&Hn0xH;?a6Z^%=CO07Mt_;$J}iDU4Or^|NYAYO{S7+=R2C7 zEz?W;xVw5=(W_GF%JMqlgA?3TRy-`!zVkUo_W1uy;d1}AN0(}fxR(53?0tT}*XY|U z-x&K!>9)+^kSCA6_CL1y>&E}HmC=ftb4t0ir#OqS0rlUf*% zvAt}^@*vGa4-JIXd=|v+F1vE=no;Siko3^`D}$E@MMrz@E_*w}Ad%@|!Hf{Ct@_^+ zSFTxYb|Ni@@70@3Kb1N2x8)|!GF!NSO~c~s{b#qoynm%Od0Rwy>W1U&kIc>QeiG8; z_L=={sZ~P3ovX8dl(^1nT5#;7dCtSP{z5DC#HZie+`Hc<&ilC0+|_dHo<4cKyM}|M!VrsQBJ3vj5L(v3q|^9IcW+cF*4a>Azja<7=W!aiYG> zuh=GsasTT28?^7S)PdJuKV6H?|M+tGe5Qcl;KS2&qd8cZN?u>`Q_cF z4v#-tY|AyS`%`giYqooAtgQaNA4(uxT3Wg#`+DEU$H$Xzn|-X9BVRP>!rh`N29wX0 z-qU3k z>vEEszuxn6cc9`q3$;UQ{jYAQh;1wNFI%+b#^FEQ*9-n@_kPKF|L9=2^vojPXg|9( zJ;`k0pI>}&3tQt|@VWk##q%2m+v7t{zLvjQd}iwGh_W(aS+CMvB}K+RSD9t(@_WBI z{L`uS!gs%8+2!h$-L{wI=~*wGl3}7-y{5owt*u=DWp|UJCmy%9=bztG`FW1tdt1}$ z4XaiiNiuX=DDe1LZ}P1znQP+r%Qbv^d%O6Or+Q+f*v5!A?Df98AIjbmX*CTH-F8j# ztn?ns6FqnI`D4OP-CCuS>mPgc|7_vI;uk(v6>Z$M^BP0wNn5sRvn@K(A+8Ifm(G4F zz4=W1%(P4EPcevlo2RVMxMunPTvp$YyH=MXXY-|66^kwHXep^G|G?lo$3W-Emf5?4 zgiQ~&rAiyg)IOEUn}5q;d6}NnBe7+3Z@bOPVrH8-q0Kv-v3X5ma!T%jDVL|REXx$) zVG9&#y>%<9>dT9R2O60@mj-3bay#B9>!~(bCwAAAv$M@NSABhDyD2B$Zi~+8M@uIA zE!wbQ!l6Tl?n;I2UVg|(w`yB)VAzU}=bn4kmDVWkVp}$qd)=`eM^7|2>(pI2K3{I# z!ynmZ#h*?v`2SzYyWqpQ=bopyO{=yRKYh1_{pchy$MuKSiceuQd#kqQ(f@gCpUyk| zr{b>G$0 zqPO)dpI5~-{dDW?x67Q{`M$im+WqzQ_0QjK=YPJLK0opHx4gF{_ai@Fc>f)gt`)9p z?%%vI@^?mqasJKx#~*c!@1ErUz>|fzc=}HO#D9=aX(qf z2j|44ByZe3y{R|SE^5-Fm;1M<&e{+e{`cvG-qNdVcVGKDsEPzs{#vW?xb3&)rv39% zKA(J;^nZy4*U1#2{^N%?9+x{kO*eXjPIsTIwN>c3hwbuy&(F>MSYaa~Dmu|aWrI$3 z|D1V?S81J05!!y6*THD!owdHfZ~g0kU7pWyp8w{WPgS8-(|7;4uHCB>GyCD3Dd ztY&U$&23(!m9oj~W{+b(pIo10R7<8r&;C4N=`3Hl|M$(Nh`w49bWJW>tkNbRIRDZ2 zl``fk4hQ)6YTaGaH*<-R*>N822N&$}=2fa66E;rXqJP!$?FWHWSF2>U-#=4aXVve$ zbmHJ$8=Jq&&03nR+~uAuw#)i-KC@Tn?u5iY9SqG?KUb_X*5JyNvAxj0?7*+A=H^{h z5>*ZTdATKV|4kf?a*e-TP`JrsB$sVJHQqG++M38UaeHSa7{dysv*C(6n&zcw}RjjCM!UYc5`}#c{8~eI^t#Ykv>yrLIDcikKr&~I2 zN8`=S>A``4AGdm6eb27_#-;pppwsQPkV_B3kBd(_cPpmma+uZJebZK}ixsBW%Znb} zx%_TSwn1^-r098Tl;hGrte4idNcU+8xpX2lsk-3z>RC=|xt5~6>oik%rM2@Cm{+a3 zAYoeYnoBQMQO?}J_d;pwGBx4Y)4hKAUD6U~ud81cd)d=^eQAQE*~OH18!u&c`>6eY z%i>!oEPY|io#dzNXWqTcRXDOQZ#&DhMGjiIi#6ExONP7r*OOaUy{K>X|4?SDDK15} zXH0q3BnqxSPCn@4S!^$a+TDk8(GEVj?E-w4cJX!bmUr~kZ8!5f|_tXC^&vZ1( z-M(+1WyvJT-B-8W{8#zu{KWn7T9$a8m#D zPpzuJz&HKRoZB z-+x&4a*3zWWb2pV%MJ=Ty_tF-OETtVkFQm7&D-1-fk)Y!UCbJZ=!Js&FmHlOZn8MN zxgB+`eCz!4?W&EcNA{gF;4zxXGtCNq{qEDv%%BtL`lijcTTD4KNX6sj;?jL!)v8sK)+!vaJMp&6I(b7$Y+pa)i-iFm+nNM^XC%yA*17KW zC6hDkVG05hK&qr7rll^-oW&Amx54M~6p)C9{kK!wa&JnUUE=PKchVBtT?0*Rf_i-5 z{yA)p6VyMSa6st(IeuIJfA^w_-?dlVi{1JE-==NzCLH*6Fk)Kky4Nj-6JzwQ>z)0Q zaoenGkpNfghpN5zf9;!=`tWNNXZzuEhi2;j7vo^zU~68x?!11a90v5`pBsC5+uN}B`M<9x-!_}IOpvd={KhdSrtJC4Ut2B9 z+*I_`%V;J~-uB}8kNf}s#;2W|m+Y)E8H2g z^S?}}s!(UadE4&=-|v=ND^BJ=*3`t5v{6ET?-wEC^m8tupKl|Na`@Z*RGF;i zd+2FV?drD|KGlkdh}g0`v1Sw*AOW>bnE?hVGfpvy;Y{%;(9KZO;&#TcKtwBWZ@J0 z4e_Nvm*qdQJ-98m>7YXXo{wyIcbBK1nxgsRZ=KKOl6|dr^R|Dk`}F$QQ|<0Qet*C3 z|3BCKe$C~ZlAlA}>+;^!gg*KFb3?9l?Dd&Osa(m&`({R?N`iGCyW`DS`Mj#GjmgKEKKy(>zxcRpxrJiEWnc4+Sy#1`CU$JT z%f-dDV%@s5CnqMZiP+ebcXt<~#ck{VJ9Ot?fBxB$aZbI=_S!I_pY+Hr{e#85^p-V;B%|ux6KEF zLZ>jaPb(gQkYY0TbVAYopsUXNic4T3S2j=IVAW+EDg3YSye-9WF{P ziv#U`J`vt@QwP#rJ!kQlC$9c)X^oxyvdl-He@5&o(PXf#{~|(b1`6aAK3zFxDr;_uh%bL}+epLaKqNI5x4_0P}q_0M)bpT~UQX_2LO_}(v< zyi<%M?^QhJJ!ktpX3|L&yZQa1+F=_~P73|0vp<+1aM|SMwp{71MH^C2i)CeH73{uS zVI#L{_3Fs|b$dUzPCA*gV&%%jx3{*=seCqbPT8$YmC2rc*6%FTd}cW4h%qO;xv_E2 zk4N1#e?A`n^W6Tw;!K}Oe#=!QzimHoDm?7+a{uRtxb>gR%3k;L)@fGpm;+y4UY_ff zoqyteME>5dV$bK-+kxWl{hrT!a{cW~y{8vl33NBiyJNv;`z64t^wkkze;Y>?p~S;& zygZUdE$8N17oXBxKEZ40i#t1wUzW@g_P3dsc)0E2&f@f}tgIh@KA(SiZ?Cm;8_&Y> z_xH}sHs{}d`>gf*J%^WgPQCydinI89#@O;f1G9ut3PdS+}{Ps^4b?YtKwoR-d@9wU^sHju<^}nO@c06QzxAVCi!>uiu&Y78-v(59NDd^hT=;JE_7r(f0W>RAgJOFjuRDS&qc_d)4{}6DIWA z|C_=l7j{3L0Ly7MX6CbHhMOTf6dM ztN4fCe}B~2ZOggowA^p*469Ntz3JVG&TR!xr-oa_%QUm|vn5%gKORR+JIc&&1BfXD8~1LjF5RY0YAr%MwfGn+xxmyB1hUTJ7+KkiWOE702b z{a$r{g24%Ae%m9${x%2e|9zIv+xskmCmzUQClirVyk8iH|S(J8WM&lw46BCmy zs|s>&t4Z}1eLN~|T>UL4?d+_hq2aNu>t3&k+S-+Sdzz0`P{b=!NG^WUXMSoxqQx{-0gRdG4tCTxUw>M zre(2O@G_r=uU4;jyIu;ar^41m90ZjE&uvXjO$|$41RU#=J-zjM+-YC)yGIVSa$ElY z^I20vUi^0J^`M}jLw|mP{COku=%7xY6-_5D}^|D98u<5eD{oL^Q+Nmi2+*on|L;D?z1=l|K9&^SoS6Y z6xb&wD(`&I#682N(&%D_$n?`kTgBr}Obw6oe12|jW=2MVoiS)==IGI*;Ii~#yL{S@ z4-Xk~?(La*=#Z0^mKI0*VUSxJUcJgS*WGCq)GcydE z8=2XIVq<-kCW1<#CB@IrF{lV}K3{(S{c!^xp2G!YL6=RU_p-YNo=7qBGd}nDqlI-v zo#5>hqs~>UG`gBnBbQu$8Fv5E?fl6eDuEn1-`|IU$hLZR9<~}_=o%zE#>-PrP*L3uDJYZ_$kvtUWE_-#=sZ;W)r?s`Til+IU zmrp!xzCJ2!iO$|5te0xj836m8ACiJ%>8g=bd=De7>KjC+9?u zBP)x}TRi5`+yAG?EborT?{9BC)h168_#NCjbv@gjIDJsj+`!DYApicpwR-F_1)#F} z!0WHuvcA3X{3-kVAiMmL=bsCo&n^G-I{yEx-S79!K6T3L-QMqU%azUcAAVYXXr68L zrJcp;a`k@-89+m`CQ?UVf3>nMv|HldE9Gi6_t{bLc$NnnkIOMXxZupcbl<*voa+(~ zw;2{c^GSD)+mO)sxp%&NOk`;2(IcJ0J3k(ip8Ngcw%q9DKUZjUZ9csB|G(d$@<68g z&Bhid#cOM$*&W*XWG(*x`TX+wdimpW)jAh5u2?or=fASldwNi4=+lt-d#k<{wFR$< z+7m6>%XU4VSN-G7=JOpcN;_ioOni%()@<8$jq}r5jw{XvdjCJ%|2@4dneDlZvXuA_W$QRpIzq{M%wz%fwQSqF+yQWsy`1Q-#O4!xx2>uAFNw2OBH_o|XP-7=ww}1Z6 z&(Aj}9AxUV`<21P%^fJxdfxuO%=+uzrKP5z4pREOO0~V!-_@piEqrZt-sUq;_O&&M zZ*FWnl4Mx*^_6RFt?lZtwU0g==1+fotQXW}JlM=0929hDmT7jymy7O_rdcBG@^w3c zJM(UCYHj5fFZythJvbtwH>W2bJafo`1tta@4x5F>_OGp!xmwWr9m29O~)TUoS8oF;bnjO zr#;5!Kw;!J;a%=e$8F~KDwIL-vS<;L@8y8dtC>Oh^*=kiy%J2rg?=)e2cZ=< z+oTj`dM(Y!%2E>HdRVqQGbhI-^lI2&i=WRT_T_8O^_%RWGDmhvYI~m2M1`qdf;?=6 zyYIRz4%9iVB*JCsyQaoIz(%gzZpzQatAEyQ*b|}CmKu33)2?!5NLPqfYwqnIf9q`I z_t?R%4tXVs2Z`UG$?xO`eV=DH>Nl8h~ z$rbNDYT$dh(*Nh%iSiz^@2j0mnG~Y+wCDb5dEIR~-5DmY_MFQx^9~N496T|4+EbpK zv-WO|j*P2TUAl3jqW-5qF{#SeCaiPxXTk2(XoNHv6z1H8CU|J2XdpXXk`nN!woaE?8(PCY2Jv_0+ox4G|s278x% z+w=3ojhnyEm|y)=TlDk#)lc7k-hRq&kmG-O%iO%_HJkM&pM107?Y4UVpU*=>w_Y_n z8NdH;@pJ3z+yC32`oHgQ^{Mg)+FhG2=g!;z|J=QH6V~sK{mK==OT|4BI@fR8KAY>O za(|=40n5Uuj=!B>61Q%sbuZJJTI9ExldXBJTle$d$)9A8{MYI_?bcaIT=tfFyF4W;m(5-;c=C%O-)RGmQO`aoj%=pG^xc&ahh)Q zvD5nd&wyG|Z#EpB)Auky^?F?L>1n!0k_^4Py+N~WM~@yo7kJ{oO5(+c13{ccq8A))U3?)wwHmd=@Y z-^pY0hw4-Efzf-bOixeOPyhJn=vqAxgL zF46!sYNGRYwuY__d-$>9$M^mJ&n}-|2bwFqTYmp(n{?iSRjW?T+-v;*M!)Sh2~azC z|KGRyhQ60)MxTEC(ZX1B%bdn520dZL-nCa%s+`_@7Y(a>x6CyA+K1ow|Nqne-H>xz zZKB78{q_I%Ueg!mVVh}NZ3Zeu%g?^mo{`*h9bb4h1s znYK77f;_hK`MlE?-Q{_oxGmf+v-SPgDoKk11?{jk3741ohJ=L$g@zvO64jP4NMOj@ zE`8bLW7Xa{Rj*d|$XHI=wacpR=jr%QACJo$m%WKlx0qk|D>FTA-Kteuvu4ejbNua< zmBPp6s&$H=pL;qrJZ|BlMNPr}wo?}^Qepu0!|zo-m*unh;E-;RYBY0-^A9I29d+K) zxyzQRr5|`4e)ie~`3*O&T-g%7Y}(29Te!vbRAl%*zgoS%=%TB*<>me!N#nLlmxAId zpNfL&KerwU(3}*=>$8?^OghR18d~`G_kI2LS(PU82|tTf)6dW2J@Dq{=8L6sLFL>_ z?$1AKbfUI&uyTuic(eJuQOXH{Ha^)`XNnjt)cu~Xz6dHdpU*AdlyH#g)alcadnydS z-z}H_`}=$PEqKF|Npl5lHF=AZBT|36K)|1BwB^MSG7?w3a1_UiS1(=?9QiAJ;~ zE?A`n>asREBrI>{`D`?kr_rHdalc*F`Y)+lWu|1@HapzLTdcMsdV8L1?XNG6*GoaQ z)xE0My3cD4u3Duv=_DwjC%?I|5i~^(8Wfv(l%XKaRKlV_;q&wJ>_x`vGBqC#p3|B2 zbEakZnuvp-2IlYg`~5XU7A;wFWG1gupvbX4+3w?y6TiH;2rA)s?Xvpy?d|E>?{|+M zWS2ja+;8jV>B$LlW4lZdXe8k2WPiKFb8{>~(_Ek?N!{OHhPA&+w&mR1bXcQO@!M^+ z#D6C3kNfTCG4tD8n0X{W{ZlY&`I{RPD{S_K&uZ;j1R4NxWS2cMLD3mB_y%g%AMFyY z`EZauWpkvO|2&`4Qq%CbO4VjI-a~K8F0YHVPM2GLb94IVi|+D;XAF;TkK0Pyi-bq1s8Ar3(PxpL2_xPmx{3mNRpDQ|K zw?Fq&XyiYUc{Qrj-y7FFXk_1@)6FTYX0dqx<(DSg@7G!DP46yzd@OO+vM9Hp9oDl zsdBiDcX9sxeHDA-@^-&9Tes_#R?cz;%Wu;m*-gS zG4V})c4p?0B*Q+dR~lSgTyr)C|NL!gVq$SRJomx_&Hg^3;leC?oKhTin<2%Tp=hmCwEn`U1Nh>7uWb!E-Iwx&>Qj{#3}Qxj8GR#wIH zx#b1B@Ak-8UXom}EAOt=z54&Pr%s)kvvY6Cq+PYM&s^Kkyn^Lg*}|#!4=S2pvbDeJ zV<1tICX`|68GHI=QdD2s{eK^&q^0M&+J5%E|3@hPWJ*!{#CN*Ocb*Jy{5kR6OrN$0 zoo8zlZ)|GHwbb=Kof*?~aKYz@pG(&~(OAfGtzUP;lPhz?LPB#*&vMsT-aYy4^4=%q z-`+0QyIFT@^0dnrw&cixD((B_-(+-WxBR@lGe+;Z>DE6B^6YiJ|9ySFJo@I%WbTiP zZ@Q-nb134PCxPq*18oWe&F-|oR>9R>nlpL+SMz%Z%1^3lL~lP8CYYqZ@%9$Q%Ja4o zi``Ej`>~75`;b@1UjLiBMDMFkKhgGM8JD(v*u`URH?^GJs6K3B(v;cf+p5|kU_Xn? z`$^i@FTek;4f~#%m8CS-Pnd@-dae14vuU0xLg$`TZp+<1>#gzrUA}dJyr(zKx#<~w z?nmbBveh?zK7a2${y1gx&HS1;MU@TToTsGnvK zbWP;uHWwvF1BsL)9fIfnyxo>7-06~$lk?G|i~larN; zpPgA4zrXHW$nl@7f#&)5e2iwgTsC3jk#P9^?X4kCbLi@@w_hqhXKQ#BaApd-pI4y-YGEAaw_mbg zL4$|Np+&CUFRrbX1||IMcgv*j?k;~08M9BkZ6?>>o<6^J+TuQ|uIKZr`TCDHuUhq^ z#txJ@L8Hd&c0A$&)t#4C2CL7jdZk$s`+TCi+|8Gt+YTG??w@er)>_dX&}7!b^?RR$ zFTS~0dSPYVXHd^df8UR$3Y&AYOtXJnp8xL%s0;S&>}<~V!#`^5?0!68UbTAl%d4x! z54ZC#-?dAs0W|Qw|GvMD*y2^Ix;TZ^3=$8qi0MQ)s0cAWXcdoRcmN(DfBltdL+))e z(4a?`sP>9gs~-J$-2c4C_#DH&m?ufUpU3Vld&|ci&Y|dgNM2*jr@z+g_x;k^x^?T1 zzjZpNi+&YOI;ryZ*4E@B9fCVz*6rOC7q?G7^Yk=b(7+sM9M_rOcFLniNw2^YEL(DK zi-m@QhG#YO^q#F;J}>FdkB>RGwscO9uez`E|cE>;Jxv z-}!po?uzes%Pm1|LA%wHCJDvpiR(@8-hAF}_VoC=nZC2l9)AB_{%cS9y-M}+dzH&; znp#<|@ymuCOt_GF?@r-y*%!O~932@yR@~uSS7Fn)?lovur$^d6Z@O6gU&T1(1E3o5 zSg-WU8yl5te|<^3w8XPV-d^s+TC2(NU)6*<142Sv=G)aqY|D|<4qwNzV9y?z6Kn6p z#KoO^+;9JGP15HNhxvo!;?9*`k3Bv`Gq~c%!}hrcx?Ge%O9nvGd9l}bKAV;O;_hzq zsZ*z3xqkiqm&*M=9&xLuq#9n?dwg5&^X|O-HBoxLhwg?%-mU-t7c>D9Q~&oXXnji^r$@!(pL{sX&;H=UVgBc>;&BDjUTSG- zCjR{N^v}EU{f~D%?o*!Y_xa;-d27d?q35-~@&43`_|w6x9Ur+fMo+Hd0VAjukBpS8 z{q^PHf@VG?37$&}o!Ps(yH~DRv&4J4Ud7&fVeKEji>$xyZ8i7Vve|i$=9b?}d~~Gq z%v|f~nU|Ltrk)acc7DFUt1IiORaSHFf^y%-M@MBU9yES=agq7N+E;Vd&$zZe{(Rwa zS@+UX({3?crHLLNE_v&NrZ+$fCTGo>Rq^?(Ib+1;G~RZ(Dh=)Mbx&?(uTMQY%k;|i z>(;jm)6ZKMJaBj(9s5T1=hZ{$XJ#Diku=uO(75sV?|PvKdx7n@d)K|T`SGCH=G%?r zk{1^k`;UL_{lBn!@sco+)=86uK<(l{ciE$xQcp8PY|oQrSQx-@*dQY#BjMyERnVY@ za=(qx{PV{p)8{zuE_?gp;$n93xQd0BIqOfVPB*CiRnl}&0aPTsy|wl6)$sVI3)|%$ zT@8<4x@b|;?fm_+C)OIw<)8O@{eHRrkaZ4;tBn;^NLN^PT+51qrWnmwc5;Sc@``oqmPK#RtNCYjR$8`{A?gC+a(j zIYnI+MYsz8e!c$rm~{SyoyFjrLrAdCHV28%ke?d3kvm@H8Jg=4RrX{O8BV zn6jIxN0K(${_>qFZ^30y{LJUtn#jW+9v*&qc{zVuB6wOaJKIxja*LB<)%SP3t5&UL z>suD2nRaG|qte8LFE1{F%+0%NwJqITsQVqevW(191uFSt&Oe5PJXdlZ_zq`6`>_Tnx{^m&b+^GZ*i^F zT(y}#R`PS&+Sr&H8Pw;NO!~YqFC$~YmMv5IWUaSZ$*Rxwd;GCN!YGBq*VnhgM$W`n zS*q7+`3D|3n;R>4MTMp5&JTZcci96_yMEREtFOO)I>5|-VSj!7^E2!}gMJE{aMo{; ztvZ`H$!~eN#{b}zA}d3(+HY_FV>{DlTh^_WtGW^;&I$DXc^ew4I{WOTvuSe!&V(6^2zYJp0WOsRM4YD3H#1@7d71CxO`C)c8*IpxzP-(mr@5<(3p8K{>fR^_Ojz6&l*qZU+(k+7+Pc`& zrPpKKO+Z80?*u%4{yX}5-R?ejxyqJ4S?hNf9WMw){MK|0EW7pcev#G8x3e?izvlib z?Vq~8?)SdFxp(dCS6NB$Bt?pCjPUv8@vWeB>dBNJpeDGd=gDxh?F1vxDr{1W zB!xOzR;@~k6sy}Wzx}qa)>Ngre(w!_JN+wJ`X~A6VJ!iU4LLWBjArtHR*!Gek^H{7 z-NekyD*4^MUKgc@GJnN{BJ6)`Pq&a!o9XlE-R}2Ev(!MN1JhCyBgOKzOK-n@cCx>n zr-HzP7Gb{wPm4Z&JTCwF5V!tftBVsd$zZ}OQLhF{*@o&EpMbNie-J0@1x_$4MPs?RB4irrO`c{Nd!&yT&Wq6#uiHOgd)?V)U(4>tsiaYA_zedlk{dV)r zeEa*7!qencK=YwnGA~QmRBZU1`1jA}^MN9*#pi9sPw-mAZpjE-4Ju+lbLeZLxA$FL z9e#PKw>W6_e3ogpgjLB3W52WSzZc&rJZ@O@#KWyu3N-Bk>KDJbvQk)YI`{2um0vEp zGe+zvP&_?NS9z|VasE9Uvz!|TK%M&=8{4qbZB5<*WzW(xc z>&{6o{t`NU*DkA5r%%syoL&7ZdgZ=-^A0w%8`u0Oh|v?D>BIJ;sBca6`@PdaGy8_g z#{#0Gxet6iF7N;T-rk*`&sp#M`|Y-*O@)EGY-z~q!kA8%rgwLD2L}WksD8hf9W*e* z$<_=SW?!~UO~h4Eg6Gr2c6p=PUnTE$z1HKid?L_i@rdKn%PpIAt;*hX+pXSJ zYno2vpq&n2B%k zF_F&v|E<$})H;tpzW-{HkDBV5Ivvq46RFf28xrqSzuy}Y9$x?0vT3GI+onxMRwXYs zg!3_H&wAG5a6WCbU%<~AJJ2AFl$6wtce`HCu&FFsz5nH|bFZ$hHuRmmE_U~$@4x46 zIBi}St0(^V_xEz9?1zV1&+#n&c`EpN>8n?-B6b$3f)>1IUOx7+z?_G9`st@W-k@-7 zI;imV>sKBbiwV;CdjwDLrs-&FE6eZ&M@F8Uoxkto@Av!9Us~$@^3G1FK8XtG~MVQ&+Y$n9#~)ZReN5|C(mQ)@=k~Kl-TKEKf3#@79$)t}^-rBWXqA=mtvC)&oqaONUt;$i z{9YCz+4eBRv(u%iQ&?T7*UivZc>C?%WtpJe0ia=$3l|zPXQ@o~Ojn)#_P61y*RM4- zH5dBNxBK%pzy2|Q{SW5U)YL0iuUc*nnYHYtiK)0wghOquZEI_*^;(zDkL!637aThC z{yS(7PHCwrXnKETNLMSj_@(vn_Ml18oZHVp%U)Kk>e`xpJt!n(%i)!7PH(n1eqDS| zW7oSg+Uql=l->JEoJuY)^R3t$XI1v*1ZdXn)z#HIpG@-JkURU|-`~c0cPuvDTq7Ja zYni1x8#|wj$M<)4B@Gf7CRm5evkwXn3p;jZrZK4fe)a0r9x2l({AUekTjCo7$=S;?!PUq%rbdRgL{RA;5(*j%(&%!sk#i3XHStxJ>!0kk zR6|F{<$CF&iy8|9I8JX`v3~vW#~%eaSRkV*7Tw#*UR^mEX<}-x?6U9Wi_bqfTAe`i zsp~JB_;PV^c`UztX0EmP_SMoe>U=acnVetAidW;)lin)o=ofG9quP?6R?S?ft&OFdMC*2bm(lQElr{`kUn zxmPCX#xr?l`m{MHJdkPZJ^px8Lem7bhyIRrvu4cwx^(5LTUlBXu7PtLGAd_J+y8v| z>YMxg{R2gwXJqWt`n_x4oBHmBJjHo zG(ZB{i3nY^ieoSaK6V3Qz?9=U&eFC{1Y&wWR2Uk(c6XYdzMezJ3*z>SaO|a)_ z?RM#6pIM`;X_1EgU+_wQ z{}zGY3fph@X3lb19C+!a$;p&UoGWWGo;qjMbLuQzv0{bb1S9W`+T7Az4{-AijPS*E$%ycdU7_i@hZ(en-qC1{NA~@Wy1Z( ze||X3Z|GaR|F&OmgYNV@OSf#fQulJ{^f!C5*Y6G6cG^59MsNDxFPHsq$3K0!eEzmr zz3Dlt^LOm|dM*0fI?!y)x9z!CG<*+m+lWf0dty)?A{oU@8`Eh%zJms(b%lPu*B50kQbpD>g_Wf`B zRll#R_;8T@<@NRV&F`(tzrPPO_O$8XzNSQp6r-83yZo)@PCIaGKB$pne!ph&_4xX^ z+j4K8ird`H#v^gyX8QcUYxC>B-Ap%5IKXhTz=t|Z(^cix41rN4C2%N|F*TWmpwQ)tIf%y^{cL^h=@nTTi4$|=R9#@%D%oP zcK0+sS*s7vX6K*!|L^;jf`^A}i{ur*-9EqsT12zhz5iKZ}a$vg6&Iac@th&DSfz_kVo@?JW5G?CfM-b(IbK`a#_; z5izl%`?cTSelYjFoWfk&8~^{;b)CpfPo(p=r<@czXZ_yhW5_d(M77Z-2glk$FkiU#Xcs zZKm1R-dw5;TNktQey)0?$5(C88tpm7=PYCDem>QS-4$YXV*7>t_4T0j+UMulZp@wi z^z`)4_y7N!{`2$m)5m^_ojQG5(yHXecDtWH_kO>3*r4ZcrtryA=bbv_{S!PV2XK5` zj8b*rFL-{7$#zV%o^GHu+nHlyKNs`H|Mm>td9yYh6?@gpz`(%Z>FVdQ&MBb@02evV AssI20 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v26/saf_guide_3.png b/app/src/main/res/drawable-v26/saf_guide_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ada22ae541c8f577032f9f32dcc460d9f449c0 GIT binary patch literal 17716 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 050cdca7..0f8d58e0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -262,6 +262,7 @@ Copied device info to clipboard. Your account data is only used for authentication. You will be forwarded to the issue tracker website. + Deleting songs @string/action_shuffle_all Shuffle @@ -272,4 +273,18 @@ Playlist is empty The playing notification provides actions for play/pause etc. Playing notification + + Can\'t get SAF URI + File write failed: %s + File delete failed: %s + SD card access required. Please pick root directory of SD card + File access required. Pick %s + + %s needs SD card access + Enable \'Show SD card\' in overflow menu + Open navigation drawer + Select your SD card in navigation drawer + You need to select your SD card root directory + Tap \'select\' button at the bottom of the screen + Do not open any subfolders From 4ad69136ffcabf28c4bd009b18a5efa6e9e156f3 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Thu, 31 Aug 2017 12:13:55 +0200 Subject: [PATCH 3/3] Revert "SD card write access using SAF API (#94) (#241)" This reverts commit 115be9ddc38020f68fb6bfd94056d87372ad03be. --- app/src/main/AndroidManifest.xml | 3 - .../gramophone/dialogs/DeleteSongsDialog.java | 180 +---------- .../ui/activities/saf/SAFGuideActivity.java | 52 ---- .../tageditor/AbsTagEditorActivity.java | 132 ++------ .../kabouzeid/gramophone/util/FileUtil.java | 12 - .../kabouzeid/gramophone/util/MusicUtil.java | 39 +-- .../gramophone/util/PreferenceUtil.java | 11 - .../kabouzeid/gramophone/util/SAFUtil.java | 291 ------------------ app/src/main/res/drawable-v21/saf_guide_1.png | Bin 13232 -> 0 bytes app/src/main/res/drawable-v21/saf_guide_2.png | Bin 15813 -> 0 bytes app/src/main/res/drawable-v21/saf_guide_3.png | Bin 29579 -> 0 bytes app/src/main/res/drawable-v26/saf_guide_1.png | Bin 19017 -> 0 bytes app/src/main/res/drawable-v26/saf_guide_2.png | Bin 23438 -> 0 bytes app/src/main/res/drawable-v26/saf_guide_3.png | Bin 17716 -> 0 bytes app/src/main/res/values/strings.xml | 15 - 15 files changed, 42 insertions(+), 693 deletions(-) delete mode 100644 app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java delete mode 100644 app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java delete mode 100644 app/src/main/res/drawable-v21/saf_guide_1.png delete mode 100644 app/src/main/res/drawable-v21/saf_guide_2.png delete mode 100644 app/src/main/res/drawable-v21/saf_guide_3.png delete mode 100644 app/src/main/res/drawable-v26/saf_guide_1.png delete mode 100644 app/src/main/res/drawable-v26/saf_guide_2.png delete mode 100644 app/src/main/res/drawable-v26/saf_guide_3.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4ed887e6..d0c73348 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -113,9 +113,6 @@ android:name=".ui.activities.intro.AppIntroActivity" android:label="@string/intro_label" android:theme="@style/Theme.Intro" /> - diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java index 00b5eb84..da7ef178 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/DeleteSongsDialog.java @@ -1,41 +1,24 @@ package com.kabouzeid.gramophone.dialogs; -import android.annotation.TargetApi; -import android.app.Activity; import android.app.Dialog; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; -import android.support.v4.app.FragmentActivity; import android.text.Html; -import android.widget.Toast; import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.misc.DialogAsyncTask; import com.kabouzeid.gramophone.model.Song; -import com.kabouzeid.gramophone.ui.activities.saf.SAFGuideActivity; import com.kabouzeid.gramophone.util.MusicUtil; -import com.kabouzeid.gramophone.util.SAFUtil; -import java.lang.ref.WeakReference; import java.util.ArrayList; -import java.util.Collections; -import java.util.List; /** * @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad) */ public class DeleteSongsDialog extends DialogFragment { - private ArrayList songsToRemove; - private Song currentSong; - @NonNull public static DeleteSongsDialog create(Song song) { ArrayList list = new ArrayList<>(); @@ -71,171 +54,14 @@ public class DeleteSongsDialog extends DialogFragment { .content(content) .positiveText(R.string.delete_action) .negativeText(android.R.string.cancel) - .autoDismiss(false) .onPositive(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { - songsToRemove = songs; - new DeleteSongsAsyncTask(DeleteSongsDialog.this).execute(new DeleteSongsAsyncTask.LoadingInfo(songs, null)); - } - }) - .onNegative(new MaterialDialog.SingleButtonCallback() { - @Override - public void onClick(@NonNull MaterialDialog materialDialog, @NonNull DialogAction dialogAction) { - dismiss(); + if (getActivity() == null) + return; + MusicUtil.deleteTracks(getActivity(), songs); } }) .build(); } - - private void deleteSongs(List songs, List safUris) { - MusicUtil.deleteTracks(getActivity(), songs, safUris); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - private void deleteSongsKitkat() { - if (songsToRemove.size() < 1) { - dismiss(); - return; - } - - currentSong = songsToRemove.remove(0); - - if (!SAFUtil.isSAFRequired(currentSong)) { - deleteSongs(Collections.singletonList(currentSong), null); - deleteSongsKitkat(); - } else { - Toast.makeText(getActivity(), String.format(getString(R.string.saf_pick_file), currentSong.data), Toast.LENGTH_LONG).show(); - SAFUtil.openFilePicker(this); - } - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent intent) { - super.onActivityResult(requestCode, resultCode, intent); - switch (requestCode) { - case SAFGuideActivity.REQUEST_CODE_SAF_GUIDE: - SAFUtil.openTreePicker(this); - break; - - case SAFUtil.REQUEST_SAF_PICK_TREE: - case SAFUtil.REQUEST_SAF_PICK_FILE: - new DeleteSongsAsyncTask(this).execute(new DeleteSongsAsyncTask.LoadingInfo(requestCode, resultCode, intent)); - break; - } - } - - private static class DeleteSongsAsyncTask extends DialogAsyncTask { - private WeakReference dialog; - private WeakReference activity; - - public DeleteSongsAsyncTask(DeleteSongsDialog dialog) { - super(dialog.getActivity()); - this.dialog = new WeakReference<>(dialog); - this.activity = new WeakReference<>(dialog.getActivity()); - } - - @Override - protected Void doInBackground(LoadingInfo... params) { - try { - LoadingInfo info = params[0]; - - DeleteSongsDialog dialog = this.dialog.get(); - FragmentActivity activity = this.activity.get(); - - if (dialog == null || activity == null) - return null; - - if (!info.isIntent) { - if (!SAFUtil.isSAFRequiredForSongs(info.songs)) { - dialog.deleteSongs(info.songs, null); - } else { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - if (SAFUtil.isSDCardAccessGranted(activity)) { - dialog.deleteSongs(info.songs, null); - } else { - dialog.startActivityForResult(new Intent(activity, SAFGuideActivity.class), SAFGuideActivity.REQUEST_CODE_SAF_GUIDE); - } - } else { - dialog.deleteSongsKitkat(); - } - } - } else { - switch (info.requestCode) { - case SAFUtil.REQUEST_SAF_PICK_TREE: - if (info.resultCode == Activity.RESULT_OK) { - SAFUtil.saveTreeUri(activity, info.intent); - dialog.deleteSongs(dialog.songsToRemove, null); - } - break; - - case SAFUtil.REQUEST_SAF_PICK_FILE: - if (info.resultCode == Activity.RESULT_OK) { - dialog.deleteSongs(Collections.singletonList(dialog.currentSong), Collections.singletonList(info.intent.getData())); - } - break; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - - return null; - } - - @Override - protected void onPostExecute(Void v) { - super.onPostExecute(v); - - DeleteSongsDialog dialog = this.dialog.get(); - FragmentActivity activity = this.activity.get(); - if (dialog != null && activity != null && !activity.isFinishing()) { - dialog.dismiss(); - } - } - - @Override - protected void onCancelled() { - super.onCancelled(); - - DeleteSongsDialog dialog = this.dialog.get(); - FragmentActivity activity = this.activity.get(); - if (dialog != null && activity != null && !activity.isFinishing()) { - dialog.dismiss(); - } - } - - @Override - protected Dialog createDialog(@NonNull Context context) { - return new MaterialDialog.Builder(context) - .title(R.string.deleting_songs) - .cancelable(false) - .progress(true, 0) - .build(); - } - - public static class LoadingInfo { - public boolean isIntent; - - public List songs; - public List safUris; - - public int requestCode; - public int resultCode; - public Intent intent; - - public LoadingInfo(List songs, List safUris) { - this.isIntent = false; - this.songs = songs; - this.safUris = safUris; - } - - public LoadingInfo(int requestCode, int resultCode, Intent intent) { - this.isIntent = true; - this.requestCode = requestCode; - this.resultCode = resultCode; - this.intent = intent; - } - } - } } \ No newline at end of file diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java deleted file mode 100644 index aff54327..00000000 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/saf/SAFGuideActivity.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.kabouzeid.gramophone.ui.activities.saf; - -import android.os.Build; -import android.os.Bundle; - -import com.heinrichreimersoftware.materialintro.app.IntroActivity; -import com.heinrichreimersoftware.materialintro.slide.SimpleSlide; -import com.kabouzeid.gramophone.R; - - -public class SAFGuideActivity extends IntroActivity { - - public static final int REQUEST_CODE_SAF_GUIDE = 98; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setButtonCtaVisible(false); - setButtonNextVisible(false); - setButtonBackVisible(false); - - setButtonCtaTintMode(BUTTON_CTA_TINT_MODE_TEXT); - - String title = String.format(getString(R.string.saf_guide_slide1_title), getString(R.string.app_name)); - - addSlide(new SimpleSlide.Builder() - .title(title) - .description(Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1 ? R.string.saf_guide_slide1_description_before_o : R.string.saf_guide_slide1_description) - .image(R.drawable.saf_guide_1) - .background(R.color.md_indigo_300) - .backgroundDark(R.color.md_indigo_400) - .layout(R.layout.fragment_simple_slide_large_image) - .build()); - addSlide(new SimpleSlide.Builder() - .title(R.string.saf_guide_slide2_title) - .description(R.string.saf_guide_slide2_description) - .image(R.drawable.saf_guide_2) - .background(R.color.md_indigo_500) - .backgroundDark(R.color.md_indigo_600) - .layout(R.layout.fragment_simple_slide_large_image) - .build()); - addSlide(new SimpleSlide.Builder() - .title(R.string.saf_guide_slide3_title) - .description(R.string.saf_guide_slide3_description) - .image(R.drawable.saf_guide_3) - .background(R.color.md_indigo_700) - .backgroundDark(R.color.md_indigo_800) - .layout(R.layout.fragment_simple_slide_large_image) - .build()); - } -} diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java index 06dfcada..cf9ab563 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java @@ -1,6 +1,5 @@ package com.kabouzeid.gramophone.ui.activities.tageditor; -import android.annotation.TargetApi; import android.app.Activity; import android.app.Dialog; import android.app.SearchManager; @@ -10,7 +9,6 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.MediaScannerConnection; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -22,7 +20,6 @@ import android.view.View; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.Toast; import com.afollestad.materialdialogs.MaterialDialog; import com.github.ksoichiro.android.observablescrollview.ObservableScrollView; @@ -34,25 +31,25 @@ import com.kabouzeid.gramophone.misc.DialogAsyncTask; import com.kabouzeid.gramophone.misc.SimpleObservableScrollViewCallbacks; import com.kabouzeid.gramophone.misc.UpdateToastMediaScannerCompletionListener; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; -import com.kabouzeid.gramophone.ui.activities.saf.SAFGuideActivity; import com.kabouzeid.gramophone.util.MusicUtil; -import com.kabouzeid.gramophone.util.SAFUtil; import com.kabouzeid.gramophone.util.Util; import org.jaudiotagger.audio.AudioFile; import org.jaudiotagger.audio.AudioFileIO; +import org.jaudiotagger.audio.exceptions.CannotReadException; +import org.jaudiotagger.audio.exceptions.CannotWriteException; +import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException; +import org.jaudiotagger.audio.exceptions.ReadOnlyFileException; import org.jaudiotagger.tag.FieldKey; import org.jaudiotagger.tag.Tag; +import org.jaudiotagger.tag.TagException; import org.jaudiotagger.tag.images.Artwork; import org.jaudiotagger.tag.images.ArtworkFactory; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.lang.ref.WeakReference; -import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -98,11 +95,6 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { }; private List songPaths; - private List savedSongPaths; - private String currentSongPath; - private Map savedTags; - private ArtworkInfo savedArtworkInfo; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -265,16 +257,6 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { fab.setEnabled(true); } - private void hideFab() { - fab.animate() - .setDuration(500) - .setInterpolator(new OvershootInterpolator()) - .scaleX(0) - .scaleY(0) - .start(); - fab.setEnabled(false); - } - protected void setImageBitmap(@Nullable final Bitmap bitmap, int bgColor) { if (bitmap == null) { image.setImageResource(R.drawable.default_album_art); @@ -296,52 +278,15 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { protected void writeValuesToFiles(@NonNull final Map fieldKeyValueMap, @Nullable final ArtworkInfo artworkInfo) { Util.hideSoftKeyboard(this); - hideFab(); - - savedSongPaths = getSongPaths(); - savedTags = fieldKeyValueMap; - savedArtworkInfo = artworkInfo; - - if (!SAFUtil.isSAFRequired(savedSongPaths)) { - writeTags(savedSongPaths); - } else { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - if (SAFUtil.isSDCardAccessGranted(this)) { - writeTags(savedSongPaths); - } else { - startActivityForResult(new Intent(this, SAFGuideActivity.class), SAFGuideActivity.REQUEST_CODE_SAF_GUIDE); - } - } else { - writeTagsKitkat(); - } - } - } - - private void writeTags(List paths) { - new WriteTagsAsyncTask(this).execute(new WriteTagsAsyncTask.LoadingInfo(paths, savedTags, savedArtworkInfo)); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - private void writeTagsKitkat() { - if (savedSongPaths.size() < 1) return; - - currentSongPath = savedSongPaths.remove(0); - - if (!SAFUtil.isSAFRequired(currentSongPath)) { - writeTags(Collections.singletonList(currentSongPath)); - writeTagsKitkat(); - } else { - Toast.makeText(this, String.format(getString(R.string.saf_pick_file), currentSongPath), Toast.LENGTH_LONG).show(); - SAFUtil.openFilePicker(this); - } + new WriteTagsAsyncTask(this).execute(new WriteTagsAsyncTask.LoadingInfo(getSongPaths(), fieldKeyValueMap, artworkInfo)); } private static class WriteTagsAsyncTask extends DialogAsyncTask { - private WeakReference activity; + Context applicationContext; - public WriteTagsAsyncTask(Activity activity) { - super(activity); - this.activity = new WeakReference<>(activity); + public WriteTagsAsyncTask(Context context) { + super(context); + applicationContext = context; } @Override @@ -367,14 +312,6 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { for (String filePath : info.filePaths) { publishProgress(++counter, info.filePaths.size()); try { - Uri safUri = null; - - if (filePath.contains(SAFUtil.SEPARATOR)) { - String[] fragments = filePath.split(SAFUtil.SEPARATOR); - filePath = fragments[0]; - safUri = Uri.parse(fragments[1]); - } - AudioFile audioFile = AudioFileIO.read(new File(filePath)); Tag tag = audioFile.getTagOrCreateAndSetDefault(); @@ -399,10 +336,8 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } } - Activity activity = this.activity.get(); - - SAFUtil.write(activity, audioFile, safUri); - } catch (@NonNull Exception e) { + audioFile.commit(); + } catch (@NonNull CannotReadException | IOException | CannotWriteException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) { e.printStackTrace(); } } @@ -416,18 +351,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } } - Collection paths = info.filePaths; - - if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { // remove SAF URI from paths - paths = new ArrayList<>(info.filePaths.size()); - for (String path : info.filePaths) { - if (path.contains(SAFUtil.SEPARATOR)) - path = path.split(SAFUtil.SEPARATOR)[0]; - paths.add(path); - } - } - - return paths.toArray(new String[paths.size()]); + return info.filePaths.toArray(new String[info.filePaths.size()]); } catch (Exception e) { e.printStackTrace(); return null; @@ -447,10 +371,8 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } private void scan(String[] toBeScanned) { - Activity activity = this.activity.get(); - if (activity != null) { - MediaScannerConnection.scanFile(activity, toBeScanned, null, new UpdateToastMediaScannerCompletionListener(activity, toBeScanned)); - } + Context context = getContext(); + MediaScannerConnection.scanFile(applicationContext, toBeScanned, null, context instanceof Activity ? new UpdateToastMediaScannerCompletionListener((Activity) context, toBeScanned) : null); } @Override @@ -499,32 +421,14 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { } @Override - protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent intent) { - super.onActivityResult(requestCode, resultCode, intent); + protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent imageReturnedIntent) { + super.onActivityResult(requestCode, resultCode, imageReturnedIntent); switch (requestCode) { case REQUEST_CODE_SELECT_IMAGE: if (resultCode == RESULT_OK) { - Uri selectedImage = intent.getData(); + Uri selectedImage = imageReturnedIntent.getData(); loadImageFromFile(selectedImage); } - break; - - case SAFGuideActivity.REQUEST_CODE_SAF_GUIDE: - SAFUtil.openTreePicker(this); - break; - - case SAFUtil.REQUEST_SAF_PICK_TREE: - if (resultCode == RESULT_OK) { - SAFUtil.saveTreeUri(this, intent); - writeTags(savedSongPaths); - } - break; - - case SAFUtil.REQUEST_SAF_PICK_FILE: - if (resultCode == RESULT_OK) { - writeTags(Collections.singletonList(currentSongPath + SAFUtil.SEPARATOR + intent.getDataString())); - } - break; } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java index 3a5f43e6..df54e766 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/FileUtil.java @@ -12,7 +12,6 @@ import com.kabouzeid.gramophone.loader.SortedCursor; import com.kabouzeid.gramophone.model.Song; import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; @@ -191,15 +190,4 @@ public final class FileUtil { fin.close(); return ret; } - - public static byte[] readBytes(InputStream stream) throws IOException { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - byte[] buffer = new byte[4096]; - int count; - while ((count = stream.read(buffer)) != -1) { - baos.write(buffer, 0, count); - } - stream.close(); - return baos.toByteArray(); - } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java index 8728564c..4f299565 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java @@ -1,6 +1,5 @@ package com.kabouzeid.gramophone.util; -import android.app.Activity; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; @@ -15,6 +14,7 @@ import android.provider.Settings; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; +import android.util.Log; import android.widget.Toast; import com.kabouzeid.gramophone.R; @@ -23,6 +23,7 @@ import com.kabouzeid.gramophone.loader.PlaylistLoader; import com.kabouzeid.gramophone.loader.SongLoader; import com.kabouzeid.gramophone.model.Artist; import com.kabouzeid.gramophone.model.Playlist; +import com.kabouzeid.gramophone.model.PlaylistSong; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics; @@ -174,7 +175,7 @@ public class MusicUtil { return albumArtDir; } - public static void deleteTracks(@NonNull final Activity activity, @NonNull final List songs, @Nullable final List safUris) { + public static void deleteTracks(@NonNull final Context context, @NonNull final List songs) { final String[] projection = new String[]{ BaseColumns._ID, MediaStore.MediaColumns.DATA }; @@ -189,7 +190,7 @@ public class MusicUtil { selection.append(")"); try { - final Cursor cursor = activity.getContentResolver().query( + final Cursor cursor = context.getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection.toString(), null, null); if (cursor != null) { @@ -198,35 +199,37 @@ public class MusicUtil { cursor.moveToFirst(); while (!cursor.isAfterLast()) { final int id = cursor.getInt(0); - final Song song = SongLoader.getSong(activity, id); + final Song song = SongLoader.getSong(context, id); MusicPlayerRemote.removeFromQueue(song); cursor.moveToNext(); } // Step 2: Remove selected tracks from the database - activity.getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, + context.getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, selection.toString(), null); // Step 3: Remove files from card cursor.moveToFirst(); - int i = 0; while (!cursor.isAfterLast()) { final String name = cursor.getString(1); - final Uri safUri = safUris == null || safUris.size() <= i ? null : safUris.get(i); - SAFUtil.delete(activity, name, safUri); - i++; - cursor.moveToNext(); + try { // File.delete can throw a security exception + final File f = new File(name); + if (!f.delete()) { + // I'm not sure if we'd ever get here (deletion would + // have to fail, but no exception thrown) + Log.e("MusicUtils", "Failed to delete file " + name); + } + cursor.moveToNext(); + } catch (@NonNull final SecurityException ex) { + cursor.moveToNext(); + } catch (NullPointerException e) { + Log.e("MusicUtils", "Failed to find file " + name); + } } cursor.close(); } - activity.getContentResolver().notifyChange(Uri.parse("content://media"), null); - - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - Toast.makeText(activity, activity.getString(R.string.deleted_x_songs, songs.size()), Toast.LENGTH_SHORT).show(); - } - }); + context.getContentResolver().notifyChange(Uri.parse("content://media"), null); + Toast.makeText(context, context.getString(R.string.deleted_x_songs, songs.size()), Toast.LENGTH_SHORT).show(); } catch (SecurityException ignored) { } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index 69df6d5e..565df23e 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -3,7 +3,6 @@ package com.kabouzeid.gramophone.util; import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; -import android.net.Uri; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.annotation.StyleRes; @@ -72,8 +71,6 @@ public final class PreferenceUtil { public static final String SYNCHRONIZED_LYRICS_SHOW = "synchronized_lyrics_show"; - public static final String SAF_SDCARD_URI = "saf_sdcard_uri"; - private static PreferenceUtil sInstance; private final SharedPreferences mPreferences; @@ -409,12 +406,4 @@ public final class PreferenceUtil { public final boolean synchronizedLyricsShow() { return mPreferences.getBoolean(SYNCHRONIZED_LYRICS_SHOW, true); } - - public final String getSAFSDCardUri() { - return mPreferences.getString(SAF_SDCARD_URI, ""); - } - - public final void setSAFSDCardUri(Uri uri) { - mPreferences.edit().putString(SAF_SDCARD_URI, uri.toString()).apply(); - } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java deleted file mode 100644 index 80038481..00000000 --- a/app/src/main/java/com/kabouzeid/gramophone/util/SAFUtil.java +++ /dev/null @@ -1,291 +0,0 @@ -package com.kabouzeid.gramophone.util; - -import android.annotation.TargetApi; -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.UriPermission; -import android.net.Uri; -import android.os.Build; -import android.os.ParcelFileDescriptor; -import android.provider.DocumentsContract; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.provider.DocumentFile; -import android.text.TextUtils; -import android.util.Log; -import android.widget.Toast; - -import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.model.Song; - -import org.jaudiotagger.audio.AudioFile; -import org.jaudiotagger.audio.exceptions.CannotWriteException; -import org.jaudiotagger.audio.generic.Utils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class SAFUtil { - - public static final String TAG = SAFUtil.class.getSimpleName(); - public static final String SEPARATOR = "###/SAF/###"; - - public static final int REQUEST_SAF_PICK_FILE = 42; - public static final int REQUEST_SAF_PICK_TREE = 43; - - public static boolean isSAFRequired(File file) { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && !file.canWrite(); - } - - public static boolean isSAFRequired(String path) { - return isSAFRequired(new File(path)); - } - - public static boolean isSAFRequired(AudioFile audio) { - return isSAFRequired(audio.getFile()); - } - - public static boolean isSAFRequired(Song song) { - return isSAFRequired(song.data); - } - - public static boolean isSAFRequired(List paths) { - for (String path : paths) { - if (isSAFRequired(path)) return true; - } - return false; - } - - public static boolean isSAFRequiredForSongs(List songs) { - for (Song song : songs) { - if (isSAFRequired(song)) return true; - } - return false; - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - public static void openFilePicker(Activity activity) { - Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT); - i.addCategory(Intent.CATEGORY_OPENABLE); - i.setType("audio/*"); - i.putExtra("android.content.extra.SHOW_ADVANCED", true); - activity.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_FILE); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - public static void openFilePicker(Fragment fragment) { - Intent i = new Intent(Intent.ACTION_CREATE_DOCUMENT); - i.addCategory(Intent.CATEGORY_OPENABLE); - i.setType("audio/*"); - i.putExtra("android.content.extra.SHOW_ADVANCED", true); - fragment.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_FILE); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public static void openTreePicker(Activity activity) { - Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); - i.putExtra("android.content.extra.SHOW_ADVANCED", true); - activity.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_TREE); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public static void openTreePicker(Fragment fragment) { - Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); - i.putExtra("android.content.extra.SHOW_ADVANCED", true); - fragment.startActivityForResult(i, SAFUtil.REQUEST_SAF_PICK_TREE); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - public static void saveTreeUri(Context context, Intent data) { - Uri uri = data.getData(); - context.getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); - PreferenceUtil.getInstance(context).setSAFSDCardUri(uri); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public static boolean isTreeUriSaved(Context context) { - return !TextUtils.isEmpty(PreferenceUtil.getInstance(context).getSAFSDCardUri()); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public static boolean isSDCardAccessGranted(Context context) { - if (!isTreeUriSaved(context)) return false; - - String sdcardUri = PreferenceUtil.getInstance(context).getSAFSDCardUri(); - - List perms = context.getContentResolver().getPersistedUriPermissions(); - for (UriPermission perm : perms) { - if (perm.getUri().toString().equals(sdcardUri) && perm.isWritePermission()) return true; - } - - return false; - } - - /** - * https://github.com/vanilla-music/vanilla-music-tag-editor/commit/e00e87fef289f463b6682674aa54be834179ccf0#diff-d436417358d5dfbb06846746d43c47a5R359 - * Finds needed file through Document API for SAF. It's not optimized yet - you can still gain wrong URI on - * files such as "/a/b/c.mp3" and "/b/a/c.mp3", but I consider it complete enough to be usable. - * - * @param dir - document file representing current dir of search - * @param segments - path segments that are left to find - * @return URI for found file. Null if nothing found. - */ - @Nullable - public static Uri findDocument(DocumentFile dir, List segments) { - for (DocumentFile file : dir.listFiles()) { - int index = segments.indexOf(file.getName()); - if (index == -1) { - continue; - } - - if (file.isDirectory()) { - segments.remove(file.getName()); - return findDocument(file, segments); - } - - if (file.isFile() && index == segments.size() - 1) { - // got to the last part - return file.getUri(); - } - } - - return null; - } - - public static void write(Context context, AudioFile audio, Uri safUri) { - if (isSAFRequired(audio)) { - writeSAF(context, audio, safUri); - } else { - try { - writeFile(audio); - } catch (CannotWriteException e) { - e.printStackTrace(); - } - } - } - - public static void writeFile(AudioFile audio) throws CannotWriteException { - audio.commit(); - } - - public static void writeSAF(Context context, AudioFile audio, Uri safUri) { - Uri uri = null; - - if (context == null) { - Log.e(TAG, "writeSAF: context == null"); - return; - } - - if (isTreeUriSaved(context)) { - List pathSegments = new ArrayList<>(Arrays.asList(audio.getFile().getAbsolutePath().split("/"))); - Uri sdcard = Uri.parse(PreferenceUtil.getInstance(context).getSAFSDCardUri()); - uri = findDocument(DocumentFile.fromTreeUri(context, sdcard), pathSegments); - } - - if (uri == null) { - uri = safUri; - } - - if (uri == null) { - Log.e(TAG, "writeSAF: Can't get SAF URI"); - toast(context, context.getString(R.string.saf_error_uri)); - return; - } - - try { - // copy file to app folder to use jaudiotagger - final File original = audio.getFile(); - File temp = File.createTempFile("tmp-media", '.' + Utils.getExtension(original)); - Utils.copy(original, temp); - temp.deleteOnExit(); - audio.setFile(temp); - writeFile(audio); - - ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "rw"); - if (pfd == null) { - Log.e(TAG, "writeSAF: SAF provided incorrect URI: " + uri); - return; - } - - // now read persisted data and write it to real FD provided by SAF - FileInputStream fis = new FileInputStream(temp); - byte[] audioContent = FileUtil.readBytes(fis); - FileOutputStream fos = new FileOutputStream(pfd.getFileDescriptor()); - fos.write(audioContent); - fos.close(); - - temp.delete(); - } catch (final Exception e) { - Log.e(TAG, "writeSAF: Failed to write to file descriptor provided by SAF", e); - - toast(context, String.format(context.getString(R.string.saf_write_failed), e.getLocalizedMessage())); - } - } - - public static void delete(Context context, String path, Uri safUri) { - if (isSAFRequired(path)) { - deleteSAF(context, path, safUri); - } else { - try { - deleteFile(path); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - public static void deleteFile(String path) { - new File(path).delete(); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - public static void deleteSAF(Context context, String path, Uri safUri) { - Uri uri = null; - - if (context == null) { - Log.e(TAG, "deleteSAF: context == null"); - return; - } - - if (isTreeUriSaved(context)) { - List pathSegments = new ArrayList<>(Arrays.asList(path.split("/"))); - Uri sdcard = Uri.parse(PreferenceUtil.getInstance(context).getSAFSDCardUri()); - uri = findDocument(DocumentFile.fromTreeUri(context, sdcard), pathSegments); - } - - if (uri == null) { - uri = safUri; - } - - if (uri == null) { - Log.e(TAG, "deleteSAF: Can't get SAF URI"); - toast(context, context.getString(R.string.saf_error_uri)); - return; - } - - try { - DocumentsContract.deleteDocument(context.getContentResolver(), uri); - } catch (final Exception e) { - Log.e(TAG, "deleteSAF: Failed to delete a file descriptor provided by SAF", e); - - toast(context, String.format(context.getString(R.string.saf_delete_failed), e.getLocalizedMessage())); - } - } - - private static void toast(final Context context, final String message) { - if (context instanceof Activity) { - ((Activity) context).runOnUiThread(new Runnable() { - @Override - public void run() { - Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); - } - }); - } - } - -} diff --git a/app/src/main/res/drawable-v21/saf_guide_1.png b/app/src/main/res/drawable-v21/saf_guide_1.png deleted file mode 100644 index d31be5b5e7f61771363c9c5757150e55cb6dee71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13232 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 a$Y63uYQ^7;dmn)I(0ID~xvX^B zXQ!4ZB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT8h zBDWwnwIorYA~z?m*s8)-32d%aUa=KOSYJs2tfVB{Rte&$2;Tq&=lr5n1yem^-DCqp zLj^N4Jwp>yGc!XS1tSAPBYguSeFHOHLlY}gGbE!^lXtC?!p|xH7LKu|hYmSQ%!5OKNd)QD#9& zW`3Rm$i&2?{L&IzB_*h_6}bg)WAlok!IYezt6z~=pl_&W0P+&Vuek-jzW9~q=E7AM zmjtCE+>6!V;*iRMRQ;gT;{4L02=9ZF3nBND}m`vLFl!_sTY(OKmlUql3J8mmYU*L zl%J~r_Ow+dZnv1>G!Lpb1-Dzwaq88#Q?StoMJ-ZP!-Rrd+(1llssyD_I|W42Pt8lQ zRVq@lw^KXHmc_teW$x+X7*cWT&0O{x;ivzP>u;{!eqov~w{G?Oz0(_*l)O_rKcsVX zD0OsoG5_FHQc~#ZXn5cdc(ZB2o10=>x&azXyWh>7`^Wy|MTuKYYqvSPeE#>)j2OM? zr@vO(&wpRM^N!~$vwUpDk+-Pj7FR_7RzX^z_!Kw{MrE%=HUb;$N#~&rtpJ`}gA^S4uh+CZ1e! z^v$$8ckdPz7xB6+Zjqbx==eMugzkhYNv6S8|!#N^4Pc=f;gdL4veRb)w z<;U-Ioj!AFQ>nR)k`R+gRseslt<9sZ7`^YG*Y-&4*ljzzD{_aWmDRUbw^+Ax?Ueb* zeK~4-#=Lp+HvYemc$wOMSm1n=7lF6WIgnuk)_h`|WXm*7a2jgI2zI`&Ku$ z`*V}!=H=&Rc8hA=;T32Si`m*$f4J)41ox$3iz9dL-f3xVy>RP`l3!=eoOv@RCgS1y z*RP+xtbFxm=bSk)8xpk=*jo)|K1n!43-aU`@TyOrT+w@@c>8D(G;<|dy zY}?~qFxR0qs4zT9n&-V<#oFNA+af~mloyx&ebfClzGkoF&ena4yY|1IKEIB~S0%_Z zE9%z_@nu(5gynwyr22v*fp=Gr=H|GA$G3<&)~zpfyuNUI$aA$lR{vQem=~X1VJ`9R z^29SUY&4%7YMuF6?8s4dpP2?_k3J`F+Ei?`dGp4ufGNCvB5b-wc8V7dpFO)K>FRDSP>Ka8Qu)x)|HCS0>MPik05YdN6mHmg)6s4!@-#H+MMhH8?0z75HUC zf}Gf9t!o)qvU-0#TFSwaKeyr5iHC3I$V~q5y-v#KXVvL#vb(>nxcchAt*v6ZGs;Do z{dV${&X1ZLygABr&(}Sz-FfP&+EckiF7>`*KfPpAcw9ZRc4pzK2lv!|)>gA}?s2N@ z>^Pnfo)pO(vj6+4bsI~}#iyUW|G(hPlgygBE5empSFg#}NBuv$J$!w<``*Aa6Af2p zEC^kAa1QtG4_Ac$y4xF{`KH;rbkC9f=VWjB&i#Dr>I&&^eBa8=tq)$3JDV$7bm%bm zL&3y{)1MU0?B5>V`AMKvl`YzKS4mq4$40iV&2D_skKR1#nf30&#m8)a=N5@%|1-GBV3P@W?zBXgls#;VA~TwUDM?Ae!3pN<&y z&$Vi{(Fx$cx89;@UGpn z_k3%dkDs4z;Ofn9xC&p~-tB&V-CXuBFIxp}?|5px|J2l9-`_QE%iY~BB-q}VU2yln z!shuue%;PJadL9{`P$82t3TI;th{pYUfqx2X1mBw_jdVDQ^cSb^4nZg0i=_I{px`V{lk|u}|Vx zNLbjnf6eVNu`%c7@!$P(m*20iZ~vQnw|D-3a8P;varT$DRyxm~cGf=XXXJK9e_jc@ zs*C@pJy!jIe^Pmm9o&(gp1%FT)W}Cy7942kSbd#kAqTHv+p!g2W}mlT z9k^CY?i&BPZpOrbxd#sZ{rzXdYf}~ z8GgUwc!p8b{@vQk+Qs!^`8aoTaHeh&GO^kC?8t=oPhbB3{%1ux%WVC3YZsha`{uE2 z(T!kgPxD) z9X=d)ch>{?cWZ9%$b34hRATn0-&LRb9iO~;Qu67|&6}U^N9?Uxxp(f}quzqX&-cxn zKE3_-vLyZEj}|To{97dZ`})3iS^46NS#I{m zVq0H-i!V=-n7KU2@%p*9w|nRRnlyX%>n6+1udc4WyeyQvqT*SN$NG1%&-VWbdM$Rg zjYq2B(U+Uig`AsqU-qc$Kj&~E!{nu;4h!q|wjYik;-BVI_3x%+@pE-m^~F19d+iW7 z?N|FGu{J|ST7JDoT-TyN=Y;!SQ?<%J|E!*%I#Dd+wa4Z=d-jxz*SC}gYfY{2^zwSu z`(m~PZ{DA8yYJlD(^y;W9@~FRKzy@q+&@pJM{oV!-g;wSQSmlh+E;C{Pto-9Nx%Pe z9V*)5C-^L)>Epb=U0zGwG-Gy7Iv+lJpX+x^vcB&0SY@b=ARACSxO`K$&~? z(i=>kWUX9N^D(zc_t>V_CvQxWvo~GBdc?q%YuBvu@MX)E-p_73v0}xK+n!my+gx^g z%1acntBY^b2|9D{?t<&-OI4%G#l3R=RZqG2Z04p*mzM^;T)cBpk$ZZ$nSRh7fhk#` zl{;rj{`B&C$8lnB-v7Wuo3!0eK5qND+|{k~Df_lXEl)LgGhg^)vrVmS6o+P>_{?q@FbGbiMQ&ok(C?vzOlFOV$RfXS> zi+id3)FmxX0w+wK-5@07#Oc}EZTqf&VatnXTaS^LbR8402|45Xu&-$@r;^ElXIfklsAHSU{l`fOFNy$$S7nAo~8rCoO z>&YF-;7!HF=UZc+XlBXf{?}Mk$;@(X-OJ~XAHRDgBr807;#A$q9^S!DTcd0X&zz9d z@9FK@_w(tq+;88?{Q2MfKPX+i)#`4eeZQ7S(bTBLAzEj`mtB-zVx%c_scK!#=hRCk zQIiwwVi)b5E0o!`=Unj0r$&-#g6jj4+r@9sIm2%J;%nPB-Pw=-{g7Nghky5rch6Q` z%bHr$>X*N7NzdYDX0g@Bl6>7dkJKo+@4QoE=c>c|K6Uw#oGRykJ13M{?F~!c$JQ3K zQs-HxHs??AqtR#9T9}7Ve=_CDojZGkVnxHlObvegD_*ek_s_66ll(rf#q%tR-!Zc1pZ^`Oq%K;r>6{-PhMe+I}nx3iIQ8WTmm; zTf@D(pFf4%wJxn#6kaZ`zh3)#z6r-F4^7UtHu>h^|y9DPt%DhZ{>Ne z-xj|^6Df>inWuR{N%@3ml5HZQ&q=~sSdo9pH6V*2NUSI#n7@&Dp&?wUQeSF?CO zZO(4rR($`bz)O?QM>%ISwOU(QX*~JFxObQToS#`yZp-dWn%uET(3$OUT(MA}T;HEv zB9*z!%x94=oVzbZ^8_sIlD{rx}h?YzLfcDCukNtfMH6to2U zZwS;@mt=&5T9w%*-YXHcs?QUH~(MO-e{A&C6{MSZ(efh2)`j zo)-A@GgH5QPubpze}BHLS#w=X_g}_W@y*M9S{l2j)n59$a$>%2T-ep~`OlUVzUVsQ z{b7zx^}hSY=Y8iH%XgJ!+$}o#Jib)Yq~`Cm_ZMnQvaUyke>$ByanWDpZNGhcjLnx4%AKe*QTBzMZU4*GrACweHVm_c&Fh zi5)B2F@M^;nUg20r~TI7{k{J8S+wD_q$2{!Vw%_vNv_59zsX$+@*7OVobv z!9SB8FF&t($Iq@*&*Wj5(5|J-^>W_6-t99hPTjs7to86C=Mo=>Zqr$NFGzd;V2#^Y zb|&GBT2;|=_bY0jP2Km}*qnJeW#-FwS$3f!uL4%IIyx0)X~`*-?XkI|YsQur@zegu zlnPa;olmunB+b!!J0Jxk-t&IXfSRfuI~U$EQQwzp z8p7rqhl}R=D3JND}8v)`zhgD)XS2#FJFAt`bA%2`+k0(Qp7r!*!%TA^h0K> z_nRNH+U@Hv$I@qK=e&CKW=rz)c$AKWJS$ z+dTK)3dfj3xh&8A_tx`$68ZmVWvhQ&Q;Uy>k5#3fiiW|1lmBWz6a?I#_kz!FKL1`( z@py%IDtEFEJbcj1)EYOpVHR^$`RfbIQa#T*=~d8-J+#-7kJ{ z;d=D`?VERRUT&zd;hTT_dgqrMne{h+|NhDS@We4y?dv*q+4nBBu7CdQsimdWvZd)c zzy7Hk#(q}5pfXS7X3@fHyYGp7U3I3&k^A&fHl5Ei)?djr%YG^@opp7^w`+5z$IZ0j zT$-8Vbm(~Y_1Ww9C;pVW5XIRMFBf$xYVwWX51%BK>L^!R&Q^;)d7C>lPBlNDo&EQk zHE$kGPncv@%O;-uvngzKu-4QKGK=+HZqA&rA^5qo>NI@=tL@pFKQ(XP{_o4_pWM@D znXReU{B-J{eZSO~sv{y@kG1Od#aeG!8+P=6TF#w=`}-C(m6jGB^ETSF$!|WlYj4!* zD$_k$CVwvV&WQMUi}}&RgKKA*7M2&=7CkBn^Yivh98K=Y6Z?M_3x$5~Ly+t0=PNu$%Hr*bq)j!W_bg$WWw`g{$F8rE% zMQUxuGWnKCd*{mD^IRHKo|ixE!|Po8J-;t{ePO96w@E!K({pW0)LP3vAGMDsBy`x7 zol};jrhQJ-d$hgd)NXxA)<(gPetmoqB5t#_wo0wc-g`>Zib+STzN&EJG;byE3&AT) z>-DwH7gfr-vsa(qE?#AG47mR{s=wW4uL1KP`TRis4C}eJ7V1 z*+l=~3gX&%=bP5eN34tH%#~Tof7aOIbgPp+bK!>Vo6j{L5^@f>U1{K|xBvBCo%=N> zKAyLlU7CAzb^25NMzf6^y2Agy9%cCdbHmp9n&e(LVOinoPcwWi|9OUTk^UL?JG1yFn#+ggPl@0UdYqX3zjkxd z?%W%DuFmMMC^0qX-MPAxi8+}+z-T3YVc{R`ai zr|amOgng?{3MuDXP)v~SvhX@(~m{| zK|lJgF10pH|C!2@ms->sqL#itrb4-m5BeMf9I)AKV6n*(H zIe)>EbDpV3Z+*)DUJ##V`E%~vxpSMFn}2kN-tqdJC?xjd3ag3sC5PMd{Pg~D{Ov1S z)U~M2OpeQDr~grn`R}I8OA_9=(c6UA*EO&3yw*Yubyb}p@511Y-;p`HcOEi3^;YE6 z{=de%)$jbge?OJoJlpk_c<>6ny_*laW|ajd?mKmGZg5)U;R!s?>zM(-+n9h4Tc5%8j7s;ACzswKMW5SH#C-HOtT+a~cd1T6V z)VpvN%SxXIOZzw~9fV$$#GTW-yZTyA@X7U?76(uBlb$u{OLfkduUkYM)kG^?E1XUR zIDJ-JdhFp>Dc#)bYj~G`d5Af&R#cp@#{z5 z?vm}>Z~A+Et<>JQ2`67wRjhw|>G{rP>-@B33mw<+^H&lp1H<-s)ZcWasB#{*(6|b??+pV!N%Wc3Qv0r@U^tvarfN zy?36gV&*<|Kht6p(>0xq&G~)S*437~YYN`Y@LFy7p2KwJo0Ltr*1huznWyF*J^fTz z+uVI?Pt}^OaMV1OU>*P8!Mr~=Tz|etSNye&$9Giuvdj&;@bb+5We24fTOWv){vxzE zuy4YZOkMZivkjVM=9PfGbg#TaIN-F&8cNk&2bvNr(Coqx-C)tFIFeV zni5*={)IKZb&k~K9Z!EeIF{A??`&}W+|J&-7vZIetNo_R$b3KUw!iwB#+2%%p~oFf znI9Jwr^)?|)tq`Z`=Xiu^7jv-OY7f!Ek7qyy+8K)vU~gFOW%B~Z~w0PB&CqW`;@bg zmr7lq-%6=cvqjJPqSQJS3WGFaM7TcB@LltzXW5ZGG5Xc)>^t{tImeP>B6;_X?4G^a z*Vo4Fj{bV^Fa3e)(jlKRe6o zo@IfhuNPZqJb4*>_vTkGw_CrupZnd}B{+5FyZ29I=FOV2`g**Vr_qb8QzlFi=j>gm zc`|fv3{%VIBP53G-=_S~;%9 z8V1&GtKa+LjiJ4Jde0*n(JqzHyj4-6vuE4BUH|vvPD=@SsSExmo|qdMf8hT)XTtQk zE3dXJRXb}@rQpBbc>ZpVhdPtHt>3Ez&HU*h|H}Q;wC4wr(M{R!o$RVZB6r&n{~FA_8eY3W!8=urLA)c10y7>tS+2QjyU{m|8ckK z+txYz>z?jj!4banQ%F$LVyBz?%VMjocjwl&^KkQ6Nr*qre7@mf(T#&UW`8q^T<5p^ zg#6c&I?E@U&FCpwdFA@e*2RuNbt+R%9u5|=-&>Ivby)0hv-Hezr&;~7TYH#APibd* za{s&0J16Gu((@;8e~exqC-!9Nm)v~CxBDUwmX6;WLk zMb}Q8*^;x?ZSkqwmBv|>zvWD0ZFe+Ju_;kGlrArp&)<2`HFNvo{~Pi`SDm;2`FvG( z`sNU=&)c6jxvUGY3p7qBeQsy8a>@Di_viZe7+UV9 zt71NjPpaCxH|XV(E#7C(ZmXG{Z@1(4>65NYFF(z^@@%Rjr*2!^KiQR)_5I3TVaom~ zF_Y{rTB@)A{*imd|I{K&|1Vz-sBW=%@b<};HO}YLUz_ciI=j|H(M(bQy6?)ImyfUC zIQ`rw=n;2&dArK7>B}0wzZE&+J>k#WRX>l*T&g}7aK&Ld``Lg)?v0Z;lqWBJ^3-m7 z{qbq5r_bZhx^ZavrrmS*dadvG@c;eg(M{d(L&aBLv8OCp>UihwOp#A-<&RgJOqgQN zc~QBA5|!fXp(>$DmF4+Z`Jy!hwW>-F+A9~>w8 z|NU^7-@5$WpZ?S5PoBKFuXeZB(p}ei>i>Sd9v)wNwC#|Jj`fqLkJk6yE`EOQ=FOXP zZL6={yjgi-f?{A`;B2$pqJjbrE-o$}o;`(+kIl2KE?6GEJ}xpcQd~do%$YMG8X|FV zaXV})KP_3mKL7u}zZ*5SM)g`ge*F0NmzTl<0u7pdeSO>V%YT2%ozbuQIQG-0PiFb| zYQDa@s^&Y(B>$d`rKRL8?Ww02nb~&i+!?#8gp<$R%`GXgXy>2l@pT6;vGGbhdHAsL zsltKpZ*PaMkF(X$vaq;u_wLFiHDq*4q7j@&uL{yp&4)YitJ z(&M#_Kl2G$t{uMa&!^M+4~2M6ZWRy|{CLS*|KY=1TeJ87c+@>*%9O&#$7=t6 zy}se&-|zS5+t=4cMM*s>xxFnn;@oNd{eOPH-=F;KJ$W|?qaTNrfp_1BdvSMIP+Jj8N>f9e1C|Nr^-Jo@3hM{Tp zHJxrzQ>otM<9)KWRVGHfoXqmKwq`$n^r)$4mQ`uiVz=H4M<#X^Y%P3z?CR?9_7#49 ze$r++4IzJjeRZypwXdr=(jmCmt#?(>Qm!M%ejT3q?d@%GiKa#7ksA^m54Z6Kb|@YE z5Vc2uad*kfOHo_1_Wpjidq(b$4-a>jy`6M2#ozw#m+1VxtS2vWUs)S%Ze>;V?afUC z$-1PY7g!fuXkA*tdFQZ5p{o6#56&7{`T6HnRQ?AY+FSko-TnRYS7kpju9bWm=H%q` z_t)3@e?QYz93(wCju@SfvX%O*U&hNm!SeDlUuX9Vn^L`7RKhsfW;MrYiN?3KKl-DQ z@i4tt%GAin=t-;J6fS2m{kT0jH;r^yWVx0l%uG7ozo0qoQO?%v>&MiO%6_rl(faVm zo2a$del5FU^r&pZW`#7(YnOLTlImSH$LoYj%@3hN2k!1JU(Bdj6VSHsVB(hM+i7QK zB_8<9@Xw~e^G#=pp+{ z$jQ%t{bdQOSl=nJqNFXIALUfu+}No6$gf8H$@8bDrysq!E@tPY#qRu9mR{TIzQW8< z&E;liXGOWay}b^jzar;DyA_ zhs)>yZ^)|R=jU3P6%`fF+kEcXk&=DCaYpRsw6iONmw!0K#w%4(S;@-6vL<4qlgz(` zY{w=D&8x1eTIAsBtG7(@&7svFL^km~K6&QMnTuizWTx>LZ&X_`({R#}140u!N@tko z%N=ida!yV6ADipDwNYESe8cwea7dYCY27*Kye0q3mlYS-_~m%Cy$b&tc$_|Wu8p%p zDnCE}%Cw9l9+M6na9G2+Nt{P{q@#(mH{R88&cXuS;S3fww z*wIyfF#BWW#C13LW~ggvy}Ge6c|+iwCh@q<4L9%Ad_Jqc?*~(UV(dx1*j*jgEvIBP zRG0bB@3Y@EN4%v{L+IX)Lgv4Fw@SH0i@#6c{2{H7RgnJT!osE6iI%LlU%lOa|J{X! zhdYJU72ckjsx9Ato|QBG%#22RlV3Vs5m8efXm>HqmZ)8Lrs;;}qxFaE8$@07y5dZ( zH8Qj7MQ(ah_$xz3*zS+4@qZ1i?JGTOx%(5}9x;6A?BnD#qvffC)3=HJ|KnKH9xBK6 zO=Fdmlq@VP3|$pcSYEFGL1fwT<;$Qy<;T-~ZQ4O)c%#mdpyy+w7Ak2ys1p`0(?yv&~u) za!*cD-L`m*{{BBjzrVe;v$M0bv^+gse|^~6Th;IPmOncqsjjZRH*SB{RjvH|_xu0- zdfm)#w<2bz(GlT(<;yQi&f9*Uv$%E2lqurzHH9Z8C|*l_cW3A4&*$yu+t=@Fnr@pa zWY_dm!))(YkBv$PH!uD7yfJof_4j)_3X{*zv&}6xR=QvI_SV*lkB@kz%|g~jeckIU~kIwyH)@mnu zBwt-ydwWx=ck@93Sy@>jAt6CQ#fW`uclK7BFA;t2GU46*{q`m%Q#?K7GK6;R+O^2Z z*?G#z6xV;b7xo1{nELLQs=B&)&JBU`UteFdJ74&9^s#YZecsJYN6($(dzNh?wMT!I zZ_AA7)5Yhx>b`pYy86`>&Fbpkj?HX|T$@1Uf6&U1wPBCNRJFq-)SMHtUpPKKal+$8 z`Hv3|XPIXA$y$rO>{{W{xx4CX)|s7YXQfzlwjI8*GI%4?_Po1NHWeR^bc((fdFFGd zT~qOv`7PC`xQVig{|pQiH8fU~T<14ZXtFAQwA}4|S!)HJXFdJ>{~!0;UufQvagphh0_Xk8=dx24KR-9unKj$C zXLsi1WhbJqtoFD4D)K6VpPyfcOa5D@`n-zIXU%t)yfn(brn5&muH)#TW0#lvC!hN8 z@bFRQ>=`Xj9D6udM^{XE{r!~odYy<34l+j-?{K}*Y0Q+hE^F~v5q|Xk565|?Vl1ci zB?KnzXui|k+v_^v+xz?fw_cBHUbiFn-X6=ew!L?Em2PI+vGvI@T`So=D}Pv@)Zh1m zsZ@Uz!xKfX;43R0AMbBJQ;}F!R@ORcf@j3TvNH=VF8=zM&#my^zkk}S){bT5qt!)-^53^R_@E|K5kdcEP0C~NM++HF2gpCUXt>VCaczp^Oc z#btl{qlf?heP1u33aSf_KKb+W^X)B}%?BTznQ3fz!#UyFx>#!!l_w7lHhbiROchr1 znPFS~twT_GLX>--%uM5SzFPrNQL}zbc3N?JO{DSb^(>4!N9Qy>JrVIl{hdNx^_Lfo zMI|>jB(n3#NSJ1cxOE0E^ZEGgTiawwNy%<8-A6Mf{1H##7T2pe68`bm*Vl}Uj2C?V z@XFn?RT9km^71mfRbmg<_o}b2S~p!df1bZNi073E7pq%I>8mS_XFIRAwYM+6>od=0 zXZH1VJDBYadtBtU<=>b4*|}!(KJhC}4Ln2!x2HmIWyf~0{fpKpEVzGjYxeZ79l5t3Z>wbZzW@F88>=TiIy~QKDyvP|lnpXV zTUxBsG!zx#jZIkllVkD+#e(mG#t+k5PZ$&i7he`I{IOuJz#W$r_j^1ez6rhi;a2gq z(lK>W!xO!prUxpbcDGb)3@3R;923fm(ta|FMLkbAs3T|bhRj|K#mO6VRL`6i5cyfU zB2Iwkj)kaPWF52P;eh9NBn6E)PX{=y{POjNJw@z^A^TfJTUQUiU7J7q zX%+ZHd=rWa;^#6lGPkzpzkl>- z((KvNLPAROesA!ctoHw}&CSlv&igf=&-O?fpL%J^EN|d*h--R_d%v8ldET9mkB`^? z`FMO|^6|8^w7C6se_O@le!Sg&|JvH&EYobg=xsiF)7QuEuX}fA=ZD}~|NnYLMcwL? zwNAJ)+28Kv-TnTaO5Sf`h$l|3+=k+nauV-eh%uC-n~VnjZxp zqx6!j4;)^zM(3l?R|RY9>QhrRCr+Fg7#P^$JJoAz$;(T+(c5AJDyJ{)y%5!iu&{mzZ9* zZ@eF!zqj@GdHer=PE1tJoxgSagvpbY?Ognnzdj5`D82%R8?6^7c5?! zTvJoi%*GoarX=AV=+x1;V75h}QW7thqiA_~`R(9_)jAR1&#I`a|Ni+i^6gRGB!M(G zcJ^f6#03=xc?#?HY>3*Lwdmvzktq|V^cRWfisn|`-&dP)>g((4>r)jqG&p?aolUnq z3zDz%nP($;PWir7$%_js0vCVyQ1H>D`jJAxDXg7&bme)#^~U0>ne|39D48{Rwo z_RLJ<`1-%4Yt~kT#jnokIDUG%KKC?ko0lb4(;|*$Gu&b0H|4xoV`$^7sFl^w)}6*H zX(Gk@?(ww@lWA4Ka<)|_tByOj^CfC@d=j!!lwKdd|KF$6`pcIuPgd&ke;p?&GJpTS zU)p<)ikxY?CGm25#ziHO`5o^BmE9gFCzxo&&dF+G=@u z`8}t%->=iI^N-k`7b|l3+RV3a-q`*95-idE`|hsN;(~&P#tZ%{Ll#-JR&#vVnteS< zamGUL>3TcrA0BG``1tr^+~zFE9H(OVUq?Kll5c8+I()!so3>Z|rUGjL1{bDVS9JI`!{69=)YOB1`Wq@No*- zW}VihthHTp@&p?nPR_{_Y*ILP&YtM$ajL-Qhd|)U5Vq!n-`IsMEiH{^o;i4M;fFJl zl9DrmWi~wu4PPH;D%D&1>Pn!7$Ri$3PR`EG&U^RnJ(~WtYOkH0U7StP+M=hYSl89g zojrSZ-d(Fb*SBO|j>y^EzqUijX@+j}Hc+opSk0&6-OlF*PftzNp0O$a{ytUjX(exN zTr7KL|Nl?%?QOXeCr;e)_0y+AQ(C#jLB+7sub)3VkJsei+LHPBSg&dJwVuAdch}e7 zUlY0c(W6IgywYsmf{z6%4mPpMT9s_jD}H-xt9zeJ<=?N@Z-ⅈg5IP68N~*|8GmW z_g)!ZUf!!OOE@$>?#L~8bHmWw++1B=rs4$fs}=X-N+@9m>U zm%8`MrJtX-HfZUoQ&Y7k=JZON_jPqi8K<2Q_P1FWqGiaOa`^44(A9RoUMR0_@i^h! z&bKw=B2(A0<;$G|eOBf%dhf3NUAEkB?h);;YO1QT_H{NE78V*B9c#O$Ol?^wHfi$Y z?mupFd<#swe+GAb*=mq}PUfPvLD`##JM(NRH#zh-L>2z~^K*r9;@lhJ2SUrs%QKX{ zxFCheSKYStXhyrV9m2LGdnssbl4R+ z&ptalyM4Pw#RrAB-Ibr8>F@vZ>Dk%Y>-T<(S{t?X+L}n?+FxIo?)wM@WeGVMa448X z-d?8vuZziRL7o^w;^@99TJyAAX1>?(bIX{qw7D*rS#((0}m}8Rz-)+X=h#hKTOH+etvFlpvk`P_p15$ z_*N(yZgAP!!&Us~NT6jA6bRp!+P{mtDQZEuy`>9jHNaND-(+N>)p8U<%%c>DSBy(ua#7S?g!qIC9yKzU3| z%mYO(*NnEJkUROEn)mMAllZOp%OLR2KLZ5?hDBCZR(w(>8CO;WZoAJOwmOVA|LwbX zedX;N|NZ+ngM^U%5mLLFk3V0NtEk?>T+M2IdaLK3 zzb)x;N0!~&n?3zUwcqPpMvYL)NlQo1knS?fG!y;+6m>(8L#LhLe*MG{foT!BJVF zGUepX%nk+p8$3T2-!r;-##K^-WBNHx_ivn8qUHfdkKPO1QM1p1d7?)}=(0^y4eC$d z;y(1O^w9O!J4&@oGWfV03q-hLw#^Gq)$-=d)el&=;g9l>TN*s|^Iy#Lj7Sr@mZva> z(hl(Pq9uKE;w~Pz)kVi)OTs+GH1{hh+;8(Ko4!gRMnEtjIdR>C=S=eUh*!qE4)# z1{2(4m4Db;?r=<*AmHV}LAkd;nF_va0B(mON{+*6O8`>JqR1eSUsP2<*+N5+NV{pE zWgzVa1wCqU09wZZ62+IA|8sV_1U=we*wQj3|H&PeB`$^sMf@u+W~__fpZ9k|t9P)M2Zv&dfDXdHlJ7ee{n-nQqqOX z%Is0w^LY8ibs|38tA2m<*s-uVYac#(bZJZG>U999fX+YAnFZcRTU_zrXWqzs=lwo5Ji z_+xh!trKF;EaI6e)ogN`_EV7&zy85bU*5)bS15YZ? zZCUO&x2vb;&DGW7Y)-kiw%pvFfB(Gw|2dN;eX{t==*8mJd}0?Huhaq~{Y}5u$L+OB z3b0{jO%$5OH*@Ap`#&EJ@2ULUCu3=paG>F6xA^z>_xB%?Q=L3}cJ-GR7oVM-y*=yd zsuL1276l1qWoB0EySAmi3!ONv+iPo0jjN!z`1h0Q^A8+OJly6x&t_-va=-gEpL_k5 zug*wz`fxjc|JIC)Nw2P~T;Y9wj%D)PcW>VOxl??8YxecLudl9hoaqYd))L{mvvK?O z?X_I9J<=Wu>Q6rvsoTEx&d%cJ3!U4ms;d_Vt&QIPZu$JWs`dIEa^YFm*V!f?>zQSm z?R4nFhk_mk?eKMXw&h00$KPKYy*=;twzW=QK|2jkPuDLmF822J*4B|;_T%?&d7BD> z&jE)n9XWlPyEJ^hU2Vbhzu)h#&k$nr_dj3v_gCqg8-nE*&IO3X>?~qses<{h1Z}1l z4N|6AAwN=jo&IG?DLz~qz1`x6PVKAf>-#Tl$-25qw2WJUWkT1%g9kkhaaDW}z|6x= h9EwX~KK*CnVOXH({B@nhwJgxaYEM@`mvv4FO#p$ms7C+* diff --git a/app/src/main/res/drawable-v21/saf_guide_3.png b/app/src/main/res/drawable-v21/saf_guide_3.png deleted file mode 100644 index 2317a82ccd3b001c152502a3ccbbc711755a02ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29579 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

F8)2L; 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 HDWM4f0X>Uk diff --git a/app/src/main/res/drawable-v26/saf_guide_2.png b/app/src/main/res/drawable-v26/saf_guide_2.png deleted file mode 100644 index ddc84b279a0212e9da695ddc0aea50dc9b383d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23438 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 AssI20 diff --git a/app/src/main/res/drawable-v26/saf_guide_3.png b/app/src/main/res/drawable-v26/saf_guide_3.png deleted file mode 100644 index c3ada22ae541c8f577032f9f32dcc460d9f449c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17716 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 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0f8d58e0..050cdca7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -262,7 +262,6 @@ Copied device info to clipboard. Your account data is only used for authentication. You will be forwarded to the issue tracker website. - Deleting songs @string/action_shuffle_all Shuffle @@ -273,18 +272,4 @@ Playlist is empty The playing notification provides actions for play/pause etc. Playing notification - - Can\'t get SAF URI - File write failed: %s - File delete failed: %s - SD card access required. Please pick root directory of SD card - File access required. Pick %s - - %s needs SD card access - Enable \'Show SD card\' in overflow menu - Open navigation drawer - Select your SD card in navigation drawer - You need to select your SD card root directory - Tap \'select\' button at the bottom of the screen - Do not open any subfolders