Rev 23184 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.saholic.profittill.main;import android.annotation.SuppressLint;import android.annotation.TargetApi;import android.app.Activity;import android.app.AlertDialog;import android.app.DownloadManager;import android.app.Fragment;import android.app.ProgressDialog;import android.content.ActivityNotFoundException;import android.content.BroadcastReceiver;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.IntentFilter;import android.content.SharedPreferences;import android.content.pm.PackageManager;import android.content.pm.ResolveInfo;import android.database.Cursor;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.drawable.ColorDrawable;import android.graphics.drawable.Drawable;import android.media.ExifInterface;import android.net.ConnectivityManager;import android.net.Uri;import android.os.AsyncTask;import android.os.Build;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Parcelable;import android.provider.DocumentsContract;import android.provider.MediaStore;import android.support.v4.os.AsyncTaskCompat;import android.support.v7.app.ActionBar;import android.support.v7.app.AppCompatActivity;import android.telephony.SmsMessage;import android.telephony.TelephonyManager;import android.util.Base64;import android.util.Log;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.webkit.CookieManager;import android.webkit.CookieSyncManager;import android.webkit.DownloadListener;import android.webkit.HttpAuthHandler;import android.webkit.JavascriptInterface;import android.webkit.ValueCallback;import android.webkit.WebChromeClient;import android.webkit.WebResourceError;import android.webkit.WebResourceRequest;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.Toast;import com.google.android.gms.common.ConnectionResult;import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.plus.Plus;import com.google.firebase.iid.FirebaseInstanceId;import com.kosalgeek.android.photoutil.CameraPhoto;import com.kosalgeek.android.photoutil.GalleryPhoto;import com.kosalgeek.android.photoutil.ImageLoader;import com.saholic.profittill.BuildConfig;import com.saholic.profittill.Constants.ProfitTillConstants;import com.saholic.profittill.Database.OrderTransactionDetails;import com.saholic.profittill.Network.NotificationCount;import com.saholic.profittill.R;import com.saholic.profittill.Utils.UtilityFunctions;import com.testin.agent.TestinAgent;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.URISyntaxException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.StringTokenizer;import java.util.regex.Matcher;import java.util.regex.Pattern;import static android.content.Context.DOWNLOAD_SERVICE;public class DealsHomeFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {private File storageDir;File photoFile = null;public DealsHomeFragment() {}static boolean FLAG = false, REDIRECT = false, PAGE_LOAD = false, PAYTMFLAG = false, isPause = false, Flipkartflag = false;int snapdealException = 0;static String BASIC_AUTH = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);public static WebView webView;WebView amazonWebView, OrderHistoryWebView, amazonOrderHistoryWebView, amazonOrderHistoryCancelledWebView, paytmWebView;WebView amazonAllUrlsWebView;SharedPreferences userData;SharedPreferences apiData;SharedPreferences flipkartData;SharedPreferences.Editor userDataEditor;SharedPreferences.Editor apiSettingsEditor;SharedPreferences.Editor flipkartDataEditor;OrderTransactionDetails orderDetails;LinkedList<ArrayList<NameValuePair>> orderLinkedList;SharedPreferences amazonData;String affliateUrl;String landingURL;String regId;String temp;String msg = "";ArrayList<NameValuePair> messageNameValuePair;boolean val = false;String redirectUrls;String pageLoad;SharedPreferences.Editor amazonapiSettingsEditor;List<NameValuePair> amazonOrderTrackingData;int pageRedirect = 0;int snapdealPageLoad;final ArrayList<String> redirectUrlsList = new ArrayList<String>();final ArrayList<String> pageLoadList = new ArrayList<String>();String flipkartUrl;View checkBoxView;boolean glogout;boolean flipkartFlag;String saholicUrl;JSONObject jSaholic;JSONArray jsArraySaholic;String type1;ArrayList<String> orderSuccessUrlList;public GoogleApiClient mGoogleApiClient;ProgressDialog pd1 = null;private static final String TAG = DealsHomeFragment.class.getSimpleName();private String mCM;private ValueCallback<Uri> mUM;private ValueCallback<Uri[]> mUMA;private final static int FCR=1;GalleryPhoto galleryPhoto;CameraPhoto cameraPhoto;boolean doubleBackToExitPressedOnce = false;// String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setRetainInstance(true);setHasOptionsMenu(true);}@Overridepublic void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {super.onCreateOptionsMenu(menu, inflater);/* RelativeLayout badgeLayout = (RelativeLayout) menu.findItem(R.id.action_notifications).getActionView();TextView notifciationCount = (TextView) badgeLayout.findViewById(R.id.inAppNotificationText);if (userData.getInt("notification_count", 0) != 0) {notifciationCount.setVisibility(View.VISIBLE);notifciationCount.setText(userData.getInt("notification_count", 0) + "");} else {notifciationCount.setVisibility(View.GONE);}*/}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case android.R.id.home:Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "13");startActivity(i);return true;}return super.onOptionsItemSelected(item);}@Overridepublic void startActivityForResult(Intent intent, int requestCode, Bundle options) {super.startActivityForResult(intent, requestCode, options);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_deals_home, container, false);TestinAgent.init(getActivity());int InstanceId = DealsHomeFragment.class.hashCode();AppCompatActivity activity = (AppCompatActivity) getActivity();ActionBar actionBar = activity.getSupportActionBar();actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.app_red)));galleryPhoto = new GalleryPhoto(getActivity());cameraPhoto = new CameraPhoto(getActivity());final Drawable upArrow = getResources().getDrawable(R.drawable.com_mixpanel_android_arrowleft);// upArrow.setColorFilter(getResources().getColor(R.color.grey_black), PorterDuff.Mode.SRC_ATOP);actionBar.setHomeAsUpIndicator(upArrow);actionBar.setDisplayShowCustomEnabled(true);actionBar.setDisplayShowTitleEnabled(false);actionBar.setDisplayHomeAsUpEnabled(true);actionBar.setHomeButtonEnabled(true);actionBar.setCustomView(R.layout.actionbarprofittill);actionBar.hide();amazonData = getActivity().getSharedPreferences("Amazon_Data", Context.MODE_PRIVATE);userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);flipkartData = getActivity().getSharedPreferences("Flipkart_Data", Context.MODE_PRIVATE);userDataEditor = userData.edit();apiSettingsEditor = apiData.edit();TestinAgent.setUserInfo(userData.getString("id", ""));amazonapiSettingsEditor = amazonData.edit();flipkartDataEditor = flipkartData.edit();affliateUrl = getArguments().getString("key");orderDetails = new OrderTransactionDetails(getActivity());orderSuccessUrlList = new ArrayList<String>();String issues = apiData.getString("list.order.success.url", "blank");StringTokenizer st2 = new StringTokenizer(issues, "|");while (st2.hasMoreElements()) {orderSuccessUrlList.add(st2.nextToken());}if (isInternetOn()) {if (orderDetails.countTotalRecords() > 0) {sendQueuedResponse();}type1 = userData.getString("type", null);if (type1 != null && type1.equalsIgnoreCase("google")) {mGoogleApiClient = new GoogleApiClient.Builder(getActivity()).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN).build();mGoogleApiClient.connect();}redirectUrls = apiData.getString("profitmandi.redirect.urls", "");StringTokenizer st = new StringTokenizer(redirectUrls, "|");while (st.hasMoreTokens()) {redirectUrlsList.add(st.nextToken());}pageLoad = apiData.getString("profitmandi.pageloads.pattern", "");StringTokenizer st1 = new StringTokenizer(pageLoad, "|");while (st1.hasMoreTokens()) {pageLoadList.add(st1.nextToken());}WebClientClass webViewClient = new WebClientClass();if (webView != null) {webView.loadUrl("about:blank");}webView = (WebView) rootView.findViewById(R.id.webView);webView.setClickable(true);webView.setFocusableInTouchMode(true);webView.getSettings().setDomStorageEnabled(true);webView.getSettings().setDatabaseEnabled(true);webView.getSettings().setJavaScriptEnabled(true);webView.getSettings().setAllowContentAccess(true);webView.getSettings().setAllowFileAccess(true);webView.addJavascriptInterface(new javascriptInterface(webView),"HTMLOUT");if(Build.VERSION.SDK_INT >= 21){webView.getSettings().setMixedContentMode(0);webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);}else if(Build.VERSION.SDK_INT >= 19){webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);}else if(Build.VERSION.SDK_INT < 19){webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);}webView.setWebViewClient(new Callback());webView.setWebChromeClient(new WebChromeClient(){//For Android 3.0+public void openFileChooser(ValueCallback<Uri> uploadMsg){mUM = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("*/*");getActivity().startActivityForResult(Intent.createChooser(i,"File Chooser"), FCR);}// For Android 3.0+, above method not supported in some android 3+ versions, in such case we use thispublic void openFileChooser(ValueCallback uploadMsg, String acceptType){mUM = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("*/*");getActivity().startActivityForResult(Intent.createChooser(i, "File Browser"),FCR);}//For Android 4.1+public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){mUM = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("*/*");getActivity().startActivityForResult(Intent.createChooser(i, "File Chooser"), DealsHomeFragment.FCR);}//For Android 5.0+public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback,WebChromeClient.FileChooserParams fileChooserParams){if(mUMA != null){mUMA.onReceiveValue(null);}mUMA = filePathCallback;Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE );if(takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null){try{photoFile = createImageFile();takePictureIntent.putExtra("PhotoPath", mCM);}catch(IOException ex){Log.e(TAG, "Image file creation failed", ex);}if(photoFile != null){mCM = "file:" + photoFile.getAbsolutePath();takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));}else{takePictureIntent = null;}}Intent contentSelectionIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);String [] mimeTypes = {"image/*", "application/pdf"};contentSelectionIntent.setType("*/*");contentSelectionIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);// contentSelectionIntent.setType("image/*");Intent[] intentArray;if(takePictureIntent != null){intentArray = new Intent[]{takePictureIntent};}else{intentArray = new Intent[0];}Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);startActivityForResult(chooserIntent, FCR);return true;}});webView.getSettings().setSavePassword(true);webView.setDownloadListener(new DownloadListener() {public void onDownloadStart(String url, String userAgent,String contentDisposition, String mimetype,long contentLength) {DownloadManager.Request request = new DownloadManager.Request( Uri.parse(url));request.allowScanningByMediaScanner();request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "smartdukaan.pdf");DownloadManager dm = (DownloadManager) getActivity().getSystemService(DOWNLOAD_SERVICE);dm.enqueue(request);}});CookieManager cookieManager = CookieManager.getInstance();cookieManager.setAcceptCookie(true);if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);webView.getSettings().setAllowContentAccess(true);CookieManager cookieManager1 = CookieManager.getInstance();cookieManager1.setAcceptThirdPartyCookies(webView, true);}if (Uri.parse(getArguments().getString("key")).getHost().contains("app.profitmandi")) {userDataEditor.putString("saholic.data", UtilityFunctions.clearCookiesNew(getArguments().getString("key"), getActivity())).commit();}String url = getArguments().getString("key");if (Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {CookieSyncManager.createInstance(getActivity());CookieManager cookieManager1 = CookieManager.getInstance();cookieManager1.setCookie(url, "token=" + userData.getString("token", ""));cookieManager1.setCookie(url, "walletAuthentication=true");cookieManager1.setCookie(url, "shopcluesActive=true");cookieManager1.setCookie(url, "paytmActive=true");cookieManager1.setCookie(url, "shareApps=true");cookieManager1.setCookie(url, "homeshop18=true");cookieManager1.setCookie(url, "isRedirect=true");}if (!(userData.getBoolean("paytmLoggedIn", false))) {Log.d("User Not Logged In", "User Not logged In");} else {if (userData.getString("paytmOrder", "").equalsIgnoreCase("true")) {long nextFetchTime = userData.getLong("paytmNextFetchTime", 0);if (nextFetchTime == 0 || nextFetchTime < System.currentTimeMillis()) {if (isInternetOn()) {new PaytmOrderURL().execute();}} else {Log.d("Paytm False", "Paytm Time False");}} else {Log.d("Paytm False", "Paytm False No orders");}}if (!(userData.getBoolean("amazonLoggedIn", false))) {Log.d("Not In Amazon", "Amazon");}else {if (userData.getString("amazonOrder", "").equalsIgnoreCase("true")) {long nextFetchTime = userData.getLong("amazonNextFetchTime", 0);if (nextFetchTime == 0 || nextFetchTime < System.currentTimeMillis()) {if (isInternetOn()) {new FetchOrderURLS().execute();}}else {Log.d("Amazon False", "Amazon Time False" + userData.getLong("amazonNextFetchTime", 0));}} else {Log.d("Amazon False", "Amazon False No orders");}}// Map <String, String> extraHeaders = new HashMap<String, String>();// extraHeaders.put("Auth-Token",userData.getString("token",""));webView.setWebViewClient(webViewClient);webView.loadUrl(url);}else {SearchFragment nextFrag = new SearchFragment();Bundle args = new Bundle();args.putString("finishingurl", getArguments().getString("key"));args.putString("fragmentNumber", "1");nextFrag.setArguments(args);getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container, nextFrag).addToBackStack(null).commit();}return rootView;}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);}/* BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {final Bundle bundle = intent.getExtras();try {if (bundle != null) {final Object[] pdusObj = (Object[]) bundle.get("pdus");for (int i = 0; i < pdusObj.length; i++) {SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);String phoneNumber = currentMessage.getDisplayOriginatingAddress();String senderNum = phoneNumber;String message = currentMessage.getDisplayMessageBody();String lastTwo = null;if (senderNum != null && senderNum.length() >= 6) {lastTwo = senderNum.substring(senderNum.length() - 6);}try {if (lastTwo.equalsIgnoreCase(apiData.getString("Sender_CLI","PROFTM"))){messageNameValuePair = new ArrayList<>();messageNameValuePair.add(new BasicNameValuePair("message",message));getActivity().unregisterReceiver(broadcastReceiver);new SendOtpMessage().execute();}else{getActivity().registerReceiver(broadcastReceiver, new IntentFilter(SMS_RECEIVED));}}catch(Exception e){e.printStackTrace();}}}}catch (Exception e) {e.printStackTrace();}}};*/JSONObject obj;@Overridepublic void onConnected(Bundle bundle) {}@Overridepublic void onConnectionSuspended(int i) {}@Overridepublic void onConnectionFailed(ConnectionResult connectionResult) {}public class WebClientClass extends WebViewClient {ProgressDialog pd = null;ProgressDialog pd2 = null;@Overridepublic void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler, String host, String realm) {handler.proceed("dtr", "dtr18Feb2015");}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (apiData.getString("snapdealException", "false").equalsIgnoreCase("true")) {List<String> snapdealExceptionUrls = new ArrayList<>();StringTokenizer st = new StringTokenizer(apiData.getString("snapdeal.exception.urls", ""), "|");while (st.hasMoreTokens()) {snapdealExceptionUrls.add(st.nextToken());}}if (apiData.getString("isRedirect", "false").equalsIgnoreCase("true")) {List<String> browserRedirectUrl = new ArrayList<>();StringTokenizer st = new StringTokenizer(apiData.getString("redirect.urls", ""), "|");while (st.hasMoreTokens()) {browserRedirectUrl.add(st.nextToken());}for (String s : browserRedirectUrl) {if (url.contains(s)) {isPause = true;Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));startActivity(intent);return true;}}}if (url.contains("apprub")) {onShareClick(url);return true;}if (url.contains(apiData.getString("wallet.auth", "api.profittill.com/special/native/login")) /*|| userData.getString("id", "").isEmpty()*/) {android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();android.webkit.CookieSyncManager.createInstance(getActivity());cookieManager.removeAllCookie();AlertDialog alert;AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());builder.setMessage(apiData.getString("wallet.auth.message", "You are not authenticated. Please log in again")).setCancelable(false);alert = builder.create();alert.show();try {if (mGoogleApiClient.isConnected()) {Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);mGoogleApiClient.disconnect();mGoogleApiClient.connect();redirectPage(alert);} else {if (!mGoogleApiClient.isConnected()) {redirectPage(alert);}}} catch (Exception e) {redirectPage(alert);}return true;}if (url.contains("com.saholic.profittill")) {Intent intent = null;try {intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getActivity().getPackageName()));} catch (android.content.ActivityNotFoundException anfe) {intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getActivity().getPackageName()));}startActivity(intent);return true;}if (snapdealPageLoad == 1) {pd2 = new ProgressDialog(getActivity());pd2.setMessage("Wait for a moment and click again.");pd2.setProgress(view.getProgress());pd2.show();return true;}if (url.startsWith("tel")) {Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));startActivity(intent);return true;}/* if (url.contains("intent://send")) {Intent intent = null;try {intent = new Intent().parseUri(url, Intent.URI_INTENT_SCHEME);} catch (URISyntaxException e) {e.printStackTrace();}startActivity(intent);return true;}*/if (url.contains("mailto")) {Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));startActivity(intent);return true;}if ( url.endsWith(".pdf")) {Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse(url), "application/pdf");try {view.getContext().startActivity(intent);} catch (ActivityNotFoundException e) {e.printStackTrace();//user does not have a pdf viewer installed}}return false;}@Overridepublic synchronized void onPageStarted(final WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);final CharSequence[] items = {" Don't show me again "};final ArrayList seletedItems = new ArrayList();try {if (Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {CookieSyncManager.createInstance(getActivity());CookieManager cookieManager = CookieManager.getInstance();cookieManager.setCookie(url, "token=" + userData.getString("token", ""));cookieManager.setCookie(url, "walletAuthentication=true");cookieManager.setCookie(url, "shopcluesActive=true");cookieManager.setCookie(url, "paytmActive=true");cookieManager.setCookie(url, "shareApps=true");cookieManager.setCookie(url, "homeshop18=true");cookieManager.setCookie(url, "isRedirect=true");}if (false) {flipkartUrl = url;if (flipkartData.getInt("showagainflag", 0) < 3) {AlertDialog dialog;AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());builder.setMessage(apiData.getString("flipkart.message", "You won't be able to track your orders & earn cashbacks if you purchase using Flipkart App.")).setView(checkBoxView).setCancelable(false).setPositiveButton("Yes", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {int i = flipkartData.getInt("showagainflag", 0);flipkartDataEditor.putInt("showagainflag", ++i);flipkartDataEditor.commit();Intent flipkartIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));startActivity(flipkartIntent);}}).setNegativeButton("No", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int id) {view.loadUrl((apiData.getString("domain","http://app.profitmandi.com")));}});dialog = builder.create();dialog.show();} else if (flipkartData.getInt("showagainflag", 0) == 3) {AlertDialog dialog;AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());checkBoxView = View.inflate(getActivity(), R.layout.checkboxlayout, null);CheckBox checkBox = (CheckBox) checkBoxView.findViewById(R.id.checkbox);checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {flipkartFlag = isChecked;}});checkBox.setText("Don't show me again");builder.setMessage(apiData.getString("flipkart.message", "You won't be able to track your orders & earn cashbacks if you purchase using Flipkart App.")).setView(checkBoxView).setCancelable(false).setPositiveButton("Yes", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if (flipkartFlag) {int i = flipkartData.getInt("showagainflag", 0);flipkartDataEditor.putInt("showagainflag", ++i);flipkartDataEditor.commit();}Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));startActivity(i);}}).setNegativeButton("No", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int id) {view.loadUrl((apiData.getString("domain","http://app.profitmandi.com")));}});dialog = builder.create();dialog.show();} else {Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));startActivity(i);}view.stopLoading();} else {for (String s : pageLoadList) {if (url.contains(s)) {PAGE_LOAD = true;}}if (PAGE_LOAD) {snapdealPageLoad = 1;PAGE_LOAD = false;} else {snapdealPageLoad = 0;for (String s : redirectUrlsList) {if (url.contains(s)) {REDIRECT = true;break;}}if (REDIRECT) {pageRedirect = 2;REDIRECT = false;}else if (pageRedirect == 2 || pageRedirect == 1) {Toast.makeText(getActivity(), "Redirecting to deals...", Toast.LENGTH_SHORT).show();Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "31");i.putExtra("redirectUrl", apiData.getString("redirect.url", "") + "?user_id=" + userData.getString("id", ""));startActivity(i);pageRedirect = 0;}else {landingURL = url;/* if (url.contains(apiData.getString("mobile.website.url"," ")) || url.equalsIgnoreCase("http://api.profittill.com/categorydeals") || url.contains(apiData.getString("notification.page.url", "http://api.profittill.com/users/usernotification"))) {pd = new ProgressDialog(getActivity());pd.setTitle("Please wait");pd.setMessage("Loading..");pd.show();}*/getOrderSuccessUrlConfirmation(url);if (displayActionBar) {pd1 = new ProgressDialog(getActivity());pd1.setTitle("Please wait");pd1.setMessage("Loading..");pd1.show();}}}if (Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data", "false").equalsIgnoreCase("true")) {}else {JSONObject j = new JSONObject();JSONArray jsArray = new JSONArray();j.put("url", url);j.put("user_id", userData.getString("id", null));j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jsArray.put(j);AsyncTaskCompat.executeParallel(new pushData(), new JSONObject().put("pushdata", jsArray));}storeSubTagId(url);}}catch (Exception e) {e.printStackTrace();}}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {try{if (getActivity() != null) {SearchFragment nextFrag = new SearchFragment();Bundle args = new Bundle();args.putString("finishingurl", failingUrl);nextFrag.setArguments(args);getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container,nextFrag).addToBackStack(null).commitAllowingStateLoss();}}catch (Exception e){e.printStackTrace();}super.onReceivedError(view, errorCode, description, failingUrl);}@Overridepublic synchronized void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);if(url.contains(apiData.getString("Web_Uri","http://app.profitmandi.com/entry-point"))){// if(url.contains("http://192.168.120.52:4200/entry-point")){StringBuffer commandsBuffer = new StringBuffer("javascript:");commandsBuffer.append("document.getElementById('authToken').value ='" +userData.getString("token","")+ "';");commandsBuffer.append("document.getElementById('androidId').value ='" +UtilityFunctions.androidId(getActivity()) + "';");commandsBuffer.append("document.getElementById('versionCode').value = '"+ BuildConfig.VERSION_CODE+"';");String js1 =commandsBuffer.toString();if(Build.VERSION.SDK_INT >= 19){view.evaluateJavascript(js1, new ValueCallback<String>() {@Overridepublic void onReceiveValue(String s) {}});}else {view.loadUrl(js1);}String js2 =("javascript:document.getElementById('authTokenSubmit').click()");view.loadUrl(js2);String js = ("javascript:window.localStorage.removeItem('android.otpReceived');");Log.d("storage",js);view.loadUrl(js);}//if(url.contains("http://192.168.120.52:4200/entry-point")|| url.contains("about:blank")){if(url.contains(apiData.getString("domain","http://app.profitmandi.com "))|| url.contains("about:blank")){// ((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);((AppCompatActivity)getActivity()).getSupportActionBar().hide();}else{((AppCompatActivity)getActivity()).getSupportActionBar().show();}view.loadUrl("javascript:try{" +"var lastUrl=document.URL;" +"setInterval(function(){var currentUrl=document.URL;" +"if(currentUrl!=lastUrl){window.HTMLOUT.angularUrls(currentUrl);lastUrl=currentUrl;}},2000)" +"}catch(error){Android.onError(error.message);}");try {if (url.equalsIgnoreCase("about:blank")) {Log.d("Blankl Url", "Blank Url");}else {if (getActivity() != null) {if (url.contains(apiData.getString("notification.page.url", "http://api.profittill.com/users/usernotification"))) {String notificationUrl = apiData.getString("notification.count", "http://45.33.50.227:3001/getNotificationCount") + "?user_id=" + userData.getString("id", "") + "&android_id=" + UtilityFunctions.androidId(getActivity());new NotificationCount().getCount(getActivity(), null, notificationUrl);new Handler().postDelayed(new Runnable() {@Overridepublic void run() {getActivity().invalidateOptionsMenu();}}, 1000);}}if (apiData.getString("snapdealException", "true").equalsIgnoreCase("true")) {List<String> snapdealExceptionUrlsPass = new ArrayList<>();StringTokenizer st = new StringTokenizer(apiData.getString("snapdeal.exception.urls.pass", ""), "|");while (st.hasMoreTokens()) {snapdealExceptionUrlsPass.add(st.nextToken());}for (String s : snapdealExceptionUrlsPass) {if (url.contains(s)) {snapdealException = 0;}}}/* if (url.contains(apiData.getString("mobile.website.url",""))|| url.equalsIgnoreCase("http://api.profittill.com/categorydeals") || url.contains(apiData.getString("notification.page.url", "http://api.profittill.com/users/usernotification"))) {pd.dismiss();}*/if (snapdealPageLoad == 1) {snapdealPageLoad = 0;}if (pd2 != null) {pd2.dismiss();}if (Uri.parse(url).getHost().equalsIgnoreCase("paytm.com")) {view.loadUrl("javascript:try{" +"var lastUrl=document.URL;" +"setInterval(function(){var currentUrl=document.URL;" +"if(currentUrl!=lastUrl){window.HTMLOUT.paytmUrls(currentUrl);lastUrl=currentUrl;}},2000)" +"}catch(error){Android.onError(error.message);}");}if (Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data", "false").equalsIgnoreCase("true")) {saholicUrl = url;view.loadUrl("javascript:window.HTMLOUT.saholicHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}if (url.contains(apiData.getString("amazon.tracking.order.url", ""))) {fetchOrderDetails();}if (displayActionBar) {if (url.contains("amazon")) {view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");pd1.dismiss();amazonWebView = new WebView(webView.getContext());amazonWebView.setVisibility(View.GONE);amazonWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");amazonWebView.getSettings().setJavaScriptEnabled(true);} else if (url.contains(ProfitTillConstants.PAYTM)) {PaytmWebViewClient paytmWebViewClient = new PaytmWebViewClient();pd1.dismiss();paytmWebView = new WebView(webView.getContext());paytmWebView.setVisibility(View.GONE);paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");paytmWebView.getSettings().setJavaScriptEnabled(true);paytmWebView.loadUrl(getPaytmReferer(url));paytmWebView.setWebViewClient(paytmWebViewClient);} else {view.loadUrl("javascript:window.HTMLOUT.flipkartHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}}amazonOrderHistoryWebView = new WebView(webView.getContext());amazonOrderHistoryWebView.setVisibility(View.GONE);amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");amazonAllUrlsWebView = new WebView(webView.getContext());amazonAllUrlsWebView.setVisibility(View.GONE);amazonAllUrlsWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonAllUrlsWebView.getSettings().setJavaScriptEnabled(true);amazonAllUrlsWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");if (url.contains("https://www.amazon.in/ap/signin")) {if (!FLAG) {FLAG = true;userDataEditor.putString("amazonOrder", "true").commit();userDataEditor.putBoolean("amazonLoggedIn", true).commit();}}else if (FLAG) {view.loadUrl("javascript:try{" +"var lastUrl=document.URL;" +"setInterval(function(){var currentUrl=document.URL;" +"if(currentUrl!=lastUrl){window.HTMLOUT.amazonUrls(currentUrl);lastUrl=currentUrl;}},2000)" +"}catch(error){Android.onError(error.message);}");amazonOrderHistoryWebView = new WebView(webView.getContext());amazonOrderHistoryWebView.setVisibility(View.GONE);amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");fetchOrderDetails();FLAG = false;}if (url.contains("flipkart")) {if (Flipkartflag) {if (!url.contains("https://www.flipkart.com/login")) {processFlipkartHtml();Flipkartflag = false;}}else if(url.contains("https://www.flipkart.com/rv/orderConfirmation")){processFlipkartHtml();}else {view.loadUrl("javascript:try{" +"var lastUrl=document.URL;" +"setInterval(function(){var currentUrl=document.URL;" +"if(currentUrl!=lastUrl){window.HTMLOUT.flipkartUrls(currentUrl);lastUrl=currentUrl;}},2000)" +"}catch(error){Android.onError(error.message);}");}}view.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if (event.getAction() == KeyEvent.ACTION_DOWN) {WebView webView = (WebView) v;switch (keyCode) {case KeyEvent.KEYCODE_BACK:String veb=webView.getUrl();if ((webView.canGoBack() && !webView.getUrl().contains(apiData.getString("dashboard","http://app.profitmandi.com/pages/home/dashboard")) && !webView.getUrl().contains(apiData.getString("mobileOtp","http://app.profitmandi.com/pages/mobileOtp"))&& !webView.getUrl().contains(apiData.getString("registration","http://app.profitmandi.com/pages/registration")) && !webView.getUrl().contains(apiData.getString("checkRegistration","http://app.profitmandi.com/pages/checkRegistration"))&&!webView.getUrl().contains(apiData.getString("thankYou","http://app.profitmandi.com/pages/home/thankYou")))|| pageRedirect == 2) {webView.goBack();pageRedirect = 0;snapdealPageLoad = 0;return true;} else if (affliateUrl.contains("flipkart") || affliateUrl.contains("amazon") || affliateUrl.contains("snapdeal") || affliateUrl.contains("saholic") || affliateUrl.contains(apiData.getString("myorders.url", "")) || affliateUrl.contains(apiData.getString("search.url", ""))) {Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "0");startActivity(i);return true;}else if (webView.getUrl().contains(apiData.getString("domain","http://app.profitmandi.com"))) {//else if(webView.getUrl().contains(ProfitTillConstants.Web_Uri)){if (doubleBackToExitPressedOnce) {new AlertDialog.Builder(getActivity()).setIcon(R.drawable.exitsymbol).setTitle("Exit!").setMessage("Are you sure you want to close?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if(userData.getString("userStatus","").equals("notRegistered")||userData.getString("userStatus","").equals("registered")||userData.getString("userStatus","").equals("notVerifiedRetailer")){Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);mGoogleApiClient.disconnect();userDataEditor.clear().commit();mGoogleApiClient.connect();userDataEditor.clear().commit();startActivity(new Intent(getActivity(), LoginActivity.class));}else{Intent startMain = new Intent(Intent.ACTION_MAIN);startMain.addCategory(Intent.CATEGORY_HOME);startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(startMain);}}}).setNegativeButton("No", null).show();return true;}doubleBackToExitPressedOnce = true;Toast.makeText(getActivity(), "Please click BACK again to exit", Toast.LENGTH_SHORT).show();new Handler().postDelayed(new Runnable() {@Overridepublic void run() {doubleBackToExitPressedOnce = false;}}, 5000);}else {Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "0");startActivity(i);return true;}break;}}return false;}});}}catch (Exception e) {e.printStackTrace();TestinAgent.uploadException(getActivity(), "On Page Finished", e);}}}public class Callback extends WebViewClient{public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){Toast.makeText(getActivity(), "Failed loading app!", Toast.LENGTH_SHORT).show();}}// Create an image fileprivate File createImageFile() throws IOException{@SuppressLint("SimpleDateFormat") String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());String imageFileName = "img_"+timeStamp+"_";storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);return File.createTempFile(imageFileName,".jpg",storageDir);}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent intent) {super.onActivityResult(requestCode, resultCode, intent);if(Build.VERSION.SDK_INT >= 21) {//Check if response is positiveif(resultCode == Activity.RESULT_OK) {if(requestCode == FCR) {if(null == mUMA) {return;}if (intent == null) {//Capture Photo if no image availableif (mCM != null) {new ImageCompression().execute(photoFile.getPath());}} else {Uri dataString = intent.getData();String newPath=getRealPathFromURI_API19(getActivity(), dataString);new ImageCompression().execute(newPath);}}}} else {if (requestCode == FCR) {if (null == mUM) return;Uri result = intent == null || resultCode != Activity.RESULT_OK ? null : intent.getData();mUM.onReceiveValue(result);mUM = null;}}if (resultCode != Activity.RESULT_OK) {mUMA.onReceiveValue(null);mUMA =null;}}@TargetApi(Build.VERSION_CODES.KITKAT)public static String getRealPathFromURI_API19(Context context, Uri uri){String filePath = "";String wholeID = null;if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {wholeID = DocumentsContract.getDocumentId(uri);}// Split at colon, use second item in the arrayString id = wholeID.split(":")[1];String[] column = { MediaStore.Images.Media.DATA };// where id is equal toString sel = MediaStore.Images.Media._ID + "=?";Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,column, sel, new String[]{ id }, null);int columnIndex = cursor.getColumnIndex(column[0]);if (cursor.moveToFirst()) {filePath = cursor.getString(columnIndex);}cursor.close();return filePath;}public class ImageCompression extends AsyncTask<String, Void, Void> {private static final float maxHeight = 800.0f;private static final float maxWidth = 800.0f;private File imageFile = null;private Context context;Uri[] results = null;@Overrideprotected void onPreExecute() {super.onPreExecute();//making progress dialog visible//showProgressBar();}@Overrideprotected Void doInBackground(String... strings) {try {if (strings.length == 0 || strings[0] == null)return null;//obtaining image array after the required image is compressedimageFile = compressImage(strings[0]);} catch (Exception e) {// CrashLogs.crashLogger(e);}return null;}@Overrideprotected void onPostExecute(Void aVoid) {super.onPostExecute(aVoid);try {//sending data to server using multipart request//sendMultiPartRequest(imageArray);if(imageFile !=null){results = new Uri[]{Uri.fromFile(imageFile)};mUMA.onReceiveValue(results);mUMA = null;}} catch (Exception e) {//CrashLogs.crashLogger(e);}}//process to compress image to send it to the serverpublic File compressImage(String imagePath) {Bitmap scaledBitmap = null;BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;Bitmap bmp = BitmapFactory.decodeFile(imagePath, options);int actualHeight = options.outHeight;int actualWidth = options.outWidth;float imgRatio = (float) actualWidth / (float) actualHeight;float maxRatio = maxWidth / maxHeight;if (actualHeight > maxHeight || actualWidth > maxWidth) {if (imgRatio < maxRatio) {imgRatio = maxHeight / actualHeight;actualWidth = (int) (imgRatio * actualWidth);actualHeight = (int) maxHeight;} else if (imgRatio > maxRatio) {imgRatio = maxWidth / actualWidth;actualHeight = (int) (imgRatio * actualHeight);actualWidth = (int) maxWidth;} else {actualHeight = (int) maxHeight;actualWidth = (int) maxWidth;}}options.inSampleSize = calculateInSampleSize(options, actualWidth, actualHeight);options.inJustDecodeBounds = false;options.inDither = false;options.inPurgeable = true;options.inInputShareable = true;options.inTempStorage = new byte[16 * 1024];try {bmp = BitmapFactory.decodeFile(imagePath, options);} catch (OutOfMemoryError exception) {// CrashLogs.crashLogger(exception);}try {scaledBitmap = Bitmap.createBitmap(actualWidth, actualHeight, Bitmap.Config.RGB_565);} catch (OutOfMemoryError exception) {// CrashLogs.crashLogger(exception);}float ratioX = actualWidth / (float) options.outWidth;float ratioY = actualHeight / (float) options.outHeight;float middleX = actualWidth / 2.0f;float middleY = actualHeight / 2.0f;Matrix scaleMatrix = new Matrix();scaleMatrix.setScale(ratioX, ratioY, middleX, middleY);Canvas canvas = new Canvas(scaledBitmap);canvas.setMatrix(scaleMatrix);canvas.drawBitmap(bmp, middleX - bmp.getWidth() / 2, middleY - bmp.getHeight() / 2, new Paint(Paint.FILTER_BITMAP_FLAG));if (bmp != null) {bmp.recycle();}ExifInterface exif;try {exif = new ExifInterface(imagePath);int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 0);Matrix matrix = new Matrix();if (orientation == 6) {matrix.postRotate(90);} else if (orientation == 3) {matrix.postRotate(180);} else if (orientation == 8) {matrix.postRotate(270);}scaledBitmap = Bitmap.createBitmap(scaledBitmap, 0, 0, scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix, true);} catch (IOException e) {// CrashLogs.crashLogger(e);}File outputFile = null;try {outputFile = getOutputMediaFile(temp);try {FileOutputStream fileOutputStream = new FileOutputStream(outputFile);scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 80, fileOutputStream);fileOutputStream.flush();fileOutputStream.close();} catch (Exception e) {// CrashLogs.crashLogger(e);}} catch (Exception e) {// CrashLogs.crashLogger(e);}/*try {ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 80, byteArrayOutputStream);return byteArrayOutputStream.toByteArray();} catch (Exception e) {// CrashLogs.crashLogger(e);}*/return outputFile;}/** method to calculate inSample size(used while compressing the image).* */public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {int inSampleSize = 1;try {final int height = options.outHeight;final int width = options.outWidth;if (height > reqHeight || width > reqWidth) {final int heightRatio = Math.round((float) height / (float) reqHeight);final int widthRatio = Math.round((float) width / (float) reqWidth);inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;}final float totalPixels = width * height;final float totalReqPixelsCap = reqWidth * reqHeight * 2;while (totalPixels / (inSampleSize * inSampleSize) > totalReqPixelsCap) {inSampleSize++;}return inSampleSize;} catch (Exception e) {// CrashLogs.crashLogger(e);return inSampleSize;}}}public static final String IMAGE_DIRECTORY_NAME = "ProfitMandi";public File getOutputMediaFile(String name) {// External sdcard locationString timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),IMAGE_DIRECTORY_NAME);// Create the storage directory if it does not existif (!mediaStorageDir.exists()) {if (!mediaStorageDir.mkdirs()) {return null;}}File mediaFile;mediaFile = new File(mediaStorageDir.getPath() + File.separator+ name +timeStamp+ ".jpg");return mediaFile;}private void processFlipkartHtml() {FlipkartWebview fkView = new FlipkartWebview();amazonOrderHistoryWebView = new WebView(webView.getContext());amazonOrderHistoryWebView.setVisibility(View.GONE);String post=apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts");amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36");amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryWebView.addJavascriptInterface(new javascriptInterface(webView), "HTMLOUT");amazonOrderHistoryWebView.loadUrl(apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts"));amazonOrderHistoryWebView.setWebViewClient(fkView);}class ProcessFlipkartHtml extends AsyncTask<String, Integer, String> {ProgressDialog pg1 = null;@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(String... arg0) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "flipkart"));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsRawHtml));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));JSONObject jobj =jObjGmail.getJSONObject("result");JSONObject headers = jobj.getJSONObject("headers");JSONArray url =jobj.getJSONArray("urls");for (int i = 0; i <url.length(); i++) {HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(url.getString(i));Map<String, String> map = new HashMap<String, String>();Iterator iter = headers.keys();while (iter.hasNext()) {String key = (String) iter.next();String value = headers.getString(key);get.setHeader(key, value);}HttpResponse resp = client.execute(get);HttpEntity ent = resp.getEntity();JSONObject jOb = new JSONObject(EntityUtils.toString(ent));HttpClient http = new DefaultHttpClient();ArrayList<NameValuePair> namevaluepairs = new ArrayList<>();namevaluepairs.add(new BasicNameValuePair("html",UtilityFunctions.compress(jOb.toString())));namevaluepairs.add(new BasicNameValuePair("url", url.getString(i)));namevaluepairs.add(new BasicNameValuePair("zip","1"));HttpPost post = new HttpPost(apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "flipkart"));post.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);post.setEntity(new UrlEncodedFormEntity(namevaluepairs));HttpResponse res = http.execute(post);int sta = res.getStatusLine().getStatusCode();}}catch (Exception e) {e.printStackTrace();return null;}return null;}@Overrideprotected void onPostExecute(String jsonObject) {super.onPostExecute(jsonObject);}}@Overridepublic void onDetach() {super.onDetach();if(webView != null) {webView.clearHistory();webView.removeAllViews();webView.clearView();webView.destroy();}}@Overridepublic void onResume() {super.onResume();getView().setFocusableInTouchMode(true);getView().requestFocus();getView().setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {try {String veb=webView.getUrl();if (webView.getUrl().contains(apiData.getString("dashboard","http://app.profitmandi.com/pages/home/dashboard"))||webView.getUrl().contains(apiData.getString("mobileOtp","http://app.profitmandi.com/pages/mobileOtp"))||webView.getUrl().contains(apiData.getString("registration","http://app.profitmandi.com/pages/registration"))||webView.getUrl().contains(apiData.getString("checkRegistration","http://app.profitmandi.com/pages/checkRegistration"))||webView.getUrl().contains(apiData.getString("thankYou","http://app.profitmandi.com/pages/home/thankYou"))) {if (doubleBackToExitPressedOnce) {new AlertDialog.Builder(getActivity()).setIcon(R.drawable.exitsymbol).setTitle("Exit!").setMessage("Are you sure you want to close?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {if(userData.getString("userStatus","").equals("notRegistered")||userData.getString("userStatus","").equals("registered")||userData.getString("userStatus","").equals("notVerifiedRetailer")){Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);mGoogleApiClient.disconnect();userDataEditor.clear().commit();mGoogleApiClient.connect();startActivity(new Intent(getActivity(), LoginActivity.class));}else{Intent startMain = new Intent(Intent.ACTION_MAIN);startMain.addCategory(Intent.CATEGORY_HOME);startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(startMain);}}}).setNegativeButton("No", null).show();return true;}doubleBackToExitPressedOnce = true;Toast.makeText(getActivity(), "Please click BACK again to exit", Toast.LENGTH_SHORT).show();new Handler().postDelayed(new Runnable() {@Overridepublic void run() {doubleBackToExitPressedOnce = false;}}, 5000);}else {if (webView.canGoBack()) {webView.goBack();} else {Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "0");startActivity(i);}return true;}}catch (Exception e) {e.printStackTrace();return false;}}return false;}});}public void fetchOrderDetails() {if (isInternetOn()) {new FetchOrderURLS().execute();}}public void pushDataInAmazon(String orderId) {AmazonOrderDetails amazonOrderClient = new AmazonOrderDetails();nameValuePairsRawHtmlAmazon = new ArrayList<NameValuePair>();nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("user_id", userData.getString("id", null)));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("id", orderId));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("store_id", apiData.getString("store.code.amazon", null)));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("order_url", amazonData.getString("amazonurl", "")));//nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("sub_tag",userData.getString("subtag",null)));amazonWebView.loadUrl(amazonData.getString("amazonurl", ""));amazonWebView.setWebViewClient(amazonOrderClient);}public void storeSubTagId(String url) {if (url.contains(apiData.getString("store.subtag.snapdeal", null)) || url.contains(apiData.getString("store.subtag.flipkart", null)) || url.contains(apiData.getString("store.subtag.amazon", null)) || url.contains(apiData.getString("store.subtag.shopclues", "UID")) || url.contains(apiData.getString("store.subtag.paytm", "utm_term"))) {StringTokenizer st2 = new StringTokenizer(url, "&");while (st2.hasMoreElements()) {String token = st2.nextToken();if (token.contains(apiData.getString("store.subtag.snapdeal", null)) || token.contains(apiData.getString("store.subtag.flipkart", null)) || token.contains(apiData.getString("store.subtag.amazon", null)) || token.contains(apiData.getString("store.subtag.shopclues", "UID")) || token.contains(apiData.getString("store.subtag.paytm", "utm_term"))) {String subtagId = userData.getString("subtag", "null");if (subtagId == null) {userDataEditor.putString("subtag", token.split("=")[1]);userDataEditor.commit();} else {userDataEditor.remove("subtag");userDataEditor.commit();userDataEditor.putString("subtag", token.split("=")[1]);userDataEditor.commit();}} elsecontinue;}} elsereturn;}boolean displayActionBar;public void getDisplayActionBar(String url) throws Exception {String snapdealConfirmation = apiData.getString("snapdeal.order.success.url", null);String flipkartConfirmation = apiData.getString("flipkart.order.success.url", null);String amazonConfirmation = apiData.getString("amazon.order.success.url", null);String amazonThankYouConfirmation = apiData.getString("amazon.order.success.thankyou.url", null);String saholicConfirmation = apiData.getString("saholic.order.success.url", null);if (url.contains(snapdealConfirmation) || url.contains(flipkartConfirmation) || url.contains(amazonConfirmation) || url.contains(amazonThankYouConfirmation) || url.contains(saholicConfirmation)) {displayActionBar = true;String storeID = getStoreId(url);if (storeID == null) {Log.e("Deals Page Activity", "Null value returned for storeID");} else {nameValuePairsRawHtml = new ArrayList<NameValuePair>();nameValuePairsRawHtml.add(new BasicNameValuePair("user_id", userData.getString("id", null)));nameValuePairsRawHtml.add(new BasicNameValuePair("store_id", storeID));nameValuePairsRawHtml.add(new BasicNameValuePair("order_url", url));nameValuePairsRawHtml.add(new BasicNameValuePair("sub_tag", userData.getString("subtag", null)));}} else {displayActionBar = false;}return;}public void getOrderSuccessUrlConfirmation(String url) throws Exception {for (String s : orderSuccessUrlList) {if (url.contains(s)) {displayActionBar = true;String storeID = getStoreId(url);if (storeID == null) {Log.e("Deals Page Activity", "Null value returned for storeID");} else {nameValuePairsRawHtml = new ArrayList<NameValuePair>();nameValuePairsRawHtml.add(new BasicNameValuePair("user_id", userData.getString("id", null)));nameValuePairsRawHtml.add(new BasicNameValuePair("store_id", storeID));nameValuePairsRawHtml.add(new BasicNameValuePair("order_url", url));nameValuePairsRawHtml.add(new BasicNameValuePair("sub_tag", userData.getString("subtag", "")));}break;} else {displayActionBar = false;}}return;}public String getStoreId(String url) {/* if(url.contains("snapdeal")){pageRedirect=Integer.parseInt(apiData.getString("pageredirect.snapdeal","0"));return apiData.getString("store.code.snapdeal",null);}else if(url.contains("flipkart")){pageRedirect=Integer.parseInt(apiData.getString("pageredirect.flipkart","0"));return apiData.getString("store.code.flipkart",null);}else if(url.contains("amazon")){pageRedirect=Integer.parseInt(apiData.getString("pageredirect.amazon","0"));return apiData.getString("store.code.amazon",null);}else if(url.contains("saholic")){return apiData.getString("store.code.spice",null);}else if(url.contains("shopclues")){return "7";}*/return UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "amazon=1,flipkart=2,snapdeal=3,saholic=4,shopclues=5,")), url);}class pushData extends AsyncTask<JSONObject, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(JSONObject... objs) {HttpClient httpclient = new DefaultHttpClient();try {ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();nameValuePairs.add(new BasicNameValuePair("pushdata",objs[0].toString()));HttpPost httppost = new HttpPost(apiData.getString("url.push.api", null));httppost.setHeader("Authorization", BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));HttpResponse response = httpclient.execute(httppost);int status = response.getStatusLine().getStatusCode();if (status == 200) {return "success";} else {return "failure";}} catch (ClientProtocolException e) {return "failure";} catch (IOException e) {return "failure";}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);}}ArrayList<NameValuePair> nameValuePairsRawHtml = new ArrayList<NameValuePair>();ArrayList<NameValuePair> nameValuePairsRawHtmlAmazon = new ArrayList<NameValuePair>();class javascriptInterface {WebView view;/*** Instantiate the interface and set the context*/public javascriptInterface(WebView c) {this.view=c;}/* @JavascriptInterfacepublic void otpSent() {//Toast.makeText(getActivity(),"successfull",Toast.LENGTH_LONG).show();getActivity().registerReceiver(broadcastReceiver, new IntentFilter(SMS_RECEIVED));}*/@JavascriptInterfacepublic void performClick(String strl) {Toast.makeText(getActivity(), strl, Toast.LENGTH_SHORT).show();}@JavascriptInterfacepublic void authTokenChange(String newToken) {userDataEditor.putString("token" ,newToken);Log.d("newtoken",newToken);userDataEditor.commit();new AuthTokenChange().execute();}@JavascriptInterfacepublic void logout() {try{if (mGoogleApiClient.isConnected()) {Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);mGoogleApiClient.disconnect();mGoogleApiClient.connect();userDataEditor.clear().commit();startActivity(new Intent(getActivity(), LoginActivity.class));}else{if(!mGoogleApiClient.isConnected()){userDataEditor.clear().commit();startActivity(new Intent(getActivity(), LoginActivity.class));}}}catch (Exception e){userDataEditor.clear().commit();startActivity(new Intent(getActivity(), LoginActivity.class));}}@JavascriptInterfacepublic void showToast(String toast) {nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(toast)));long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();postDataNameValuePair = orderDetails.readData1();for (List<NameValuePair> orderDetail : postDataNameValuePair) {orderDetail.add(new BasicNameValuePair("zip", "1"));orderDetail.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));orderDetail.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));orderDetail.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));PushRawHTML pm = new PushRawHTML();pm.execute(orderDetail);}}@JavascriptInterfacepublic void amazonOrderTrackingHTML(String html) {amazonOrderTrackingData.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));amazonOrderTrackingData.add(new BasicNameValuePair("zip", "1"));amazonOrderTrackingData.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));amazonOrderTrackingData.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));amazonOrderTrackingData.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));new AmazonOrderTrackingDetails().execute(amazonOrderTrackingData);}@JavascriptInterfacepublic void showHTML(String html) {showToast(html);}@JavascriptInterfacepublic void flipkartHTML(String html) {nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();postDataNameValuePair = orderDetails.readData1();for (List<NameValuePair> orderDetail : postDataNameValuePair) {orderDetail.add(new BasicNameValuePair("zip", "1"));orderDetail.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));orderDetail.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));orderDetail.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));new loadData().execute(orderDetail);}}@JavascriptInterfacepublic void orderpage(String html) {nameValuePairsRawHtml.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));nameValuePairsRawHtml.add(new BasicNameValuePair("url",apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts")));nameValuePairsRawHtml.add(new BasicNameValuePair("zip","1"));new ProcessFlipkartHtml().execute();}@JavascriptInterfacepublic void saholicHTML(String html) {try {obj = new JSONObject();jSaholic = new JSONObject();jSaholic.put("html", UtilityFunctions.compress(html));jSaholic.put("zip", "1");jSaholic.put("user_id", userData.getString("id", null));} catch (Exception e) {}new checkGateWayProblem().execute(saholicUrl);}@JavascriptInterfacepublic void amazonUrls(String url) {try {obj = new JSONObject();JSONObject j = new JSONObject();JSONArray jsArray = new JSONArray();j.put("url", url);j.put("user_id", userData.getString("id", null));j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jsArray.put(j);obj.put("pushdata", jsArray);new pushData().execute(obj);} catch (Exception e) {e.printStackTrace();}try {getOrderSuccessUrlConfirmation(url);if (displayActionBar) {fetchAmazonOrder(url);}} catch (Exception e) {e.printStackTrace();}}@JavascriptInterfacepublic void paytmUrls(String html) {try {obj = new JSONObject();JSONObject j = new JSONObject();JSONArray jsArray = new JSONArray();j.put("url", html);j.put("user_id", userData.getString("id", null));j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jsArray.put(j);obj.put("pushdata", jsArray);new pushData().execute(obj);} catch (Exception e) {e.printStackTrace();}if (html.contains("https://paytm.com/login")) {if (!PAYTMFLAG) {PAYTMFLAG = true;userDataEditor.putString("paytmOrder", "true").commit();userDataEditor.putBoolean("paytmLoggedIn", true).commit();}} else if (PAYTMFLAG) {new PaytmOrderURL().execute();PAYTMFLAG = false;}}@JavascriptInterfacepublic void flipkartUrls(String url) {try {obj = new JSONObject();JSONObject j = new JSONObject();JSONArray jsArray = new JSONArray();j.put("url", url);j.put("user_id", userData.getString("id", null));j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jsArray.put(j);obj.put("pushdata", jsArray);new pushData().execute(obj);} catch (Exception e) {e.printStackTrace();}if (url.contains("https://www.flipkart.com/login")) {Flipkartflag = true;userDataEditor.putString("flipkartOrder", "true").commit();userDataEditor.putBoolean("flipkartLoggedIn", true).commit();}}@JavascriptInterfacepublic void angularUrls(String url) {if(!isInternetOn()){try {SearchFragment nextFrag = new SearchFragment();Bundle args = new Bundle();args.putString("finishingurl", url);nextFrag.setArguments(args);getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container, nextFrag).addToBackStack(null).commitAllowingStateLoss();}catch (Exception e) {e.printStackTrace();}}else{try {obj = new JSONObject();JSONObject j = new JSONObject();JSONArray jsArray = new JSONArray();j.put("url", url);j.put("user_id", userData.getString("id", null));j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jsArray.put(j);obj.put("pushdata", jsArray);new pushData().execute(obj);} catch (Exception e) {e.printStackTrace();}}}}class AuthTokenChange extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(String... params) {try {HttpClient httpclient = new DefaultHttpClient();HttpGet httpget=new HttpGet(apiData.getString("Web_Api_Tokendetail","http://app.profitmandi.com/apis/user/detail/token"));// HttpGet httpget = new HttpGet(ProfitTillConstants.Web_Api + "/user/token-info");// HttpGet httpget=new HttpGet("http://192.168.120.52:8080/profitmandi-web/user/detail/token");httpget.setHeader("Auth-Token", userData.getString("token", ""));HttpResponse response = httpclient.execute(httpget);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));Log.d("Json",String.valueOf(jObjGmail));return String.valueOf(jObjGmail);} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (JSONException e) {e.printStackTrace();}return null;}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);try {JSONObject jsonObject = new JSONObject(result);JSONObject jobj=jsonObject.getJSONObject("response");String userStatus=jobj.getString("userStatus");userDataEditor.putString("userStatus",userStatus);userDataEditor.commit();if(!(userData.getString("userStatus","").equals("notRegistered"))) {String user_id = jobj.getString("userId");userDataEditor.putString("id", user_id);userDataEditor.commit();if(!(userData.getString("id", "").equals(""))){UtilityFunctions utf = new UtilityFunctions();new pushApkData().execute(utf.getDeviceInformation(getActivity()));}else {Toast.makeText(getActivity(),"Network issue",Toast.LENGTH_LONG).show();}}else{}}catch (JSONException e) {e.printStackTrace();}}}class pushApkData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(ArrayList<NameValuePair>... arg0) {try {HttpClient httpclient = new DefaultHttpClient();// HttpPost httppost = new HttpPost(apiData.getString("devices_info","http://192.168.120.52:8080/profitmandi-web/devices/add"));HttpPost httppost = new HttpPost(apiData.getString("devices_info","http://api.profittill.com/devices/add"));//HttpPost httppost = new HttpPost(ProfitTillConstants.Push_Url);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if(status == 200){return "success";} else {return "failure";}} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);if (userData.getString("fcm_token_sent", "false").equals("false") && (!userData.getString("id", "").equals(""))) {regId = FirebaseInstanceId.getInstance().getToken();Log.d("RegisterActivity", "registerInBackground - regId: "+ regId);msg = "Device registered";new gcmPushData().execute(msg);}}}class gcmPushData extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(String... arg0) {String id = null;try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("gcm.push.url","http://api.profittill.com/gcm_users/add"));//HttpPost httppost = new HttpPost(ProfitTillConstants.gcm_url);ArrayList<NameValuePair> nameValuePairsGcm = new ArrayList<>();TelephonyManager telephonyManager = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);nameValuePairsGcm.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));nameValuePairsGcm.add(new BasicNameValuePair("gcm_regid", regId));nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id", null)));nameValuePairsGcm.add(new BasicNameValuePair("notification_type","fcm"));nameValuePairsGcm.add(new BasicNameValuePair("device_message", arg0[0]));nameValuePairsGcm.add(new BasicNameValuePair("androidid", UtilityFunctions.androidId(getActivity())));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsGcm));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if (status == 200) {Log.d("ResponseCode GCM ", status + "");userDataEditor.putString("fcm_token_sent", "true");userDataEditor.commit();} else {Log.d("ResponseCode GCM ", status + "");}nameValuePairsGcm.clear();Log.e("pass 1", "connection success ");} catch (Exception e) {Log.e("Fail 1", e.toString());}return null;}@Overrideprotected void onPostExecute(String result){super.onPostExecute(result);}}class loadData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(List<NameValuePair>... orderDetail) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if (status == 200) {NameValuePair y = orderDetail[0].get(2);int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});} else {Log.d("Status in load Data ", "Status Load data " + status);}String getJSON = EntityUtils.toString(entity);if (getJSON == null) {return null;} else {JSONObject jObjGmail = new JSONObject(getJSON);return jObjGmail;}} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(JSONObject result) {if (result == null) {//Log.d("Error in fetching result ", "Flipkart html ");} else {try {if (result.getString("message").equalsIgnoreCase("PROCESSED"))orderDetails.deleterecords();} catch (Exception e) {}}super.onPostExecute(result);}}class AmazonOrderDetails extends WebViewClient {@Overridepublic void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler, String host, String realm) {handler.proceed("dtr", "dtr18Feb2015");}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");super.onPageFinished(view, url);}}class amazonInterface {Context mContext;/*** Instantiate the interface and set the context*/public amazonInterface(Context c) {mContext = c;}/*** Show a toast from the web page*/@JavascriptInterfacepublic void showToast(String toast) {nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(toast)));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("zip", "1"));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));if (isInternetOn()) {new amazonPushData().execute(nameValuePairsRawHtmlAmazon);}}@JavascriptInterfacepublic void showHTML(String html) {showToast(html);}@JavascriptInterfacepublic void orderHistory(String html) {List<NameValuePair> amazonOrderHistory = new ArrayList<>();amazonOrderHistory.add(new BasicNameValuePair("url", str.get(0)));amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));amazonOrderHistory.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));amazonOrderHistory.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));amazonOrderHistory.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));if (isInternetOn()) {new pushQueuedData().execute(amazonOrderHistory);userDataEditor.putLong("amazonNextFetchTime", System.currentTimeMillis() + ProfitTillConstants.DURATION_TRACKING_ORDERS).commit();}}@JavascriptInterfacepublic void cancelledHistory(String html) {List<NameValuePair> amazonOrderHistory = new ArrayList<>();amazonOrderHistory.add(new BasicNameValuePair("url", str.get(j++)));amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));amazonOrderHistory.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));amazonOrderHistory.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));amazonOrderHistory.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));if (isInternetOn()) {new pushCancelledQueuedData().execute(amazonOrderHistory);userDataEditor.putLong("amazonNextFetchTime", System.currentTimeMillis() + ProfitTillConstants.DURATION_TRACKING_ORDERS).commit();}}@JavascriptInterfacepublic void amazonOrderUrls(String html) {//Log.e("OrderUrls","Order amazonOrderUrls" + html);List<NameValuePair> amazonOrderHistory = new ArrayList<>();amazonOrderHistory.add(new BasicNameValuePair("url", str.get(1)));amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));amazonOrderHistory.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));amazonOrderHistory.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));amazonOrderHistory.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));if (isInternetOn()) {new pushCancelledQueuedData().execute(amazonOrderHistory);} else {}}}int j;class amazonPushData extends AsyncTask<List<NameValuePair>, Integer, String> {private StringBuilder sb;private HttpResponse req;private InputStream is;@Overrideprotected void onPreExecute() {super.onPreExecute();Log.e("Pre execute", "Pre execute");}@Overrideprotected String doInBackground(List<NameValuePair>... orderDetail) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if (status == 200) {System.out.println("ResponseCode of record: " + status + " is " + status);NameValuePair y = orderDetail[0].get(2);int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});amazonapiSettingsEditor.remove("amazonurl");amazonapiSettingsEditor.commit();} else {/*Log.d("ResponseCode",status+"");System.out.println(" NOT Transfered");Log.d("ResponseCode",status+"");*/}/* Log.e("pass 1", "Amazon success ");*/} catch (Exception e) {/* Log.e("Fail 1", e.toString());*/}return "success";}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);new FetchOrderURLS().execute();}}class PushRawHTML extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(List<NameValuePair>... orderDetail) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if (status == 200) {NameValuePair y = orderDetail[0].get(2);int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});} else {}JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return jObjGmail;} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(JSONObject result) {super.onPostExecute(result);try {userDataEditor.putString("amazonOrder", "true").commit();userDataEditor.putBoolean("amazonLoggedIn", true).commit();userDataEditor.putLong("amazonNextFetchTime", System.currentTimeMillis() + ProfitTillConstants.DURATION_TRACKING_ORDERS).commit();if (result.getString("htmlRequired").equalsIgnoreCase("true")) {String orderId = result.getString("orderId");amazonapiSettingsEditor.putString("amazonurl", result.getString("url"));amazonapiSettingsEditor.commit();pushDataInAmazon(orderId);}} catch (Exception e) {}}}class AmazonOrderTrackingDetails extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(List<NameValuePair>... arg0) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if (status == 200) {} else {}JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return jObjGmail;} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(JSONObject result) {super.onPostExecute(result);}}class pushQueuedData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(List<NameValuePair>... pushOrder) {try {HttpClient httpclient = new DefaultHttpClient();//Get store id// NameValuePair nvp = pushOrder[1].get(0);//String storeId = nvp.getValue();String fetchUrl = apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + apiData.getString("store.code.amazon", "1");HttpPost httppost = new HttpPost(fetchUrl);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return jObjGmail;} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(JSONObject result) {super.onPostExecute(result);try {if (result == null) {} else if (result.getString("result").equalsIgnoreCase("PARSE_ERROR")) {userDataEditor.putBoolean("amazonLoggedIn", false).commit();} else {addOrderHistoryCancelled(str.get(1));}} catch (Exception e) {e.printStackTrace();}}}class pushCancelledQueuedData extends AsyncTask<List<NameValuePair>, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(List<NameValuePair>... pushOrder) {try {HttpClient httpclient = new DefaultHttpClient();String fetchUrl = apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + apiData.getString("store.code.amazon", "1");HttpPost httppost = new HttpPost(fetchUrl);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();return "success";} catch (Exception e) {return "failure";}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);try {addOrderHistoryCancelled(str.get(++sizeList));} catch (Exception e) {e.printStackTrace();}FLAG = false;}}class SendOtpMessage extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(String... params) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("Web_Api_Otp","http://app.profitmandi.com/apis/otp/parseOTP"));//HttpPost httppost = new HttpPost(ProfitTillConstants.Web_Api + "/otp/parseOTP");httppost.setHeader("Auth-Token", userData.getString("token", ""));httppost.setEntity(new UrlEncodedFormEntity(messageNameValuePair));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return String.valueOf(jObjGmail);}catch (UnsupportedEncodingException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}catch (JSONException e) {e.printStackTrace();}return null;}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);try {JSONObject jsonObject = new JSONObject(result);String response=jsonObject.getString("response");String js = ("javascript:window.localStorage.setItem('android.otpReceived','"+response +"');");webView.loadUrl(js);//webView.loadUrl("javascript:alert(window.localStorage.getItem('android.otpReceived'))");Log.d("otp",js);/* for(int i=1; i<6; i++){js += "document.getElementsByName('otp" + i + "')[0].value ='" +response.substring(i-1,i) + "';";}/* String js = ("javascript:document.getElementsByName('otp1')[0].value ='"+response +"';");//js +="document.getElementsByName('otpForm')[0].submit();";// Log.d("otp",js);if (Build.VERSION.SDK_INT >= 19) {webView.evaluateJavascript(js, new ValueCallback<String>() {@Overridepublic void onReceiveValue(String s) {}});} else {webView.loadUrl(js);}*///String js2 =("javascript:document.getElementById('').click()");//webView.loadUrl(js2);} catch (JSONException e) {e.printStackTrace();}}}int sizeList;class FetchOrderURLS extends AsyncTask<String, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(String... arg0) {HttpClient httpclient = new DefaultHttpClient();try {String fetchUrl = apiData.getString("amazon.order.tracking.get.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + apiData.getString("store.code.amazon", "1");HttpGet httppost = new HttpGet(fetchUrl);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return jObjGmail;} catch (ClientProtocolException e) {return null;} catch (IOException e) {return null;}catch (Exception e) {e.printStackTrace();return null;}}@Overrideprotected void onPostExecute(JSONObject result) {super.onPostExecute(result);try {if (result == null) {userDataEditor.putString("amazonOrder", "false").commit();} else {if (result.length() == 0) {userDataEditor.putString("amazonOrder", "false").commit();} else {JSONArray js = result.getJSONArray("result");if (js.length() != 0) {str = new ArrayList<>();for (int i = 0; i < js.length(); i++) {String s = js.getString(i);str.add(s);}sizeList = 1;j = 1;addOrderHistory(str.get(0));} else {userDataEditor.putString("amazonOrder", "false").commit();}}}} catch (Exception e) {}}}int count = 0;List<String> str;public void addOrderHistory(String s) {AmazonOrderHistoryDetails amazonOrderClient = new AmazonOrderHistoryDetails();amazonOrderHistoryWebView = new WebView(webView.getContext());amazonOrderHistoryWebView.setVisibility(View.GONE);amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");amazonOrderHistoryWebView.loadUrl(s);amazonOrderHistoryWebView.setWebViewClient(amazonOrderClient);}public void addOrderHistoryCancelled(String s) {AmazonOrderCancelledDetails amazonOrderClient1 = new AmazonOrderCancelledDetails();amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");amazonOrderHistoryCancelledWebView.loadUrl(s);amazonOrderHistoryCancelledWebView.setWebViewClient(amazonOrderClient1);}class AmazonOrderHistoryDetails extends WebViewClient {@Overridepublic void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler, String host, String realm) {handler.proceed("dtr", "dtr18Feb2015");}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);if (url.contains("signin")) {userDataEditor.putBoolean("amazonLoggedIn", false).commit();} else {view.loadUrl("javascript:window.HTMLOUT.orderHistory('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}}}class AmazonOrderCancelledDetails extends WebViewClient {@Overridepublic void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler, String host, String realm) {handler.proceed("dtr", "dtr18Feb2015");}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);view.loadUrl("javascript:window.HTMLOUT.cancelledHistory('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}}public final boolean isInternetOn() {ConnectivityManager connec =(ConnectivityManager) getActivity().getSystemService(getActivity().getBaseContext().CONNECTIVITY_SERVICE);if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED) {return true;} else if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED) {return false;}return false;}class checkGateWayProblem extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(String... arg0) {HttpClient httpclient = new DefaultHttpClient();try {HttpPost httppost = new HttpPost(arg0[0]);final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);httppost.setHeader("Authorization", basicAuth);HttpResponse response = httpclient.execute(httppost);int status = response.getStatusLine().getStatusCode();jsArraySaholic = new JSONArray();jSaholic.put("url", arg0[0]);jSaholic.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jSaholic.put("httpstatus", status);jSaholic.put("cookies", CookieManager.getInstance().getCookie(arg0[0]));jsArraySaholic.put(jSaholic);obj.put("pushdata", jsArraySaholic);Log.d("status ", "Status in checkGatewayProbelm " + status);if (status == 200) {return "success";} else {return "failure";}} catch (ClientProtocolException e) {return "failure";} catch (IOException e) {return "failure";} catch (JSONException e) {return "failure";}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);new pushData1().execute(obj);}}class pushData1 extends AsyncTask<JSONObject, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(JSONObject... arg0) {HttpClient httpclient = new DefaultHttpClient();try {ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();nameValuePairs.add(new BasicNameValuePair("pushdata", arg0[0].toString()));HttpPost httppost = new HttpPost(apiData.getString("url.push.api", null));final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);httppost.setHeader("Authorization", basicAuth);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));System.out.println("JSON object in push Data 1 " + arg0[0].toString());StringEntity se = new StringEntity(arg0[0].toString());HttpResponse response = httpclient.execute(httppost);int status = response.getStatusLine().getStatusCode();if (status == 200) {return "success";} else {return "failure";}} catch (ClientProtocolException e) {return "failure";} catch (IOException e) {return "failure";}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);}}public void redirectPage(final AlertDialog builder) {Handler h = new Handler();h.postDelayed(new Runnable() {@Overridepublic void run() {if (builder != null) {builder.dismiss();}userDataEditor.clear().commit();startActivity(new Intent(getActivity(), LoginActivity.class));}}, 3000);}public void sendQueuedResponse() {List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();postDataNameValuePair = orderDetails.readData1();for (List<NameValuePair> orderDetail : postDataNameValuePair) {orderDetail.add(new BasicNameValuePair("zip", "1"));orderDetail.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));orderDetail.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));orderDetail.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));PushRawHTML pm = new PushRawHTML();pm.execute(orderDetail);}}class PaytmWebViewClient extends WebViewClient {@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);if (url.contains(apiData.getString("paytm.myorders.url", "paytm.com/myorders"))) {view.loadUrl("javascript:window.location='" + getPaytmUrl(url) + "';");} else {view.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('html')[0].innerHTML);");}}}public String getPaytmUrl(String url) {String returnUrl = null;//Pattern p = Pattern.compile("[/]myorders/(\\d+)");Pattern p = Pattern.compile(apiData.getString("paytm.myorders.pattern", "[/]myorders/(\\d+)"));Matcher m = p.matcher(url);if (m.find()) {returnUrl = m.group(1);}System.out.println(apiData.getString("paytm.orderdetail.url", "https://paytm.com/shop/orderdetail/") + returnUrl + "?actions=1&channel=web&version=2");return apiData.getString("paytm.orderdetail.url", "https://paytm.com/shop/orderdetail/") + returnUrl + "?actions=1&channel=web&version=2";}public String getPaytmReferer(String url) {String returnUrl = null;Pattern p = Pattern.compile(apiData.getString("paytm.summary.pattern", "[/]summary/(\\d+)"));//Pattern p = Pattern.compile("[/]summary/(\\d+)");Matcher m = p.matcher(url);if (m.find()) {returnUrl = m.group(1);}System.out.println("In paytm Referer" + apiData.getString("paytm.myorders.url", "https://paytm.com/myorders/") + returnUrl);return apiData.getString("paytm.myorders.url", "https://paytm.com/myorders/") + returnUrl;}class PaytmOrderURL extends AsyncTask<String, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(String... arg0) {HttpClient httpclient = new DefaultHttpClient();try {String fetchUrl = apiData.getString("amazon.order.tracking.get.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "paytm");HttpGet httppost = new HttpGet(fetchUrl);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return jObjGmail;} catch (JSONException e) {return null;} catch (ClientProtocolException e) {return null;} catch (IOException e) {e.printStackTrace();return null;}}@Overrideprotected void onPostExecute(JSONObject result) {super.onPostExecute(result);try {if (result != null) {if (result.length() == 0) {userDataEditor.putString("paytmOrder", "false").commit();} else {JSONArray js = result.getJSONArray("result");if (js.length() != 0) {strPaytmUrls = new ArrayList<>();strPaytmReferer = new ArrayList<>();for (int i = 0; i < js.length(); i++) {JSONObject paytmURLRef = js.getJSONObject(i);String url = paytmURLRef.getString("url");String referer = paytmURLRef.getString("referer");strPaytmUrls.add(url);strPaytmReferer.add(referer);}paytmOrderTracking(strPaytmUrls.get(0), strPaytmReferer.get(0));} else {userDataEditor.putString("paytmOrder", "false").commit();}}}} catch (Exception e) {e.printStackTrace();}}}class PaytmOrderCreation extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(List<NameValuePair>... orderDetail) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if (status == 200) {NameValuePair y = orderDetail[0].get(2);int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});} else {}String getJSON = EntityUtils.toString(entity);if (getJSON == null) {return null;} else {JSONObject jObjGmail = new JSONObject(getJSON);return jObjGmail;}} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(JSONObject result) {if (result == null) {} else {userDataEditor.putString("paytmOrder", "true").commit();userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis() + 21600000).commit();try {if (result.getString("message").equalsIgnoreCase("PROCESSED"))orderDetails.deleterecords();} catch (Exception e) {}}super.onPostExecute(result);}}public void paytmOrderTracking(List<String> paytmUrls, List<String> paytmReferers) {for (int i = 1; i < paytmReferers.size(); i++) {PaytmOrderTrackingClient paytmOrderTrackingClient = new PaytmOrderTrackingClient(paytmUrls.get(i));paytmWebView = new WebView(webView.getContext());paytmWebView.setVisibility(View.GONE);paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");paytmWebView.getSettings().setJavaScriptEnabled(true);paytmWebView.loadUrl(paytmReferers.get(i));paytmWebView.setWebViewClient(paytmOrderTrackingClient);}userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis() + 21600000).commit();}public void paytmOrderTracking(String paytmUrl, String paytmReferer) {PaytmOrderTrackingClient paytmOrderTrackingClient = new PaytmOrderTrackingClient(paytmUrl);paytmWebView = new WebView(webView.getContext());paytmWebView.setVisibility(View.GONE);paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");paytmWebView.getSettings().setJavaScriptEnabled(true);paytmWebView.loadUrl(paytmReferer);paytmWebView.setWebViewClient(paytmOrderTrackingClient);userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis() + 21600000).commit();}class PaytmOrderTrackingClient extends WebViewClient {String paytmUrlAfterReferer;public PaytmOrderTrackingClient(String paytmUrl) {paytmUrlAfterReferer = paytmUrl;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);if (url.contains(apiData.getString("paytm.myorders.url", "paytm.com/myorders"))) {view.loadUrl("javascript:window.location='" + paytmUrlAfterReferer + "';");} else {view.loadUrl("javascript:window.HTMLOUT.paytmTracking(document.getElementsByTagName('html')[0].innerHTML);");}}}List<String> strPaytmUrls, strPaytmReferer;int paytmCounter = 0;class PaytmPushTrackingUrls extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected JSONObject doInBackground(List<NameValuePair>... pushOrder) {try {HttpClient httpclient = new DefaultHttpClient();String fetchUrl = apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "paytm");HttpPost httppost = new HttpPost(fetchUrl);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));return jObjGmail;} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(JSONObject result) {super.onPostExecute(result);try {if (result == null) {} else if (result.getString("result").equalsIgnoreCase("PARSE_ERROR")) {userDataEditor.putBoolean("paytmLoggedIn", false).commit();} else {paytmOrderTracking(strPaytmUrls, strPaytmReferer);}} catch (Exception e) {e.printStackTrace();}}}class paytmInterface {Context mContext;public paytmInterface(Context c) {mContext = c;}@JavascriptInterfacepublic void showHTML(String html) {nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();postDataNameValuePair = orderDetails.readData1();for (List<NameValuePair> orderDetail : postDataNameValuePair) {orderDetail.add(new BasicNameValuePair("zip", "1"));new PaytmOrderCreation().execute(orderDetail);}}@JavascriptInterfacepublic void paytmTracking(String html) {try {String url = strPaytmUrls.get(paytmCounter++);List<NameValuePair> amazonOrderHistory = new ArrayList<NameValuePair>();amazonOrderHistory.add(new BasicNameValuePair("url", url));amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));if (isInternetOn()) {new PaytmPushTrackingUrls().execute(amazonOrderHistory);} else {}} catch (Exception e) {e.printStackTrace();}}}public void onShareClick(String url) {try {List<Intent> targetShareIntents = new ArrayList<Intent>();Intent shareIntent = new Intent();shareIntent.setAction(Intent.ACTION_SEND);shareIntent.setType("text/plain");List<ResolveInfo> resInfos = getActivity().getPackageManager().queryIntentActivities(shareIntent, 0);if (!resInfos.isEmpty()) {for (ResolveInfo resInfo : resInfos) {String packageName = resInfo.activityInfo.packageName;Intent intent = new Intent();intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));intent.setAction(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT, Uri.parse(url).getQueryParameter("message"));intent.setPackage(packageName);targetShareIntents.add(intent);}if (!targetShareIntents.isEmpty()) {Intent chooserIntent = Intent.createChooser(targetShareIntents.remove(0), "Choose app to share");chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetShareIntents.toArray(new Parcelable[]{}));startActivity(chooserIntent);}}} catch (Exception e) {e.printStackTrace();}}public void fetchAmazonOrder(String url) {pd1 = new ProgressDialog(getActivity());pd1.setTitle("Please wait");pd1.setMessage("Placing your order...");pd1.show();webView.post(new Runnable() {@Overridepublic void run() {webView.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}});}@Overridepublic void onPause() {super.onPause();if (apiData.getString("deal.redirect", "false").equalsIgnoreCase("true")) {if (webView != null) {if (isPause) {webView.loadUrl(apiData.getString("app.domain.profitmandi", "http://app.profitmandi.com"));isPause = false;}}}}class FlipkartWebview extends WebViewClient {@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);if(url.contains(apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts"))) {view.loadUrl("javascript:window.HTMLOUT.orderpage('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}}}}