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