Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14792 manas 1
package com.saholic.profittill.main;
2
 
3
import android.app.AlertDialog;
15356 manas 4
import android.app.Fragment;
14792 manas 5
import android.app.ProgressDialog;
6
import android.content.Context;
7
import android.content.DialogInterface;
8
import android.content.Intent;
9
import android.content.SharedPreferences;
10
import android.content.pm.PackageManager;
11
import android.graphics.Bitmap;
12
import android.net.ConnectivityManager;
13
import android.net.Uri;
14
import android.os.AsyncTask;
15
import android.os.Build;
16
import android.os.Bundle;
15356 manas 17
import android.os.Handler;
14792 manas 18
import android.util.Base64;
19
import android.util.Log;
20
import android.view.KeyEvent;
21
import android.view.LayoutInflater;
22
import android.view.View;
23
import android.view.ViewGroup;
24
import android.webkit.CookieManager;
25
import android.webkit.CookieSyncManager;
26
import android.webkit.HttpAuthHandler;
27
import android.webkit.JavascriptInterface;
28
import android.webkit.WebSettings;
29
import android.webkit.WebView;
30
import android.webkit.WebViewClient;
31
import android.widget.CheckBox;
32
import android.widget.CompoundButton;
33
import android.widget.Toast;
15356 manas 34
 
35
import com.facebook.Session;
36
import com.google.android.gms.common.ConnectionResult;
37
import com.google.android.gms.common.api.GoogleApiClient;
38
import com.google.android.gms.plus.Plus;
14792 manas 39
import com.saholic.profittill.Constants.ProfitTillConstants;
40
import com.saholic.profittill.Database.OrderTransactionDetails;
41
import com.saholic.profittill.R;
14991 manas 42
import com.saholic.profittill.Utils.UtilityFunctions;
14792 manas 43
import com.testin.agent.TestinAgent;
44
 
45
import org.apache.http.HttpEntity;
46
import org.apache.http.HttpResponse;
47
import org.apache.http.NameValuePair;
48
import org.apache.http.client.ClientProtocolException;
49
import org.apache.http.client.HttpClient;
50
import org.apache.http.client.entity.UrlEncodedFormEntity;
51
import org.apache.http.client.methods.HttpGet;
52
import org.apache.http.client.methods.HttpPost;
53
import org.apache.http.entity.StringEntity;
54
import org.apache.http.impl.client.DefaultHttpClient;
55
import org.apache.http.message.BasicNameValuePair;
56
import org.apache.http.util.EntityUtils;
57
import org.json.JSONArray;
58
import org.json.JSONException;
59
import org.json.JSONObject;
14991 manas 60
 
14792 manas 61
import java.io.IOException;
62
import java.io.InputStream;
63
import java.text.SimpleDateFormat;
64
import java.util.ArrayList;
65
import java.util.Date;
66
import java.util.LinkedList;
67
import java.util.List;
68
import java.util.StringTokenizer;
16452 manas 69
import java.util.regex.Matcher;
70
import java.util.regex.Pattern;
14792 manas 71
 
15356 manas 72
public class DealsHomeFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
14792 manas 73
 
74
    public DealsHomeFragment(){
75
 
76
    }
77
 
16452 manas 78
    static boolean FLAG=false,REDIRECT=false,PAGE_LOAD=false,PAYTMFLAG=false;
14792 manas 79
    WebView webView;
16452 manas 80
    WebView amazonWebView,amazonOrderHistoryWebView,amazonOrderHistoryCancelledWebView,paytmWebView;
14792 manas 81
    WebView amazonAllUrlsWebView;
82
    SharedPreferences userData;
83
    SharedPreferences apiData;
84
    SharedPreferences flipkartData;
85
    SharedPreferences.Editor userDataEditor;
86
    SharedPreferences.Editor apiSettingsEditor;
87
    SharedPreferences.Editor flipkartDataEditor;
88
    OrderTransactionDetails orderDetails;
89
    LinkedList<ArrayList<NameValuePair>> orderLinkedList;
90
    SharedPreferences amazonData;
91
    String affliateUrl;
92
    String landingURL;
93
    boolean val=false;
94
    String redirectUrls;
95
    String pageLoad;
96
    SharedPreferences.Editor amazonapiSettingsEditor;
97
    List<NameValuePair> amazonOrderTrackingData;
98
    int pageRedirect=0;
99
    int snapdealPageLoad;
100
    String packageName=null;
101
    final ArrayList<String> redirectUrlsList = new ArrayList<String>();
102
    final ArrayList<String> pageLoadList = new ArrayList<String>();
103
    String flipkartUrl;
104
    View checkBoxView;
105
    boolean flipkartFlag;
14991 manas 106
    String saholicUrl;
107
    JSONObject jSaholic;
108
    JSONArray jsArraySaholic;
15356 manas 109
    String snapdealJavascriptUrl;
110
    String type1;
16080 manas 111
    ArrayList<String> orderSuccessUrlList;
15356 manas 112
    public GoogleApiClient mGoogleApiClient;
14792 manas 113
    @Override
114
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
115
                             Bundle savedInstanceState) {
116
 
117
 
118
        View rootView = inflater.inflate(R.layout.fragment_deals_home, container, false);
119
 
120
        TestinAgent.init(getActivity());
121
        amazonData= getActivity().getSharedPreferences("Amazon_Data", Context.MODE_PRIVATE);
122
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
123
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
124
        flipkartData = getActivity().getSharedPreferences("Flipkart_Data", Context.MODE_PRIVATE);
125
        userDataEditor = userData.edit();
126
        apiSettingsEditor = apiData.edit();
127
        TestinAgent.setUserInfo(userData.getString("id",""));
128
        amazonapiSettingsEditor = amazonData.edit();
129
        flipkartDataEditor = flipkartData.edit();
130
        affliateUrl=getArguments().getString("key");
131
        orderDetails =  new OrderTransactionDetails(getActivity());
132
 
16452 manas 133
 
16080 manas 134
        orderSuccessUrlList = new ArrayList<String>();
135
        String issues =apiData.getString("list.order.success.url","snapdeal.com/purchaseMobileComplete?code=|flipkart.com/orderresponse?reference_id=|amazon.in/gp/buy/spc/handlers/static-submit-decoupled.html|amazon.in/gp/buy/thankyou/handlers|m.saholic.com/pay-success?paymentId=|shopclues.com/orderconfirmation|");
136
        StringTokenizer st2 = new StringTokenizer(issues, "|");
14792 manas 137
 
16080 manas 138
        while (st2.hasMoreElements()) {
139
            orderSuccessUrlList.add(st2.nextToken());
140
        }
16452 manas 141
        orderSuccessUrlList.add("paytm.com/shop/summary");
14792 manas 142
      if(isInternetOn()) {
15588 manas 143
          if(orderDetails.countTotalRecords()>0){
144
              sendQueuedResponse();
145
          }
146
          type1 = userData.getString("type",null);
15356 manas 147
          if(type1!=null && type1.equalsIgnoreCase("google")) {
148
              mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
149
                      .addConnectionCallbacks(this)
150
                      .addOnConnectionFailedListener(this).addApi(Plus.API)
151
                      .addScope(Plus.SCOPE_PLUS_LOGIN).build();
152
              mGoogleApiClient.connect();
153
          }
14792 manas 154
              redirectUrls=apiData.getString("profitmandi.redirect.urls","");
155
              StringTokenizer st = new StringTokenizer(redirectUrls,"|");
156
              while(st.hasMoreTokens()){
157
                  redirectUrlsList.add( st.nextToken());
158
              }
14991 manas 159
             pageLoad  =apiData.getString("profitmandi.pageloads.pattern","");
14792 manas 160
              StringTokenizer st1 = new StringTokenizer(pageLoad,"|");
161
              while(st1.hasMoreTokens()){
162
                  pageLoadList.add( st1.nextToken());
163
              }
164
            WebClientClass webViewClient = new WebClientClass();
165
            webView = (WebView) rootView.findViewById(R.id.webView);
166
            webView.setClickable(true);
167
            webView.setFocusableInTouchMode(true);
168
            webView.getSettings().setDomStorageEnabled(true);
169
            webView.getSettings().setJavaScriptEnabled(true);
170
            webView.getSettings().setBuiltInZoomControls(true);
171
            webView.addJavascriptInterface(new javascriptInterface(getActivity()), "HTMLOUT");
172
            webView.getSettings().setSavePassword(true);
173
            CookieManager cookieManager = CookieManager.getInstance();
174
            cookieManager.setAcceptCookie(true);
175
 
176
          if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
177
              webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
178
              webView.getSettings().setAllowContentAccess(true);
179
              CookieManager cookieManager1 = CookieManager.getInstance();
180
              cookieManager1.setAcceptThirdPartyCookies(webView, true);
181
          }
14991 manas 182
          if(Uri.parse(getArguments().getString("key")).getHost().contains("api.profittill")) {
183
             userDataEditor.putString("saholic.data",UtilityFunctions.clearCookiesNew(getArguments().getString("key"),getActivity())).commit();
184
          }
16080 manas 185
          String url = getArguments().getString("key");
186
          if(Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
187
              CookieSyncManager.createInstance(getActivity());
188
              CookieManager cookieManager1 = CookieManager.getInstance();
189
              cookieManager1.setCookie(url, "token=" + userData.getString("token", ""));
190
              cookieManager1.setCookie(url, "walletAuthentication=true");
191
              cookieManager1.setCookie(url, "shopcluesActive=true");
16452 manas 192
              cookieManager1.setCookie(url, "paytmActive=true");
16080 manas 193
          }
16452 manas 194
          if(!(userData.getBoolean("paytmLoggedIn",false))){
195
             Log.d("User Not Logged In","User Not logged In");
196
          }else {
197
              if (userData.getString("paytmOrder", "").equalsIgnoreCase("true")) {
198
                  long nextFetchTime=userData.getLong("paytmNextFetchTime", 0);
199
                  if (nextFetchTime == 0 || nextFetchTime< System.currentTimeMillis()) {
200
                      if(isInternetOn()) {
201
                          new PaytmOrderURL().execute();
202
                      }
203
                  } else {
204
                      Log.d("Paytm False", "Paytm Time False");
205
                  }
206
              } else {
207
                  Log.d("Paytm False", "Paytm False No orders");
208
              }
209
          }
16080 manas 210
          webView.loadUrl(url);
211
          webView.setWebViewClient(webViewClient);
14792 manas 212
 
213
         }
214
        else{
215
            SearchFragment nextFrag= new SearchFragment();
216
            Bundle args = new Bundle();
217
            args.putString("finishingurl", getArguments().getString("key"));
218
            args.putString("fragmentNumber", "1");
219
            nextFrag.setArguments(args);
220
            getActivity().getFragmentManager().beginTransaction()
221
                    .replace(R.id.frame_container, nextFrag)
222
                    .addToBackStack(null)
223
                    .commit();
224
        }
225
        return rootView;
226
    }
227
 
228
    @Override
229
    public void onViewCreated(View view, Bundle savedInstanceState) {
230
        super.onViewCreated(view, savedInstanceState);
231
    }
232
 
233
    JSONObject obj;
15356 manas 234
 
235
    @Override
236
    public void onConnected(Bundle bundle) {
237
 
238
    }
239
 
240
    @Override
241
    public void onConnectionSuspended(int i) {
242
 
243
    }
244
 
245
    @Override
246
    public void onConnectionFailed(ConnectionResult connectionResult) {
247
 
248
    }
14792 manas 249
    public class WebClientClass extends WebViewClient {
250
        ProgressDialog pd = null;
251
        ProgressDialog pd1 = null;
252
        ProgressDialog pd2 = null;
253
 
16080 manas 254
 
14792 manas 255
        @Override
256
        public void onReceivedHttpAuthRequest(WebView view,
257
                                              HttpAuthHandler handler, String host, String realm) {
258
 
259
            handler.proceed("dtr", "dtr18Feb2015");
260
        }
261
 
262
        @Override
263
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
264
 
16080 manas 265
            if(url.contains(apiData.getString("wallet.auth","api.profittill.com/special/native/login")) || userData.getString("id","").isEmpty()){
15356 manas 266
                android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
267
                android.webkit.CookieSyncManager.createInstance(getActivity());
268
                cookieManager.removeAllCookie();
269
                AlertDialog alert;
270
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
271
                builder.setMessage(apiData.getString("wallet.auth.message","You are not authenticated. Please log in again")).setCancelable(false);
272
                alert = builder.create();
273
                alert.show();
274
                try{
275
                    if (mGoogleApiClient.isConnected()) {
276
                        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
277
                        mGoogleApiClient.disconnect();
278
                        mGoogleApiClient.connect();
279
                        redirectPage(alert);
14792 manas 280
                    }
15356 manas 281
                    else if(Session.getActiveSession() != null){
282
                        Session.getActiveSession().closeAndClearTokenInformation();
283
                        Session.setActiveSession(null);
284
                        redirectPage(alert);
285
                    }
286
                    else{
287
                        if(!mGoogleApiClient.isConnected() || Session.getActiveSession()==null){
288
                            redirectPage(alert);
289
                        }
290
                    }
291
                }catch (Exception e){
292
                    redirectPage(alert);
293
                }
14792 manas 294
                return true;
15356 manas 295
            }
14792 manas 296
            if(url.contains("com.saholic.profittill")){
297
                Intent intent = null;
298
                try {
299
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getActivity().getPackageName()));
300
                } catch (android.content.ActivityNotFoundException anfe) {
301
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getActivity().getPackageName()));
302
                }
303
                startActivity(intent);
304
                return true;
305
            }
306
            if(snapdealPageLoad==1){
307
                pd2 = new ProgressDialog(getActivity());
308
                pd2.setMessage("Wait for a moment and click again.");
309
                pd2.setProgress(view.getProgress());
310
                pd2.show();
311
                return true;
312
            }
313
            if(url.startsWith("tel")){
314
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
315
                startActivity(intent);
316
                return true;
317
            }
318
            return false;
319
 
320
        }
321
 
322
        @Override
323
        public synchronized  void onPageStarted(final WebView view, String url, Bitmap favicon) {
324
            super.onPageStarted(view, url, favicon);
325
            final CharSequence[] items = {" Don't show me again "};
326
            final ArrayList seletedItems=new ArrayList();
327
                try {
16080 manas 328
                    if(Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
15356 manas 329
                        CookieSyncManager.createInstance(getActivity());
330
                        CookieManager cookieManager = CookieManager.getInstance();
331
                        cookieManager.setCookie(url, "token=" + userData.getString("token", ""));
332
                        cookieManager.setCookie(url, "walletAuthentication=true");
16080 manas 333
                        cookieManager.setCookie(url, "shopcluesActive=true");
16452 manas 334
                        cookieManager.setCookie(url, "paytmActive=true");
16080 manas 335
                    }
14792 manas 336
                    if(url.contains("dl.flipkart.com/dl/")){
337
                        flipkartUrl=url;
338
 
339
                        if(flipkartData.getInt("showagainflag",0)<3) {
340
                            AlertDialog dialog;
341
                            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
342
                            builder.setMessage(apiData.getString("flipkart.message", "You won't be able to track your orders & earn cashbacks if you purchase using Flipkart App."))
343
                                    .setView(checkBoxView)
344
                                    .setCancelable(false)
345
                                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
346
                                        @Override
347
                                        public void onClick(DialogInterface dialog, int which) {
348
                                                int i = flipkartData.getInt("showagainflag", 0);
349
                                                flipkartDataEditor.putInt("showagainflag", ++i);
350
                                                flipkartDataEditor.commit();
351
                                            Intent flipkartIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
352
                                            startActivity(flipkartIntent);
353
                                        }
354
                                    })
355
                                    .setNegativeButton("No", new DialogInterface.OnClickListener() {
356
                                        @Override
357
                                        public void onClick(DialogInterface dialog, int id) {
358
                                            view.loadUrl(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));
359
 
360
                                        }
361
                                    });
362
                            dialog = builder.create();
363
                            dialog.show();
364
                        }else if(flipkartData.getInt("showagainflag",0)==3){
365
                            AlertDialog dialog;
366
                            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
367
                            checkBoxView = View.inflate(getActivity(), R.layout.checkboxlayout, null);
368
                            CheckBox checkBox = (CheckBox) checkBoxView.findViewById(R.id.checkbox);
369
                            checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
370
 
371
                                @Override
372
                                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
373
                                    flipkartFlag = isChecked;
374
                                }
375
                            });
376
                            checkBox.setText("Don't show me again");
377
                            builder.setMessage(apiData.getString("flipkart.message", "You won't be able to track your orders & earn cashbacks if you purchase using Flipkart App."))
378
                                    .setView(checkBoxView)
379
                                    .setCancelable(false)
380
                                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
381
                                        @Override
382
                                        public void onClick(DialogInterface dialog, int which) {
383
                                            if (flipkartFlag) {
384
                                                int i = flipkartData.getInt("showagainflag", 0);
385
                                                flipkartDataEditor.putInt("showagainflag", ++i);
386
                                                flipkartDataEditor.commit();
387
                                            }
388
                                            Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
389
                                            startActivity(i);
390
                                        }
391
                                    })
392
                                    .setNegativeButton("No", new DialogInterface.OnClickListener() {
393
                                        @Override
394
                                        public void onClick(DialogInterface dialog, int id) {
395
                                            view.loadUrl(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));
396
 
397
                                        }
398
                                    });
399
                            dialog = builder.create();
400
                            dialog.show();
401
                        }
402
                        else{
403
                            Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
404
                            startActivity(i);
405
                        }
406
                        view.stopLoading();
407
                    }
408
                    else {
409
                        for (String s : pageLoadList) {
410
                            if (url.contains(s)) {
411
                                PAGE_LOAD = true;
412
                            }
413
                        }
414
                        if (PAGE_LOAD) {
415
                            //clearCookies(url);
416
                            Log.d("Cookie after calling", "Cookie after calling" + CookieManager.getInstance().getCookie(url));
417
                            snapdealPageLoad = 1;
418
                            PAGE_LOAD = false;
419
                        } else {
420
                            snapdealPageLoad = 0;
421
                            for (String s : redirectUrlsList) {
422
                                if (url.contains(s)) {
423
                                    REDIRECT = true;
424
                                    break;
425
                                }
426
                            }
427
                            if (REDIRECT) {
428
                                pageRedirect = 2;
429
                                REDIRECT = false;
430
                            } else if (pageRedirect == 2 || pageRedirect == 1) {
431
                                Toast.makeText(getActivity(), "Redirecting to deals...", Toast.LENGTH_SHORT).show();
432
                                Intent i = new Intent(getActivity(), MainActivity.class);
433
                                i.putExtra("displayView", "31");
434
                                i.putExtra("redirectUrl", apiData.getString("redirect.url", "") + "?user_id=" + userData.getString("id", ""));
435
                                startActivity(i);
436
                                pageRedirect = 0;
437
                            } else {
438
                                landingURL = url;
439
                                if (url.contains(apiData.getString("mobile.website.url", null)) || url.equalsIgnoreCase("http://api.profittill.com/categorydeals")) {
440
                                    pd = new ProgressDialog(getActivity());
441
                                    pd.setTitle("Please wait");
442
                                    pd.setMessage("Loading..");
443
                                    pd.show();
444
                                }
16080 manas 445
                                //getDisplayActionBar(url);
446
                                getOrderSuccessUrlConfirmation(url);
14792 manas 447
                                if (displayActionBar) {
448
                                    pd1 = new ProgressDialog(getActivity());
449
                                    pd1.setTitle("Please wait");
450
                                    pd1.setMessage("Loading..");
451
                                    pd1.show();
452
                                }
453
                            }
454
                        }
15356 manas 455
                        if(Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data","false").equalsIgnoreCase("true")){
14792 manas 456
 
14991 manas 457
                        }else {
458
                            obj = new JSONObject();
459
                            JSONObject j = new JSONObject();
460
                            JSONArray jsArray = new JSONArray();
461
                            j.put("url", url);
462
                            j.put("user_id", userData.getString("id", null));
463
                            j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
464
                            jsArray.put(j);
465
                            obj.put("pushdata", jsArray);
466
                            new pushData().execute();
467
                        }
14792 manas 468
                        storeSubTagId(url);
469
                    }
470
                } catch (Exception e) {
471
                    e.printStackTrace();
472
                }
473
        }
474
 
475
        @Override
476
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
477
            super.onReceivedError(view, errorCode, description, failingUrl);
478
            SearchFragment nextFrag= new SearchFragment();
479
            Bundle args = new Bundle();
480
            args.putString("finishingurl",failingUrl);
481
            nextFrag.setArguments(args);
482
            getActivity().getFragmentManager().beginTransaction()
483
                    .replace(R.id.frame_container, nextFrag)
484
                    .addToBackStack(null)
485
                    .commit();
486
        }
487
 
488
        @Override
489
        public synchronized  void onPageFinished(WebView view, String url) {
490
        super.onPageFinished(view, url);
491
        try {
492
 
493
            if (url.contains(apiData.getString("mobile.website.url", "")) || url.equalsIgnoreCase("http://api.profittill.com/categorydeals")) {
494
                pd.dismiss();
495
            }
496
            if(snapdealPageLoad==1){
497
                snapdealPageLoad=0;
498
            }
499
            if(pd2!=null){
500
                pd2.dismiss();
501
            }
16452 manas 502
            if(Uri.parse(url).getHost().equalsIgnoreCase("paytm.com")){
503
                view.loadUrl("javascript:try{" +
504
                        "var lastUrl=document.URL;" +
505
                        "setInterval(function(){var currentUrl=document.URL;" +
506
                        "if(currentUrl!=lastUrl){window.HTMLOUT.paytmUrls(currentUrl);lastUrl=currentUrl;}},2000)" +
507
                        "}catch(error){Android.onError(error.message);}");
508
            }
15356 manas 509
            if(Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data","false").equalsIgnoreCase("true")){
14991 manas 510
                saholicUrl=url;
511
                view.loadUrl("javascript:window.HTMLOUT.saholicHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
512
            }
14792 manas 513
            if (url.contains(apiData.getString("amazon.tracking.order.url", ""))) {
514
               /* StringTokenizer st2 = new StringTokenizer(url, "&");
515
                String orderid = null;
516
                while (st2.hasMoreTokens()) {
517
                    String token = st2.nextToken();
518
                    if (token.contains("oid")) {
519
                        orderid = token.split("=")[1];
520
                    }
521
                }
522
                amazonOrderTrackingData = new ArrayList<>();
523
                amazonOrderTrackingData.add(new BasicNameValuePair("id", orderid));
524
                amazonOrderTrackingData.add(new BasicNameValuePair("user_id", userData.getString("id", "")));
525
                amazonOrderTrackingData.add(new BasicNameValuePair("order_url", url));
526
                amazonOrderTrackingData.add(new BasicNameValuePair("store_id", apiData.getString("store.code.amazon", null)));
527
                view.loadUrl("javascript:window.HTMLOUT.amazonOrderTrackingHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
528
       */        fetchOrderDetails();
529
            }
530
 
531
            if (displayActionBar) {
532
                if (url.contains("amazon")) {
533
                    view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
534
                    pd1.dismiss();
535
                    amazonWebView = new WebView(webView.getContext());
536
                    amazonWebView.setVisibility(View.GONE);
537
                    amazonWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
538
                    amazonWebView.getSettings().setJavaScriptEnabled(true);
539
 
16452 manas 540
                } else if(url.contains(ProfitTillConstants.PAYTM)) {
541
                    PaytmWebViewClient paytmWebViewClient = new PaytmWebViewClient();
542
                    pd1.dismiss();
543
                    paytmWebView = new WebView(webView.getContext());
544
                    paytmWebView.setVisibility(View.GONE);
545
                    paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");
546
                    paytmWebView.getSettings().setJavaScriptEnabled(true);
547
                    paytmWebView.loadUrl(getPaytmReferer(url));
548
                    paytmWebView.setWebViewClient(paytmWebViewClient);
14792 manas 549
                } else {
550
                    view.loadUrl("javascript:window.HTMLOUT.flipkartHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
551
                    pd1.dismiss();
552
                }
553
            }
554
 
555
            amazonOrderHistoryWebView = new WebView(webView.getContext());
556
            amazonOrderHistoryWebView.setVisibility(View.GONE);
557
            amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
558
            amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
559
            amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
560
 
561
            amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());
562
            amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);
563
            amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);
564
            amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
565
            amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
566
 
567
            amazonAllUrlsWebView = new WebView(webView.getContext());
568
            amazonAllUrlsWebView.setVisibility(View.GONE);
569
            amazonAllUrlsWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
570
            amazonAllUrlsWebView.getSettings().setJavaScriptEnabled(true);
571
            amazonAllUrlsWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
572
 
573
            if (url.contains("https://www.amazon.in/ap/signin")) {
574
                if (!FLAG) {
575
                    FLAG = true;
576
                }
577
            } else if (FLAG) {
578
                amazonOrderHistoryWebView = new WebView(webView.getContext());
579
                amazonOrderHistoryWebView.setVisibility(View.GONE);
580
                amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
581
                amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
582
                amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
583
                amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());
584
                amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);
585
                amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);
586
                amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
587
                amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
588
                fetchOrderDetails();
589
                FLAG = false;
590
            }
591
 
592
            view.setOnKeyListener(new View.OnKeyListener() {
593
                @Override
594
                public boolean onKey(View v, int keyCode, KeyEvent event) {
595
                    if (event.getAction() == KeyEvent.ACTION_DOWN) {
596
                        WebView webView = (WebView) v;
597
                        switch (keyCode) {
598
                            case KeyEvent.KEYCODE_BACK:
599
                                if ((webView.canGoBack() && !webView.getUrl().contains(apiData.getString("mobile.website.url", null))) || pageRedirect==2) {
600
                                    webView.goBack();
601
                                    pageRedirect=0;
602
                                    snapdealPageLoad=0;
603
                                    return true;
604
                                } 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", ""))) {
605
                                    Intent i = new Intent(getActivity(), MainActivity.class);
606
                                    i.putExtra("displayView", "0");
607
                                    startActivity(i);
608
                                    return true;
609
                                } else if (webView.getUrl().contains(apiData.getString("mobile.website.url", null))) {
610
                                    new AlertDialog.Builder(getActivity())
611
                                            .setIcon(android.R.drawable.ic_dialog_alert)
612
                                            .setTitle("Exit!")
613
                                            .setMessage("Are you sure you want to close?")
614
                                            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
615
                                                @Override
616
                                                public void onClick(DialogInterface dialog, int which) {
617
                                                    Intent startMain = new Intent(Intent.ACTION_MAIN);
618
                                                    startMain.addCategory(Intent.CATEGORY_HOME);
619
                                                    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
620
 
621
                                                    startActivity(startMain);
622
                                                }
623
 
624
                                            })
625
                                            .setNegativeButton("No", null)
626
                                            .show();
627
                                } else {
628
                                    Intent i = new Intent(getActivity(), MainActivity.class);
629
                                    i.putExtra("displayView", "0");
630
                                    startActivity(i);
631
                                    return true;
632
                                }
633
 
634
                                break;
635
                        }
636
                    }
637
 
638
                    return false;
639
                }
640
            });
641
 
642
        }catch (Exception e){
643
            e.printStackTrace();
644
            TestinAgent.uploadException(getActivity(),"On Page Finished",e);
645
        }
646
        }
647
    }
648
    private boolean appInstalledOrNot(String uri) {
649
        PackageManager pm = getActivity().getPackageManager();
650
        boolean app_installed = false;
651
        try {
652
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
653
            app_installed = true;
654
        }
655
        catch (PackageManager.NameNotFoundException e) {
656
            app_installed = false;
657
        }
658
        return app_installed ;
659
    }
660
    @Override
661
    public void onResume() {
662
        super.onResume();
663
        getView().setFocusableInTouchMode(true);
664
        getView().requestFocus();
665
        getView().setOnKeyListener(new View.OnKeyListener() {
666
            @Override
667
            public boolean onKey(View v, int keyCode, KeyEvent event) {
668
 
669
                if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
670
                    try {
671
                        if (landingURL.contains((apiData.getString("mobile.website.url", "")))) {
672
                            new AlertDialog.Builder(getActivity())
673
                                    .setIcon(android.R.drawable.ic_dialog_alert)
674
                                    .setTitle("Exit!")
675
                                    .setMessage("Are you sure you want to close?")
676
                                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
677
                                        @Override
678
                                        public void onClick(DialogInterface dialog, int which) {
679
                                            Intent startMain = new Intent(Intent.ACTION_MAIN);
680
                                            startMain.addCategory(Intent.CATEGORY_HOME);
681
                                            startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
682
                                            startActivity(startMain);
683
                                        }
684
 
685
                                    })
686
                                    .setNegativeButton("No", null)
687
                                    .show();
688
                            return true;
689
                        } else {
690
                            if (webView.canGoBack()) {
691
                                webView.goBack();
692
                            } else {
693
                                Intent i = new Intent(getActivity(), MainActivity.class);
694
                                i.putExtra("displayView", "0");
695
                                startActivity(i);
696
                            }
697
                            return true;
698
 
699
                        }
700
 
701
                    } catch (Exception e) {
702
                        e.printStackTrace();
703
                        return false;
704
                    }
705
                }
706
                return false;
707
                }
708
 
709
        });
710
    }
711
 
712
    public void fetchOrderDetails(){
713
        if(isInternetOn()) {
714
           new FetchOrderURLS().execute();
715
        }
716
        else{
717
           /* getActivity().finish();*/
718
        }
719
    }
720
 
721
    public void pushDataInAmazon(String orderId){
722
 
723
        AmazonOrderDetails amazonOrderClient = new AmazonOrderDetails();
724
        nameValuePairsRawHtmlAmazon=new ArrayList<NameValuePair>();
725
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("user_id",userData.getString("id",null)));
726
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("id",orderId));
727
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("store_id",apiData.getString("store.code.amazon",null)));
728
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("order_url",amazonData.getString("amazonurl","")));
729
        //nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("sub_tag",userData.getString("subtag",null)));
730
        amazonWebView.loadUrl(amazonData.getString("amazonurl",""));
731
        amazonWebView.setWebViewClient(amazonOrderClient);
732
 
733
    }
734
 
735
    public void storeSubTagId(String url){
736
 
16452 manas 737
        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")))
14792 manas 738
        {
739
            StringTokenizer st2 = new StringTokenizer(url, "&");
740
            while (st2.hasMoreElements()) {
741
                String token=st2.nextToken();
16452 manas 742
                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"))){
14792 manas 743
                    String subtagId=userData.getString("subtag","null");
744
                    if(subtagId==null){
745
                        userDataEditor.putString("subtag",token.split("=")[1]);
746
                        userDataEditor.commit();
747
                    }
748
                    else{
749
                        userDataEditor.remove("subtag");
750
                        userDataEditor.commit();
751
                        userDataEditor.putString("subtag",token.split("=")[1]);
752
                        userDataEditor.commit();
753
                    }
754
                }
755
                else
756
                    continue;
757
            }
758
        }
759
        else
760
            return;
761
    }
762
 
763
 
764
    boolean displayActionBar;
765
    public void getDisplayActionBar(String url) throws Exception{
766
        String snapdealConfirmation = apiData.getString("snapdeal.order.success.url",null);
767
        String flipkartConfirmation = apiData.getString("flipkart.order.success.url",null);
768
        String amazonConfirmation = apiData.getString("amazon.order.success.url",null);
769
        String amazonThankYouConfirmation = apiData.getString("amazon.order.success.thankyou.url",null);
770
        String saholicConfirmation = apiData.getString("saholic.order.success.url",null);
771
        if(url.contains(snapdealConfirmation) || url.contains(flipkartConfirmation) || url.contains(amazonConfirmation) || url.contains(amazonThankYouConfirmation) || url.contains(saholicConfirmation)){
772
            displayActionBar=true;
773
            String storeID = getStoreId(url);
774
            if(storeID==null){
775
                Log.e("Deals Page Activity", "Null value returned for storeID");
776
            }
777
            else{
778
                nameValuePairsRawHtml=new ArrayList<NameValuePair>();
779
                nameValuePairsRawHtml.add(new BasicNameValuePair("user_id",userData.getString("id",null)));
780
                nameValuePairsRawHtml.add(new BasicNameValuePair("store_id",storeID));
781
                nameValuePairsRawHtml.add(new BasicNameValuePair("order_url",url));
782
                nameValuePairsRawHtml.add(new BasicNameValuePair("sub_tag",userData.getString("subtag",null)));
783
            }
784
        }
785
        else{
786
            displayActionBar = false;
787
        }
788
        return;
789
    }
790
 
16080 manas 791
    public void getOrderSuccessUrlConfirmation(String url) throws Exception{
792
        for(String s:orderSuccessUrlList){
793
            if(url.contains(s)){
794
                displayActionBar=true;
795
                String storeID = getStoreId(url);
796
                if(storeID==null){
797
                    Log.e("Deals Page Activity", "Null value returned for storeID");
798
                }
799
                else{
800
                    nameValuePairsRawHtml=new ArrayList<NameValuePair>();
801
                    nameValuePairsRawHtml.add(new BasicNameValuePair("user_id",userData.getString("id",null)));
802
                    nameValuePairsRawHtml.add(new BasicNameValuePair("store_id",storeID));
803
                    nameValuePairsRawHtml.add(new BasicNameValuePair("order_url",url));
804
                    nameValuePairsRawHtml.add(new BasicNameValuePair("sub_tag",userData.getString("subtag","")));
805
                }
806
                break;
807
            }
808
            else{
809
                displayActionBar = false;
810
            }
811
        }
812
        return;
813
    }
14792 manas 814
 
815
    public String getStoreId(String url){
16080 manas 816
       /* if(url.contains("snapdeal")){
14792 manas 817
            pageRedirect=Integer.parseInt(apiData.getString("pageredirect.snapdeal","0"));
818
            return apiData.getString("store.code.snapdeal",null);
819
        }
820
        else if(url.contains("flipkart")){
821
            pageRedirect=Integer.parseInt(apiData.getString("pageredirect.flipkart","0"));
822
            return apiData.getString("store.code.flipkart",null);
823
        }
824
        else if(url.contains("amazon")){
825
            pageRedirect=Integer.parseInt(apiData.getString("pageredirect.amazon","0"));
826
            return apiData.getString("store.code.amazon",null);
827
        }
828
        else if(url.contains("saholic")){
829
            return apiData.getString("store.code.spice",null);
830
        }
16080 manas 831
        else if(url.contains("shopclues")){
832
            return "7";
833
        }*/
834
        return UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code","amazon=1,flipkart=2,snapdeal=3,saholic=4,shopclues=5,")),url);
14792 manas 835
    }
836
 
837
    class pushData extends AsyncTask<String, Integer, String> {
838
 
839
        @Override
840
        protected void onPreExecute() {
841
            super.onPreExecute();
842
        }
843
 
844
        @Override
845
        protected String doInBackground(String... arg0) {
846
            HttpClient httpclient = new DefaultHttpClient();
847
            try {
848
 
849
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
850
                nameValuePairs.add(new BasicNameValuePair("pushdata",obj.toString()));
851
 
852
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api",null));
853
                final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
854
                httppost.setHeader("Authorization", basicAuth);
855
 
856
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
857
                System.out.println(obj.toString());
858
                StringEntity se = new StringEntity(obj.toString());
859
                HttpResponse response = httpclient.execute(httppost);
860
                int status = response.getStatusLine().getStatusCode();
861
 
862
                if(status == 200){
863
                    return "success";
864
                } else {
865
                    return "failure";
866
                }
867
 
868
            } catch (ClientProtocolException e) {
869
                return "failure";
870
            } catch (IOException e) {
871
                return "failure";
872
            }
873
        }
874
 
875
        @Override
876
        protected void onPostExecute(String result) {
877
            super.onPostExecute(result);
878
        }
879
    }
880
    ArrayList<NameValuePair> nameValuePairsRawHtml=new ArrayList<NameValuePair>();
881
    ArrayList<NameValuePair> nameValuePairsRawHtmlAmazon=new ArrayList<NameValuePair>();
882
    class javascriptInterface{
883
 
884
        Context mContext;
885
 
886
        /** Instantiate the interface and set the context */
887
        public javascriptInterface(Context c){
888
            mContext = c;
889
        }
890
 
891
        /** Show a toast from the web page */
892
        @JavascriptInterface
893
        public void showToast(String toast) {
14991 manas 894
            nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(toast)));
14792 manas 895
            long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);
896
            List<List<NameValuePair>> postDataNameValuePair =  new ArrayList<List<NameValuePair>>();
897
            postDataNameValuePair=orderDetails.readData1();
898
            for(List<NameValuePair> orderDetail : postDataNameValuePair) {
14991 manas 899
                orderDetail.add(new BasicNameValuePair("zip","1"));
15356 manas 900
                orderDetail.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
901
                orderDetail.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
902
                orderDetail.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 903
                PushRawHTML pm =new  PushRawHTML();
904
                pm.execute(orderDetail);
905
            }
906
        }
907
 
908
        @JavascriptInterface
909
        public void  amazonOrderTrackingHTML(String html) {
14991 manas 910
            amazonOrderTrackingData.add(new BasicNameValuePair("rawhtml",UtilityFunctions.compress(html)));
911
            amazonOrderTrackingData.add(new BasicNameValuePair("zip","1"));
15356 manas 912
            amazonOrderTrackingData.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
913
            amazonOrderTrackingData.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
914
            amazonOrderTrackingData.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 915
            new AmazonOrderTrackingDetails().execute(amazonOrderTrackingData);
916
        }
917
 
918
        @JavascriptInterface
919
        public void showHTML(String html) {
920
            showToast(html);
921
        }
922
 
923
        @JavascriptInterface
924
        public void flipkartHTML(String html) {
14991 manas 925
            nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml",UtilityFunctions.compress(html)));
14792 manas 926
            long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);
927
            List<List<NameValuePair>> postDataNameValuePair =  new ArrayList<List<NameValuePair>>();
928
            postDataNameValuePair=orderDetails.readData1();
929
            for(List<NameValuePair> orderDetail : postDataNameValuePair) {
14991 manas 930
                orderDetail.add(new BasicNameValuePair("zip","1"));
15356 manas 931
                orderDetail.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
932
                orderDetail.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
933
                orderDetail.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 934
                new loadData().execute(orderDetail);
935
            }
936
        }
14991 manas 937
 
938
        @JavascriptInterface
939
        public void saholicHTML(String html) {
940
 
941
            try {
942
                obj = new JSONObject();
943
                jSaholic = new JSONObject();
944
                jSaholic.put("html", UtilityFunctions.compress(html));
945
                jSaholic.put("zip", "1");
946
                jSaholic.put("user_id", userData.getString("id", null));
947
            } catch (Exception e) {
948
 
949
            }
950
            new checkGateWayProblem().execute(saholicUrl);
951
        }
16452 manas 952
 
953
        @JavascriptInterface
954
        public void paytmUrls(String html){
955
            try{
956
                obj = new JSONObject();
957
                JSONObject j = new JSONObject();
958
                JSONArray jsArray = new JSONArray();
959
                Log.d("URL in page start","Url in page start "  + html);
960
                j.put("url", html);
961
                j.put("user_id", userData.getString("id", null));
962
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
963
                jsArray.put(j);
964
                obj.put("pushdata", jsArray);
965
                new pushData().execute();
966
            }catch (Exception e){
967
                e.printStackTrace();
968
            }
969
            if (html.contains("https://paytm.com/login")) {
970
                if (!PAYTMFLAG) {
971
                    PAYTMFLAG = true;
972
                    userDataEditor.putString("paytmOrder","true").commit();
973
                    userDataEditor.putBoolean("paytmLoggedIn",true).commit();
974
                }
975
            } else if (PAYTMFLAG) {
976
                new PaytmOrderURL().execute();
977
                PAYTMFLAG=false;
978
            }
979
        }
14792 manas 980
    }
981
 
982
 
983
 
984
 
985
    class loadData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
986
 
987
        @Override
988
        protected void onPreExecute() {
989
            super.onPreExecute();
990
        }
991
 
992
        @Override
993
        protected JSONObject doInBackground(List<NameValuePair>... orderDetail) {
994
 
995
 
996
                try {
997
                    HttpClient httpclient = new DefaultHttpClient();
998
                    HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
999
                    httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1000
 
1001
                    httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1002
                    HttpResponse response = httpclient.execute(httppost);
1003
                    HttpEntity entity = response.getEntity();
1004
 
1005
                    int status = response.getStatusLine().getStatusCode();
1006
 
1007
                    if(status == 200){
1008
                        NameValuePair y = orderDetail[0].get(2);
1009
                        int z =orderDetails.deleteRecord(y.getName(),new String[]{y.getValue()});
1010
                    } else {
14991 manas 1011
                        Log.d("Status in load Data " ,"Status Load data " + status);
1012
 
14792 manas 1013
                    }
1014
                    String getJSON = EntityUtils.toString(entity);
1015
                    if(getJSON==null){
1016
                        return null;
1017
                    }else {
1018
                        JSONObject jObjGmail = new JSONObject(getJSON);
1019
                        return jObjGmail;
1020
                    }
1021
                } catch (Exception e) {
1022
                    return null;
1023
                }
1024
            }
1025
 
1026
 
1027
        @Override
1028
        protected void onPostExecute(JSONObject result) {
1029
            if(result==null){
1030
                //Log.d("Error in fetching result ", "Flipkart html ");
1031
            }
1032
            else {
1033
               try {
1034
                    if (result.getString("message").equalsIgnoreCase("PROCESSED"))
1035
                        orderDetails.deleterecords();
1036
                } catch (Exception e) {
1037
                }
1038
            }
1039
            super.onPostExecute(result);
1040
        }
1041
    }
1042
 
1043
 
1044
    class AmazonOrderDetails extends WebViewClient {
1045
 
1046
        @Override
1047
        public void onReceivedHttpAuthRequest(WebView view,
1048
                                              HttpAuthHandler handler, String host, String realm) {
1049
 
1050
            handler.proceed("dtr", "dtr18Feb2015");
1051
 
1052
        }
1053
 
1054
        @Override
1055
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1056
            super.onPageStarted(view, url, favicon);
1057
        }
1058
 
1059
        @Override
1060
        public void onPageFinished(WebView view, String url) {
1061
            /*Toast.makeText(getActivity(), url, Toast.LENGTH_SHORT).show();*/
1062
            view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
1063
            super.onPageFinished(view, url);
1064
        }
1065
    }
1066
 
1067
    class amazonInterface{
1068
 
1069
        Context mContext;
1070
 
1071
        /** Instantiate the interface and set the context */
1072
        public amazonInterface(Context c){
1073
            mContext = c;
1074
        }
1075
 
1076
        /** Show a toast from the web page */
1077
        @JavascriptInterface
1078
        public void showToast(String toast) {
14991 manas 1079
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("rawhtml",UtilityFunctions.compress(toast)));
1080
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("zip","1"));
15356 manas 1081
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
1082
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
1083
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 1084
            if(isInternetOn()) {
1085
                    new amazonPushData().execute(nameValuePairsRawHtmlAmazon);
1086
          }
1087
        }
1088
 
1089
 
1090
        @JavascriptInterface
1091
        public void showHTML(String html) {
1092
            showToast(html);
1093
        }
1094
 
1095
        @JavascriptInterface
1096
        public void orderHistory(String html) {
1097
            List<NameValuePair> amazonOrderHistory = new ArrayList<>();
1098
            amazonOrderHistory.add(new BasicNameValuePair("url",str.get(0)));
14991 manas 1099
            amazonOrderHistory.add(new BasicNameValuePair("html",UtilityFunctions.compress(html)));
1100
            amazonOrderHistory.add(new BasicNameValuePair("zip","1"));
15356 manas 1101
            amazonOrderHistory.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
1102
            amazonOrderHistory.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
1103
            amazonOrderHistory.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 1104
            if(isInternetOn()) {
1105
                new pushQueuedData().execute(amazonOrderHistory);
1106
            }
1107
            else{
1108
 
1109
            }
1110
        }
1111
        @JavascriptInterface
1112
        public void cancelledHistory(String html) {
1113
            List<NameValuePair> amazonOrderHistory = new ArrayList<>();
1114
            amazonOrderHistory.add(new BasicNameValuePair("url",str.get(j++)));
14991 manas 1115
            amazonOrderHistory.add(new BasicNameValuePair("html",UtilityFunctions.compress(html)));
1116
            amazonOrderHistory.add(new BasicNameValuePair("zip","1"));
15356 manas 1117
            amazonOrderHistory.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
1118
            amazonOrderHistory.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
1119
            amazonOrderHistory.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 1120
            if(isInternetOn()) {
1121
                new pushCancelledQueuedData().execute(amazonOrderHistory);
1122
            }
1123
            else{
1124
 
1125
            }
1126
        }
1127
 
1128
        @JavascriptInterface
1129
        public void amazonOrderUrls(String html) {
1130
            //Log.e("OrderUrls","Order amazonOrderUrls" + html);
1131
            List<NameValuePair> amazonOrderHistory = new ArrayList<>();
1132
            amazonOrderHistory.add(new BasicNameValuePair("url",str.get(1)));
14991 manas 1133
            amazonOrderHistory.add(new BasicNameValuePair("html",UtilityFunctions.compress(html)));
1134
            amazonOrderHistory.add(new BasicNameValuePair("zip","1"));
15356 manas 1135
            amazonOrderHistory.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
1136
            amazonOrderHistory.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
1137
            amazonOrderHistory.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
14792 manas 1138
            if(isInternetOn()) {
1139
                new pushCancelledQueuedData().execute(amazonOrderHistory);
1140
            }
1141
            else{
1142
 
1143
            }
1144
        }
1145
 
1146
    }
1147
    int j;
1148
    class amazonPushData extends AsyncTask<List<NameValuePair>, Integer, String> {
1149
        private StringBuilder sb;
1150
 
1151
        private HttpResponse req;
1152
        private InputStream is;
1153
 
1154
        @Override
1155
        protected void onPreExecute() {
1156
            super.onPreExecute();
1157
            Log.e("Pre execute", "Pre execute");
1158
 
1159
        }
1160
 
1161
        @Override
1162
        protected String doInBackground(List<NameValuePair>... orderDetail) {
1163
            try {
1164
                HttpClient httpclient = new DefaultHttpClient();
1165
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api",null));
1166
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1167
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1168
                HttpResponse response = httpclient.execute(httppost);
1169
                HttpEntity entity = response.getEntity();
1170
                int status = response.getStatusLine().getStatusCode();
1171
 
1172
                if(status == 200){
1173
                    System.out.println("ResponseCode of record: "+ status + " is " + status);
1174
                    NameValuePair y = orderDetail[0].get(2);
1175
                    int z =orderDetails.deleteRecord(y.getName(),new String[]{y.getValue()});
1176
                    amazonapiSettingsEditor.remove("amazonurl");
1177
                    amazonapiSettingsEditor.commit();
1178
                } else {
1179
                    /*Log.d("ResponseCode",status+"");
1180
                    System.out.println(" NOT Transfered");
1181
                    Log.d("ResponseCode",status+"");*/
1182
                }
1183
/*                Log.e("pass 1", "Amazon success ");*/
1184
            } catch (Exception e) {
1185
/*                Log.e("Fail 1", e.toString());*/
1186
 
1187
            }
1188
            return "success";
1189
        }
1190
 
1191
        @Override
1192
        protected void onPostExecute(String result) {
1193
            super.onPostExecute(result);
1194
            new FetchOrderURLS().execute();
1195
        }
1196
    }
1197
 
1198
 
1199
    class PushRawHTML extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
1200
        @Override
1201
        protected void onPreExecute() {
1202
            super.onPreExecute();
1203
        }
1204
 
1205
        @Override
1206
        protected JSONObject doInBackground(List<NameValuePair>... orderDetail) {
1207
 
1208
            try {
1209
                HttpClient httpclient = new DefaultHttpClient();
1210
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api",null));
1211
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1212
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1213
                HttpResponse response = httpclient.execute(httppost);
1214
                HttpEntity entity = response.getEntity();
1215
                int status = response.getStatusLine().getStatusCode();
1216
 
1217
                if(status == 200){
1218
                    NameValuePair y = orderDetail[0].get(2);
1219
                    int z =orderDetails.deleteRecord(y.getName(),new String[]{y.getValue()});
1220
                } else {
1221
                }
1222
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
15588 manas 1223
 
14792 manas 1224
                return jObjGmail;
1225
            } catch (Exception e) {
1226
                return null;
1227
            }
1228
        }
1229
 
1230
        @Override
1231
        protected void onPostExecute(JSONObject result) {
1232
            super.onPostExecute(result);
1233
            try {
1234
                if (result.getString("htmlRequired").equalsIgnoreCase("true")) {
1235
                    String orderId = result.getString("orderId");
1236
                    amazonapiSettingsEditor.putString("amazonurl",result.getString("url"));
1237
                    amazonapiSettingsEditor.commit();
1238
                    pushDataInAmazon(orderId);
1239
                }
1240
            }catch (Exception e){
15588 manas 1241
 
14792 manas 1242
            }
1243
        }
1244
    }
1245
 
1246
    class AmazonOrderTrackingDetails extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
1247
        @Override
1248
        protected void onPreExecute() {
1249
            super.onPreExecute();
1250
        }
1251
 
1252
        @Override
1253
        protected JSONObject doInBackground(List<NameValuePair>... arg0) {
1254
            try {
1255
                HttpClient httpclient = new DefaultHttpClient();
1256
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api",null));
1257
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1258
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
1259
                HttpResponse response = httpclient.execute(httppost);
1260
                HttpEntity entity = response.getEntity();
1261
                int status = response.getStatusLine().getStatusCode();
1262
 
1263
                if(status == 200){
1264
                } else {
1265
                }
1266
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
1267
                return jObjGmail;
1268
 
1269
            } catch (Exception e) {
1270
                return null;
1271
            }
1272
        }
1273
 
1274
        @Override
1275
        protected void onPostExecute(JSONObject result) {
1276
            super.onPostExecute(result);
1277
        }
1278
    }
1279
 
1280
    class pushQueuedData extends AsyncTask<List<NameValuePair>, Integer, String> {
1281
        private StringBuilder sb;
1282
 
1283
        private HttpResponse req;
1284
        private InputStream is;
1285
 
1286
        @Override
1287
        protected void onPreExecute() {
1288
            super.onPreExecute();
1289
        }
1290
 
1291
        @Override
1292
        protected String doInBackground(List<NameValuePair>... pushOrder) {
1293
 
1294
            try {
1295
                HttpClient httpclient = new DefaultHttpClient();
1296
 
1297
                String fetchUrl = apiData.getString("amazon.order.tracking.post.url",null)+"?user_id="+ userData.getString("id","")+"&store_id=" + apiData.getString("store.code.amazon","1");
1298
                HttpPost httppost = new HttpPost(fetchUrl);
1299
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1300
                httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));
1301
                HttpResponse response = httpclient.execute(httppost);
1302
                HttpEntity entity = response.getEntity();
1303
                return "success";
1304
 
1305
            } catch (Exception e) {
1306
                return null;
1307
            }
1308
 
1309
        }
1310
 
1311
        @Override
1312
        protected void onPostExecute(String result) {
1313
            super.onPostExecute(result);
1314
            try {
1315
                addOrderHistoryCancelled(str.get(1));
1316
            }catch (Exception e){
1317
                e.printStackTrace();
1318
            }
1319
        }
1320
    }
1321
 
1322
    class pushCancelledQueuedData extends AsyncTask<List<NameValuePair>, Integer, String> {
1323
        private StringBuilder sb;
1324
 
1325
        private HttpResponse req;
1326
        private InputStream is;
1327
 
1328
        @Override
1329
        protected void onPreExecute() {
1330
            super.onPreExecute();
1331
        }
1332
 
1333
        @Override
1334
        protected String doInBackground(List<NameValuePair>... pushOrder) {
1335
 
1336
            try {
1337
                HttpClient httpclient = new DefaultHttpClient();
1338
 
1339
                String fetchUrl = apiData.getString("amazon.order.tracking.post.url",null)+"?user_id="+ userData.getString("id","")+"&store_id=" + apiData.getString("store.code.amazon","1");
1340
                HttpPost httppost = new HttpPost(fetchUrl);
1341
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1342
                httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));
1343
                HttpResponse response = httpclient.execute(httppost);
1344
                HttpEntity entity = response.getEntity();
1345
 
1346
            return "success";
1347
            } catch (Exception e) {
1348
                return "failure";
1349
            }
1350
 
1351
        }
1352
 
1353
        @Override
1354
        protected void onPostExecute(String result) {
1355
            super.onPostExecute(result);
1356
            try {
1357
                addOrderHistoryCancelled(str.get(++sizeList));
1358
            }catch(Exception e){
1359
                e.printStackTrace();
1360
            }
1361
            FLAG=false;
1362
        }
1363
    }
1364
 
1365
    int sizeList;
1366
    class FetchOrderURLS extends AsyncTask<String, Integer, JSONObject> {
1367
 
1368
        @Override
1369
        protected void onPreExecute() {
1370
            super.onPreExecute();
1371
        }
1372
 
1373
        @Override
1374
        protected JSONObject doInBackground(String... arg0) {
1375
            HttpClient httpclient = new DefaultHttpClient();
1376
            try {
1377
                String fetchUrl = apiData.getString("amazon.order.tracking.get.url",null)+"?user_id="+ userData.getString("id","")+"&store_id=" + apiData.getString("store.code.amazon","1");
1378
                HttpGet httppost = new HttpGet(fetchUrl);
1379
 
1380
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1381
                HttpResponse response = httpclient.execute(httppost);
1382
                HttpEntity entity = response.getEntity();
1383
                int status = response.getStatusLine().getStatusCode();
1384
                if(status == 200){
1385
                } else {
1386
                }
1387
 
1388
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
1389
                return jObjGmail;
1390
 
1391
            } catch (ClientProtocolException e) {
1392
                return null;
1393
            } catch (IOException e) {
1394
                return null;
1395
            }catch (Exception e){
1396
                return null;
1397
            }
1398
        }
1399
 
1400
        @Override
1401
        protected void onPostExecute(JSONObject result) {
1402
            super.onPostExecute(result);
1403
            try {
1404
                if(result==null){
1405
 
1406
                }else{
1407
                    JSONArray js = result.getJSONArray("result");
1408
                    str = new ArrayList<>();
1409
                    for (int i = 0; i < js.length(); i++) {
1410
                        String s = js.getString(i);
1411
                        str.add(s);
1412
                    }
1413
                    sizeList=1;//for getting the url and fetching raw html.
1414
                    j=1;//for url to be incremented that needs to be sent to server.
1415
                    addOrderHistory(str.get(0));
1416
                }
1417
            }catch (Exception e){
1418
            }
1419
        }
1420
    }
1421
    int count=0;
1422
    List<String> str;
1423
    public void addOrderHistory(String s){
1424
        AmazonOrderHistoryDetails amazonOrderClient = new AmazonOrderHistoryDetails();
1425
        amazonOrderHistoryWebView.loadUrl(s);
1426
        amazonOrderHistoryWebView.setWebViewClient(amazonOrderClient);
1427
    }
1428
    public void addOrderHistoryCancelled(String s){
1429
        AmazonOrderCancelledDetails amazonOrderClient1 = new AmazonOrderCancelledDetails();
1430
        amazonOrderHistoryCancelledWebView.loadUrl(s);
1431
        amazonOrderHistoryCancelledWebView.setWebViewClient(amazonOrderClient1);
1432
    }
1433
 
1434
    public void addAllHistory(List<String> listOfUrls){
1435
        for(String s : listOfUrls) {
1436
 
1437
            AmazonAllOrderHistory amazonOrderClient = new AmazonAllOrderHistory();
1438
            amazonAllUrlsWebView.loadUrl(s);
1439
            amazonAllUrlsWebView.setWebViewClient(amazonOrderClient);
1440
        }
1441
    }
1442
 
1443
    class AmazonAllOrderHistory extends WebViewClient {
1444
 
1445
        @Override
1446
        public void onReceivedHttpAuthRequest(WebView view,
1447
                                              HttpAuthHandler handler, String host, String realm) {
1448
 
1449
            handler.proceed("dtr", "dtr18Feb2015");
1450
 
1451
        }
1452
 
1453
        @Override
1454
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1455
            super.onPageStarted(view, url, favicon);
1456
        }
1457
 
1458
        @Override
1459
        public void onPageFinished(WebView view, String url) {
1460
            super.onPageFinished(view, url);
1461
            if(url.contains("signin")){
1462
            }
1463
            else {
1464
                view.loadUrl("javascript:window.HTMLOUT.amazonOrderUrls('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
1465
            }
1466
        }
1467
    }
1468
 
1469
    class AmazonOrderHistoryDetails extends WebViewClient {
1470
 
1471
        @Override
1472
        public void onReceivedHttpAuthRequest(WebView view,
1473
                                              HttpAuthHandler handler, String host, String realm) {
1474
 
1475
            handler.proceed("dtr", "dtr18Feb2015");
1476
 
1477
        }
1478
 
1479
        @Override
1480
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1481
            super.onPageStarted(view, url, favicon);
1482
        }
1483
 
1484
        @Override
1485
        public void onPageFinished(WebView view, String url) {
1486
            super.onPageFinished(view, url);
1487
            if(url.contains("signin")){
1488
                }
1489
            else {
1490
                view.loadUrl("javascript:window.HTMLOUT.orderHistory('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
1491
            }
1492
        }
1493
    }
1494
 
1495
    class AmazonOrderCancelledDetails extends WebViewClient {
1496
 
1497
        @Override
1498
        public void onReceivedHttpAuthRequest(WebView view,
1499
                                              HttpAuthHandler handler, String host, String realm) {
1500
 
1501
            handler.proceed("dtr", "dtr18Feb2015");
1502
 
1503
        }
1504
 
1505
        @Override
1506
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1507
            super.onPageStarted(view, url, favicon);
1508
        }
1509
 
1510
        @Override
1511
        public void onPageFinished(WebView view, String url) {
1512
            super.onPageFinished(view, url);
1513
            view.loadUrl("javascript:window.HTMLOUT.cancelledHistory('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
1514
        }
1515
    }
1516
 
1517
    public final boolean isInternetOn() {
1518
 
1519
        ConnectivityManager connec =
1520
                (ConnectivityManager)getActivity().getSystemService(getActivity().getBaseContext().CONNECTIVITY_SERVICE);
1521
 
1522
        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
1523
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
1524
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
1525
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {
1526
            return true;
1527
 
1528
        } else if (
1529
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
1530
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {
1531
 
1532
            return false;
1533
        }
1534
        return false;
1535
    }
1536
    class FetchAllOrderURLS extends AsyncTask<String, Integer, JSONObject> {
1537
 
1538
        @Override
1539
        protected void onPreExecute() {
1540
            super.onPreExecute();
1541
            //Log.e("Push Service FetchOrderURLS", "Pre execute FetchOrderURLS");
1542
        }
1543
 
1544
        @Override
1545
        protected JSONObject doInBackground(String... arg0) {
1546
            HttpClient httpclient = new DefaultHttpClient();
1547
            try {
1548
                String fetchUrl = apiData.getString("amazon.order.tracking.get.url",null)+"?user_id="+ userData.getString("id","")+"&store_id=" + apiData.getString("store.code.amazon","1");
1549
                System.out.println("ResponseCode While fetching URL: "+ " is " + fetchUrl);
1550
                HttpGet httppost = new HttpGet(fetchUrl);
1551
 
1552
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1553
                HttpResponse response = httpclient.execute(httppost);
1554
                HttpEntity entity = response.getEntity();
1555
                int status = response.getStatusLine().getStatusCode();
1556
                if(status == 200){
1557
                    System.out.println("ResponseCode While fetching URL: "+ status + " is ");
1558
                } else {
1559
                    Log.d("ResponseCode",status+"");
1560
                    System.out.println(" NOT Transfered");
1561
                }
1562
 
1563
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
1564
                //System.out.println(jObjGmail.toString());
1565
                return jObjGmail;
1566
 
1567
            } catch (ClientProtocolException e) {
1568
                Log.e("data FetchOrderURLS ","data FetchOrderURLS " + e.getMessage());
1569
                return null;
1570
            } catch (IOException e) {
1571
                Log.e("data FetchOrderURLS ","data FetchOrderURLS " + e.getMessage());
1572
                return null;
1573
            }catch (Exception e){
1574
                Log.e("data FetchOrderURLS ","data FetchOrderURLS " + e.getMessage());
1575
                return null;
1576
            }
1577
        }
1578
 
1579
        @Override
1580
        protected void onPostExecute(JSONObject result) {
1581
            super.onPostExecute(result);
1582
            try {
1583
                if(result==null){
1584
 
1585
                }else{
1586
                    JSONArray js = result.getJSONArray("result");
1587
                    str = new ArrayList<>();
1588
                    for (int i = 0; i < js.length(); i++) {
1589
                        String s = js.getString(i);
1590
                        str.add(s);
1591
                        addAllHistory(str);
1592
                    }
1593
                }
1594
                System.out.println(str);
1595
            }catch (Exception e){
1596
            }
1597
            Log.e("data","data FetchOrderURLS " + result);
1598
       }
1599
    }
1600
 
1601
 
14991 manas 1602
    class checkGateWayProblem extends AsyncTask<String, Integer, String> {
1603
        @Override
1604
        protected void onPreExecute() {
1605
            super.onPreExecute();
1606
        }
1607
 
1608
        @Override
1609
        protected String doInBackground(String... arg0) {
1610
            HttpClient httpclient = new DefaultHttpClient();
1611
            try {
1612
                HttpPost httppost = new HttpPost(arg0[0]);
1613
                final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
1614
                httppost.setHeader("Authorization", basicAuth);
1615
                HttpResponse response = httpclient.execute(httppost);
1616
                int status = response.getStatusLine().getStatusCode();
1617
 
1618
                jsArraySaholic = new JSONArray();
1619
                jSaholic.put("url", arg0[0]);
1620
 
1621
                jSaholic.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
1622
                jSaholic.put("httpstatus", status);
1623
                jSaholic.put("cookies", CookieManager.getInstance().getCookie(arg0[0]));
1624
                jsArraySaholic.put(jSaholic);
1625
                obj.put("pushdata", jsArraySaholic);
1626
                Log.d("status " ,"Status in checkGatewayProbelm " + status);
1627
                if(status == 200){
1628
                    return "success";
1629
                } else {
1630
                    return "failure";
1631
                }
1632
 
1633
            } catch (ClientProtocolException e) {
1634
                return "failure";
1635
            } catch (IOException e) {
1636
                return "failure";
1637
            }catch (JSONException e){
1638
                return "failure";
1639
            }
1640
        }
1641
 
1642
        @Override
1643
        protected void onPostExecute(String result) {
1644
            super.onPostExecute(result);
1645
            new pushData1().execute(obj);
1646
        }
1647
    }
1648
    class pushData1 extends AsyncTask<JSONObject, Integer, String> {
1649
 
1650
        @Override
1651
        protected void onPreExecute() {
1652
            super.onPreExecute();
1653
        }
1654
 
1655
        @Override
1656
        protected String doInBackground(JSONObject... arg0) {
1657
            HttpClient httpclient = new DefaultHttpClient();
1658
            try {
1659
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
1660
                nameValuePairs.add(new BasicNameValuePair("pushdata",arg0[0].toString()));
1661
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api",null));
1662
                final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
1663
                httppost.setHeader("Authorization", basicAuth);
1664
 
1665
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
1666
                System.out.println("JSON object in push Data 1 " + arg0[0].toString());
1667
                StringEntity se = new StringEntity(arg0[0].toString());
1668
                HttpResponse response = httpclient.execute(httppost);
1669
                int status = response.getStatusLine().getStatusCode();
1670
 
1671
                if(status == 200){
1672
                    return "success";
1673
                } else {
1674
                    return "failure";
1675
                }
1676
 
1677
            } catch (ClientProtocolException e) {
1678
                return "failure";
1679
            } catch (IOException e) {
1680
                return "failure";
1681
            }
1682
        }
1683
 
1684
        @Override
1685
        protected void onPostExecute(String result) {
1686
            super.onPostExecute(result);
1687
        }
1688
    }
1689
 
16452 manas 1690
    public void redirectPage(final AlertDialog builder){
1691
        Handler h =new Handler();
1692
        h.postDelayed(new Runnable() {
1693
            @Override
1694
            public void run() {
1695
                if(builder!=null){
1696
                    builder.dismiss();
1697
                }
1698
                userDataEditor.clear().commit();
1699
                startActivity(new Intent(getActivity(), LoginActivity.class));
1700
            }
1701
        },3000);
1702
 
14991 manas 1703
    }
1704
 
16452 manas 1705
    public void sendQueuedResponse(){
1706
 
1707
        List<List<NameValuePair>> postDataNameValuePair =  new ArrayList<List<NameValuePair>>();
1708
        postDataNameValuePair=orderDetails.readData1();
1709
        for(List<NameValuePair> orderDetail : postDataNameValuePair) {
1710
            orderDetail.add(new BasicNameValuePair("zip", "1"));
1711
            orderDetail.add(new BasicNameValuePair("wifi",UtilityFunctions.checkWifi(getActivity())+""));
1712
            orderDetail.add(new BasicNameValuePair("imeinumber",UtilityFunctions.getImeiNumber(getActivity())));
1713
            orderDetail.add(new BasicNameValuePair("appversion",UtilityFunctions.getAppVersion(getActivity())));
1714
            PushRawHTML pm =new  PushRawHTML();
1715
            pm.execute(orderDetail);
1716
        }
14991 manas 1717
    }
15356 manas 1718
 
1719
 
16452 manas 1720
    class PaytmWebViewClient extends WebViewClient {
15356 manas 1721
        @Override
16452 manas 1722
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1723
            super.onPageStarted(view, url, favicon);
1724
        }
1725
 
1726
        @Override
1727
        public void onPageFinished(WebView view, String url) {
1728
            super.onPageFinished(view, url);
1729
            if(url.contains(apiData.getString("paytm.myorders.url","paytm.com/myorders"))){
1730
                view.loadUrl("javascript:window.location='" + getPaytmUrl(url) + "';");
1731
            }else {
1732
                view.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('html')[0].innerHTML);");
1733
            }
1734
        }
1735
    }
1736
 
1737
    public String getPaytmUrl(String url){
1738
        String returnUrl=null;
1739
        //Pattern p = Pattern.compile("[/]myorders/(\\d+)");
1740
        Pattern p = Pattern.compile(apiData.getString("paytm.myorders.pattern","[/]myorders/(\\d+)"));
1741
        Matcher m = p.matcher(url);
1742
        if (m.find()) {
1743
            returnUrl=m.group(1);
1744
        }
1745
        System.out.println(apiData.getString("paytm.orderdetail.url","https://paytm.com/shop/orderdetail/") + returnUrl + "?actions=1&channel=web&version=2");
1746
        return  apiData.getString("paytm.orderdetail.url","https://paytm.com/shop/orderdetail/")+returnUrl+"?actions=1&channel=web&version=2";
1747
    }
1748
 
1749
 
1750
    public String getPaytmReferer(String url){
1751
        String returnUrl=null;
1752
        Pattern p = Pattern.compile(apiData.getString("paytm.summary.pattern","[/]summary/(\\d+)"));
1753
        //Pattern p = Pattern.compile("[/]summary/(\\d+)");
1754
        Matcher m = p.matcher(url);
1755
        if (m.find()) {
1756
            returnUrl=m.group(1);
1757
        }
1758
        System.out.println( "In paytm Referer" + apiData.getString("paytm.myorders.url","https://paytm.com/myorders/") +returnUrl);
1759
        return  apiData.getString("paytm.myorders.url","https://paytm.com/myorders/")+returnUrl;
1760
    }
1761
 
1762
 
1763
    class PaytmOrderURL extends AsyncTask<String, Integer, JSONObject> {
1764
 
1765
        @Override
15356 manas 1766
        protected void onPreExecute() {
1767
            super.onPreExecute();
1768
        }
1769
 
1770
        @Override
16452 manas 1771
        protected JSONObject doInBackground(String... arg0) {
15356 manas 1772
            HttpClient httpclient = new DefaultHttpClient();
1773
            try {
16452 manas 1774
                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");
1775
                HttpGet httppost = new HttpGet(fetchUrl);
15356 manas 1776
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1777
                HttpResponse response = httpclient.execute(httppost);
1778
                HttpEntity entity = response.getEntity();
1779
                int status = response.getStatusLine().getStatusCode();
1780
 
16452 manas 1781
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
15356 manas 1782
                return jObjGmail;
16452 manas 1783
            } catch (JSONException e) {
1784
                return null;
15356 manas 1785
            } catch (ClientProtocolException e) {
1786
                return null;
1787
            } catch (IOException e) {
16452 manas 1788
                e.printStackTrace();
15356 manas 1789
                return null;
1790
            }
1791
        }
1792
 
1793
        @Override
16452 manas 1794
        protected void onPostExecute(JSONObject result) {
15356 manas 1795
            super.onPostExecute(result);
16452 manas 1796
            try {
1797
                if (result != null) {
1798
                    if (result.length() == 0) {
1799
                        userDataEditor.putString("paytmOrder", "false").commit();
1800
                    } else {
1801
                        JSONArray js = result.getJSONArray("result");
1802
                        if(js.length()!=0) {
1803
                            strPaytmUrls = new ArrayList<>();
1804
                            strPaytmReferer = new ArrayList<>();
1805
                            for (int i = 0; i < js.length(); i++) {
1806
                                JSONObject paytmURLRef=js.getJSONObject(i);
1807
                                String url = paytmURLRef.getString("url");
1808
                                String referer = paytmURLRef.getString("referer");
1809
                                strPaytmUrls.add(url);
1810
                                strPaytmReferer.add(referer);
1811
                            }
1812
                            paytmOrderTracking(strPaytmUrls.get(0),strPaytmReferer.get(0));
1813
                        }else{
1814
                            userDataEditor.putString("paytmOrder", "false").commit();
1815
                        }
1816
                    }
1817
                }
1818
            }catch (Exception e){
1819
                e.printStackTrace();
1820
            }
1821
 
15356 manas 1822
        }
1823
    }
16452 manas 1824
 
1825
 
1826
    class PaytmOrderCreation extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
1827
 
1828
        @Override
1829
        protected void onPreExecute() {
1830
            super.onPreExecute();
1831
        }
1832
 
1833
        @Override
1834
        protected JSONObject doInBackground(List<NameValuePair>... orderDetail) {
1835
 
1836
 
1837
            try {
1838
                HttpClient httpclient = new DefaultHttpClient();
1839
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
1840
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1841
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1842
                HttpResponse response = httpclient.execute(httppost);
1843
                HttpEntity entity = response.getEntity();
1844
 
1845
                int status = response.getStatusLine().getStatusCode();
1846
 
1847
                if(status == 200){
1848
                    NameValuePair y = orderDetail[0].get(2);
1849
                    int z =orderDetails.deleteRecord(y.getName(),new String[]{y.getValue()});
1850
                } else {
15356 manas 1851
                }
16452 manas 1852
                String getJSON = EntityUtils.toString(entity);
1853
                if(getJSON==null){
1854
                    return null;
1855
                }else {
1856
                    JSONObject jObjGmail = new JSONObject(getJSON);
1857
                    return jObjGmail;
1858
                }
1859
            } catch (Exception e) {
1860
                return null;
15356 manas 1861
            }
16452 manas 1862
        }
15356 manas 1863
 
16452 manas 1864
 
1865
        @Override
1866
        protected void onPostExecute(JSONObject result) {
1867
            if(result==null){
1868
 
1869
            }
1870
            else {
1871
                userDataEditor.putString("paytmOrder", "true").commit();
1872
                userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis()+ 21600000).commit();
1873
                try {
1874
                    if (result.getString("message").equalsIgnoreCase("PROCESSED"))
1875
                        orderDetails.deleterecords();
1876
                } catch (Exception e) {
1877
                }
1878
            }
1879
            super.onPostExecute(result);
1880
        }
15356 manas 1881
    }
15588 manas 1882
 
16452 manas 1883
    public void paytmOrderTracking(List<String> paytmUrls,List<String> paytmReferers){
1884
        for(int i=1;i<paytmReferers.size();i++) {
1885
            PaytmOrderTrackingClient paytmOrderTrackingClient = new PaytmOrderTrackingClient(paytmUrls.get(i));
1886
            paytmWebView = new WebView(webView.getContext());
1887
            paytmWebView.setVisibility(View.GONE);
1888
            paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");
1889
            paytmWebView.getSettings().setJavaScriptEnabled(true);
1890
            paytmWebView.loadUrl(paytmReferers.get(i));
1891
            paytmWebView.setWebViewClient(paytmOrderTrackingClient);
1892
        }
1893
        userDataEditor.putLong("paytmNextFetchTime",System.currentTimeMillis()+21600000).commit();
1894
    }
15588 manas 1895
 
16452 manas 1896
    public void paytmOrderTracking(String paytmUrl,String paytmReferer){
1897
        PaytmOrderTrackingClient paytmOrderTrackingClient = new PaytmOrderTrackingClient(paytmUrl);
1898
        paytmWebView = new WebView(webView.getContext());
1899
        paytmWebView.setVisibility(View.GONE);
1900
        paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");
1901
        paytmWebView.getSettings().setJavaScriptEnabled(true);
1902
        paytmWebView.loadUrl(paytmReferer);
1903
        paytmWebView.setWebViewClient(paytmOrderTrackingClient);
1904
        userDataEditor.putLong("paytmNextFetchTime",System.currentTimeMillis()+21600000).commit();
1905
    }
1906
    class PaytmOrderTrackingClient extends WebViewClient {
1907
        String paytmUrlAfterReferer;
1908
        public PaytmOrderTrackingClient(String paytmUrl){
1909
            paytmUrlAfterReferer=paytmUrl;
15588 manas 1910
        }
16452 manas 1911
        @Override
1912
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1913
            super.onPageStarted(view, url, favicon);
1914
        }
1915
 
1916
        @Override
1917
        public void onPageFinished(WebView view, String url) {
1918
            super.onPageFinished(view, url);
1919
            if(url.contains(apiData.getString("paytm.myorders.url","paytm.com/myorders"))){
1920
                view.loadUrl("javascript:window.location='"+ paytmUrlAfterReferer+ "';");
1921
            }else {
1922
                view.loadUrl("javascript:window.HTMLOUT.paytmTracking(document.getElementsByTagName('html')[0].innerHTML);");
1923
            }
1924
        }
15588 manas 1925
    }
16452 manas 1926
    List<String> strPaytmUrls,strPaytmReferer;
1927
    int paytmCounter=0;
14792 manas 1928
 
16452 manas 1929
    class PaytmPushTrackingUrls extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
1930
        @Override
1931
        protected void onPreExecute() {
1932
            super.onPreExecute();
1933
        }
14792 manas 1934
 
16452 manas 1935
        @Override
1936
        protected JSONObject doInBackground(List<NameValuePair>... pushOrder) {
14792 manas 1937
 
16452 manas 1938
            try {
1939
                HttpClient httpclient = new DefaultHttpClient();
1940
                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");
1941
                HttpPost httppost = new HttpPost(fetchUrl);
1942
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1943
                httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));
1944
                HttpResponse response = httpclient.execute(httppost);
1945
                HttpEntity entity = response.getEntity();
1946
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
1947
                return jObjGmail;
1948
            } catch (Exception e) {
1949
                return null;
1950
            }
1951
        }
1952
 
1953
        @Override
1954
        protected void onPostExecute(JSONObject result) {
1955
            super.onPostExecute(result);
1956
            try {
1957
                if (result == null) {
1958
 
1959
                } else if (result.getString("result").equalsIgnoreCase("PARSE_ERROR")) {
1960
                    userDataEditor.putBoolean("paytmLoggedIn",false).commit();
1961
                }else{
1962
                    paytmOrderTracking(strPaytmUrls,strPaytmReferer);
1963
                }
1964
            }catch(Exception e){
1965
                e.printStackTrace();
1966
            }
1967
        }
1968
    }
1969
 
1970
    class paytmInterface {
1971
 
1972
        Context mContext;
1973
 
1974
        public paytmInterface(Context c) {
1975
            mContext = c;
1976
        }
1977
 
1978
        @JavascriptInterface
1979
        public void showHTML(String html) {
1980
            nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));
1981
            long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);
1982
            List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();
1983
            postDataNameValuePair = orderDetails.readData1();
1984
            for (List<NameValuePair> orderDetail : postDataNameValuePair) {
1985
                orderDetail.add(new BasicNameValuePair("zip", "1"));
1986
                new PaytmOrderCreation().execute(orderDetail);
1987
            }
1988
        }
1989
 
1990
        @JavascriptInterface
1991
        public void paytmTracking(String html) {
1992
            try {
1993
                String url = strPaytmUrls.get(paytmCounter++);
1994
                List<NameValuePair> amazonOrderHistory = new ArrayList<NameValuePair>();
1995
                amazonOrderHistory.add(new BasicNameValuePair("url", url));
1996
                amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
1997
                amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));
1998
                if (isInternetOn()) {
1999
                    new PaytmPushTrackingUrls().execute(amazonOrderHistory);
2000
                } else {
2001
 
2002
                }
2003
            }catch(Exception e){
2004
                e.printStackTrace();
2005
            }
2006
 
2007
        }
2008
    }
2009
}