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