|
|
@@ -0,0 +1,141 @@
|
|
|
+package com.usai.redant.rautils.signature;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.content.Context;
|
|
|
+import android.content.Intent;
|
|
|
+import android.graphics.Bitmap;
|
|
|
+import android.graphics.drawable.Drawable;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.support.v7.app.AppCompatActivity;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.Menu;
|
|
|
+import android.view.MenuItem;
|
|
|
+
|
|
|
+import com.usai.redant.rautils.R;
|
|
|
+import com.usai.redant.rautils.utils.FileManager;
|
|
|
+import com.usai.redant.rautils.utils.ImageUtil;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+public class SignatureActivity extends AppCompatActivity {
|
|
|
+
|
|
|
+ public static void startSignature(Activity context,int requestCode) {
|
|
|
+
|
|
|
+ if (context == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Intent intent = new Intent(context, SignatureActivity.class);
|
|
|
+
|
|
|
+ context.startActivityForResult(intent,requestCode);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Context mCtx = this;
|
|
|
+ private SignatureView mSignatureView;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreate(Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ setContentView(R.layout.ra_signature_activity);
|
|
|
+
|
|
|
+ android.support.v7.app.ActionBar actionBar = getSupportActionBar();
|
|
|
+ if(actionBar != null){
|
|
|
+ actionBar.setHomeButtonEnabled(true);
|
|
|
+ actionBar.setDisplayHomeAsUpEnabled(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ mSignatureView = findViewById(R.id.ra_signature_content_view);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
+ getMenuInflater().inflate(R.menu.ra_signature_menu,menu);
|
|
|
+
|
|
|
+ MenuItem saveItem = menu.getItem(1);
|
|
|
+ Drawable saveItemIcon = saveItem.getIcon();
|
|
|
+ ImageUtil.renderingDrawable(saveItemIcon,getResources(),R.color.ra_white);
|
|
|
+
|
|
|
+ MenuItem clearItem = menu.getItem(0);
|
|
|
+ Drawable clearItemIcon = clearItem.getIcon();
|
|
|
+ ImageUtil.renderingDrawable(clearItemIcon,getResources(),R.color.ra_white);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
+ int i = item.getItemId();
|
|
|
+ if (i == R.id.ra_signature_clear_btn) {
|
|
|
+ clearSignature();
|
|
|
+
|
|
|
+ } else if (i == R.id.ra_signature_save_btn) {
|
|
|
+ saveAndFinish();
|
|
|
+
|
|
|
+ } else if (i == android.R.id.home) {
|
|
|
+ finish();
|
|
|
+
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveAndFinish() {
|
|
|
+
|
|
|
+ Intent intent = new Intent();
|
|
|
+ String signaturePath = saveSignature();
|
|
|
+ if (!TextUtils.isEmpty(signaturePath)) {
|
|
|
+ intent.putExtra("signaturePath",signaturePath);
|
|
|
+ }
|
|
|
+
|
|
|
+ setResult(RESULT_OK,intent);
|
|
|
+
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String saveSignature() {
|
|
|
+
|
|
|
+ Bitmap signature = mSignatureView.clearBlank(5);
|
|
|
+ if (signature != null) {
|
|
|
+
|
|
|
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmSS").format(new Date());
|
|
|
+ String signatureName = "JPEG_" + timeStamp + ".jpg";
|
|
|
+
|
|
|
+// String root = FileManager.SDCardRoot();
|
|
|
+// String appName = RAUtil.getApplicationName(mCtx);
|
|
|
+// String signatureDir = root + File.separator + appName + File.separator + "signature";
|
|
|
+
|
|
|
+ String signatureDir = FileManager.internalStorageFileDir(mCtx) + File.separator + "Signature";
|
|
|
+ String signaturePath = signatureDir + File.separator + signatureName;
|
|
|
+
|
|
|
+ File parentFile = new File(signatureDir);
|
|
|
+ if (!parentFile.exists()) {
|
|
|
+ parentFile.mkdirs();
|
|
|
+ }
|
|
|
+
|
|
|
+ File signatureFile = new File(signaturePath);
|
|
|
+ if (signatureFile.exists()) {
|
|
|
+ signatureFile.delete();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+
|
|
|
+ signatureFile.createNewFile();
|
|
|
+
|
|
|
+ ImageUtil.saveJPGToFile(signature,signatureFile);
|
|
|
+
|
|
|
+ return signaturePath;
|
|
|
+
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void clearSignature() {
|
|
|
+ mSignatureView.clear();
|
|
|
+ }
|
|
|
+}
|