Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

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