From eddeb8d5fb77da894c9c99dfde72754f2675bbcf Mon Sep 17 00:00:00 2001
From: Tristan Roux
Date: Tue, 23 Apr 2019 21:57:20 +0200
Subject: [PATCH] Adding a mount check for the external storage in the edit
metadata activity finish.
---
Opus/Code/UI/Fragments/EditMetaData.cs | 24 ++-
Opus/Resources/Resource.Designer.cs | 218 +++++++++++++------------
Opus/Resources/values/strings.xml | 2 +
3 files changed, 134 insertions(+), 110 deletions(-)
diff --git a/Opus/Code/UI/Fragments/EditMetaData.cs b/Opus/Code/UI/Fragments/EditMetaData.cs
index abe73d2..4209265 100644
--- a/Opus/Code/UI/Fragments/EditMetaData.cs
+++ b/Opus/Code/UI/Fragments/EditMetaData.cs
@@ -164,15 +164,15 @@ namespace Opus.Fragments
async void LeaveAndValidate()
{
- await ValidateChanges();
- Finish();
+ if(await ValidateChanges(true))
+ Finish();
}
- async Task ValidateChanges()
+ async Task ValidateChanges(bool displayActionIfMountFail = false)
{
System.Console.WriteLine("&Validaing changes");
if (song.Title == title.Text && song.Artist == artist.Text && song.YoutubeID == youtubeID.Text && song.Album == album.Text && artURI == null)
- return;
+ return true;
System.Console.WriteLine("&Requesting permission");
const string permission = Manifest.Permission.WriteExternalStorage;
@@ -186,6 +186,21 @@ namespace Opus.Fragments
await Task.Delay(1000);
}
+ if(!Environment.MediaMounted.Equals(Environment.GetExternalStorageState(new Java.IO.File(song.Path))))
+ {
+ Snackbar snackBar = Snackbar.Make(FindViewById(Resource.Id.snackBar), Resource.String.mount_error, Snackbar.LengthLong);
+ snackBar.View.FindViewById(Resource.Id.snackbar_text).SetTextColor(Color.White);
+ if(displayActionIfMountFail)
+ {
+ snackBar.SetAction(Resource.String.mount_error_action, (v) =>
+ {
+ Finish();
+ });
+ }
+ snackBar.Show();
+ return false;
+ }
+
System.Console.WriteLine("&Creating write stream");
Stream stream = new FileStream(song.Path, FileMode.Open, FileAccess.ReadWrite);
var meta = TagLib.File.Create(new StreamFileAbstraction(song.Path, stream, stream));
@@ -266,6 +281,7 @@ namespace Opus.Fragments
Android.Media.MediaScannerConnection.ScanFile(this, new string[] { song.Path }, null, null);
Toast.MakeText(this, Resource.String.changes_saved, ToastLength.Short).Show();
+ return true;
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
diff --git a/Opus/Resources/Resource.Designer.cs b/Opus/Resources/Resource.Designer.cs
index 7ab0625..cc66281 100644
--- a/Opus/Resources/Resource.Designer.cs
+++ b/Opus/Resources/Resource.Designer.cs
@@ -7186,8 +7186,8 @@ namespace Opus
// aapt resource value: 0x7f0d0072
public const int abc_toolbar_collapse_description = 2131558514;
- // aapt resource value: 0x7f0d012a
- public const int add = 2131558698;
+ // aapt resource value: 0x7f0d012c
+ public const int add = 2131558700;
// aapt resource value: 0x7f0d00fb
public const int add_playlist = 2131558651;
@@ -7213,11 +7213,11 @@ namespace Opus
// aapt resource value: 0x7f0d0080
public const int appbar_scrolling_view_behavior = 2131558528;
- // aapt resource value: 0x7f0d0134
- public const int appearances = 2131558708;
+ // aapt resource value: 0x7f0d0136
+ public const int appearances = 2131558710;
- // aapt resource value: 0x7f0d0127
- public const int apply = 2131558695;
+ // aapt resource value: 0x7f0d0129
+ public const int apply = 2131558697;
// aapt resource value: 0x7f0d0114
public const int artist = 2131558676;
@@ -7228,11 +7228,11 @@ namespace Opus
// aapt resource value: 0x7f0d00cb
public const int autoplay_desc = 2131558603;
- // aapt resource value: 0x7f0d012e
- public const int behavior = 2131558702;
+ // aapt resource value: 0x7f0d0130
+ public const int behavior = 2131558704;
- // aapt resource value: 0x7f0d014c
- public const int beta_available = 2131558732;
+ // aapt resource value: 0x7f0d014e
+ public const int beta_available = 2131558734;
// aapt resource value: 0x7f0d0081
public const int bottom_sheet_behavior = 2131558529;
@@ -7240,17 +7240,17 @@ namespace Opus
// aapt resource value: 0x7f0d00b3
public const int browse = 2131558579;
- // aapt resource value: 0x7f0d0128
- public const int cancel = 2131558696;
+ // aapt resource value: 0x7f0d012a
+ public const int cancel = 2131558698;
- // aapt resource value: 0x7f0d0152
- public const int cancelling = 2131558738;
+ // aapt resource value: 0x7f0d0154
+ public const int cancelling = 2131558740;
// aapt resource value: 0x7f0d00f1
public const int cant_delete = 2131558641;
- // aapt resource value: 0x7f0d014f
- public const int cant_play_non_youtube = 2131558735;
+ // aapt resource value: 0x7f0d0151
+ public const int cant_play_non_youtube = 2131558737;
// aapt resource value: 0x7f0d00b8
public const int cast = 2131558584;
@@ -7333,11 +7333,11 @@ namespace Opus
// aapt resource value: 0x7f0d0015
public const int cast_play = 2131558421;
- // aapt resource value: 0x7f0d0125
- public const int cast_queue_push = 2131558693;
+ // aapt resource value: 0x7f0d0127
+ public const int cast_queue_push = 2131558695;
- // aapt resource value: 0x7f0d0126
- public const int cast_queue_pushed = 2131558694;
+ // aapt resource value: 0x7f0d0128
+ public const int cast_queue_pushed = 2131558696;
// aapt resource value: 0x7f0d0016
public const int cast_rewind = 2131558422;
@@ -7402,8 +7402,8 @@ namespace Opus
// aapt resource value: 0x7f0d0083
public const int character_counter_pattern = 2131558531;
- // aapt resource value: 0x7f0d013a
- public const int check_updates = 2131558714;
+ // aapt resource value: 0x7f0d013c
+ public const int check_updates = 2131558716;
// aapt resource value: 0x7f0d00b0
public const int clientID = 2131558576;
@@ -7465,11 +7465,11 @@ namespace Opus
// aapt resource value: 0x7f0d003b
public const int common_signin_button_text_long = 2131558459;
- // aapt resource value: 0x7f0d0124
- public const int completed = 2131558692;
+ // aapt resource value: 0x7f0d0126
+ public const int completed = 2131558694;
- // aapt resource value: 0x7f0d0146
- public const int country_blocked = 2131558726;
+ // aapt resource value: 0x7f0d0148
+ public const int country_blocked = 2131558728;
// aapt resource value: 0x7f0d0110
public const int create_local = 2131558672;
@@ -7489,8 +7489,8 @@ namespace Opus
// aapt resource value: 0x7f0d0111
public const int create_youtube = 2131558673;
- // aapt resource value: 0x7f0d0138
- public const int dark_theme = 2131558712;
+ // aapt resource value: 0x7f0d013a
+ public const int dark_theme = 2131558714;
// aapt resource value: 0x7f0d00db
public const int delete = 2131558619;
@@ -7498,8 +7498,8 @@ namespace Opus
// aapt resource value: 0x7f0d0107
public const int delete_playlist = 2131558663;
- // aapt resource value: 0x7f0d011f
- public const int deleted_file = 2131558687;
+ // aapt resource value: 0x7f0d0121
+ public const int deleted_file = 2131558689;
// aapt resource value: 0x7f0d00d3
public const int download = 2131558611;
@@ -7507,8 +7507,8 @@ namespace Opus
// aapt resource value: 0x7f0d0119
public const int download_albumart = 2131558681;
- // aapt resource value: 0x7f0d0130
- public const int download_directory = 2131558704;
+ // aapt resource value: 0x7f0d0132
+ public const int download_directory = 2131558706;
// aapt resource value: 0x7f0d011a
public const int download_meta = 2131558682;
@@ -7519,20 +7519,20 @@ namespace Opus
// aapt resource value: 0x7f0d00ec
public const int download_path_not_set = 2131558636;
- // aapt resource value: 0x7f0d011e
- public const int download_queue = 2131558686;
+ // aapt resource value: 0x7f0d0120
+ public const int download_queue = 2131558688;
// aapt resource value: 0x7f0d00ef
public const int downloading = 2131558639;
- // aapt resource value: 0x7f0d0150
- public const int downloading_notification = 2131558736;
+ // aapt resource value: 0x7f0d0152
+ public const int downloading_notification = 2131558738;
- // aapt resource value: 0x7f0d0122
- public const int downloading_status = 2131558690;
+ // aapt resource value: 0x7f0d0124
+ public const int downloading_status = 2131558692;
- // aapt resource value: 0x7f0d014d
- public const int downloading_update = 2131558733;
+ // aapt resource value: 0x7f0d014f
+ public const int downloading_update = 2131558735;
// aapt resource value: 0x7f0d00d2
public const int edit_metadata = 2131558610;
@@ -7669,11 +7669,11 @@ namespace Opus
// aapt resource value: 0x7f0d00c3
public const int hours = 2131558595;
- // aapt resource value: 0x7f0d0120
- public const int initialization = 2131558688;
+ // aapt resource value: 0x7f0d0122
+ public const int initialization = 2131558690;
- // aapt resource value: 0x7f0d012b
- public const int later = 2131558699;
+ // aapt resource value: 0x7f0d012d
+ public const int later = 2131558701;
// aapt resource value: 0x7f0d00d6
public const int list_songs = 2131558614;
@@ -7687,23 +7687,23 @@ namespace Opus
// aapt resource value: 0x7f0d00f9
public const int local_playlists = 2131558649;
- // aapt resource value: 0x7f0d013e
- public const int log_in = 2131558718;
+ // aapt resource value: 0x7f0d0140
+ public const int log_in = 2131558720;
+
+ // aapt resource value: 0x7f0d0141
+ public const int log_out = 2131558721;
// aapt resource value: 0x7f0d013f
- public const int log_out = 2131558719;
+ public const int logged_in = 2131558719;
- // aapt resource value: 0x7f0d013d
- public const int logged_in = 2131558717;
+ // aapt resource value: 0x7f0d0133
+ public const int max_download = 2131558707;
- // aapt resource value: 0x7f0d0131
- public const int max_download = 2131558705;
+ // aapt resource value: 0x7f0d0134
+ public const int max_download_dialog = 2131558708;
- // aapt resource value: 0x7f0d0132
- public const int max_download_dialog = 2131558706;
-
- // aapt resource value: 0x7f0d0121
- public const int metadata = 2131558689;
+ // aapt resource value: 0x7f0d0123
+ public const int metadata = 2131558691;
// aapt resource value: 0x7f0d011d
public const int metdata_error_noid = 2131558685;
@@ -7717,6 +7717,12 @@ namespace Opus
// aapt resource value: 0x7f0d00e3
public const int more = 2131558627;
+ // aapt resource value: 0x7f0d011e
+ public const int mount_error = 2131558686;
+
+ // aapt resource value: 0x7f0d011f
+ public const int mount_error_action = 2131558687;
+
// aapt resource value: 0x7f0d0040
public const int mr_button_content_description = 2131558464;
@@ -7798,8 +7804,8 @@ namespace Opus
// aapt resource value: 0x7f0d00bd
public const int next_loading = 2131558589;
- // aapt resource value: 0x7f0d012d
- public const int no = 2131558701;
+ // aapt resource value: 0x7f0d012f
+ public const int no = 2131558703;
// aapt resource value: 0x7f0d00f6
public const int no_channel = 2131558646;
@@ -7807,8 +7813,8 @@ namespace Opus
// aapt resource value: 0x7f0d00f5
public const int no_lives = 2131558645;
- // aapt resource value: 0x7f0d0141
- public const int no_permission = 2131558721;
+ // aapt resource value: 0x7f0d0143
+ public const int no_permission = 2131558723;
// aapt resource value: 0x7f0d00f4
public const int no_playlist = 2131558644;
@@ -7819,17 +7825,17 @@ namespace Opus
// aapt resource value: 0x7f0d00e8
public const int no_song = 2131558632;
- // aapt resource value: 0x7f0d0142
- public const int no_song_mix = 2131558722;
+ // aapt resource value: 0x7f0d0144
+ public const int no_song_mix = 2131558724;
// aapt resource value: 0x7f0d00f3
public const int no_track = 2131558643;
- // aapt resource value: 0x7f0d013c
- public const int not_log = 2131558716;
+ // aapt resource value: 0x7f0d013e
+ public const int not_log = 2131558718;
- // aapt resource value: 0x7f0d0147
- public const int not_streamable = 2131558727;
+ // aapt resource value: 0x7f0d0149
+ public const int not_streamable = 2131558729;
// aapt resource value: 0x7f0d00bc
public const int nothing = 2131558588;
@@ -7837,14 +7843,14 @@ namespace Opus
// aapt resource value: 0x7f0d00bf
public const int off = 2131558591;
- // aapt resource value: 0x7f0d0129
- public const int ok = 2131558697;
+ // aapt resource value: 0x7f0d012b
+ public const int ok = 2131558699;
// aapt resource value: 0x7f0d00c5
public const int open_youtube = 2131558597;
- // aapt resource value: 0x7f0d0139
- public const int others = 2131558713;
+ // aapt resource value: 0x7f0d013b
+ public const int others = 2131558715;
// aapt resource value: 0x7f0d0088
public const int password_toggle_content_description = 2131558536;
@@ -7984,32 +7990,32 @@ namespace Opus
// aapt resource value: 0x7f0d00dd
public const int sync_now = 2131558621;
- // aapt resource value: 0x7f0d0133
- public const int sync_remove = 2131558707;
+ // aapt resource value: 0x7f0d0135
+ public const int sync_remove = 2131558709;
// aapt resource value: 0x7f0d00f0
public const int syncing = 2131558640;
- // aapt resource value: 0x7f0d0151
- public const int tap_details = 2131558737;
+ // aapt resource value: 0x7f0d0153
+ public const int tap_details = 2131558739;
- // aapt resource value: 0x7f0d0135
- public const int theme = 2131558709;
+ // aapt resource value: 0x7f0d0137
+ public const int theme = 2131558711;
- // aapt resource value: 0x7f0d0136
- public const int theme_dialog = 2131558710;
+ // aapt resource value: 0x7f0d0138
+ public const int theme_dialog = 2131558712;
// aapt resource value: 0x7f0d00c4
public const int timer = 2131558596;
- // aapt resource value: 0x7f0d0144
- public const int timout = 2131558724;
+ // aapt resource value: 0x7f0d0146
+ public const int timout = 2131558726;
// aapt resource value: 0x7f0d0113
public const int title = 2131558675;
- // aapt resource value: 0x7f0d0140
- public const int undo = 2131558720;
+ // aapt resource value: 0x7f0d0142
+ public const int undo = 2131558722;
// aapt resource value: 0x7f0d011b
public const int undo_change = 2131558683;
@@ -8020,29 +8026,29 @@ namespace Opus
// aapt resource value: 0x7f0d010a
public const int unfork_playlist = 2131558666;
- // aapt resource value: 0x7f0d0145
- public const int unknow = 2131558725;
+ // aapt resource value: 0x7f0d0147
+ public const int unknow = 2131558727;
// aapt resource value: 0x7f0d00bb
public const int up_next = 2131558587;
+ // aapt resource value: 0x7f0d014d
+ public const int up_to_date = 2131558733;
+
+ // aapt resource value: 0x7f0d0125
+ public const int up_to_date_status = 2131558693;
+
// aapt resource value: 0x7f0d014b
- public const int up_to_date = 2131558731;
+ public const int update = 2131558731;
- // aapt resource value: 0x7f0d0123
- public const int up_to_date_status = 2131558691;
-
- // aapt resource value: 0x7f0d0149
- public const int update = 2131558729;
+ // aapt resource value: 0x7f0d014c
+ public const int update_message = 2131558732;
// aapt resource value: 0x7f0d014a
- public const int update_message = 2131558730;
+ public const int update_no_internet = 2131558730;
- // aapt resource value: 0x7f0d0148
- public const int update_no_internet = 2131558728;
-
- // aapt resource value: 0x7f0d014e
- public const int updating = 2131558734;
+ // aapt resource value: 0x7f0d0150
+ public const int updating = 2131558736;
// aapt resource value: 0x7f0d003e
public const int v7_preference_off = 2131558462;
@@ -8050,20 +8056,20 @@ namespace Opus
// aapt resource value: 0x7f0d003f
public const int v7_preference_on = 2131558463;
- // aapt resource value: 0x7f0d013b
- public const int version = 2131558715;
+ // aapt resource value: 0x7f0d013d
+ public const int version = 2131558717;
- // aapt resource value: 0x7f0d012f
- public const int volume = 2131558703;
+ // aapt resource value: 0x7f0d0131
+ public const int volume = 2131558705;
- // aapt resource value: 0x7f0d0137
- public const int white_theme = 2131558711;
+ // aapt resource value: 0x7f0d0139
+ public const int white_theme = 2131558713;
- // aapt resource value: 0x7f0d012c
- public const int yes = 2131558700;
+ // aapt resource value: 0x7f0d012e
+ public const int yes = 2131558702;
- // aapt resource value: 0x7f0d0143
- public const int youtube_endpoint = 2131558723;
+ // aapt resource value: 0x7f0d0145
+ public const int youtube_endpoint = 2131558725;
// aapt resource value: 0x7f0d00fc
public const int youtube_loading_error = 2131558652;
diff --git a/Opus/Resources/values/strings.xml b/Opus/Resources/values/strings.xml
index f7a220f..33e157c 100644
--- a/Opus/Resources/values/strings.xml
+++ b/Opus/Resources/values/strings.xml
@@ -133,6 +133,8 @@
Undo changes
Changes saved.
Can\'t get meta data on youtube, Youtube ID isn\'t set.
+ There is a probleme with your storage, please stop using your storage elsewhere and try again.
+ DISCARD AND LEAVE
Download Queue