Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

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