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