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