Subversion Repositories SmartDukaan

Rev

Rev 22830 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.saholic.profittill.main;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.media.ExifInterface;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Parcelable;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.support.v4.os.AsyncTaskCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsMessage;
import android.telephony.TelephonyManager;
import android.util.Base64;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.HttpAuthHandler;
import android.webkit.JavascriptInterface;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.plus.Plus;
import com.google.firebase.iid.FirebaseInstanceId;
import com.kosalgeek.android.photoutil.CameraPhoto;
import com.kosalgeek.android.photoutil.GalleryPhoto;
import com.kosalgeek.android.photoutil.ImageLoader;
import com.saholic.profittill.Constants.ProfitTillConstants;
import com.saholic.profittill.Database.OrderTransactionDetails;
import com.saholic.profittill.Network.NotificationCount;
import com.saholic.profittill.R;
import com.saholic.profittill.Utils.UtilityFunctions;
import com.testin.agent.TestinAgent;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DealsHomeFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

    private File storageDir;
    File photoFile = null;

    public DealsHomeFragment() {

    }

    static boolean FLAG = false, REDIRECT = false, PAGE_LOAD = false, PAYTMFLAG = false, isPause = false, Flipkartflag = false;
    int snapdealException = 0;
    static String BASIC_AUTH = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
    public static WebView webView;
    WebView amazonWebView, OrderHistoryWebView, amazonOrderHistoryWebView, amazonOrderHistoryCancelledWebView, paytmWebView;
    WebView amazonAllUrlsWebView;
    SharedPreferences userData;
    SharedPreferences apiData;
    SharedPreferences flipkartData;
    SharedPreferences.Editor userDataEditor;
    SharedPreferences.Editor apiSettingsEditor;
    SharedPreferences.Editor flipkartDataEditor;
    OrderTransactionDetails orderDetails;
    LinkedList<ArrayList<NameValuePair>> orderLinkedList;
    SharedPreferences amazonData;
    String affliateUrl;
    String landingURL;
    String regId;
    String temp;
    String msg = "";
    ArrayList<NameValuePair> messageNameValuePair;
    boolean val = false;
    String redirectUrls;
    String pageLoad;
    SharedPreferences.Editor amazonapiSettingsEditor;
    List<NameValuePair> amazonOrderTrackingData;
    int pageRedirect = 0;
    int snapdealPageLoad;
    final ArrayList<String> redirectUrlsList = new ArrayList<String>();
    final ArrayList<String> pageLoadList = new ArrayList<String>();
    String flipkartUrl;
    View checkBoxView;
    boolean glogout;
    boolean flipkartFlag;
    String saholicUrl;
    JSONObject jSaholic;
    JSONArray jsArraySaholic;
    String type1;
    ArrayList<String> orderSuccessUrlList;
    public GoogleApiClient mGoogleApiClient;
    ProgressDialog pd1 = null;
    private static final String TAG = DealsHomeFragment.class.getSimpleName();
    private String mCM;
    private ValueCallback<Uri> mUM;
    private ValueCallback<Uri[]> mUMA;
    private final static int FCR=1;
    GalleryPhoto galleryPhoto;
    CameraPhoto cameraPhoto;
    boolean doubleBackToExitPressedOnce = false;
    String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);
        setHasOptionsMenu(true);

    }

    @Override
    public 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);
        }*/
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

            case android.R.id.home:
                Intent i = new Intent(getActivity(), MainActivity.class);
                i.putExtra("displayView", "13");
                startActivity(i);
                return true;

        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void startActivityForResult(Intent intent, int requestCode, Bundle options) {
        super.startActivityForResult(intent, requestCode, options);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        View rootView = inflater.inflate(R.layout.fragment_deals_home, container, false);
        TestinAgent.init(getActivity());
        int InstanceId =  DealsHomeFragment.class.hashCode();
        AppCompatActivity activity = (AppCompatActivity) getActivity();
        ActionBar actionBar = activity.getSupportActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
        galleryPhoto = new GalleryPhoto(getActivity());
        cameraPhoto = new CameraPhoto(getActivity());
        final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
        upArrow.setColorFilter(getResources().getColor(R.color.grey_black), PorterDuff.Mode.SRC_ATOP);
        actionBar.setHomeAsUpIndicator(upArrow);
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);
        actionBar.setCustomView(R.layout.actionbarprofittill);
        actionBar.hide();
        amazonData = getActivity().getSharedPreferences("Amazon_Data", Context.MODE_PRIVATE);
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
        flipkartData = getActivity().getSharedPreferences("Flipkart_Data", Context.MODE_PRIVATE);
        userDataEditor = userData.edit();
        apiSettingsEditor = apiData.edit();
        TestinAgent.setUserInfo(userData.getString("id", ""));
        amazonapiSettingsEditor = amazonData.edit();
        flipkartDataEditor = flipkartData.edit();
        affliateUrl = getArguments().getString("key");
        orderDetails = new OrderTransactionDetails(getActivity());
        orderSuccessUrlList = new ArrayList<String>();
        String issues = apiData.getString("list.order.success.url", "blank");
        StringTokenizer st2 = new StringTokenizer(issues, "|");

        while (st2.hasMoreElements()) {
            orderSuccessUrlList.add(st2.nextToken());
        }
        if (isInternetOn()) {
            if (orderDetails.countTotalRecords() > 0) {
                sendQueuedResponse();
            }
            type1 = userData.getString("type", null);
            if (type1 != null && type1.equalsIgnoreCase("google")) {
                mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
                        .addConnectionCallbacks(this)
                        .addOnConnectionFailedListener(this).addApi(Plus.API)
                        .addScope(Plus.SCOPE_PLUS_LOGIN).build();
                mGoogleApiClient.connect();
            }
            redirectUrls = apiData.getString("profitmandi.redirect.urls", "");
            StringTokenizer st = new StringTokenizer(redirectUrls, "|");
            while (st.hasMoreTokens()) {
                redirectUrlsList.add(st.nextToken());
            }
            pageLoad = apiData.getString("profitmandi.pageloads.pattern", "");
            StringTokenizer st1 = new StringTokenizer(pageLoad, "|");
            while (st1.hasMoreTokens()) {
                pageLoadList.add(st1.nextToken());
            }
            WebClientClass webViewClient = new WebClientClass();
            if (webView != null) {
                webView.loadUrl("about:blank");
            }
            webView = (WebView) rootView.findViewById(R.id.webView);
            webView.setClickable(true);
            webView.setFocusableInTouchMode(true);
            webView.getSettings().setDomStorageEnabled(true);
            webView.getSettings().setDatabaseEnabled(true);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.getSettings().setAllowContentAccess(true);
            webView.getSettings().setAllowFileAccess(true);

            webView.addJavascriptInterface(new javascriptInterface(webView),"HTMLOUT");
            if(Build.VERSION.SDK_INT >= 21){
                webView.getSettings().setMixedContentMode(0);
                webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            }else if(Build.VERSION.SDK_INT >= 19){
                webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            }else if(Build.VERSION.SDK_INT < 19){
                webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            }
            webView.setWebViewClient(new Callback());
            webView.setWebChromeClient(new WebChromeClient(){
                //For Android 3.0+
                public void openFileChooser(ValueCallback<Uri> uploadMsg){
                    mUM = uploadMsg;
                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
                    i.addCategory(Intent.CATEGORY_OPENABLE);
                    i.setType("*/*");
                    getActivity().startActivityForResult(Intent.createChooser(i,"File Chooser"), FCR);
                }
                // For Android 3.0+, above method not supported in some android 3+ versions, in such case we use this
                public void openFileChooser(ValueCallback uploadMsg, String acceptType){
                    mUM = uploadMsg;
                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
                    i.addCategory(Intent.CATEGORY_OPENABLE);
                    i.setType("*/*");
                    getActivity().startActivityForResult(
                            Intent.createChooser(i, "File Browser"),
                            FCR);
                }
                //For Android 4.1+
                public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
                    mUM = uploadMsg;
                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
                    i.addCategory(Intent.CATEGORY_OPENABLE);
                    i.setType("*/*");
                    getActivity().startActivityForResult(Intent.createChooser(i, "File Chooser"), DealsHomeFragment.FCR);
                }
                //For Android 5.0+
                public boolean onShowFileChooser(
                        WebView webView, ValueCallback<Uri[]> filePathCallback,
                        WebChromeClient.FileChooserParams fileChooserParams){
                    if(mUMA != null){
                        mUMA.onReceiveValue(null);
                    }
                    mUMA = filePathCallback;
                    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE );
                    if(takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null){
                        try{
                            photoFile = createImageFile();
                            takePictureIntent.putExtra("PhotoPath", mCM);
                        }catch(IOException ex){
                            Log.e(TAG, "Image file creation failed", ex);
                        }
                        if(photoFile != null){
                            mCM = "file:" + photoFile.getAbsolutePath();
                           takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
                        }else{
                            takePictureIntent = null;
                        }
                    }
                    Intent contentSelectionIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
                    contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
                    String [] mimeTypes = {"image/*", "application/pdf"};
                    contentSelectionIntent.setType("*/*");
                    contentSelectionIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
                    // contentSelectionIntent.setType("image/*");
                    Intent[] intentArray;
                    if(takePictureIntent != null){
                        intentArray = new Intent[]{takePictureIntent};
                    }else{
                        intentArray = new Intent[0];
                    }

                    Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
                    chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
                    chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");
                    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
                    startActivityForResult(chooserIntent, FCR);
                    return true;
                }
            });
            webView.getSettings().setSavePassword(true);
            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.setAcceptCookie(true);

            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
                webView.getSettings().setAllowContentAccess(true);
                CookieManager cookieManager1 = CookieManager.getInstance();
                cookieManager1.setAcceptThirdPartyCookies(webView, true);
            }
            if (Uri.parse(getArguments().getString("key")).getHost().contains("app.profitmandi")) {
                userDataEditor.putString("saholic.data", UtilityFunctions.clearCookiesNew(getArguments().getString("key"), getActivity())).commit();
            }
            String url = getArguments().getString("key");
            if (Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
                CookieSyncManager.createInstance(getActivity());
                CookieManager cookieManager1 = CookieManager.getInstance();
                cookieManager1.setCookie(url, "token=" + userData.getString("token", ""));
                cookieManager1.setCookie(url, "walletAuthentication=true");
                cookieManager1.setCookie(url, "shopcluesActive=true");
                cookieManager1.setCookie(url, "paytmActive=true");
                cookieManager1.setCookie(url, "shareApps=true");
                cookieManager1.setCookie(url, "homeshop18=true");
                cookieManager1.setCookie(url, "isRedirect=true");
            }
            if (!(userData.getBoolean("paytmLoggedIn", false))) {
                Log.d("User Not Logged In", "User Not logged In");
            } else {
                if (userData.getString("paytmOrder", "").equalsIgnoreCase("true")) {
                    long nextFetchTime = userData.getLong("paytmNextFetchTime", 0);
                    if (nextFetchTime == 0 || nextFetchTime < System.currentTimeMillis()) {
                        if (isInternetOn()) {
                            new PaytmOrderURL().execute();
                        }
                    } else {
                        Log.d("Paytm False", "Paytm Time False");
                    }
                } else {
                    Log.d("Paytm False", "Paytm False No orders");
                }
            }
            if (!(userData.getBoolean("amazonLoggedIn", false))) {
                Log.d("Not In Amazon", "Amazon");
            }
            else {
                if (userData.getString("amazonOrder", "").equalsIgnoreCase("true")) {
                    long nextFetchTime = userData.getLong("amazonNextFetchTime", 0);
                    if (nextFetchTime == 0 || nextFetchTime < System.currentTimeMillis()) {
                        if (isInternetOn()) {
                            new FetchOrderURLS().execute();
                        }
                    }
                    else {
                        Log.d("Amazon False", "Amazon Time False" + userData.getLong("amazonNextFetchTime", 0));
                    }
                } else {
                    Log.d("Amazon False", "Amazon False No orders");
                }
            }
            // Map <String, String> extraHeaders = new HashMap<String, String>();
            // extraHeaders.put("Auth-Token",userData.getString("token",""));
            webView.setWebViewClient(webViewClient);
            webView.loadUrl(url);

        }

        else {
            SearchFragment nextFrag = new SearchFragment();
            Bundle args = new Bundle();
            args.putString("finishingurl", getArguments().getString("key"));
            args.putString("fragmentNumber", "1");
            nextFrag.setArguments(args);
            getActivity().getFragmentManager().beginTransaction()
                    .replace(R.id.frame_container, nextFrag)
                    .addToBackStack(null)
                    .commit();
        }
        return rootView;
    }


    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }

    BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            final Bundle bundle = intent.getExtras();

            try {
                if (bundle != null) {
                    final Object[] pdusObj = (Object[]) bundle.get("pdus");
                    for (int i = 0; i < pdusObj.length; i++) {

                        SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                        String phoneNumber = currentMessage.getDisplayOriginatingAddress();

                        String senderNum = phoneNumber;
                        String message = currentMessage.getDisplayMessageBody();

                        String lastTwo = null;
                        if (senderNum != null && senderNum.length() >= 6) {
                            lastTwo = senderNum.substring(senderNum.length() - 6);
                        }
                        try {
                            if (lastTwo.equalsIgnoreCase(apiData.getString("Sender_CLI","PROFTM"))){
                                messageNameValuePair = new ArrayList<>();
                                messageNameValuePair.add(new BasicNameValuePair("message",message));
                                getActivity().unregisterReceiver(broadcastReceiver);
                                new SendOtpMessage().execute();
                            }
                            else{
                                getActivity().registerReceiver(broadcastReceiver, new IntentFilter(SMS_RECEIVED));
                            }}
                        catch(Exception e){
                            e.printStackTrace();
                        }
                    }
                }

            }
            catch (Exception e) {
                e.printStackTrace();

            }
        }
    };

    JSONObject obj;

    @Override
    public void onConnected(Bundle bundle) {

    }

    @Override
    public void onConnectionSuspended(int i) {

    }

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {

    }



    public class WebClientClass extends WebViewClient {
        ProgressDialog pd = null;

        ProgressDialog pd2 = null;


        @Override
        public void onReceivedHttpAuthRequest(WebView view,
                                              HttpAuthHandler handler, String host, String realm) {

            handler.proceed("dtr", "dtr18Feb2015");
        }

        @Override
        public 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 (!mGoogleApiClient.isConnected()) {
                            redirectPage(alert);
                        }
                    }
                } catch (Exception e) {
                    redirectPage(alert);
                }
                return true;
            }
            if (url.contains("com.saholic.profittill")) {
                Intent intent = null;
                try {
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getActivity().getPackageName()));
                } catch (android.content.ActivityNotFoundException anfe) {
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getActivity().getPackageName()));
                }
                startActivity(intent);
                return true;
            }
            if (snapdealPageLoad == 1) {
                pd2 = new ProgressDialog(getActivity());
                pd2.setMessage("Wait for a moment and click again.");
                pd2.setProgress(view.getProgress());
                pd2.show();
                return true;
            }
            if (url.startsWith("tel")) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
            }

         /*   if (url.contains("intent://send")) {
                Intent intent = null;
                try {
                    intent = new Intent().parseUri(url, Intent.URI_INTENT_SCHEME);
                } catch (URISyntaxException e) {
                    e.printStackTrace();
                }
                startActivity(intent);
                return true;
            }*/

            if (url.contains("mailto")) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
            }


            return false;

        }


        @Override
        public 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() {
                                    @Override
                                    public 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() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int id) {
                                        view.loadUrl((apiData.getString("domain","http://app.profitmandi.com")));

                                    }
                                });
                        dialog = builder.create();
                        dialog.show();
                    } else if (flipkartData.getInt("showagainflag", 0) == 3) {
                        AlertDialog dialog;
                        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                        checkBoxView = View.inflate(getActivity(), R.layout.checkboxlayout, null);
                        CheckBox checkBox = (CheckBox) checkBoxView.findViewById(R.id.checkbox);
                        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                            @Override
                            public 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() {
                                    @Override
                                    public 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() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int id) {
                                        view.loadUrl((apiData.getString("domain","http://app.profitmandi.com")));

                                    }
                                });
                        dialog = builder.create();
                        dialog.show();
                    } else {
                        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
                        startActivity(i);
                    }
                    view.stopLoading();
                } else {
                    for (String s : pageLoadList) {
                        if (url.contains(s)) {
                            PAGE_LOAD = true;
                        }
                    }
                    if (PAGE_LOAD) {
                        snapdealPageLoad = 1;
                        PAGE_LOAD = false;
                    } else {
                        snapdealPageLoad = 0;
                        for (String s : redirectUrlsList) {
                            if (url.contains(s)) {
                                REDIRECT = true;
                                break;
                            }
                        }
                        if (REDIRECT) {
                            pageRedirect = 2;
                            REDIRECT = false;
                        }
                        else if (pageRedirect == 2 || pageRedirect == 1) {
                            Toast.makeText(getActivity(), "Redirecting to deals...", Toast.LENGTH_SHORT).show();
                            Intent i = new Intent(getActivity(), MainActivity.class);
                            i.putExtra("displayView", "31");
                            i.putExtra("redirectUrl", apiData.getString("redirect.url", "") + "?user_id=" + userData.getString("id", ""));
                            startActivity(i);
                            pageRedirect = 0;
                        }
                        else {
                            landingURL = url;
                           /* if (url.contains(apiData.getString("mobile.website.url"," ")) || url.equalsIgnoreCase("http://api.profittill.com/categorydeals") || url.contains(apiData.getString("notification.page.url", "http://api.profittill.com/users/usernotification"))) {
                                pd = new ProgressDialog(getActivity());
                                pd.setTitle("Please wait");
                                pd.setMessage("Loading..");
                                pd.show();
                            }*/
                            getOrderSuccessUrlConfirmation(url);
                            if (displayActionBar) {
                                pd1 = new ProgressDialog(getActivity());
                                pd1.setTitle("Please wait");
                                pd1.setMessage("Loading..");
                                pd1.show();
                            }
                        }
                    }
                    if (Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data", "false").equalsIgnoreCase("true")) {

                    }
                    else {
                        JSONObject j = new JSONObject();
                        JSONArray jsArray = new JSONArray();
                        j.put("url", url);
                        j.put("user_id", userData.getString("id", null));
                        j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
                        jsArray.put(j);
                        AsyncTaskCompat.executeParallel(new pushData(), new JSONObject().put("pushdata", jsArray));

                    }
                    storeSubTagId(url);
                }
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
           try{
            if (getActivity() != null) {
                SearchFragment nextFrag = new SearchFragment();
                Bundle args = new Bundle();
                args.putString("finishingurl", failingUrl);
                nextFrag.setArguments(args);
                getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container,nextFrag).addToBackStack(null).commitAllowingStateLoss();

            }}
            catch (Exception e){
                e.printStackTrace();
            }

            super.onReceivedError(view, errorCode, description, failingUrl);
        }


        @Override
        public synchronized void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

            if(url.contains(apiData.getString("Web_Uri","http://app.profitmandi.com/entry-point"))){


                // if(url.contains(ProfitTillConstants.Web_Uri)){
                StringBuffer commandsBuffer = new StringBuffer("javascript:");
                commandsBuffer.append("document.getElementById('authToken').value ='" +userData.getString("token","")+ "';");
                commandsBuffer.append("document.getElementById('androidId').value ='" +UtilityFunctions.androidId(getActivity()) + "';");
                String js1 =commandsBuffer.toString();
                if(Build.VERSION.SDK_INT >= 19){
                    view.evaluateJavascript(js1, new ValueCallback<String>() {
                        @Override
                        public void onReceiveValue(String s) {
                        }
                    });
                }
                else {
                    view.loadUrl(js1);
                }


                String js2 =("javascript:document.getElementById('authTokenSubmit').click()");
                view.loadUrl(js2);
                String js = ("javascript:window.localStorage.removeItem('android.otpReceived');");
                Log.d("storage",js);
                view.loadUrl(js);
            }

           if(url.contains(apiData.getString("domain","http://app.profitmandi.com "))|| url.contains("about:blank")){
                // ((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                ((AppCompatActivity)getActivity()).getSupportActionBar().hide();
            }
            else{
                ((AppCompatActivity)getActivity()).getSupportActionBar().show();
            }

                view.loadUrl("javascript:try{" +
                        "var lastUrl=document.URL;" +
                        "setInterval(function(){var currentUrl=document.URL;" +
                        "if(currentUrl!=lastUrl){window.HTMLOUT.angularUrls(currentUrl);lastUrl=currentUrl;}},2000)" +
                        "}catch(error){Android.onError(error.message);}");

            try {
                if (url.equalsIgnoreCase("about:blank")) {
                    Log.d("Blankl Url", "Blank Url");
                }
                else {
                    if (getActivity() != null) {
                        if (url.contains(apiData.getString("notification.page.url", "http://api.profittill.com/users/usernotification"))) {
                            String notificationUrl = apiData.getString("notification.count", "http://45.33.50.227:3001/getNotificationCount") + "?user_id=" + userData.getString("id", "") + "&android_id=" + UtilityFunctions.androidId(getActivity());
                            new NotificationCount().getCount(getActivity(), null, notificationUrl);
                            new Handler().postDelayed(new Runnable() {
                                @Override
                                public 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() {
                        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
                WebView webView = (WebView) v;
                switch (keyCode) {
                    case KeyEvent.KEYCODE_BACK:
                        String veb=webView.getUrl();
                        if ((webView.canGoBack() && !webView.getUrl().contains(apiData.getString("dashboard","http://app.profitmandi.com/pages/home/dashboard")) && !webView.getUrl().contains(apiData.getString("mobileOtp","http://app.profitmandi.com/pages/mobileOtp"))&& !webView.getUrl().contains(apiData.getString("registration","http://app.profitmandi.com/pages/registration")) && !webView.getUrl().contains(apiData.getString("checkRegistration","http://app.profitmandi.com/pages/checkRegistration"))&&!webView.getUrl().contains(apiData.getString("thankYou","http://app.profitmandi.com/pages/home/thankYou")))|| pageRedirect == 2) {
                            webView.goBack();
                            pageRedirect = 0;
                            snapdealPageLoad = 0;
                            return true;
                        } else if (affliateUrl.contains("flipkart") || affliateUrl.contains("amazon") || affliateUrl.contains("snapdeal") || affliateUrl.contains("saholic") || affliateUrl.contains(apiData.getString("myorders.url", "")) || affliateUrl.contains(apiData.getString("search.url", ""))) {
                            Intent i = new Intent(getActivity(), MainActivity.class);
                            i.putExtra("displayView", "0");
                            startActivity(i);
                            return true;
                        }
                        else if (webView.getUrl().contains(apiData.getString("domain","http://app.profitmandi.com"))) {
                            //else if(webView.getUrl().contains(ProfitTillConstants.Web_Uri)){
                            if (doubleBackToExitPressedOnce) {
                                new AlertDialog.Builder(getActivity())
                                        .setIcon(R.drawable.symbol)
                                        .setTitle("Exit!")
                                        .setMessage("Are you sure you want to close?")
                                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                                            @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        if(userData.getString("userStatus","").equals("notRegistered")||userData.getString("userStatus","").equals("registered")||userData.getString("userStatus","").equals("notVerifiedRetailer"))
                                        {
                                            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
                                            mGoogleApiClient.disconnect();
                                            userDataEditor.clear().commit();
                                            mGoogleApiClient.connect();
                                            userDataEditor.clear().commit();
                                            startActivity(new Intent(getActivity(), LoginActivity.class));

                                        }
                                        else{
                                           Intent startMain = new Intent(Intent.ACTION_MAIN);
                                            startMain.addCategory(Intent.CATEGORY_HOME);
                                            startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                            startActivity(startMain);
                                        }
                                    }

                                })
                                .setNegativeButton("No", null)
                                .show();
                        return true;
                            }
                            doubleBackToExitPressedOnce = true;
                            Toast.makeText(getActivity(), "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

                            new Handler().postDelayed(new Runnable() {

                                @Override
                                public void run() {
                                    doubleBackToExitPressedOnce = false;
                                }
                            }, 5000);
                        }
                        else {
                            Intent i = new Intent(getActivity(), MainActivity.class);
                            i.putExtra("displayView", "0");
                            startActivity(i);
                            return true;
                        }

                        break;
                }
            }
            return false;
                }
            });
        }
    }
            catch (Exception e) {
        e.printStackTrace();
        TestinAgent.uploadException(getActivity(), "On Page Finished", e);
      }
      }}

       public class Callback extends WebViewClient{
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
            Toast.makeText(getActivity(), "Failed loading app!", Toast.LENGTH_SHORT).show();
        }
       }
    // Create an image file
      private File createImageFile() throws IOException{
        @SuppressLint("SimpleDateFormat") String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "img_"+timeStamp+"_";
          storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        return File.createTempFile(imageFileName,".jpg",storageDir);
      }




    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);

        if(Build.VERSION.SDK_INT >= 21) {
            //Check if response is positive
            if(resultCode == Activity.RESULT_OK) {
                if(requestCode == FCR) {
                    if(null == mUMA) {
                        return;
                    }
                    if (intent == null) {
                        //Capture Photo if no image available
                        if (mCM != null) {
                            new ImageCompression().execute(photoFile.getPath());
                        }
                    } else {

                        Uri dataString = intent.getData();
                        String newPath=getRealPathFromURI_API19(getActivity(), dataString);

                        new ImageCompression().execute(newPath);
                    }
                }
            }
        } else {
            if (requestCode == FCR) {
                if (null == mUM) return;
                Uri result = intent == null || resultCode != Activity.RESULT_OK ? null : intent.getData();
                mUM.onReceiveValue(result);
                mUM = null;
            }
        }
        if (resultCode != Activity.RESULT_OK) {
            mUMA.onReceiveValue(null);
            mUMA =null;
        }

    }

    @TargetApi(Build.VERSION_CODES.KITKAT)
    public static String getRealPathFromURI_API19(Context context, Uri uri){
        String filePath = "";
        String wholeID = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
            wholeID = DocumentsContract.getDocumentId(uri);
        }

        // Split at colon, use second item in the array
        String id = wholeID.split(":")[1];

        String[] column = { MediaStore.Images.Media.DATA };

        // where id is equal to
        String sel = MediaStore.Images.Media._ID + "=?";

        Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                column, sel, new String[]{ id }, null);

        int columnIndex = cursor.getColumnIndex(column[0]);

        if (cursor.moveToFirst()) {
            filePath = cursor.getString(columnIndex);
        }
        cursor.close();
        return filePath;
    }


    public class ImageCompression extends AsyncTask<String, Void, Void> {

        private static final float maxHeight = 800.0f;
        private static final float maxWidth = 800.0f;
        private File imageFile = null;
        private Context context;
        Uri[] results = null;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            //making progress dialog visible
            //showProgressBar();
        }

        @Override
        protected Void doInBackground(String... strings) {
            try {
                if (strings.length == 0 || strings[0] == null)
                    return null;
                //obtaining image array after the required image is compressed
                imageFile = compressImage(strings[0]);
            } catch (Exception e) {
//                CrashLogs.crashLogger(e);
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            try {
                //sending data to server using multipart request
                //sendMultiPartRequest(imageArray);

                if(imageFile !=null){

                    results = new Uri[]{Uri.fromFile(imageFile)};
                    mUMA.onReceiveValue(results);
                    mUMA = null;
                }

            } catch (Exception e) {
                //CrashLogs.crashLogger(e);
            }
        }

        //process to compress image to send it to the server
        public File compressImage(String imagePath) {
            Bitmap scaledBitmap = null;

            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            Bitmap bmp = BitmapFactory.decodeFile(imagePath, options);

            int actualHeight = options.outHeight;
            int actualWidth = options.outWidth;

            float imgRatio = (float) actualWidth / (float) actualHeight;
            float maxRatio = maxWidth / maxHeight;

            if (actualHeight > maxHeight || actualWidth > maxWidth) {
                if (imgRatio < maxRatio) {
                    imgRatio = maxHeight / actualHeight;
                    actualWidth = (int) (imgRatio * actualWidth);
                    actualHeight = (int) maxHeight;
                } else if (imgRatio > maxRatio) {
                    imgRatio = maxWidth / actualWidth;
                    actualHeight = (int) (imgRatio * actualHeight);
                    actualWidth = (int) maxWidth;
                } else {
                    actualHeight = (int) maxHeight;
                    actualWidth = (int) maxWidth;
                }
            }

            options.inSampleSize = calculateInSampleSize(options, actualWidth, actualHeight);
            options.inJustDecodeBounds = false;
            options.inDither = false;
            options.inPurgeable = true;
            options.inInputShareable = true;
            options.inTempStorage = new byte[16 * 1024];

            try {
                bmp = BitmapFactory.decodeFile(imagePath, options);
            } catch (OutOfMemoryError exception) {
//                CrashLogs.crashLogger(exception);

            }
            try {
                scaledBitmap = Bitmap.createBitmap(actualWidth, actualHeight, Bitmap.Config.RGB_565);
            } catch (OutOfMemoryError exception) {
//                CrashLogs.crashLogger(exception);
            }

            float ratioX = actualWidth / (float) options.outWidth;
            float ratioY = actualHeight / (float) options.outHeight;
            float middleX = actualWidth / 2.0f;
            float middleY = actualHeight / 2.0f;

            Matrix scaleMatrix = new Matrix();
            scaleMatrix.setScale(ratioX, ratioY, middleX, middleY);

            Canvas canvas = new Canvas(scaledBitmap);
            canvas.setMatrix(scaleMatrix);
            canvas.drawBitmap(bmp, middleX - bmp.getWidth() / 2, middleY - bmp.getHeight() / 2, new Paint(Paint.FILTER_BITMAP_FLAG));

            if (bmp != null) {
                bmp.recycle();
            }

            ExifInterface exif;
            try {
                exif = new ExifInterface(imagePath);
                int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 0);
                Matrix matrix = new Matrix();
                if (orientation == 6) {
                    matrix.postRotate(90);
                } else if (orientation == 3) {
                    matrix.postRotate(180);
                } else if (orientation == 8) {
                    matrix.postRotate(270);
                }
                scaledBitmap = Bitmap.createBitmap(scaledBitmap, 0, 0, scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix, true);
            } catch (IOException e) {
//                CrashLogs.crashLogger(e);
            }
            File outputFile = null;
            try {


                outputFile = getOutputMediaFile(temp);

                try {
                    FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
                    scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 80, fileOutputStream);
                    fileOutputStream.flush();
                    fileOutputStream.close();
                } catch (Exception e) {
//                    CrashLogs.crashLogger(e);
                }
            } catch (Exception e) {
//                CrashLogs.crashLogger(e);
            }
            /*try {
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 80, byteArrayOutputStream);
                return byteArrayOutputStream.toByteArray();
            } catch (Exception e) {
//                CrashLogs.crashLogger(e);
            }*/
            return outputFile;
        }

        /*
        * method to calculate inSample size(used while compressing the image).
        * */
        public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
            int inSampleSize = 1;
            try {
                final int height = options.outHeight;
                final int width = options.outWidth;


                if (height > reqHeight || width > reqWidth) {
                    final int heightRatio = Math.round((float) height / (float) reqHeight);
                    final int widthRatio = Math.round((float) width / (float) reqWidth);
                    inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
                }
                final float totalPixels = width * height;
                final float totalReqPixelsCap = reqWidth * reqHeight * 2;

                while (totalPixels / (inSampleSize * inSampleSize) > totalReqPixelsCap) {
                    inSampleSize++;
                }

                return inSampleSize;
            } catch (Exception e) {

//                CrashLogs.crashLogger(e);
                return inSampleSize;
            }
        }
    }

    public static final String IMAGE_DIRECTORY_NAME = "ProfitMandi";

    public File getOutputMediaFile(String name) {
        // External sdcard location
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                IMAGE_DIRECTORY_NAME);
        // Create the storage directory if it does not exist
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                return null;
            }
        }
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator
                + name +timeStamp+ ".jpg");
        return mediaFile;
    }


    private void processFlipkartHtml() {
        FlipkartWebview fkView = new FlipkartWebview();
        amazonOrderHistoryWebView = new WebView(webView.getContext());
        amazonOrderHistoryWebView.setVisibility(View.GONE);
        String post=apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts");
        amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36");
        amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
        amazonOrderHistoryWebView.addJavascriptInterface(new javascriptInterface(webView), "HTMLOUT");
        amazonOrderHistoryWebView.loadUrl(apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts"));
        amazonOrderHistoryWebView.setWebViewClient(fkView);
    }
    class ProcessFlipkartHtml extends AsyncTask<String, Integer, String> {
        ProgressDialog pg1 = null;
        @Override
        protected void onPreExecute() {

            super.onPreExecute();


        }
        @Override
        protected String doInBackground(String... arg0) {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "flipkart"));
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsRawHtml));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                int status = response.getStatusLine().getStatusCode();

                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
                JSONObject jobj =jObjGmail.getJSONObject("result");
                JSONObject headers = jobj.getJSONObject("headers");
                JSONArray url =jobj.getJSONArray("urls");
                for (int i = 0; i <url.length(); i++) {
                    HttpClient client = new DefaultHttpClient();
                    HttpGet get = new HttpGet(url.getString(i));
                    Map<String, String> map = new HashMap<String, String>();
                    Iterator iter = headers.keys();
                    while (iter.hasNext()) {
                        String key = (String) iter.next();
                        String value = headers.getString(key);
                        get.setHeader(key, value);
                    }
                    HttpResponse resp = client.execute(get);
                    HttpEntity ent = resp.getEntity();
                    JSONObject jOb = new JSONObject(EntityUtils.toString(ent));

                    HttpClient http = new DefaultHttpClient();
                    ArrayList<NameValuePair> namevaluepairs = new ArrayList<>();
                    namevaluepairs.add(new BasicNameValuePair("html",UtilityFunctions.compress(jOb.toString())));
                    namevaluepairs.add(new BasicNameValuePair("url", url.getString(i)));
                    namevaluepairs.add(new BasicNameValuePair("zip","1"));
                    HttpPost post = new HttpPost(apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "flipkart"));
                    post.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
                    post.setEntity(new UrlEncodedFormEntity(namevaluepairs));
                    HttpResponse res = http.execute(post);
                    int sta = res.getStatusLine().getStatusCode();
                }

            }
            catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            return null;
        }
        @Override
        protected void onPostExecute(String jsonObject) {
            super.onPostExecute(jsonObject);


        }}

    @Override
    public void onDetach() {
        super.onDetach();
        if(webView != null) {
            webView.clearHistory();
            webView.removeAllViews();
            webView.clearView();
            webView.destroy();
        }

    }


    @Override
    public void onResume() {
        super.onResume();
        getView().setFocusableInTouchMode(true);
        getView().requestFocus();
        getView().setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
                   try {
                       String veb=webView.getUrl();
                        if (webView.getUrl().contains(apiData.getString("dashboard","http://app.profitmandi.com/pages/home/dashboard"))||webView.getUrl().contains(apiData.getString("mobileOtp","http://app.profitmandi.com/pages/mobileOtp"))||webView.getUrl().contains(apiData.getString("registration","http://app.profitmandi.com/pages/registration"))||webView.getUrl().contains(apiData.getString("checkRegistration","http://app.profitmandi.com/pages/checkRegistration"))||webView.getUrl().contains(apiData.getString("thankYou","http://app.profitmandi.com/pages/home/thankYou"))) {
                        if (doubleBackToExitPressedOnce) {
                        new AlertDialog.Builder(getActivity())
                                .setIcon(R.drawable.symbol)
                                .setTitle("Exit!")
                                .setMessage("Are you sure you want to close?")
                                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                        if(userData.getString("userStatus","").equals("notRegistered")||userData.getString("userStatus","").equals("registered")||userData.getString("userStatus","").equals("notVerifiedRetailer"))
                        {
                            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
                                    mGoogleApiClient.disconnect();
                                    userDataEditor.clear().commit();
                                    mGoogleApiClient.connect();
                                    startActivity(new Intent(getActivity(), LoginActivity.class));
                        }
                         else{
                            Intent startMain = new Intent(Intent.ACTION_MAIN);
                            startMain.addCategory(Intent.CATEGORY_HOME);
                            startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                            startActivity(startMain);
                        }}

                })
                        .setNegativeButton("No", null)
                        .show();
                        return true;
                    }
                    doubleBackToExitPressedOnce = true;
                    Toast.makeText(getActivity(), "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

                    new Handler().postDelayed(new Runnable() {

                        @Override
                        public void run() {
                            doubleBackToExitPressedOnce = false;
                        }
                    }, 5000);
                    }
                    else {
                    if (webView.canGoBack()) {
                        webView.goBack();
                    } else {
                        Intent i = new Intent(getActivity(), MainActivity.class);
                        i.putExtra("displayView", "0");
                        startActivity(i);
                    }
                    return true;
                    }}
                    catch (Exception e) {
                        e.printStackTrace();
                        return false;
                    }
                }
                return false;
            }

        });

      }


    public void fetchOrderDetails() {
        if (isInternetOn()) {
            new FetchOrderURLS().execute();
        }
    }

    public void pushDataInAmazon(String orderId) {

        AmazonOrderDetails amazonOrderClient = new AmazonOrderDetails();
        nameValuePairsRawHtmlAmazon = new ArrayList<NameValuePair>();
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("id", orderId));
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("store_id", apiData.getString("store.code.amazon", null)));
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("order_url", amazonData.getString("amazonurl", "")));
        //nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("sub_tag",userData.getString("subtag",null)));
        amazonWebView.loadUrl(amazonData.getString("amazonurl", ""));
        amazonWebView.setWebViewClient(amazonOrderClient);

    }

    public void storeSubTagId(String url) {

        if (url.contains(apiData.getString("store.subtag.snapdeal", null)) || url.contains(apiData.getString("store.subtag.flipkart", null)) || url.contains(apiData.getString("store.subtag.amazon", null)) || url.contains(apiData.getString("store.subtag.shopclues", "UID")) || url.contains(apiData.getString("store.subtag.paytm", "utm_term"))) {
            StringTokenizer st2 = new StringTokenizer(url, "&");
            while (st2.hasMoreElements()) {
                String token = st2.nextToken();
                if (token.contains(apiData.getString("store.subtag.snapdeal", null)) || token.contains(apiData.getString("store.subtag.flipkart", null)) || token.contains(apiData.getString("store.subtag.amazon", null)) || token.contains(apiData.getString("store.subtag.shopclues", "UID")) || token.contains(apiData.getString("store.subtag.paytm", "utm_term"))) {
                    String subtagId = userData.getString("subtag", "null");
                    if (subtagId == null) {
                        userDataEditor.putString("subtag", token.split("=")[1]);
                        userDataEditor.commit();
                    } else {
                        userDataEditor.remove("subtag");
                        userDataEditor.commit();
                        userDataEditor.putString("subtag", token.split("=")[1]);
                        userDataEditor.commit();
                    }
                } else
                    continue;
            }
        } else
            return;
    }


    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> {

        @Override
        protected void onPreExecute() {

            super.onPreExecute();
        }

        @Override
        protected 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";
            }
        }

        @Override
        protected void onPostExecute(String result) {

            super.onPostExecute(result);

        }
    }

    ArrayList<NameValuePair> nameValuePairsRawHtml = new ArrayList<NameValuePair>();
    ArrayList<NameValuePair> nameValuePairsRawHtmlAmazon = new ArrayList<NameValuePair>();

    class javascriptInterface {

        WebView view;




        /**
         * Instantiate the interface and set the context
         */
        public javascriptInterface(WebView c) {

            this.view=c;
        }
        @JavascriptInterface
        public void otpSent() {
            //Toast.makeText(getActivity(),"successfull",Toast.LENGTH_LONG).show();
            getActivity().registerReceiver(broadcastReceiver, new IntentFilter(SMS_RECEIVED));
        }
        @JavascriptInterface
        public void performClick(String strl) {
            Toast.makeText(getActivity(), strl, Toast.LENGTH_SHORT).show();
        }
        @JavascriptInterface
        public void authTokenChange(String newToken) {
            userDataEditor.putString("token" ,newToken);
            Log.d("newtoken",newToken);
            userDataEditor.commit();
            new AuthTokenChange().execute();
        }

        @JavascriptInterface
        public void logout() {
            try{
                if (mGoogleApiClient.isConnected()) {
                    Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
                    mGoogleApiClient.disconnect();
                    mGoogleApiClient.connect();
                    userDataEditor.clear().commit();
                    startActivity(new Intent(getActivity(), LoginActivity.class));
                }
                else{
                    if(!mGoogleApiClient.isConnected()){
                        userDataEditor.clear().commit();
                        startActivity(new Intent(getActivity(), LoginActivity.class));
                    }


                }
            }catch (Exception e){
                userDataEditor.clear().commit();
                startActivity(new Intent(getActivity(), LoginActivity.class));
            }
        }

        @JavascriptInterface
        public 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);
            }
        }

        @JavascriptInterface
        public 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);
        }

        @JavascriptInterface
        public void showHTML(String html) {

            showToast(html);
        }

        @JavascriptInterface
        public 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);
            }
        }

        @JavascriptInterface
        public void orderpage(String html) {

            nameValuePairsRawHtml.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
            nameValuePairsRawHtml.add(new BasicNameValuePair("url",apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts")));
            nameValuePairsRawHtml.add(new BasicNameValuePair("zip","1"));
            new ProcessFlipkartHtml().execute();
        }

        @JavascriptInterface
        public 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);
        }

        @JavascriptInterface
        public 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();
            }
        }

        @JavascriptInterface
        public 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;
            }

        }

        @JavascriptInterface
        public 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();
            }
        }
        @JavascriptInterface
        public void angularUrls(String url) {
            if(!isInternetOn()){
                try {
                    SearchFragment nextFrag = new SearchFragment();
                    Bundle args = new Bundle();
                    args.putString("finishingurl", url);
                    nextFrag.setArguments(args);
                    getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container, nextFrag).addToBackStack(null).commitAllowingStateLoss();
                }catch (Exception e) {
                    e.printStackTrace();
                }

            }
            else{
            try {
                obj = new JSONObject();
                JSONObject j = new JSONObject();
                JSONArray jsArray = new JSONArray();
                j.put("url", url);
                j.put("user_id", userData.getString("id", null));
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
                jsArray.put(j);
                obj.put("pushdata", jsArray);
                new pushData().execute(obj);
            } catch (Exception e) {
                e.printStackTrace();
            }}}
    }
    class AuthTokenChange extends AsyncTask<String, Integer, String> {

        @Override
        protected void onPreExecute() {

            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... params) {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpGet httpget=new HttpGet(apiData.getString("Web_Api_Tokendetail","http://app.profitmandi.com/apis/user/detail/token"));
                // HttpGet httpget = new HttpGet(ProfitTillConstants.Web_Api + "/user/token-info");
                httpget.setHeader("Auth-Token", userData.getString("token", ""));
                HttpResponse response = httpclient.execute(httpget);
                HttpEntity entity = response.getEntity();
                int status = response.getStatusLine().getStatusCode();
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
                Log.d("Json",String.valueOf(jObjGmail));
                return String.valueOf(jObjGmail);

            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            try {
                JSONObject jsonObject = new JSONObject(result);
                JSONObject jobj=jsonObject.getJSONObject("response");
                String userStatus=jobj.getString("userStatus");
                userDataEditor.putString("userStatus",userStatus);
                userDataEditor.commit();
                if(!(userData.getString("userStatus","").equals("notRegistered"))) {
                    String user_id = jobj.getString("userId");
                    userDataEditor.putString("id", user_id);
                    userDataEditor.commit();
                    if(!(userData.getString("id", "").equals(""))){
                        UtilityFunctions utf = new UtilityFunctions();
                        new pushApkData().execute(utf.getDeviceInformation(getActivity()));
                    }
                    else {
                        Toast.makeText(getActivity(),"Network issue",Toast.LENGTH_LONG).show();
                    }}
                else{

                }
            }
            catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
    class pushApkData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(ArrayList<NameValuePair>... arg0) {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(apiData.getString("devices_info","http://api.profittill.com/devices/add"));
                //HttpPost httppost = new HttpPost(ProfitTillConstants.Push_Url);
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                int status = response.getStatusLine().getStatusCode();
                if(status == 200){
                    return "success";
                } else {
                    return "failure";
                }
            } catch (Exception e) {
                return null;
            }
        }
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            if (userData.getString("fcm_token_sent", "false").equals("false") && (!userData.getString("id", "").equals(""))) {
                regId = FirebaseInstanceId.getInstance().getToken();
                Log.d("RegisterActivity", "registerInBackground - regId: "
                        + regId);
                msg = "Device registered";
                new gcmPushData().execute(msg);
            }}}

    class gcmPushData extends AsyncTask<String, Integer, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... arg0) {
            String id = null;
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(apiData.getString("gcm.push.url","http://api.profittill.com/gcm_users/add"));
                //HttpPost httppost = new HttpPost(ProfitTillConstants.gcm_url);
                ArrayList<NameValuePair> nameValuePairsGcm = new ArrayList<>();
                TelephonyManager telephonyManager = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);
                nameValuePairsGcm.add(new BasicNameValuePair("gcm_regid", regId));
                nameValuePairsGcm.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));
                nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
                nameValuePairsGcm.add(new BasicNameValuePair("notification_type","fcm"));
                nameValuePairsGcm.add(new BasicNameValuePair("device_message", arg0[0]));
                nameValuePairsGcm.add(new BasicNameValuePair("androidid", UtilityFunctions.androidId(getActivity())));
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsGcm));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                int status = response.getStatusLine().getStatusCode();

                if (status == 200) {
                    Log.d("ResponseCode GCM ", status + "");
                    userDataEditor.putString("fcm_token_sent", "true");
                    userDataEditor.commit();
                } else {
                    Log.d("ResponseCode GCM ", status + "");
                }
                nameValuePairsGcm.clear();
                Log.e("pass 1", "connection success ");
            } catch (Exception e) {
                Log.e("Fail 1", e.toString());

            }
            return null;
        }

        @Override
        protected void onPostExecute(String result)
        {

            super.onPostExecute(result);
        }}

    class loadData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }


        @Override
        protected 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 {

        @Override
        public void onReceivedHttpAuthRequest(WebView view,
                                              HttpAuthHandler handler, String host, String realm) {

            handler.proceed("dtr", "dtr18Feb2015");

        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public 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
         */
        @JavascriptInterface
        public 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);
            }
        }


        @JavascriptInterface
        public void showHTML(String html) {
            showToast(html);
        }

        @JavascriptInterface
        public 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();
            }
        }

        @JavascriptInterface
        public 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();
            }
        }

        @JavascriptInterface
        public 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;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Log.e("Pre execute", "Pre execute");

        }

        @Override
        protected 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";
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            new FetchOrderURLS().execute();
        }
    }


    class PushRawHTML extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }

        @Override
        protected 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> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }

        @Override
        protected void onPostExecute(JSONObject result) {
            super.onPostExecute(result);
        }
    }

    class pushQueuedData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }

        }

        @Override
        protected 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> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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";
            }

        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            try {
                addOrderHistoryCancelled(str.get(++sizeList));
            } catch (Exception e) {
                e.printStackTrace();
            }
            FLAG = false;
        }
    }

    class SendOtpMessage extends AsyncTask<String, Integer, String> {

        @Override
        protected void onPreExecute() {

            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... params) {
            try {

                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(apiData.getString("Web_Api_Otp","http://app.profitmandi.com/apis/otp/parseOTP"));
                //HttpPost httppost = new HttpPost(ProfitTillConstants.Web_Api + "/otp/parseOTP");
                httppost.setHeader("Auth-Token", userData.getString("token", ""));
                httppost.setEntity(new UrlEncodedFormEntity(messageNameValuePair));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                int status = response.getStatusLine().getStatusCode();
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
                return String.valueOf(jObjGmail);

            }
            catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            try {
                JSONObject jsonObject = new JSONObject(result);
                String response=jsonObject.getString("response");

                String js = ("javascript:window.localStorage.setItem('android.otpReceived','"+response +"');");
                webView.loadUrl(js);
                //webView.loadUrl("javascript:alert(window.localStorage.getItem('android.otpReceived'))");

                Log.d("otp",js);
           /* for(int i=1; i<6; i++){
                js += "document.getElementsByName('otp" + i + "')[0].value ='" +response.substring(i-1,i) + "';";

            }
                 /* String js = ("javascript:document.getElementsByName('otp1')[0].value ='"+response +"';");
                //js +="document.getElementsByName('otpForm')[0].submit();";
               // Log.d("otp",js);
            if (Build.VERSION.SDK_INT >= 19) {
                webView.evaluateJavascript(js, new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String s) {

                    }
                });
            } else {
                webView.loadUrl(js);
            }*/
                //String js2 =("javascript:document.getElementById('').click()");
                //webView.loadUrl(js2);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

    }

    int sizeList;

    class FetchOrderURLS extends AsyncTask<String, Integer, JSONObject> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }

        @Override
        protected 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 {

        @Override
        public void onReceivedHttpAuthRequest(WebView view,
                                              HttpAuthHandler handler, String host, String realm) {

            handler.proceed("dtr", "dtr18Feb2015");

        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public 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 {

        @Override
        public void onReceivedHttpAuthRequest(WebView view,
                                              HttpAuthHandler handler, String host, String realm) {

            handler.proceed("dtr", "dtr18Feb2015");

        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public 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> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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";
            }
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            new pushData1().execute(obj);
        }
    }

    class pushData1 extends AsyncTask<JSONObject, Integer, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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";
            }
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
        }
    }

    public void redirectPage(final AlertDialog builder) {
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            @Override
            public 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 {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public 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> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }

        @Override
        protected 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> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }


        @Override
        protected 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;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public 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> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected 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;
            }
        }

        @Override
        protected 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;
        }

        @JavascriptInterface
        public 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);
            }
        }

        @JavascriptInterface
        public 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() {
            @Override
            public void run() {
                webView.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
            }
        });

    }

    @Override
    public void onPause() {
        super.onPause();
        if (apiData.getString("deal.redirect", "false").equalsIgnoreCase("true")) {
            if (webView != null) {
                if (isPause) {
                    webView.loadUrl(apiData.getString("app.domain.profitmandi", "http://app.profitmandi.com"));
                    isPause = false;
                }
            }
        }
    }

    class FlipkartWebview extends WebViewClient {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            if(url.contains(apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts"))) {
                view.loadUrl("javascript:window.HTMLOUT.orderpage('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
            }

        }
    }
}