package io.evercam.androidapp.feedback; import android.app.Activity; import android.content.Context; import android.util.Log; import com.github.sendgrid.SendGrid; import io.evercam.User; import io.evercam.androidapp.EvercamPlayApplication; import io.evercam.androidapp.dto.AppData; import io.evercam.androidapp.dto.AppUser; import io.evercam.androidapp.utils.DataCollector; import io.evercam.androidapp.utils.PropertyReader; public class FeedbackSender { private final String TAG = "evercam-FeedbackSender"; private final String TO_EMAIL = "play@evercam.io"; private final String TITLE_FEEDBACK = "Evercam Play Feedback"; private Context context; private Activity activity; private SendGrid sendgrid; public FeedbackSender(Activity activity) { this.activity = activity; this.context = activity.getApplicationContext(); ; PropertyReader propertyReader = new PropertyReader(context); String sandGridUsername = propertyReader.getPropertyStr(PropertyReader .KEY_SENDGRID_USERNAME); String sandGridPassword = propertyReader.getPropertyStr(PropertyReader .KEY_SENDGRID_PASSWORD); sendgrid = new SendGrid(sandGridUsername, sandGridPassword); } public void send(String feedbackString, String cameraId) { if(sendgrid != null) { AppUser user = AppData.defaultUser; String fullName = ""; String userEmail = ""; sendgrid.setFrom(user.getEmail()); try { User evercamUser = new User(user.getUsername()); fullName = evercamUser.getFirstName() + " " + evercamUser.getLastName(); userEmail = evercamUser.getEmail(); } catch(Exception e) { EvercamPlayApplication.sendCaughtException(activity, e); Log.e(TAG, e.toString()); } DataCollector dataCollector = new DataCollector(context); sendgrid.addTo(TO_EMAIL); if(!userEmail.isEmpty()) { sendgrid.setFrom(userEmail); } sendgrid.setSubject(TITLE_FEEDBACK); String contentString = fullName + " says: \n\n" + feedbackString + "\n\nVersion: " + dataCollector.getAppVersion() + "\nDevice: " + DataCollector.getDeviceName() + "\nAndroid " + DataCollector.getAndroidVersion() + "\nNetwork: " + dataCollector.getNetworkString(); if(cameraId != null) { contentString += "\nCamera ID: " + cameraId; } sendgrid.setText(contentString); String response = sendgrid.send(); Log.d(TAG, "Sendgrid response: " + response); } } }