From 2352fafded199715082685dba5ecfd523ae6e45a Mon Sep 17 00:00:00 2001 From: danijoo Date: Fri, 8 Jan 2016 19:29:49 +0100 Subject: [PATCH] show file intent after export --- .../preferences/PreferenceFragment.java | 37 ++++++++++++++++--- app/src/main/res/values/strings.xml | 3 ++ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/net/headlezz/notificationlogger/preferences/PreferenceFragment.java b/app/src/main/java/net/headlezz/notificationlogger/preferences/PreferenceFragment.java index 63b3058..230aa2c 100644 --- a/app/src/main/java/net/headlezz/notificationlogger/preferences/PreferenceFragment.java +++ b/app/src/main/java/net/headlezz/notificationlogger/preferences/PreferenceFragment.java @@ -3,9 +3,12 @@ package net.headlezz.notificationlogger.preferences; import android.Manifest; import android.app.Activity; import android.app.ProgressDialog; +import android.content.ActivityNotFoundException; import android.content.DialogInterface; +import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; +import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; @@ -17,6 +20,7 @@ import android.support.v7.app.AlertDialog; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; import android.text.Html; +import android.view.View; import android.widget.Toast; import com.google.gson.Gson; @@ -167,17 +171,38 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Pref if (progressDialog != null && progressDialog.isShowing()) progressDialog.dismiss(); if (getActivity() != null) { - String message; - if (path.isEmpty()) - message = getContext().getString(R.string.pref_export_snack_failed); - else - message = String.format(getContext().getString(R.string.pref_export_snack_success), path); - Snackbar.make(getActivity().findViewById(android.R.id.content), message, Snackbar.LENGTH_SHORT).show(); + + if (path.isEmpty()) { + String message = getContext().getString(R.string.pref_export_snack_failed); + Snackbar snack = Snackbar.make(getActivity().findViewById(android.R.id.content), message, Snackbar.LENGTH_SHORT); + snack.show(); + } else { + String message = String.format(getContext().getString(R.string.pref_export_snack_success), path); + Snackbar snack = Snackbar.make(getActivity().findViewById(android.R.id.content), message, Snackbar.LENGTH_SHORT); + snack.setAction(R.string.pref_export_snack_action, new View.OnClickListener() { + @Override + public void onClick(View v) { + showFolder(); + } + }); + snack.show(); + } } } }.execute(); } + private void showFolder() { + try { + Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()); + intent.setDataAndType(uri, "file/*"); + startActivity(Intent.createChooser(intent, getContext().getString(R.string.pref_export_snack_show_chooser_title))); + } catch (ActivityNotFoundException e) { + Toast.makeText(getContext(), R.string.pref_export_snack_show_activity_not_found, Toast.LENGTH_SHORT).show(); + } + } + private void askClearDatabase() { new AlertDialog.Builder(getContext()) .setTitle(R.string.pref_clear_database_dialog_title) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e1f7726..ce6f3dd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -80,6 +80,9 @@ Share Notification %s blacklisted. Undo + Show + Open folder + No file browser installed. Show more info