From: jabarros Date: Wed, 10 Dec 2014 13:13:32 +0000 (+0100) Subject: Merge branch 'fix_protocol_send_mail' into fix_logs_change_orientation X-Git-Tag: oc-android-1.7.0_signed~80^2 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/c34646aed37a51fc9499b9bef8e5b30c7e8e10a6?hp=700d4449779ee9702437103695a79a1cf7169e9c Merge branch 'fix_protocol_send_mail' into fix_logs_change_orientation --- diff --git a/res/values/strings.xml b/res/values/strings.xml index 8b828682..2ea02dba 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -304,8 +304,9 @@ Logs Send History - ownCloud Android app logs - Loading data... + No app for sending logs found. Install mail app! + %1$s Android app logs + Loading data… Authentication required Wrong password diff --git a/src/com/owncloud/android/ui/activity/LogHistoryActivity.java b/src/com/owncloud/android/ui/activity/LogHistoryActivity.java index 0186e1ee..793b3d9d 100644 --- a/src/com/owncloud/android/ui/activity/LogHistoryActivity.java +++ b/src/com/owncloud/android/ui/activity/LogHistoryActivity.java @@ -25,6 +25,7 @@ import java.lang.ref.WeakReference; import java.lang.reflect.Field; import java.util.ArrayList; +import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; @@ -36,6 +37,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; +import android.widget.Toast; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockFragmentActivity; @@ -131,41 +133,45 @@ public class LogHistoryActivity extends SherlockFragmentActivity { */ private void sendMail() { + // For the moment we need to consider the possibility that setup.xml + // does not include the "mail_logger" entry. This block prevents that + // compilation fails in this case. String emailAddress; try { Class stringClass = R.string.class; Field mailLoggerField = stringClass.getField("mail_logger"); - int emailAddressId = (Integer)mailLoggerField.get(null); + int emailAddressId = (Integer) mailLoggerField.get(null); emailAddress = getString(emailAddressId); - } catch (Exception e) { emailAddress = ""; } - + ArrayList uris = new ArrayList(); // Convert from paths to Android friendly Parcelable Uri's for (String file : Log_OC.getLogFileNames()) { - if (new File(mLogPath + File.separator, file).exists()) { - Uri u = Uri.parse("file://" + mLogPath + File.separator + file); - uris.add(u); + File logFile = new File(mLogPath, file); + if (logFile.exists()) { + uris.add(Uri.fromFile(logFile)); } } Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); - // Explicitly only use Gmail to send - intent.setClassName("com.google.android.gm","com.google.android.gm.ComposeActivityGmail"); - intent.putExtra(Intent.EXTRA_EMAIL, new String[]{ emailAddress }); - intent.putExtra(Intent.EXTRA_SUBJECT, getText(R.string.log_mail_subject)); + intent.putExtra(Intent.EXTRA_EMAIL, emailAddress); + String subject = String.format(getString(R.string.log_send_mail_subject), getString(R.string.app_name)); + intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setType(MAIL_ATTACHMENT_TYPE); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); - - if (intent.resolveActivity(getPackageManager()) != null) { + try { startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(this, getString(R.string.log_send_no_mail_app), Toast.LENGTH_LONG).show(); + Log_OC.i(TAG, "Could not find app for sending log history."); } + } /**