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