MailActivity.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package epson.scan.activity;
  2. import android.content.Intent;
  3. import android.net.Uri;
  4. import android.os.Bundle;
  5. import android.text.Editable;
  6. import android.text.InputFilter;
  7. import android.text.TextWatcher;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.RadioGroup;
  12. import android.widget.TextView;
  13. import android.widget.Toast;
  14. import java.io.File;
  15. import java.util.ArrayList;
  16. import epson.common.Constants;
  17. import epson.common.ExternalFileUtils;
  18. import epson.print.ActivityIACommon;
  19. import epson.print.CommonDefine;
  20. import epson.print.R;
  21. import epson.print.ScanFileNumber;
  22. import epson.print.Util.EPLog;
  23. import epson.print.Util.Utils;
  24. import epson.print.fileBrower;
  25. import epson.provider.ScannedFileProvider;
  26. import epson.scan.lib.libHaru;
  27. import epson.server.utils.Define;
  28. import epson.server.utils.MyUtility;
  29. public class MailActivity extends ActivityIACommon implements View.OnClickListener, CommonDefine {
  30. private RadioGroup chooseFileType;
  31. private Button clearBtn;
  32. private int count;
  33. private Intent emailIntent;
  34. private File fileAttachment;
  35. private Long fileSizeInByte;
  36. private float fileSizeInKb;
  37. private EditText mFileName;
  38. private String mFileType = Constants.PDF_TYPE;
  39. private Button saveBtn;
  40. private ArrayList<String> saveFilePathArray = new ArrayList<>();
  41. private float totalFileSize = 0.0f;
  42. private Utils utils = new Utils();
  43. protected void onCreate(Bundle bundle) {
  44. super.onCreate(bundle);
  45. setContentView(R.layout.save_as);
  46. setActionBar(R.string.str_btn_mail, true);
  47. mFileName = (EditText) findViewById(R.id.save_as_dialog_file_name);
  48. mFileName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(64)});
  49. mFileName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
  50. public void onFocusChange(View view, boolean z) {
  51. if (!z) {
  52. mFileName.extendSelection(0);
  53. mFileName.setSelection(0);
  54. }
  55. }
  56. });
  57. chooseFileType = (RadioGroup) findViewById(R.id.file_type_for_save_as);
  58. saveBtn = (Button) findViewById(R.id.save_button);
  59. saveBtn.setText(R.string.str_btn_mail);
  60. saveBtn.setOnClickListener(this);
  61. clearBtn = (Button) findViewById(R.id.clear_mail_title_btn);
  62. clearBtn.setOnClickListener(this);
  63. chooseFileType.check(R.id.save_as_pdf_type);
  64. chooseFileType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
  65. public void onCheckedChanged(RadioGroup radioGroup, int i) {
  66. switch (i) {
  67. case R.id.save_as_jpeg_type /*2131231434*/:
  68. String unused = mFileType = Constants.JPEG_TYPE;
  69. return;
  70. case R.id.save_as_pdf_type /*2131231435*/:
  71. String unused2 = mFileType = Constants.PDF_TYPE;
  72. return;
  73. default:
  74. return;
  75. }
  76. }
  77. });
  78. saveFilePathArray = getIntent().getStringArrayListExtra(Define.SAVING_FILE_PATH);
  79. count = ScanFileNumber.getCount(this);
  80. EditText editText = mFileName;
  81. editText.setText(getString(R.string.epson) + utils.editNumber(count));
  82. for (int i = 0; i < saveFilePathArray.size(); i++) {
  83. fileAttachment = new File(saveFilePathArray.get(i));
  84. fileSizeInByte = Long.valueOf(fileAttachment.length());
  85. fileSizeInKb = (float) (fileSizeInByte.longValue() / PlaybackStateCompat.ACTION_PLAY_FROM_MEDIA_ID);
  86. EPLog.i("Data", " " + fileSizeInKb);
  87. totalFileSize = totalFileSize + fileSizeInKb;
  88. }
  89. if (totalFileSize > 500.0f) {
  90. ((TextView) findViewById(R.id.save_as_file_size)).setText("" + MyUtility.mathRound((totalFileSize / 1024.0f), 2) + "MB");
  91. } else {
  92. ((TextView) findViewById(R.id.save_as_file_size)).setText("" + MyUtility.mathRound(totalFileSize, 2) + "KB");
  93. }
  94. if (mFileName.getText().toString().length() > 0) {
  95. clearBtn.setVisibility(View.VISIBLE);
  96. }
  97. mFileName.addTextChangedListener(new TextWatcher() {
  98. public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
  99. }
  100. public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
  101. }
  102. public void afterTextChanged(Editable editable) {
  103. if (mFileName.getText().toString().equals("")) {
  104. clearBtn.setVisibility(View.GONE);
  105. saveBtn.setEnabled(false);
  106. return;
  107. }
  108. clearBtn.setVisibility(View.VISIBLE);
  109. saveBtn.setEnabled(true);
  110. }
  111. });
  112. }
  113. public void onClick(View view) {
  114. String str;
  115. boolean z;
  116. int id = view.getId();
  117. if (id != R.id.clear_mail_title_btn) {
  118. if (id == R.id.save_button) {
  119. if (!fileBrower.isAvailableFileName(mFileName.getText().toString())) {
  120. Toast.makeText(getApplicationContext(), R.string.str_error_Filename, 1).show();
  121. return;
  122. }
  123. saveBtn.setEnabled(false);
  124. if (mFileType.equals(Constants.PDF_TYPE)) {
  125. str = mFileName.getText().toString();
  126. z = false;
  127. } else {
  128. String obj = mFileName.getText().toString();
  129. if (!obj.equals("EPSON" + utils.editNumber(count))) {
  130. str = mFileName.getText().toString();
  131. z = true;
  132. } else if (saveFilePathArray.size() == 1) {
  133. str = mFileName.getText().toString();
  134. z = false;
  135. } else {
  136. str = "EPSON";
  137. z = false;
  138. }
  139. }
  140. try {
  141. if (mFileType.equals(Constants.PDF_TYPE)) {
  142. libHaru libharu = new libHaru();
  143. String scannedImageDir = ExternalFileUtils.getInstance(this).getScannedImageDir();
  144. String path = new File(scannedImageDir, str + CommonDefine.FileType_PDF).getPath();
  145. libharu.createPDF(saveFilePathArray, path);
  146. emailIntent = new Intent("android.intent.action.SEND");
  147. fileAttachment = new File(path);
  148. Uri uriForFile = ScannedFileProvider.getUriForFile(this, fileAttachment);
  149. emailIntent = new Intent("android.intent.action.SEND");
  150. emailIntent.putExtra("android.intent.extra.STREAM", uriForFile);
  151. } else if (mFileType.equals(Constants.JPEG_TYPE)) {
  152. ArrayList arrayList = new ArrayList();
  153. emailIntent = new Intent("android.intent.action.SEND_MULTIPLE");
  154. int i = count;
  155. ExternalFileUtils.getInstance(this).createTempFolder(ExternalFileUtils.getInstance(this).getScannedImageDir());
  156. if (saveFilePathArray.size() == 1) {
  157. fileAttachment = MyUtility.createTempFile(this, saveFilePathArray.get(0), str + ".jpg");
  158. arrayList.add(ScannedFileProvider.getUriForFile(this, fileAttachment));
  159. } else {
  160. if (z) {
  161. i = 1;
  162. }
  163. for (int i2 = 0; i2 < saveFilePathArray.size(); i2++) {
  164. fileAttachment = MyUtility.createTempFile(this, saveFilePathArray.get(i2), str + utils.editNumber(i) + ".jpg");
  165. i++;
  166. arrayList.add(ScannedFileProvider.getUriForFile(this, fileAttachment));
  167. }
  168. }
  169. emailIntent.putParcelableArrayListExtra("android.intent.extra.STREAM", arrayList);
  170. }
  171. emailIntent.setType("message/rfc822");
  172. emailIntent.putExtra("android.intent.extra.SUBJECT", getString(R.string.app_name));
  173. emailIntent.putExtra("android.intent.extra.TEXT", getString(R.string.using_Epson_iPrint));
  174. startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."), 1);
  175. return;
  176. } catch (Exception e) {
  177. e.printStackTrace();
  178. }
  179. } else {
  180. return;
  181. }
  182. }
  183. mFileName.setText("");
  184. }
  185. protected void onActivityResult(int i, int i2, Intent intent) {
  186. super.onActivityResult(i, i2, intent);
  187. if (i == 1 && i2 == 0) {
  188. setResult(-1);
  189. finish();
  190. }
  191. saveBtn.setEnabled(true);
  192. }
  193. }