diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml
index d47c5e6..a05bad0 100644
--- a/GSKMTOrange/src/main/AndroidManifest.xml
+++ b/GSKMTOrange/src/main/AndroidManifest.xml
@@ -182,10 +182,17 @@
android:theme="@style/AppTheme.NoActionBar" />
+ android:theme="@style/AppTheme.NoActionBar" />
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreCheckoutImageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreCheckoutImageActivity.java
new file mode 100644
index 0000000..0b3f147
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreCheckoutImageActivity.java
@@ -0,0 +1,671 @@
+package cpm.com.gskmtorange.dailyentry;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.location.Location;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Build;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.provider.MediaStore;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.location.LocationServices;
+
+import org.ksoap2.SoapEnvelope;
+import org.ksoap2.serialization.SoapObject;
+import org.ksoap2.serialization.SoapSerializationEnvelope;
+import org.ksoap2.transport.HttpTransportSE;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InterruptedIOException;
+import java.io.StringReader;
+import java.net.MalformedURLException;
+import java.net.SocketTimeoutException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import cpm.com.gskmtorange.Database.GSKOrangeDB;
+import cpm.com.gskmtorange.GetterSetter.CoverageBean;
+import cpm.com.gskmtorange.R;
+import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity;
+import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter;
+import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler;
+
+/**
+ * Created by ashishc on 31-05-2016.
+ */
+public class StoreCheckoutImageActivity extends AppCompatActivity implements View.OnClickListener,
+ GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
+
+ String gallery_package = "";
+ Uri outputFileUri;
+
+ ImageView img_cam, img_clicked;
+ Button btn_save;
+ private Dialog dialog;
+ private TextView percentage, message;
+ private ProgressBar pb;
+ private FailureGetterSetter failureGetterSetter = null;
+ String _pathforcheck, _path, str;
+
+ String store_id, visit_date, username, intime, date, _UserId;
+ private SharedPreferences preferences;
+ AlertDialog alert;
+ String img_str, strflag;
+ private GSKOrangeDB database;
+
+ String lat, lon;
+ GoogleApiClient mGoogleApiClient;
+ ArrayList coverage_list;
+ Toolbar toolbar;
+ boolean ResultFlag = true;
+ ArrayList coverage = new ArrayList();
+
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_storeimage);
+
+ preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ updateResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+ toolbar = (Toolbar) findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setHomeButtonEnabled(true);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ img_cam = (ImageView) findViewById(R.id.img_selfie);
+ img_clicked = (ImageView) findViewById(R.id.img_cam_selfie);
+
+ btn_save = (Button) findViewById(R.id.btn_save_selfie);
+
+ store_id = preferences.getString(CommonString.KEY_STORE_ID, null);
+
+ visit_date = preferences.getString(CommonString.KEY_DATE, null);
+ date = preferences.getString(CommonString.KEY_DATE, null);
+ username = preferences.getString(CommonString.KEY_USERNAME, null);
+ _UserId = preferences.getString(CommonString.KEY_USERNAME, "");
+ intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, "");
+
+ str = CommonString.FILE_PATH;
+
+ database = new GSKOrangeDB(this);
+ database.open();
+
+ coverage_list = database.getCoverageData(date);
+
+ img_cam.setOnClickListener(this);
+ img_clicked.setOnClickListener(this);
+ btn_save.setOnClickListener(this);
+
+ // Create an instance of GoogleAPIClient.
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(this)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+
+ if (Build.VERSION.SDK_INT >= 23 &&
+ ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
+ ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+
+ if (id == android.R.id.home) {
+ // NavUtils.navigateUpFromSameTask(this);
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onBackPressed() {
+ /*Intent i = new Intent(this, DailyEntryScreen.class);
+ startActivity(i);*/
+
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+
+ @Override
+ public void onClick(View v) {
+
+ int id = v.getId();
+
+ switch (id) {
+
+ case R.id.img_cam_selfie:
+
+ _pathforcheck = store_id + "SI_" + visit_date.replace("/", "") + "_" + getCurrentTime().replace(":", "") + ".jpg";
+
+ _path = CommonString.FILE_PATH + _pathforcheck;
+
+ intime = getCurrentTime();
+
+ startCameraActivity();
+
+ break;
+
+ case R.id.btn_save_selfie:
+
+ if (img_str != null) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(StoreCheckoutImageActivity.this);
+ builder.setMessage(getResources().getString(R.string.title_activity_save_data))
+ .setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ alert.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
+
+ CoverageBean cdata = new CoverageBean();
+ cdata.setStoreId(store_id);
+ cdata.setVisitDate(visit_date);
+ cdata.setUserId(username);
+ cdata.setInTime(intime);
+ cdata.setReason("");
+ cdata.setReasonid("0");
+ cdata.setLatitude(lat);
+ cdata.setLongitude(lon);
+ cdata.setImage(img_str);
+ cdata.setRemark("");
+ cdata.setStatus(CommonString.KEY_INVALID);
+
+ database.InsertCoverageData(cdata);
+
+ database.updateCheckoutStatus(store_id, CommonString.KEY_INVALID);
+
+ /* SharedPreferences.Editor editor = preferences.edit();
+
+ editor.putString(CommonString.KEY_STOREVISITED_STATUS, "");
+ editor.putString(CommonString.KEY_STORE_IN_TIME, "");
+
+ editor.commit();*/
+
+
+ //Intent in = new Intent(StoreimageActivity.this, CategoryListActivity.class);
+ new StoreCheckoutImageActivity.GeoTagUpload(StoreCheckoutImageActivity.this).execute();
+
+ }
+ })
+ .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.cancel();
+ }
+ });
+
+ alert = builder.create();
+ alert.show();
+
+ } else {
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.clickimage), Toast.LENGTH_SHORT).show();
+ }
+ break;
+ }
+ }
+
+ protected void startCameraActivity() {
+ try {
+ /*Log.i("MakeMachine", "startCameraActivity()");
+ File file = new File(_path);
+ Uri outputFileUri = Uri.fromFile(file);
+
+ Intent intent = new Intent(
+ MediaStore.ACTION_IMAGE_CAPTURE);
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
+
+ startActivityForResult(intent, 0);*/
+
+ Log.i("MakeMachine", "startCameraActivity()");
+ File file = new File(_path);
+ outputFileUri = Uri.fromFile(file);
+
+ String defaultCameraPackage = "";
+ final PackageManager packageManager = getPackageManager();
+ List list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
+ for (int n = 0; n < list.size(); n++) {
+ if ((list.get(n).flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
+ Log.e("TAG", "Installed Applications : " + list.get(n).loadLabel(packageManager).toString());
+ Log.e("TAG", "package name : " + list.get(n).packageName);
+
+ //temp value in case camera is gallery app above jellybean
+ String packag = list.get(n).loadLabel(packageManager).toString();
+ if (packag.equalsIgnoreCase("Gallery") || packag.equalsIgnoreCase("Galeri") ||packag.equalsIgnoreCase("الاستوديو") ) {
+ gallery_package = list.get(n).packageName;
+ }
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")|| packag.equalsIgnoreCase("الكاميرا")) {
+ defaultCameraPackage = list.get(n).packageName;
+ break;
+ }
+ } else {
+
+ if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")|| packag.equalsIgnoreCase("الكاميرا")) {
+
+ defaultCameraPackage = list.get(n).packageName;
+ break;
+ }
+ }
+ }
+ }
+
+ //com.android.gallery3d
+
+ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
+ intent.setPackage(defaultCameraPackage);
+ startActivityForResult(intent, 0);
+ } catch (ActivityNotFoundException e) {
+ e.printStackTrace();
+
+ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
+ intent.setPackage(gallery_package);
+ startActivityForResult(intent, 0);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ Log.i("MakeMachine", "resultCode: " + resultCode);
+ switch (resultCode) {
+
+ case 0:
+ Log.i("MakeMachine", "User cancelled");
+ break;
+
+ case -1:
+ if (_pathforcheck != null && !_pathforcheck.equals("")) {
+ if (new File(str + _pathforcheck).exists()) {
+ Bitmap bmp = BitmapFactory.decodeFile(str + _pathforcheck);
+ img_cam.setImageBitmap(bmp);
+
+ img_clicked.setVisibility(View.GONE);
+ img_cam.setVisibility(View.VISIBLE);
+
+ img_str = _pathforcheck;
+ _pathforcheck = "";
+ }
+ }
+ break;
+ }
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
+ public String getCurrentTime() {
+ Calendar m_cal = Calendar.getInstance();
+
+ SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm");
+ String cdate = formatter.format(m_cal.getTime());
+
+ if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) {
+ cdate = arabicToenglish(cdate);
+ }
+
+ return cdate;
+ }
+
+ @Override
+ public void onConnected(Bundle bundle) {
+ Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
+ if (mLastLocation != null) {
+ lat = String.valueOf(mLastLocation.getLatitude());
+ lon = String.valueOf(mLastLocation.getLongitude());
+ }
+ }
+
+ @Override
+ public void onConnectionSuspended(int i) {
+
+ }
+
+ @Override
+ public void onConnectionFailed(ConnectionResult connectionResult) {
+
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ updateResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+ toolbar.setTitle(R.string.title_activity_store_image);
+ }
+
+ protected void onStart() {
+ mGoogleApiClient.connect();
+ super.onStart();
+ }
+
+ protected void onStop() {
+ mGoogleApiClient.disconnect();
+ super.onStop();
+ }
+
+ private static boolean updateResources(Context context, String language) {
+
+ /*String lang;
+
+ if (language.equalsIgnoreCase("English")) {
+ lang = "EN";
+ } else if (language.equalsIgnoreCase("ARABIC-KSA")) {
+ lang = "AR";
+ } else {
+ lang = "TR";
+ }*/
+
+ String lang;
+
+ if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ENGLISH)) {
+ lang = CommonString.KEY_RETURE_LANGUAGE_ENGLISH;
+
+ } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) {
+ lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA;
+
+ } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_TURKISH)) {
+ lang = CommonString.KEY_RETURE_LANGUAGE_TURKISH;
+
+ } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_OMAN)) {
+ lang = CommonString.KEY_RETURE_LANGUAGE_OMAN;
+ } else {
+ lang = CommonString.KEY_RETURN_LANGUAGE_DEFAULT;
+ }
+
+ Locale locale = new Locale(lang);
+ Locale.setDefault(locale);
+
+ Resources resources = context.getResources();
+
+ Configuration configuration = resources.getConfiguration();
+ configuration.locale = locale;
+
+ resources.updateConfiguration(configuration, resources.getDisplayMetrics());
+
+ return true;
+ }
+
+
+ public class GeoTagUpload extends AsyncTask {
+
+ private Context context;
+
+ GeoTagUpload(Context context) {
+ this.context = context;
+ }
+
+ @Override
+ protected void onPreExecute() {
+
+ super.onPreExecute();
+
+ dialog = new Dialog(context);
+ dialog.setContentView(R.layout.custom);
+ dialog.setTitle(getResources().getString(R.string.dialog_title));
+ dialog.setCancelable(false);
+ dialog.show();
+ pb = (ProgressBar) dialog.findViewById(R.id.progressBar1);
+ percentage = (TextView) dialog.findViewById(R.id.percentage);
+ message = (TextView) dialog.findViewById(R.id.message);
+ }
+
+ @Override
+ protected String doInBackground(Void... params) {
+ try {
+ GSKOrangeDB db = new GSKOrangeDB(StoreCheckoutImageActivity.this);
+ db.open();
+
+ coverage = db.getCoverageWithStoreID_Data(store_id);
+
+ // uploading Geotag
+
+ SAXParserFactory saxPF = SAXParserFactory.newInstance();
+ SAXParser saxP = saxPF.newSAXParser();
+ XMLReader xmlR = saxP.getXMLReader();
+
+
+ String current_xml = "";
+
+ if (coverage.size() > 0) {
+
+ for (int i = 0; i < coverage.size(); i++) {
+
+
+ String onXML = "[Coverage_Intime][USER_ID]"
+ + _UserId
+ + "[/USER_ID]"
+ + "[STORE_ID]"
+ + coverage.get(i).getStoreId()
+ + "[/STORE_ID]"
+ + "[VISIT_DATE]"
+ + coverage.get(i).getVisitDate()
+ + "[/VISIT_DATE]"
+ + "[IN_TIME]"
+ + coverage.get(i).getInTime()
+ + "[/IN_TIME]"
+ + "[LATITUDE]"
+ + coverage.get(i).getLatitude()
+ + "[/LATITUDE]"
+ + "[LONGITUDE ]"
+ + coverage.get(i).getLongitude()
+ + "[/LONGITUDE ]"
+ + "[REASON_ID]"
+ + coverage.get(i).getReasonid()
+ + "[/REASON_ID]"
+ + "[REMARK]"
+ + coverage.get(i).getReason()
+ + "[/REMARK][/Coverage_Intime]";
+
+ current_xml = current_xml + onXML;
+
+
+ }
+
+ current_xml = "[DATA]" + current_xml
+ + "[/DATA]";
+
+ SoapObject request = new SoapObject(CommonString.NAMESPACE,
+ CommonString.METHOD_UPLOAD_CURRENT_DATA);
+ //request.addProperty("MID", "0");
+ // request.addProperty("KEYS", "CURRENT_DATA");
+ // request.addProperty("USERNAME", username);
+
+ request.addProperty("onXML", current_xml);
+
+ SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
+ SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ HttpTransportSE androidHttpTransport = new HttpTransportSE(
+ CommonString.URL);
+ androidHttpTransport.call(
+ CommonString.SOAP_ACTION_UPLOAD_CURRRENT_DATA, envelope);
+ Object result = (Object) envelope.getResponse();
+
+ if (result.toString().equalsIgnoreCase(
+ CommonString.KEY_SUCCESS)) {
+
+
+ } else {
+
+ if (result.toString().equalsIgnoreCase(
+ CommonString.KEY_FALSE)) {
+ return CommonString.METHOD_UPLOAD_CURRENT_DATA;
+ }
+
+ // for failure
+ FailureXMLHandler failureXMLHandler = new FailureXMLHandler();
+ xmlR.setContentHandler(failureXMLHandler);
+
+ InputSource is = new InputSource();
+ is.setCharacterStream(new StringReader(result
+ .toString()));
+ xmlR.parse(is);
+
+ failureGetterSetter = failureXMLHandler
+ .getFailureGetterSetter();
+
+ if (failureGetterSetter.getStatus().equalsIgnoreCase(
+ CommonString.KEY_FAILURE)) {
+ return CommonString.METHOD_UPLOAD_CURRENT_DATA + ","
+ + failureGetterSetter.getErrorMsg();
+
+ } else {
+
+ }
+ }
+ }
+
+
+ return CommonString.KEY_SUCCESS;
+
+ } catch (MalformedURLException e) {
+
+ ResultFlag = false;
+ strflag = CommonString.MESSAGE_EXCEPTION;
+
+ } catch (SocketTimeoutException e) {
+ ResultFlag = false;
+ strflag = CommonString.MESSAGE_SOCKETEXCEPTION;
+
+ } catch (InterruptedIOException e) {
+
+ ResultFlag = false;
+ strflag = CommonString.MESSAGE_EXCEPTION;
+
+
+ } catch (IOException e) {
+
+ ResultFlag = false;
+ strflag = CommonString.MESSAGE_SOCKETEXCEPTION;
+
+ } catch (XmlPullParserException e) {
+ ResultFlag = false;
+ strflag = CommonString.MESSAGE_XmlPull;
+
+ } catch (Exception e) {
+ ResultFlag = false;
+ strflag = CommonString.MESSAGE_EXCEPTION;
+
+ }
+
+ if (ResultFlag) {
+ return CommonString.KEY_SUCCESS;
+
+ } else {
+
+ return strflag;
+ }
+
+ }
+
+
+ @Override
+ protected void onPostExecute(String result) {
+ super.onPostExecute(result);
+
+ dialog.dismiss();
+
+ if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) {
+ dialog.dismiss();
+
+ Intent in = new Intent(StoreCheckoutImageActivity.this, StoreWisePerformanceActivity.class);
+ startActivity(in);
+ finish();
+
+
+ //showAlert(getString(R.string.data_downloaded_successfully));
+ } else {
+
+ GSKOrangeDB db = new GSKOrangeDB(StoreCheckoutImageActivity.this);
+ db.open();
+
+ dialog.dismiss();
+ db.deleteTableWithStoreID(store_id);
+
+ showAlert(getString(R.string.datanotfound) + " " + result);
+ }
+ }
+
+ }
+
+ public void showAlert(String str) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(StoreCheckoutImageActivity.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(str).setCancelable(false)
+ .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+
+ finish();
+
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
+
+
+ private static String arabicToenglish(String number) {
+ char[] chars = new char[number.length()];
+ for (int i = 0; i < number.length(); i++) {
+ char ch = number.charAt(i);
+ if (ch >= 0x0660 && ch <= 0x0669)
+ ch -= 0x0660 - '0';
+ else if (ch >= 0x06f0 && ch <= 0x06F9)
+ ch -= 0x06f0 - '0';
+ chars[i] = ch;
+ }
+ return new String(chars);
+ }
+}
diff --git a/GSKMTOrange/src/main/res/values/strings.xml b/GSKMTOrange/src/main/res/values/strings.xml
index f182229..2baf220 100644
--- a/GSKMTOrange/src/main/res/values/strings.xml
+++ b/GSKMTOrange/src/main/res/values/strings.xml
@@ -294,6 +294,7 @@
Planogram Tracker
Position on Shelf
-
+
+ Store Check out Image