Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

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