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