diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0683a882..de67badd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -83,6 +83,11 @@ --> + + + diff --git a/app/src/main/java/com/jasonette/seed/Action/JasonSmsAction.java b/app/src/main/java/com/jasonette/seed/Action/JasonSmsAction.java new file mode 100644 index 00000000..4ede5604 --- /dev/null +++ b/app/src/main/java/com/jasonette/seed/Action/JasonSmsAction.java @@ -0,0 +1,57 @@ +package com.jasonette.seed.Action; + +import android.Manifest; +import android.app.Activity; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Build; +import android.os.Handler; +import android.os.Looper; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; +import android.util.Log; +import android.telephony.SmsManager; + +import com.jasonette.seed.Helper.JasonHelper; + +import org.json.JSONObject; + + +public class JasonSmsAction { + + public static int REQUEST_CODE = 9339; + + /** + * { + * "type": "$sms.send" + * } + */ + public void send(final JSONObject action, final JSONObject data, final JSONObject event, final Context context) { + new Handler(Looper.getMainLooper()).post(new Runnable() { + @Override + public void run() { + try { + JSONObject options = action.getJSONObject("options"); + if (Build.VERSION.SDK_INT >= 23) { + if(ContextCompat.checkSelfPermission(context, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED){ + ActivityCompat.requestPermissions((Activity) context,new String[]{Manifest.permission.SEND_SMS}, 10); + } + } + + String number = options.get("number").toString(); + String text = options.get("text").toString(); + + SmsManager sms = SmsManager.getDefault(); + sms.sendTextMessage(number, null, text, null, null); + } catch (Exception e){ + Log.d("Warning", e.getStackTrace()[0].getMethodName() + " : " + e.toString()); + } + } + }); + try { + JasonHelper.next("success", action, new JSONObject(), event, context); + } catch (Exception e) { + Log.d("Warning", e.getStackTrace()[0].getMethodName() + " : " + e.toString()); + } + } +} diff --git a/app/src/main/java/com/jasonette/seed/Core/JasonViewActivity.java b/app/src/main/java/com/jasonette/seed/Core/JasonViewActivity.java index 3600fba0..1a6437d8 100644 --- a/app/src/main/java/com/jasonette/seed/Core/JasonViewActivity.java +++ b/app/src/main/java/com/jasonette/seed/Core/JasonViewActivity.java @@ -49,6 +49,7 @@ import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; +import com.jasonette.seed.Action.JasonSmsAction; import com.jasonette.seed.Component.JasonComponentFactory; import com.jasonette.seed.Component.JasonImageComponent; import com.jasonette.seed.Helper.JasonHelper; @@ -2935,6 +2936,9 @@ public void removeListViewOnItemTouchListeners() { } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + if (requestCode == JasonSmsAction.REQUEST_CODE ) { + return; + } if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { cameraManager.startVision(JasonViewActivity.this); } else {