Rev 17503 | Blame | 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.PackageManager;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.util.Base64;import android.util.Log;import android.view.KeyEvent;import android.view.LayoutInflater;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.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.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.LinkedList;import java.util.List;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;WebView webView;WebView amazonWebView,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 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();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");}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("User Not Logged In Amazon","User Not logged In 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(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;}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");}if(url.contains("dl.flipkart.com/dl/")){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) {//clearCookies(url);Log.d("Cookie after calling", "Cookie after calling" + CookieManager.getInstance().getCookie(url));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", null)) || url.equalsIgnoreCase("http://api.profittill.com/categorydeals")) {pd = new ProgressDialog(getActivity());pd.setTitle("Please wait");pd.setMessage("Loading..");pd.show();}//getDisplayActionBar(url);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 {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();}storeSubTagId(url);}} catch (Exception e) {e.printStackTrace();}}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);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.contains(apiData.getString("mobile.website.url", "")) || url.equalsIgnoreCase("http://api.profittill.com/categorydeals")) {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>');");pd1.dismiss();}}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;}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 boolean appInstalledOrNot(String uri) {PackageManager pm = getActivity().getPackageManager();boolean app_installed = false;try {pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);app_installed = true;}catch (PackageManager.NameNotFoundException e) {app_installed = false;}return app_installed ;}@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<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(String... arg0) {HttpClient httpclient = new DefaultHttpClient();try {ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();nameValuePairs.add(new BasicNameValuePair("pushdata",obj.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(obj.toString());StringEntity se = new StringEntity(obj.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);}}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 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();}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();}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;}}}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();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){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>');");}});}}