Przeglądaj źródła

1.修改Android Apex CRM签名。

Pen Li 7 lat temu
rodzic
commit
2fecd7415e
20 zmienionych plików z 221 dodań i 45 usunięć
  1. 2 0
      ApexDrivers/RAUtilsLibrary/src/main/AndroidManifest.xml
  2. 141 0
      ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/signature/SignatureActivity.java
  3. 4 0
      ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/signature/SignatureView.java
  4. 18 18
      ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/FileManager.java
  5. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-hdpi/ra_signature_clear.png
  6. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-hdpi/ra_signature_save.png
  7. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-ldpi/ra_signature_clear.png
  8. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-ldpi/ra_signature_save.png
  9. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-mdpi/ra_signature_clear.png
  10. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-mdpi/ra_signature_save.png
  11. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xhdpi/ra_signature_clear.png
  12. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xhdpi/ra_signature_save.png
  13. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xxhdpi/ra_signature_clear.png
  14. BIN
      ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xxhdpi/ra_signature_save.png
  15. 16 0
      ApexDrivers/RAUtilsLibrary/src/main/res/layout/ra_signature_activity.xml
  16. 21 0
      ApexDrivers/RAUtilsLibrary/src/main/res/menu/ra_signature_menu.xml
  17. 2 0
      ApexDrivers/RAUtilsLibrary/src/main/res/values/colors.xml
  18. 16 24
      ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/MainActivity.java
  19. 1 1
      ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/RAJSInterface.java
  20. 0 2
      ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/signature/SignatureActivity.java

+ 2 - 0
ApexDrivers/RAUtilsLibrary/src/main/AndroidManifest.xml

@@ -86,6 +86,8 @@
         <activity android:name=".InfinitePhoto.InfinitePhotoActivity"
             android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
 
+        <activity android:name=".signature.SignatureActivity"/>
+
     </application>
 
 </manifest>

+ 141 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/signature/SignatureActivity.java

@@ -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();
+    }
+}

+ 4 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/signature/SignatureView.java

@@ -375,6 +375,10 @@ public class SignatureView extends View {
     @Override
     protected void onDraw(Canvas canvas) {
 
+        if (canvas == null) {
+            super.onDraw(canvas);
+            return;
+        }
 
 //        Rect r=canvas.getClipBounds();
 //        vCanvas = canvas;

+ 18 - 18
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/FileManager.java

@@ -59,14 +59,14 @@ public class FileManager {
 
     public static String internalStorageFileDir(Context context) {
 
-//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
-//        {
-//            Context ctx = context.createDeviceProtectedStorageContext();
-//            File dir = ctx.getFilesDir();
-//            return dir.getAbsolutePath();
-//        }
-//        else
-//        {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+        {
+            Context ctx = context.createDeviceProtectedStorageContext();
+            File dir = ctx.getFilesDir();
+            return dir.getAbsolutePath();
+        }
+        else
+        {
             String appName = RAUtil.getApplicationName(context);
             String dir = SDCardRoot() + appName;
             File file = new File(dir);
@@ -75,19 +75,19 @@ public class FileManager {
             }
 
             return dir;
-//        }
+        }
     }
 
     public static String internalStorageTempDir(Context context) {
 
-//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
-//        {
-//            Context ctx = context.createDeviceProtectedStorageContext();
-//            File dir = ctx.getCacheDir();
-//            return dir.getAbsolutePath();
-//        }
-//        else
-//        {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+        {
+            Context ctx = context.createDeviceProtectedStorageContext();
+            File dir = ctx.getCacheDir();
+            return dir.getAbsolutePath();
+        }
+        else
+        {
             String appName = RAUtil.getApplicationName(context);
             String dir = SDCardRoot() + appName + File.separator + "temp";
             File file = new File(dir);
@@ -96,7 +96,7 @@ public class FileManager {
             }
 
             return dir;
-//        }
+        }
 
     }
 

BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-hdpi/ra_signature_clear.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-hdpi/ra_signature_save.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-ldpi/ra_signature_clear.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-ldpi/ra_signature_save.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-mdpi/ra_signature_clear.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-mdpi/ra_signature_save.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xhdpi/ra_signature_clear.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xhdpi/ra_signature_save.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xxhdpi/ra_signature_clear.png


BIN
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-xxhdpi/ra_signature_save.png


+ 16 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/layout/ra_signature_activity.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".signature.SignatureActivity">
+
+    <com.usai.redant.rautils.signature.SignatureView
+        android:id="@+id/ra_signature_content_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        />
+
+</android.support.constraint.ConstraintLayout>

+ 21 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/menu/ra_signature_menu.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+      xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/ra_signature_clear_btn"
+        android:title="Clear"
+        app:showAsAction="always"
+        android:icon="@drawable/ra_signature_clear"
+        ></item>
+
+    <item
+        android:id="@+id/ra_signature_save_btn"
+        android:title="Save"
+        app:showAsAction="always"
+        android:icon="@drawable/ra_signature_save"
+        ></item>
+
+
+
+</menu>

+ 2 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/values/colors.xml

@@ -17,4 +17,6 @@
 
     <color name="pdf_preview_icon_gray">#444445</color>
 
+    <color name="ra_white">#ffffff</color>
+
 </resources>

+ 16 - 24
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/MainActivity.java

@@ -26,6 +26,7 @@ import com.usai.redant.rautils.email.EmailHelper;
 import com.usai.redant.rautils.fileViewer.FileViewerActivity;
 import com.usai.redant.rautils.map.MapHelper;
 import com.usai.redant.rautils.preview.RAPDFPreviewActivity;
+import com.usai.redant.rautils.signature.SignatureActivity;
 import com.usai.redant.rautils.utils.FileManager;
 import com.usai.redant.rautils.utils.ImageUtil;
 import com.usai.redant.rautils.utils.RAUtil;
@@ -85,7 +86,8 @@ public class MainActivity extends AppCompatActivity {
         } else {
             mExcuteJSArray = new JSONArray();
 
-            String url = "http://192.168.0.138:8080/backend_test/index.html";
+//            String url = "http://192.168.0.138:8080/backend_test/index.html";
+            String url = "http://192.168.0.130:8080/MyWeb/html/test.html";
             Intent intent = getIntent();
             if (intent != null) {
                 String tmpUrl = intent.getStringExtra("url");
@@ -397,6 +399,8 @@ public class MainActivity extends AppCompatActivity {
 
         if (resultCode == RESULT_OK) {
 
+            String path = data.getStringExtra("signaturePath");
+            self.setWebImageForPath(path);
         }
     }
 
@@ -438,11 +442,6 @@ public class MainActivity extends AppCompatActivity {
             startActivityForResult(intent, REQUEST_SCANNER_CODE);
         }
 
-        @Override
-        public void Location(String msg) {
-
-        }
-
         @Override
         public void Share(String msg) {
             if (msg != null) {
@@ -466,7 +465,7 @@ public class MainActivity extends AppCompatActivity {
 
         @Override
         public void JumpTo(String msg) {
-            Log.d(TAG, "JumpTo: " + msg);
+
             if (msg != null) {
 
                 try {
@@ -500,7 +499,6 @@ public class MainActivity extends AppCompatActivity {
                     for (int i = 0; i < images.length(); i++) {
 
                         String url = images.getString(i);
-//                        String url = String.format("http://192.168.0.130:8080/MyWeb/images/%d.png",i + 1);
 
                         JSONObject imageJson = InfinitePhotoActivity.buildPhotoItem(url,false,PlaceHolderResIdNone);
                         imageArr.put(imageJson);
@@ -677,24 +675,18 @@ public class MainActivity extends AppCompatActivity {
         @Override
         public void Signature(String msg) {
 
-            new AlertDialog.Builder(self)
-                    .setTitle("Select Directory")
-                    .setSingleChoiceItems(new String[]{"Files", "Cache"}, -1, new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(DialogInterface dialog, int which) {
+            mCurrentActionString = msg;
+            SignatureActivity.startSignature(self,REQUEST_SIGNATURE_CODE);
 
-                            String path;
-                            if (which == 0) {
-                                path = FileManager.internalStorageFileDir(mCtx);
-                            } else {
-                                path = FileManager.internalStorageTempDir(mCtx);
-                            }
+        }
 
-                            File file = new File(path);
-                            FileViewerActivity.start(mCtx,file);
-                        }
-                    })
-                    .show();
+        @Override
+        public void Location(String msg) {
+
+        }
+
+        @Override
+        public void DatetimePicker(String msg) {
 
         }
     };

+ 1 - 1
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/RAJSInterface.java

@@ -17,6 +17,7 @@ public class RAJSInterface extends Object {
         void Preview(String msg);
         void Navigation(String msg);
         void Signature(String msg);
+        void DatetimePicker(String msg);
     }
 
     private RAJSInterfaceDelegate delegate;
@@ -155,7 +156,6 @@ public class RAJSInterface extends Object {
                 value = String.format("'%s'",value);
             }
             String callback = params.optString("callback");
-            callback = "imageCallback(%s,%s)";
             if (callback != null) {
                 String js = String.format(callback,caller,value);
                 return js;

+ 0 - 2
ApexDrivers/apexdriverslib/src/main/java/com/usai/redant/apexdrivers/signature/SignatureActivity.java

@@ -5,7 +5,6 @@ import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
-import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.Menu;
@@ -15,7 +14,6 @@ import com.usai.redant.apexdrivers.R;
 import com.usai.redant.apexdrivers.base.BasicActivity;
 import com.usai.redant.rautils.utils.FileManager;
 import com.usai.redant.rautils.utils.ImageUtil;
-import com.usai.redant.rautils.utils.RAUtil;
 
 import java.io.File;
 import java.io.IOException;