diff --git a/app/src/main/java/com/readrops/app/activities/ItemActivity.java b/app/src/main/java/com/readrops/app/activities/ItemActivity.java index 79653de1..2416576d 100644 --- a/app/src/main/java/com/readrops/app/activities/ItemActivity.java +++ b/app/src/main/java/com/readrops/app/activities/ItemActivity.java @@ -49,6 +49,9 @@ import com.readrops.app.utils.SharedPreferencesManager; import com.readrops.app.utils.Utils; import com.readrops.app.viewmodels.ItemViewModel; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + import static com.readrops.app.utils.ReadropsKeys.ACTION_BAR_COLOR; import static com.readrops.app.utils.ReadropsKeys.IMAGE_URL; import static com.readrops.app.utils.ReadropsKeys.ITEM_ID; @@ -79,6 +82,7 @@ public class ItemActivity extends AppCompatActivity { private CoordinatorLayout rootLayout; private String urlToDownload; + private String imageTitle; @Override protected void onCreate(Bundle savedInstanceState) { @@ -282,15 +286,40 @@ public class ItemActivity extends AppCompatActivity { .title(R.string.image_options) .items(R.array.image_options) .itemsCallback((dialog, itemView, position, text) -> { - if (position == 0) - shareImage(hitTestResult.getExtra()); - else { - if (PermissionManager.isPermissionGranted(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) - downloadImage(hitTestResult.getExtra()); - else { + switch (position) { + case 0: + shareImage(hitTestResult.getExtra()); + break; + case 1: + if (PermissionManager.isPermissionGranted(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) + downloadImage(hitTestResult.getExtra()); + else { + urlToDownload = hitTestResult.getExtra(); + PermissionManager.requestPermissions(this, WRITE_EXTERNAL_STORAGE_REQUEST, Manifest.permission.WRITE_EXTERNAL_STORAGE); + } + break; + case 2: urlToDownload = hitTestResult.getExtra(); - PermissionManager.requestPermissions(this, WRITE_EXTERNAL_STORAGE_REQUEST, Manifest.permission.WRITE_EXTERNAL_STORAGE); - } + String content = webView.getItemContent(); + + Pattern p = Pattern.compile("()"); + Matcher m = p.matcher(content); + if (m.matches()) { + Pattern p2 = Pattern.compile(""); + Matcher m2 = p2.matcher(content); + if (m2.matches()) { + imageTitle = m2.group(2); + } else { + imageTitle = ""; + } + } + new MaterialDialog.Builder(this) + .title(urlToDownload) + .content(imageTitle) + .show(); + break; + default: + throw new IllegalStateException("Unexpected value: " + position); } }) diff --git a/app/src/main/java/com/readrops/app/utils/ReadropsWebView.java b/app/src/main/java/com/readrops/app/utils/ReadropsWebView.java index 3258c658..6aa661d6 100644 --- a/app/src/main/java/com/readrops/app/utils/ReadropsWebView.java +++ b/app/src/main/java/com/readrops/app/utils/ReadropsWebView.java @@ -48,6 +48,11 @@ public class ReadropsWebView extends WebView { loadData(base64Content, "text/html; charset=utf-8", "base64"); } + public String getItemContent() { + String content = itemWithFeed.getItem().getContent(); + return content; + } + private void getColors(Context context, AttributeSet attrs) { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ReadropsWebView); textColor = typedArray.getColor(R.styleable.ReadropsWebView_textColor, 0); diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 58133580..4b8efac5 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -129,5 +129,7 @@ La synchronisation automatique est désactivée Les notifications nécessitent l\'activation de la synchronisation automatique pour fonctionner.\nVoulez-vous ouvrir les paramètres ? Ouvrir + Retour + Afficher la légende \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 3e96e77c..f196a218 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -13,6 +13,7 @@ @string/share_image @string/download_image + @string/show_caption diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b14e4543..9205ea24 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -136,4 +136,6 @@ Automatic synchronization is disabled To be displayed, notifications need auto synchronization to be activated.\nDo you want to open settings ? Open + Back + Show caption