Rev 21271 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.saholic.profittill.main;import android.app.AlertDialog;import android.app.Fragment;import android.app.ProgressDialog;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.content.pm.ResolveInfo;import android.graphics.Bitmap;import android.net.ConnectivityManager;import android.net.Uri;import android.os.AsyncTask;import android.os.Build;import android.os.Bundle;import android.os.Handler;import android.os.Parcelable;import android.support.v4.os.AsyncTaskCompat;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.View;import android.view.ViewGroup;import android.webkit.CookieManager;import android.webkit.CookieSyncManager;import android.webkit.HttpAuthHandler;import android.webkit.JavascriptInterface;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.facebook.Session;import com.google.android.gms.common.ConnectionResult;import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.plus.Plus;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.IOException;import java.io.InputStream;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;public class DealsHomeFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {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;boolean val = false;String redirectUrls;String pageLoad;SharedPreferences.Editor amazonapiSettingsEditor;List<NameValuePair> amazonOrderTrackingData;int pageRedirect = 0;int snapdealPageLoad;String packageName = null;final ArrayList<String> redirectUrlsList = new ArrayList<String>();final ArrayList<String> pageLoadList = new ArrayList<String>();String flipkartUrl;View checkBoxView;boolean flipkartFlag;String saholicUrl;JSONObject jSaholic;JSONArray jsArraySaholic;String snapdealJavascriptUrl;String type1;ArrayList<String> orderSuccessUrlList;public GoogleApiClient mGoogleApiClient;ProgressDialog pd1 = null;@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 View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_deals_home, container, false);TestinAgent.init(getActivity());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().setJavaScriptEnabled(true);webView.getSettings().setBuiltInZoomControls(true);webView.addJavascriptInterface(new javascriptInterface(getActivity()), "HTMLOUT");webView.getSettings().setSavePassword(true);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("api.profittill")) {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");}}webView.loadUrl(url);webView.setWebViewClient(webViewClient);} 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);}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());}try {Log.d("Count", "Count " + apiData.getString("snapdeal.exception.count", "1"));for (String s : snapdealExceptionUrls) {if (url.contains(s)) {if (snapdealException <= Integer.parseInt(apiData.getString("snapdeal.exception.count", "1"))) {webView.reload();snapdealException += 1;}return false;}}} catch (Exception e) {e.printStackTrace();}}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 (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();Session.setActiveSession(null);redirectPage(alert);} else {if (!mGoogleApiClient.isConnected() || Session.getActiveSession() == null) {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(apiData.getString("contactus.url", ""))) {Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "6");startActivity(i);return true;}if (url.contains(apiData.getString("howitworks.url", ""))) {Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "7");startActivity(i);return true;}if (url.contains(apiData.getString("myprofile.url", "http://api.profittill.com/aboutus/profile"))) {Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "15");startActivity(i);return true;}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("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));}});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("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));}});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) {super.onReceivedError(view, errorCode, description, failingUrl);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).commit();}}@Overridepublic synchronized void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);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:if ((webView.canGoBack() && !webView.getUrl().contains(apiData.getString("mobile.website.url", null))) || 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("mobile.website.url", null))) {new AlertDialog.Builder(getActivity()).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit!").setMessage("Are you sure you want to close?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {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();} 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);}}}private void processFlipkartHtml() {FlipkartWebview fkView = new FlipkartWebview();amazonOrderHistoryWebView = new WebView(webView.getContext());amazonOrderHistoryWebView.setVisibility(View.GONE);String post=apiData.getString("flipkart.response.url","");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(getActivity()), "HTMLOUT");amazonOrderHistoryWebView.loadUrl(apiData.getString("flipkart.response.url",""));amazonOrderHistoryWebView.setWebViewClient(fkView);}class ProcessFlipkartHtml extends AsyncTask<String, Integer, String> {@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", jOb.toString()));namevaluepairs.add(new BasicNameValuePair("url", url.getString(i)));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) {}}@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 {if (landingURL.contains((apiData.getString("mobile.website.url", "")))) {new AlertDialog.Builder(getActivity()).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit!").setMessage("Are you sure you want to close?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {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;} 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 {Context mContext;/*** Instantiate the interface and set the context*/public javascriptInterface(Context c) {mContext = c;}/*** Show a toast from the web page*/@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","")));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();}}}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;}}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("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));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",""))) {view.loadUrl("javascript:window.HTMLOUT.orderpage('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");}}}}