Subversion Repositories SmartDukaan

Rev

Rev 21480 | Rev 22381 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21480 rajender 1
package com.saholic.profittill.main;
2
 
22130 rajender 3
import android.annotation.SuppressLint;
4
import android.app.Activity;
21480 rajender 5
import android.app.AlertDialog;
6
import android.app.Fragment;
7
import android.app.ProgressDialog;
22130 rajender 8
import android.content.BroadcastReceiver;
21480 rajender 9
import android.content.ComponentName;
10
import android.content.Context;
11
import android.content.DialogInterface;
12
import android.content.Intent;
13
import android.content.IntentFilter;
14
import android.content.SharedPreferences;
15
import android.content.pm.ResolveInfo;
16
import android.graphics.Bitmap;
22130 rajender 17
import android.graphics.Color;
18
import android.graphics.PorterDuff;
19
import android.graphics.drawable.ColorDrawable;
20
import android.graphics.drawable.Drawable;
21480 rajender 21
import android.net.ConnectivityManager;
22
import android.net.Uri;
23
import android.os.AsyncTask;
24
import android.os.Build;
25
import android.os.Bundle;
22130 rajender 26
import android.os.Environment;
21480 rajender 27
import android.os.Handler;
28
import android.os.Parcelable;
22130 rajender 29
import android.provider.MediaStore;
21480 rajender 30
import android.support.v4.os.AsyncTaskCompat;
22130 rajender 31
import android.support.v7.app.ActionBar;
32
import android.support.v7.app.AppCompatActivity;
33
import android.telephony.SmsMessage;
34
import android.telephony.TelephonyManager;
21480 rajender 35
import android.util.Base64;
36
import android.util.Log;
37
import android.view.KeyEvent;
38
import android.view.LayoutInflater;
39
import android.view.Menu;
40
import android.view.MenuInflater;
41
import android.view.View;
42
import android.view.ViewGroup;
43
import android.webkit.CookieManager;
44
import android.webkit.CookieSyncManager;
45
import android.webkit.HttpAuthHandler;
46
import android.webkit.JavascriptInterface;
47
import android.webkit.ValueCallback;
22130 rajender 48
import android.webkit.WebChromeClient;
21480 rajender 49
import android.webkit.WebSettings;
50
import android.webkit.WebView;
51
import android.webkit.WebViewClient;
52
import android.widget.CheckBox;
53
import android.widget.CompoundButton;
54
import android.widget.Toast;
55
 
56
import com.google.android.gms.common.ConnectionResult;
57
import com.google.android.gms.common.api.GoogleApiClient;
58
import com.google.android.gms.plus.Plus;
22130 rajender 59
import com.google.firebase.iid.FirebaseInstanceId;
21480 rajender 60
import com.saholic.profittill.Constants.ProfitTillConstants;
61
import com.saholic.profittill.Database.OrderTransactionDetails;
62
import com.saholic.profittill.Network.NotificationCount;
63
import com.saholic.profittill.R;
64
import com.saholic.profittill.Utils.UtilityFunctions;
65
import com.testin.agent.TestinAgent;
66
 
67
import org.apache.http.HttpEntity;
68
import org.apache.http.HttpResponse;
69
import org.apache.http.NameValuePair;
70
import org.apache.http.client.ClientProtocolException;
71
import org.apache.http.client.HttpClient;
72
import org.apache.http.client.entity.UrlEncodedFormEntity;
73
import org.apache.http.client.methods.HttpGet;
74
import org.apache.http.client.methods.HttpPost;
75
import org.apache.http.entity.StringEntity;
76
import org.apache.http.impl.client.DefaultHttpClient;
77
import org.apache.http.message.BasicNameValuePair;
78
import org.apache.http.util.EntityUtils;
79
import org.json.JSONArray;
80
import org.json.JSONException;
81
import org.json.JSONObject;
82
 
22130 rajender 83
import java.io.File;
21480 rajender 84
import java.io.IOException;
85
import java.io.InputStream;
86
import java.io.UnsupportedEncodingException;
87
import java.text.SimpleDateFormat;
88
import java.util.ArrayList;
89
import java.util.Date;
90
import java.util.HashMap;
91
import java.util.Iterator;
92
import java.util.LinkedList;
93
import java.util.List;
94
import java.util.Map;
95
import java.util.StringTokenizer;
96
import java.util.regex.Matcher;
97
import java.util.regex.Pattern;
98
 
99
public class DealsHomeFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
100
 
101
    public DealsHomeFragment() {
102
 
103
    }
104
 
105
    static boolean FLAG = false, REDIRECT = false, PAGE_LOAD = false, PAYTMFLAG = false, isPause = false, Flipkartflag = false;
106
    int snapdealException = 0;
107
    static String BASIC_AUTH = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
108
    public static WebView webView;
109
    WebView amazonWebView, OrderHistoryWebView, amazonOrderHistoryWebView, amazonOrderHistoryCancelledWebView, paytmWebView;
110
    WebView amazonAllUrlsWebView;
111
    SharedPreferences userData;
112
    SharedPreferences apiData;
113
    SharedPreferences flipkartData;
114
    SharedPreferences.Editor userDataEditor;
115
    SharedPreferences.Editor apiSettingsEditor;
116
    SharedPreferences.Editor flipkartDataEditor;
117
    OrderTransactionDetails orderDetails;
118
    LinkedList<ArrayList<NameValuePair>> orderLinkedList;
119
    SharedPreferences amazonData;
120
    String affliateUrl;
121
    String landingURL;
22130 rajender 122
    String regId;
123
    String msg = "";
124
    ArrayList<NameValuePair> messageNameValuePair;
21480 rajender 125
    boolean val = false;
126
    String redirectUrls;
127
    String pageLoad;
128
    SharedPreferences.Editor amazonapiSettingsEditor;
129
    List<NameValuePair> amazonOrderTrackingData;
130
    int pageRedirect = 0;
131
    int snapdealPageLoad;
132
    final ArrayList<String> redirectUrlsList = new ArrayList<String>();
133
    final ArrayList<String> pageLoadList = new ArrayList<String>();
134
    String flipkartUrl;
135
    View checkBoxView;
22130 rajender 136
    boolean glogout;
21480 rajender 137
    boolean flipkartFlag;
138
    String saholicUrl;
139
    JSONObject jSaholic;
140
    JSONArray jsArraySaholic;
141
    String type1;
142
    ArrayList<String> orderSuccessUrlList;
143
    public GoogleApiClient mGoogleApiClient;
144
    ProgressDialog pd1 = null;
22130 rajender 145
    private static final String TAG = DealsHomeFragment.class.getSimpleName();
146
    private String mCM;
147
    private ValueCallback<Uri> mUM;
148
    private ValueCallback<Uri[]> mUMA;
149
    private final static int FCR=1;
150
    boolean doubleBackToExitPressedOnce = false;
21480 rajender 151
    String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
152
 
153
    @Override
154
    public void onCreate(Bundle savedInstanceState) {
155
        super.onCreate(savedInstanceState);
156
        setRetainInstance(true);
157
        setHasOptionsMenu(true);
22130 rajender 158
 
21480 rajender 159
    }
160
 
161
    @Override
162
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
163
        super.onCreateOptionsMenu(menu, inflater);
164
 
165
 
22130 rajender 166
     /*   RelativeLayout badgeLayout = (RelativeLayout) menu.findItem(R.id.action_notifications).getActionView();
21480 rajender 167
        TextView notifciationCount = (TextView) badgeLayout.findViewById(R.id.inAppNotificationText);
168
        if (userData.getInt("notification_count", 0) != 0) {
169
            notifciationCount.setVisibility(View.VISIBLE);
170
            notifciationCount.setText(userData.getInt("notification_count", 0) + "");
171
        } else {
172
            notifciationCount.setVisibility(View.GONE);
22130 rajender 173
        }*/
21480 rajender 174
    }
175
 
176
    @Override
177
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
178
                             Bundle savedInstanceState) {
179
 
180
 
181
        View rootView = inflater.inflate(R.layout.fragment_deals_home, container, false);
182
 
183
        TestinAgent.init(getActivity());
22130 rajender 184
        AppCompatActivity activity = (AppCompatActivity) getActivity();
185
        ActionBar actionBar = activity.getSupportActionBar();
186
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
187
        final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
188
        upArrow.setColorFilter(getResources().getColor(R.color.grey_black), PorterDuff.Mode.SRC_ATOP);
189
        actionBar.setHomeAsUpIndicator(upArrow);
190
        //actionBar.setIcon(R.drawable.logo_cirlce_1);
191
        actionBar.setDisplayShowCustomEnabled(true);
192
        actionBar.setDisplayShowTitleEnabled(false);
193
        actionBar.setDisplayHomeAsUpEnabled(true);
194
        actionBar.setHomeButtonEnabled(true);
195
        actionBar.setCustomView(R.layout.actionbarprofittill);
196
        actionBar.show();
21480 rajender 197
        amazonData = getActivity().getSharedPreferences("Amazon_Data", Context.MODE_PRIVATE);
198
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
199
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
200
        flipkartData = getActivity().getSharedPreferences("Flipkart_Data", Context.MODE_PRIVATE);
201
        userDataEditor = userData.edit();
202
        apiSettingsEditor = apiData.edit();
203
        TestinAgent.setUserInfo(userData.getString("id", ""));
204
        amazonapiSettingsEditor = amazonData.edit();
205
        flipkartDataEditor = flipkartData.edit();
206
        affliateUrl = getArguments().getString("key");
207
        orderDetails = new OrderTransactionDetails(getActivity());
208
        orderSuccessUrlList = new ArrayList<String>();
209
        String issues = apiData.getString("list.order.success.url", "blank");
210
        StringTokenizer st2 = new StringTokenizer(issues, "|");
211
 
212
        while (st2.hasMoreElements()) {
213
            orderSuccessUrlList.add(st2.nextToken());
214
        }
215
        if (isInternetOn()) {
216
            if (orderDetails.countTotalRecords() > 0) {
217
                sendQueuedResponse();
218
            }
219
            type1 = userData.getString("type", null);
220
            if (type1 != null && type1.equalsIgnoreCase("google")) {
221
                mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
222
                        .addConnectionCallbacks(this)
223
                        .addOnConnectionFailedListener(this).addApi(Plus.API)
224
                        .addScope(Plus.SCOPE_PLUS_LOGIN).build();
225
                mGoogleApiClient.connect();
226
            }
227
            redirectUrls = apiData.getString("profitmandi.redirect.urls", "");
228
            StringTokenizer st = new StringTokenizer(redirectUrls, "|");
229
            while (st.hasMoreTokens()) {
230
                redirectUrlsList.add(st.nextToken());
231
            }
232
            pageLoad = apiData.getString("profitmandi.pageloads.pattern", "");
233
            StringTokenizer st1 = new StringTokenizer(pageLoad, "|");
234
            while (st1.hasMoreTokens()) {
235
                pageLoadList.add(st1.nextToken());
236
            }
237
            WebClientClass webViewClient = new WebClientClass();
238
            if (webView != null) {
239
                webView.loadUrl("about:blank");
240
            }
241
            webView = (WebView) rootView.findViewById(R.id.webView);
242
            webView.setClickable(true);
243
            webView.setFocusableInTouchMode(true);
244
            webView.getSettings().setDomStorageEnabled(true);
22130 rajender 245
            webView.getSettings().setDatabaseEnabled(true);
21480 rajender 246
            webView.getSettings().setJavaScriptEnabled(true);
22130 rajender 247
            webView.getSettings().setAllowContentAccess(true);
248
            webView.getSettings().setAllowFileAccess(true);
249
            //webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
250
            webView.addJavascriptInterface(new javascriptInterface(webView),"HTMLOUT");
251
            if(Build.VERSION.SDK_INT >= 21){
252
                webView.getSettings().setMixedContentMode(0);
253
                webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
254
            }else if(Build.VERSION.SDK_INT >= 19){
255
                webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
256
            }else if(Build.VERSION.SDK_INT < 19){
257
                webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
258
            }
259
            webView.setWebViewClient(new Callback());
260
            webView.setWebChromeClient(new WebChromeClient(){
261
                //For Android 3.0+
262
                public void openFileChooser(ValueCallback<Uri> uploadMsg){
263
                    mUM = uploadMsg;
264
                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
265
                    i.addCategory(Intent.CATEGORY_OPENABLE);
266
                    i.setType("*/*");
267
                    getActivity().startActivityForResult(Intent.createChooser(i,"File Chooser"), FCR);
268
                }
269
                // For Android 3.0+, above method not supported in some android 3+ versions, in such case we use this
270
                public void openFileChooser(ValueCallback uploadMsg, String acceptType){
271
                    mUM = uploadMsg;
272
                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
273
                    i.addCategory(Intent.CATEGORY_OPENABLE);
274
                    i.setType("*/*");
275
                    getActivity().startActivityForResult(
276
                            Intent.createChooser(i, "File Browser"),
277
                            FCR);
278
                }
279
                //For Android 4.1+
280
                public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
281
                    mUM = uploadMsg;
282
                    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
283
                    i.addCategory(Intent.CATEGORY_OPENABLE);
284
                    i.setType("*/*");
285
                    getActivity().startActivityForResult(Intent.createChooser(i, "File Chooser"), DealsHomeFragment.FCR);
286
                }
287
                //For Android 5.0+
288
                public boolean onShowFileChooser(
289
                        WebView webView, ValueCallback<Uri[]> filePathCallback,
290
                        WebChromeClient.FileChooserParams fileChooserParams){
291
                    if(mUMA != null){
292
                        mUMA.onReceiveValue(null);
293
                    }
294
                    mUMA = filePathCallback;
295
                    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
296
                    if(takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null){
297
                        File photoFile = null;
298
                        try{
299
                            photoFile = createImageFile();
300
                            takePictureIntent.putExtra("PhotoPath", mCM);
301
                        }catch(IOException ex){
302
                            Log.e(TAG, "Image file creation failed", ex);
303
                        }
304
                        if(photoFile != null){
305
                            mCM = "file:" + photoFile.getAbsolutePath();
306
                            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
307
                        }else{
308
                            takePictureIntent = null;
309
                        }
310
                    }
311
                    Intent contentSelectionIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
312
                    contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
313
                    String [] mimeTypes = {"image/*", "application/pdf"};
314
                    contentSelectionIntent.setType("*/*");
315
                    contentSelectionIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
316
                    // contentSelectionIntent.setType("image/*");
317
                    Intent[] intentArray;
318
                    if(takePictureIntent != null){
319
                        intentArray = new Intent[]{takePictureIntent};
320
                    }else{
321
                        intentArray = new Intent[0];
322
                    }
323
 
324
                    Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
325
                    chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
326
                    chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");
327
                    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
328
                    startActivityForResult(chooserIntent, FCR);
329
                    return true;
330
                }
331
            });
21480 rajender 332
            webView.getSettings().setSavePassword(true);
333
            CookieManager cookieManager = CookieManager.getInstance();
334
            cookieManager.setAcceptCookie(true);
335
 
336
            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
337
                webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
338
                webView.getSettings().setAllowContentAccess(true);
339
                CookieManager cookieManager1 = CookieManager.getInstance();
340
                cookieManager1.setAcceptThirdPartyCookies(webView, true);
341
            }
342
            if (Uri.parse(getArguments().getString("key")).getHost().contains("api.profittill")) {
343
                userDataEditor.putString("saholic.data", UtilityFunctions.clearCookiesNew(getArguments().getString("key"), getActivity())).commit();
344
            }
345
            String url = getArguments().getString("key");
346
            if (Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
347
                CookieSyncManager.createInstance(getActivity());
348
                CookieManager cookieManager1 = CookieManager.getInstance();
349
                cookieManager1.setCookie(url, "token=" + userData.getString("token", ""));
350
                cookieManager1.setCookie(url, "walletAuthentication=true");
351
                cookieManager1.setCookie(url, "shopcluesActive=true");
352
                cookieManager1.setCookie(url, "paytmActive=true");
353
                cookieManager1.setCookie(url, "shareApps=true");
354
                cookieManager1.setCookie(url, "homeshop18=true");
355
                cookieManager1.setCookie(url, "isRedirect=true");
356
            }
357
            if (!(userData.getBoolean("paytmLoggedIn", false))) {
358
                Log.d("User Not Logged In", "User Not logged In");
359
            } else {
360
                if (userData.getString("paytmOrder", "").equalsIgnoreCase("true")) {
361
                    long nextFetchTime = userData.getLong("paytmNextFetchTime", 0);
362
                    if (nextFetchTime == 0 || nextFetchTime < System.currentTimeMillis()) {
363
                        if (isInternetOn()) {
364
                            new PaytmOrderURL().execute();
365
                        }
366
                    } else {
367
                        Log.d("Paytm False", "Paytm Time False");
368
                    }
369
                } else {
370
                    Log.d("Paytm False", "Paytm False No orders");
371
                }
372
            }
373
            if (!(userData.getBoolean("amazonLoggedIn", false))) {
374
                Log.d("Not In Amazon", "Amazon");
375
            }
376
            else {
377
                if (userData.getString("amazonOrder", "").equalsIgnoreCase("true")) {
378
                    long nextFetchTime = userData.getLong("amazonNextFetchTime", 0);
379
                    if (nextFetchTime == 0 || nextFetchTime < System.currentTimeMillis()) {
380
                        if (isInternetOn()) {
381
                            new FetchOrderURLS().execute();
382
                        }
383
                    }
384
                    else {
385
                        Log.d("Amazon False", "Amazon Time False" + userData.getLong("amazonNextFetchTime", 0));
386
                    }
387
                } else {
388
                    Log.d("Amazon False", "Amazon False No orders");
389
                }
390
            }
22130 rajender 391
            // Map <String, String> extraHeaders = new HashMap<String, String>();
392
            // extraHeaders.put("Auth-Token",userData.getString("token",""));
21480 rajender 393
            webView.setWebViewClient(webViewClient);
22130 rajender 394
            webView.loadUrl(url);
21480 rajender 395
 
396
        }
22130 rajender 397
 
21480 rajender 398
        else {
399
            SearchFragment nextFrag = new SearchFragment();
400
            Bundle args = new Bundle();
401
            args.putString("finishingurl", getArguments().getString("key"));
402
            args.putString("fragmentNumber", "1");
403
            nextFrag.setArguments(args);
404
            getActivity().getFragmentManager().beginTransaction()
405
                    .replace(R.id.frame_container, nextFrag)
406
                    .addToBackStack(null)
407
                    .commit();
408
        }
409
        return rootView;
410
    }
411
    @Override
412
    public void onViewCreated(View view, Bundle savedInstanceState) {
413
        super.onViewCreated(view, savedInstanceState);
414
    }
415
 
22130 rajender 416
    BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
417
        @Override
418
        public void onReceive(Context context, Intent intent) {
419
            final Bundle bundle = intent.getExtras();
420
 
421
            try {
422
                if (bundle != null) {
423
                    final Object[] pdusObj = (Object[]) bundle.get("pdus");
424
                    for (int i = 0; i < pdusObj.length; i++) {
425
 
426
                        SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
427
                        String phoneNumber = currentMessage.getDisplayOriginatingAddress();
428
 
429
                        String senderNum = phoneNumber;
430
                        String message = currentMessage.getDisplayMessageBody();
431
 
432
                        String lastTwo = null;
433
                        if (senderNum != null && senderNum.length() >= 6) {
434
                            lastTwo = senderNum.substring(senderNum.length() - 6);
435
                        }
436
                        try {
437
                            if (lastTwo.equalsIgnoreCase(apiData.getString("Sender_CLI","PROFTM"))){
438
                                messageNameValuePair = new ArrayList<>();
439
                                messageNameValuePair.add(new BasicNameValuePair("message",message));
440
                                getActivity().unregisterReceiver(broadcastReceiver);
441
                                new SendOtpMessage().execute();
442
                            }
443
                            else{
444
                                getActivity().registerReceiver(broadcastReceiver, new IntentFilter(SMS_RECEIVED));
445
                            }}
446
                        catch(Exception e){
447
                            e.printStackTrace();
448
                        }
449
                    }
450
                }
451
 
452
            }
453
            catch (Exception e) {
454
                e.printStackTrace();
455
 
456
            }
457
        }
458
    };
459
 
21480 rajender 460
    JSONObject obj;
461
 
462
    @Override
463
    public void onConnected(Bundle bundle) {
464
 
465
    }
466
 
467
    @Override
468
    public void onConnectionSuspended(int i) {
469
 
470
    }
471
 
472
    @Override
473
    public void onConnectionFailed(ConnectionResult connectionResult) {
474
 
475
    }
476
 
22130 rajender 477
 
478
 
21480 rajender 479
    public class WebClientClass extends WebViewClient {
480
        ProgressDialog pd = null;
481
 
482
        ProgressDialog pd2 = null;
483
 
484
 
485
        @Override
486
        public void onReceivedHttpAuthRequest(WebView view,
487
                                              HttpAuthHandler handler, String host, String realm) {
488
 
489
            handler.proceed("dtr", "dtr18Feb2015");
490
        }
491
 
492
        @Override
493
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
494
 
495
            if (apiData.getString("snapdealException", "false").equalsIgnoreCase("true")) {
496
                List<String> snapdealExceptionUrls = new ArrayList<>();
497
                StringTokenizer st = new StringTokenizer(apiData.getString("snapdeal.exception.urls", ""), "|");
498
                while (st.hasMoreTokens()) {
499
                    snapdealExceptionUrls.add(st.nextToken());
500
                }
501
                try {
502
                    Log.d("Count", "Count " + apiData.getString("snapdeal.exception.count", "1"));
503
                    for (String s : snapdealExceptionUrls) {
504
                        if (url.contains(s)) {
505
                            if (snapdealException <= Integer.parseInt(apiData.getString("snapdeal.exception.count", "1"))) {
506
                                webView.reload();
507
                                snapdealException += 1;
508
                            }
509
                            return false;
510
                        }
511
                    }
512
                } catch (Exception e) {
513
                    e.printStackTrace();
514
                }
515
            }
516
            if (apiData.getString("isRedirect", "false").equalsIgnoreCase("true")) {
517
                List<String> browserRedirectUrl = new ArrayList<>();
518
                StringTokenizer st = new StringTokenizer(apiData.getString("redirect.urls", ""), "|");
519
                while (st.hasMoreTokens()) {
520
                    browserRedirectUrl.add(st.nextToken());
521
                }
522
                for (String s : browserRedirectUrl) {
523
                    if (url.contains(s)) {
524
                        isPause = true;
525
                        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
526
                        startActivity(intent);
527
                        return true;
528
                    }
529
                }
530
            }
531
            if (url.contains("apprub")) {
532
                onShareClick(url);
533
                return true;
534
            }
22130 rajender 535
            if (url.contains(apiData.getString("wallet.auth", "api.profittill.com/special/native/login")) /*|| userData.getString("id", "").isEmpty()*/) {
21480 rajender 536
                android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
537
                android.webkit.CookieSyncManager.createInstance(getActivity());
538
                cookieManager.removeAllCookie();
539
                AlertDialog alert;
540
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
541
                builder.setMessage(apiData.getString("wallet.auth.message", "You are not authenticated. Please log in again")).setCancelable(false);
542
                alert = builder.create();
543
                alert.show();
544
                try {
545
                    if (mGoogleApiClient.isConnected()) {
546
                        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
547
                        mGoogleApiClient.disconnect();
548
                        mGoogleApiClient.connect();
549
                        redirectPage(alert);
550
                    } else {
551
                        if (!mGoogleApiClient.isConnected()) {
552
                            redirectPage(alert);
553
                        }
554
                    }
555
                } catch (Exception e) {
556
                    redirectPage(alert);
557
                }
558
                return true;
559
            }
560
            if (url.contains("com.saholic.profittill")) {
561
                Intent intent = null;
562
                try {
563
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getActivity().getPackageName()));
564
                } catch (android.content.ActivityNotFoundException anfe) {
565
                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getActivity().getPackageName()));
566
                }
567
                startActivity(intent);
568
                return true;
569
            }
570
            if (snapdealPageLoad == 1) {
571
                pd2 = new ProgressDialog(getActivity());
572
                pd2.setMessage("Wait for a moment and click again.");
573
                pd2.setProgress(view.getProgress());
574
                pd2.show();
575
                return true;
576
            }
577
            if (url.startsWith("tel")) {
578
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
579
                startActivity(intent);
580
                return true;
581
            }
582
            if (url.contains(apiData.getString("contactus.url", ""))) {
583
                Intent i = new Intent(getActivity(), MainActivity.class);
584
                i.putExtra("displayView", "6");
585
                startActivity(i);
586
                return true;
587
            }
588
            if (url.contains(apiData.getString("howitworks.url", ""))) {
589
                Intent i = new Intent(getActivity(), MainActivity.class);
590
                i.putExtra("displayView", "7");
591
                startActivity(i);
592
                return true;
593
            }
594
            if (url.contains(apiData.getString("myprofile.url", "http://api.profittill.com/aboutus/profile"))) {
595
                Intent i = new Intent(getActivity(), MainActivity.class);
596
                i.putExtra("displayView", "15");
597
                startActivity(i);
598
                return true;
599
            }
600
            return false;
601
 
602
        }
603
 
604
        @Override
605
        public synchronized void onPageStarted(final WebView view, String url, Bitmap favicon) {
606
            super.onPageStarted(view, url, favicon);
607
            final CharSequence[] items = {" Don't show me again "};
608
            final ArrayList seletedItems = new ArrayList();
609
            try {
22130 rajender 610
 
21480 rajender 611
                if (Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
612
                    CookieSyncManager.createInstance(getActivity());
613
                    CookieManager cookieManager = CookieManager.getInstance();
614
                    cookieManager.setCookie(url, "token=" + userData.getString("token", ""));
615
                    cookieManager.setCookie(url, "walletAuthentication=true");
616
                    cookieManager.setCookie(url, "shopcluesActive=true");
617
                    cookieManager.setCookie(url, "paytmActive=true");
618
                    cookieManager.setCookie(url, "shareApps=true");
619
                    cookieManager.setCookie(url, "homeshop18=true");
620
                    cookieManager.setCookie(url, "isRedirect=true");
621
                }
622
                if (false) {
623
                    flipkartUrl = url;
624
 
625
                    if (flipkartData.getInt("showagainflag", 0) < 3) {
626
                        AlertDialog dialog;
627
                        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
628
                        builder.setMessage(apiData.getString("flipkart.message", "You won't be able to track your orders & earn cashbacks if you purchase using Flipkart App."))
629
                                .setView(checkBoxView)
630
                                .setCancelable(false)
631
                                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
632
                                    @Override
633
                                    public void onClick(DialogInterface dialog, int which) {
634
                                        int i = flipkartData.getInt("showagainflag", 0);
635
                                        flipkartDataEditor.putInt("showagainflag", ++i);
636
                                        flipkartDataEditor.commit();
637
                                        Intent flipkartIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
638
                                        startActivity(flipkartIntent);
639
                                    }
640
                                })
641
                                .setNegativeButton("No", new DialogInterface.OnClickListener() {
642
                                    @Override
643
                                    public void onClick(DialogInterface dialog, int id) {
644
                                        view.loadUrl(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));
645
 
646
                                    }
647
                                });
648
                        dialog = builder.create();
649
                        dialog.show();
650
                    } else if (flipkartData.getInt("showagainflag", 0) == 3) {
651
                        AlertDialog dialog;
652
                        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
653
                        checkBoxView = View.inflate(getActivity(), R.layout.checkboxlayout, null);
654
                        CheckBox checkBox = (CheckBox) checkBoxView.findViewById(R.id.checkbox);
655
                        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
656
 
657
                            @Override
658
                            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
659
                                flipkartFlag = isChecked;
660
                            }
661
                        });
662
                        checkBox.setText("Don't show me again");
663
                        builder.setMessage(apiData.getString("flipkart.message", "You won't be able to track your orders & earn cashbacks if you purchase using Flipkart App."))
664
                                .setView(checkBoxView)
665
                                .setCancelable(false)
666
                                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
667
                                    @Override
668
                                    public void onClick(DialogInterface dialog, int which) {
669
                                        if (flipkartFlag) {
670
                                            int i = flipkartData.getInt("showagainflag", 0);
671
                                            flipkartDataEditor.putInt("showagainflag", ++i);
672
                                            flipkartDataEditor.commit();
673
                                        }
674
                                        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
675
                                        startActivity(i);
676
                                    }
677
                                })
678
                                .setNegativeButton("No", new DialogInterface.OnClickListener() {
679
                                    @Override
680
                                    public void onClick(DialogInterface dialog, int id) {
681
                                        view.loadUrl(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));
682
 
683
                                    }
684
                                });
685
                        dialog = builder.create();
686
                        dialog.show();
687
                    } else {
688
                        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(flipkartUrl));
689
                        startActivity(i);
690
                    }
691
                    view.stopLoading();
692
                } else {
693
                    for (String s : pageLoadList) {
694
                        if (url.contains(s)) {
695
                            PAGE_LOAD = true;
696
                        }
697
                    }
698
                    if (PAGE_LOAD) {
699
                        snapdealPageLoad = 1;
700
                        PAGE_LOAD = false;
701
                    } else {
702
                        snapdealPageLoad = 0;
703
                        for (String s : redirectUrlsList) {
704
                            if (url.contains(s)) {
705
                                REDIRECT = true;
706
                                break;
707
                            }
708
                        }
709
                        if (REDIRECT) {
710
                            pageRedirect = 2;
711
                            REDIRECT = false;
712
                        }
713
                        else if (pageRedirect == 2 || pageRedirect == 1) {
714
                            Toast.makeText(getActivity(), "Redirecting to deals...", Toast.LENGTH_SHORT).show();
715
                            Intent i = new Intent(getActivity(), MainActivity.class);
716
                            i.putExtra("displayView", "31");
717
                            i.putExtra("redirectUrl", apiData.getString("redirect.url", "") + "?user_id=" + userData.getString("id", ""));
718
                            startActivity(i);
719
                            pageRedirect = 0;
720
                        }
721
                        else {
722
                            landingURL = url;
22130 rajender 723
                            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"))) {
21480 rajender 724
                                pd = new ProgressDialog(getActivity());
725
                                pd.setTitle("Please wait");
726
                                pd.setMessage("Loading..");
727
                                pd.show();
728
                            }
729
                            getOrderSuccessUrlConfirmation(url);
730
                            if (displayActionBar) {
731
                                pd1 = new ProgressDialog(getActivity());
732
                                pd1.setTitle("Please wait");
733
                                pd1.setMessage("Loading..");
734
                                pd1.show();
735
                            }
736
                        }
737
                    }
738
                    if (Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data", "false").equalsIgnoreCase("true")) {
739
 
740
                    }
741
                    else {
742
                        JSONObject j = new JSONObject();
743
                        JSONArray jsArray = new JSONArray();
744
                        j.put("url", url);
745
                        j.put("user_id", userData.getString("id", null));
746
                        j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
747
                        jsArray.put(j);
748
                        AsyncTaskCompat.executeParallel(new pushData(), new JSONObject().put("pushdata", jsArray));
749
 
750
                    }
751
                    storeSubTagId(url);
752
                }
753
            }
754
            catch (Exception e) {
755
                e.printStackTrace();
756
            }
757
        }
758
 
759
        @Override
760
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
22130 rajender 761
            super.onReceivedError(view, errorCode, description, failingUrl);
21480 rajender 762
            if (getActivity() != null) {
763
                SearchFragment nextFrag = new SearchFragment();
764
                Bundle args = new Bundle();
765
                args.putString("finishingurl", failingUrl);
766
                nextFrag.setArguments(args);
22130 rajender 767
                getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container,nextFrag).addToBackStack(null).commitAllowingStateLoss();
768
 
21480 rajender 769
            }
770
        }
771
 
772
        @Override
773
        public synchronized void onPageFinished(WebView view, String url) {
774
            super.onPageFinished(view, url);
22130 rajender 775
            if(url.contains(apiData.getString("Web_Uri","http://pm.shop2020.in/entry-point"))){
21480 rajender 776
 
22130 rajender 777
 
778
                // if(url.contains(ProfitTillConstants.Web_Uri)){
779
                String js1 =("javascript:document.getElementById('authToken').value ='" +userData.getString("token","")+"'");
780
                Log.d("authToken",js1);
781
                if(Build.VERSION.SDK_INT >= 19){
782
                    view.evaluateJavascript(js1, new ValueCallback<String>() {
783
                        @Override
784
                        public void onReceiveValue(String s) {
785
                        }
786
                    });
787
                }
788
                else {
789
                    view.loadUrl(js1);
790
                }
791
                String js2 =("javascript:document.getElementById('authTokenSubmit').click()");
792
                view.loadUrl(js2);
793
                String js = ("javascript:window.localStorage.removeItem('android.otpReceived');");
794
                Log.d("storage",js);
21480 rajender 795
                view.loadUrl(js);
796
            }
22130 rajender 797
 
798
            if(url.contains("http://pm.shop2020.in")){
799
                // ((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
800
                ((AppCompatActivity)getActivity()).getSupportActionBar().hide();
801
            }
802
            else{
803
                ((AppCompatActivity)getActivity()).getSupportActionBar().show();
804
            }
21480 rajender 805
            try {
806
                if (url.equalsIgnoreCase("about:blank")) {
807
                    Log.d("Blankl Url", "Blank Url");
808
                }
809
                else {
810
                    if (getActivity() != null) {
811
                        if (url.contains(apiData.getString("notification.page.url", "http://api.profittill.com/users/usernotification"))) {
812
                            String notificationUrl = apiData.getString("notification.count", "http://45.33.50.227:3001/getNotificationCount") + "?user_id=" + userData.getString("id", "") + "&android_id=" + UtilityFunctions.androidId(getActivity());
813
                            new NotificationCount().getCount(getActivity(), null, notificationUrl);
814
                            new Handler().postDelayed(new Runnable() {
815
                                @Override
816
                                public void run() {
817
                                    getActivity().invalidateOptionsMenu();
818
                                }
819
                            }, 1000);
820
                        }
821
                    }
822
                    if (apiData.getString("snapdealException", "true").equalsIgnoreCase("true")) {
823
                        List<String> snapdealExceptionUrlsPass = new ArrayList<>();
824
                        StringTokenizer st = new StringTokenizer(apiData.getString("snapdeal.exception.urls.pass", ""), "|");
825
                        while (st.hasMoreTokens()) {
826
                            snapdealExceptionUrlsPass.add(st.nextToken());
827
                        }
828
                        for (String s : snapdealExceptionUrlsPass) {
829
                            if (url.contains(s)) {
830
                                snapdealException = 0;
831
                            }
832
                        }
833
                    }
22130 rajender 834
                    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"))) {
21480 rajender 835
                        pd.dismiss();
836
                    }
837
                    if (snapdealPageLoad == 1) {
838
                        snapdealPageLoad = 0;
839
                    }
840
                    if (pd2 != null) {
841
                        pd2.dismiss();
842
                    }
843
                    if (Uri.parse(url).getHost().equalsIgnoreCase("paytm.com")) {
844
                        view.loadUrl("javascript:try{" +
845
                                "var lastUrl=document.URL;" +
846
                                "setInterval(function(){var currentUrl=document.URL;" +
847
                                "if(currentUrl!=lastUrl){window.HTMLOUT.paytmUrls(currentUrl);lastUrl=currentUrl;}},2000)" +
848
                                "}catch(error){Android.onError(error.message);}");
849
                    }
850
                    if (Uri.parse(url).getHost().contains("saholic") && userData.getString("saholic.data", "false").equalsIgnoreCase("true")) {
851
                        saholicUrl = url;
852
                        view.loadUrl("javascript:window.HTMLOUT.saholicHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
853
                    }
854
                    if (url.contains(apiData.getString("amazon.tracking.order.url", ""))) {
855
                        fetchOrderDetails();
856
                    }
857
                    if (displayActionBar) {
858
                        if (url.contains("amazon")) {
859
                            view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
860
                            pd1.dismiss();
861
                            amazonWebView = new WebView(webView.getContext());
862
                            amazonWebView.setVisibility(View.GONE);
863
                            amazonWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
864
                            amazonWebView.getSettings().setJavaScriptEnabled(true);
865
 
866
                        } else if (url.contains(ProfitTillConstants.PAYTM)) {
867
                            PaytmWebViewClient paytmWebViewClient = new PaytmWebViewClient();
868
                            pd1.dismiss();
869
                            paytmWebView = new WebView(webView.getContext());
870
                            paytmWebView.setVisibility(View.GONE);
871
                            paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");
872
                            paytmWebView.getSettings().setJavaScriptEnabled(true);
873
                            paytmWebView.loadUrl(getPaytmReferer(url));
874
                            paytmWebView.setWebViewClient(paytmWebViewClient);
875
                        } else {
876
                            view.loadUrl("javascript:window.HTMLOUT.flipkartHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
877
 
878
                        }
879
                    }
880
 
881
                    amazonOrderHistoryWebView = new WebView(webView.getContext());
882
                    amazonOrderHistoryWebView.setVisibility(View.GONE);
883
                    amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
884
                    amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
885
                    amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
886
 
887
                    amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());
888
                    amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);
889
                    amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);
890
                    amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
891
                    amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
892
 
893
                    amazonAllUrlsWebView = new WebView(webView.getContext());
894
                    amazonAllUrlsWebView.setVisibility(View.GONE);
895
                    amazonAllUrlsWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
896
                    amazonAllUrlsWebView.getSettings().setJavaScriptEnabled(true);
897
                    amazonAllUrlsWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
898
 
899
                    if (url.contains("https://www.amazon.in/ap/signin")) {
900
                        if (!FLAG) {
901
                            FLAG = true;
902
                            userDataEditor.putString("amazonOrder", "true").commit();
903
                            userDataEditor.putBoolean("amazonLoggedIn", true).commit();
904
                        }
905
                    } else if (FLAG) {
906
                        view.loadUrl("javascript:try{" +
907
                                "var lastUrl=document.URL;" +
908
                                "setInterval(function(){var currentUrl=document.URL;" +
909
                                "if(currentUrl!=lastUrl){window.HTMLOUT.amazonUrls(currentUrl);lastUrl=currentUrl;}},2000)" +
910
                                "}catch(error){Android.onError(error.message);}");
911
                        amazonOrderHistoryWebView = new WebView(webView.getContext());
912
                        amazonOrderHistoryWebView.setVisibility(View.GONE);
913
                        amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
914
                        amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
915
                        amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
916
                        amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());
917
                        amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);
918
                        amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);
919
                        amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
920
                        amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
921
                        fetchOrderDetails();
922
                        FLAG = false;
923
                    }
924
 
925
                    if (url.contains("flipkart")) {
926
                        if (Flipkartflag) {
927
                            if (!url.contains("https://www.flipkart.com/login")) {
928
                                processFlipkartHtml();
929
                                Flipkartflag = false;
930
                            }
931
                        }
932
                        else if(url.contains("https://www.flipkart.com/rv/orderConfirmation")){
933
                            processFlipkartHtml();
934
                        }
935
                        else {
936
                            view.loadUrl("javascript:try{" +
937
                                    "var lastUrl=document.URL;" +
938
                                    "setInterval(function(){var currentUrl=document.URL;" +
939
                                    "if(currentUrl!=lastUrl){window.HTMLOUT.flipkartUrls(currentUrl);lastUrl=currentUrl;}},2000)" +
940
                                    "}catch(error){Android.onError(error.message);}");
941
                        }
942
 
943
                    }
944
 
945
 
946
                    view.setOnKeyListener(new View.OnKeyListener() {
947
                        @Override
948
                        public boolean onKey(View v, int keyCode, KeyEvent event) {
949
                            if (event.getAction() == KeyEvent.ACTION_DOWN) {
950
                                WebView webView = (WebView) v;
951
                                switch (keyCode) {
952
                                    case KeyEvent.KEYCODE_BACK:
22130 rajender 953
                                        String veb=webView.getUrl();
954
                                        if ((webView.canGoBack() && !webView.getUrl().contains("http://pm.shop2020.in/pages/home/dashboard") && !webView.getUrl().contains("http://pm.shop2020.in/pages/mobileOtp")&& !webView.getUrl().contains("http://pm.shop2020.in/pages/registration") && !webView.getUrl().contains("http://pm.shop2020.in/pages/checkRegistration"))|| pageRedirect == 2) {
21480 rajender 955
                                            webView.goBack();
956
                                            pageRedirect = 0;
957
                                            snapdealPageLoad = 0;
958
                                            return true;
959
                                        } 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", ""))) {
960
                                            Intent i = new Intent(getActivity(), MainActivity.class);
961
                                            i.putExtra("displayView", "0");
962
                                            startActivity(i);
963
                                            return true;
22130 rajender 964
                                        }
965
                                        else if (webView.getUrl().contains("http://pm.shop2020.in")) {
966
                                            //else if(webView.getUrl().contains(ProfitTillConstants.Web_Uri)){
967
                                            if (doubleBackToExitPressedOnce) {
968
                                                new AlertDialog.Builder(getActivity())
969
                                                        .setIcon(R.drawable.symbol)
970
                                                        .setTitle("Exit!")
971
                                                        .setMessage("Are you sure you want to close?")
972
                                                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
973
                                                            @Override
974
                                                            public void onClick(DialogInterface dialog, int which) {
975
                                                                if(userData.getString("userStatus","").equals("notRegistered"))
976
                                                                {
977
                                                                    Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
978
                                                                    mGoogleApiClient.disconnect();
979
                                                                    userDataEditor.clear().commit();
980
                                                                    mGoogleApiClient.connect();
981
                                                                    userDataEditor.clear().commit();
982
                                                                    startActivity(new Intent(getActivity(), LoginActivity.class));
21480 rajender 983
 
22130 rajender 984
                                                                }
985
                                                                else{
986
                                                                    Intent startMain = new Intent(Intent.ACTION_MAIN);
987
                                                                    startMain.addCategory(Intent.CATEGORY_HOME);
988
                                                                    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
21480 rajender 989
 
22130 rajender 990
                                                                    startActivity(startMain);
991
                                                                }
992
                                                            }
993
 
994
                                                        })
995
                                                        .setNegativeButton("No", null)
996
                                                        .show();
997
                                                return true;
998
                                            }
999
                                            doubleBackToExitPressedOnce = true;
1000
                                            Toast.makeText(getActivity(), "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
1001
 
1002
                                            new Handler().postDelayed(new Runnable() {
1003
 
1004
                                                @Override
1005
                                                public void run() {
1006
                                                    doubleBackToExitPressedOnce = false;
1007
                                                }
1008
                                            }, 5000);
21480 rajender 1009
                                        } else {
1010
                                            Intent i = new Intent(getActivity(), MainActivity.class);
1011
                                            i.putExtra("displayView", "0");
1012
                                            startActivity(i);
1013
                                            return true;
1014
                                        }
1015
 
1016
                                        break;
1017
                                }
1018
                            }
1019
                            return false;
1020
                        }
1021
                    });
1022
                }
1023
            } catch (Exception e) {
1024
                e.printStackTrace();
1025
                TestinAgent.uploadException(getActivity(), "On Page Finished", e);
1026
            }
22130 rajender 1027
        }}
1028
    public class Callback extends WebViewClient{
1029
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
1030
            Toast.makeText(getActivity(), "Failed loading app!", Toast.LENGTH_SHORT).show();
21480 rajender 1031
        }
22130 rajender 1032
    }
1033
    // Create an image file
1034
    private File createImageFile() throws IOException{
1035
        @SuppressLint("SimpleDateFormat") String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
1036
        String imageFileName = "img_"+timeStamp+"_";
1037
        File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
1038
        return File.createTempFile(imageFileName,".jpg",storageDir);
1039
    }
21480 rajender 1040
 
22130 rajender 1041
 
1042
    @Override
1043
    public void onActivityResult(int requestCode, int resultCode, Intent intent){
1044
        super.onActivityResult(requestCode, resultCode, intent);
1045
        if(Build.VERSION.SDK_INT >= 21){
1046
            Uri[] results = null;
1047
            //Check if response is positive
1048
            if(resultCode== Activity.RESULT_OK){
1049
                if(requestCode == FCR){
1050
                    if(null == mUMA){
1051
                        return;
1052
                    }
1053
                    if(intent == null){
1054
                        //Capture Photo if no image available
1055
                        if(mCM != null){
1056
                            results = new Uri[]{Uri.parse(mCM)};
1057
                        }
1058
                    }else{
1059
                        String dataString = intent.getDataString();
1060
                        if(dataString != null){
1061
                            results = new Uri[]{Uri.parse(dataString)};
1062
                        }
1063
                    }
1064
                }
1065
            }
1066
            mUMA.onReceiveValue(results);
1067
            mUMA = null;
1068
        }else{
1069
            if(requestCode == FCR){
1070
                if(null == mUM) return;
1071
                Uri result = intent == null || resultCode != Activity.RESULT_OK ? null : intent.getData();
1072
                mUM.onReceiveValue(result);
1073
                mUM = null;
1074
            }
1075
        }
21480 rajender 1076
    }
1077
 
1078
    private void processFlipkartHtml() {
1079
        FlipkartWebview fkView = new FlipkartWebview();
1080
        amazonOrderHistoryWebView = new WebView(webView.getContext());
1081
        amazonOrderHistoryWebView.setVisibility(View.GONE);
1082
        String post=apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts");
1083
        amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36");
1084
        amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
1085
        amazonOrderHistoryWebView.addJavascriptInterface(new javascriptInterface(webView), "HTMLOUT");
1086
        amazonOrderHistoryWebView.loadUrl(apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts"));
1087
        amazonOrderHistoryWebView.setWebViewClient(fkView);
1088
    }
1089
    class ProcessFlipkartHtml extends AsyncTask<String, Integer, String> {
1090
        ProgressDialog pg1 = null;
1091
        @Override
1092
        protected void onPreExecute() {
1093
 
1094
            super.onPreExecute();
1095
 
1096
            pg1.show();
1097
        }
1098
        @Override
1099
        protected String doInBackground(String... arg0) {
1100
            try {
1101
                HttpClient httpclient = new DefaultHttpClient();
1102
                HttpPost httppost = new HttpPost(apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "flipkart"));
1103
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1104
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsRawHtml));
1105
                HttpResponse response = httpclient.execute(httppost);
1106
                HttpEntity entity = response.getEntity();
1107
                int status = response.getStatusLine().getStatusCode();
1108
 
1109
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
1110
                JSONObject jobj =jObjGmail.getJSONObject("result");
1111
                JSONObject headers = jobj.getJSONObject("headers");
1112
                JSONArray url =jobj.getJSONArray("urls");
1113
                for (int i = 0; i <url.length(); i++) {
1114
                    HttpClient client = new DefaultHttpClient();
1115
                    HttpGet get = new HttpGet(url.getString(i));
1116
                    Map<String, String> map = new HashMap<String, String>();
1117
                    Iterator iter = headers.keys();
1118
                    while (iter.hasNext()) {
1119
                        String key = (String) iter.next();
1120
                        String value = headers.getString(key);
1121
                        get.setHeader(key, value);
1122
                    }
1123
                    HttpResponse resp = client.execute(get);
1124
                    HttpEntity ent = resp.getEntity();
1125
                    JSONObject jOb = new JSONObject(EntityUtils.toString(ent));
1126
 
1127
                    HttpClient http = new DefaultHttpClient();
1128
                    ArrayList<NameValuePair> namevaluepairs = new ArrayList<>();
1129
                    namevaluepairs.add(new BasicNameValuePair("html",UtilityFunctions.compress(jOb.toString())));
1130
                    namevaluepairs.add(new BasicNameValuePair("url", url.getString(i)));
1131
                    namevaluepairs.add(new BasicNameValuePair("zip","1"));
1132
                    HttpPost post = new HttpPost(apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "")), "flipkart"));
1133
                    post.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1134
                    post.setEntity(new UrlEncodedFormEntity(namevaluepairs));
1135
                    HttpResponse res = http.execute(post);
1136
                    int sta = res.getStatusLine().getStatusCode();
1137
                }
1138
 
1139
            }
1140
            catch (Exception e) {
1141
                e.printStackTrace();
1142
                return null;
1143
            }
1144
            return null;
1145
        }
1146
        @Override
1147
        protected void onPostExecute(String jsonObject) {
1148
            super.onPostExecute(jsonObject);
1149
 
1150
            pg1.dismiss();
1151
 
1152
        }}
1153
 
1154
    @Override
1155
    public void onResume() {
1156
        super.onResume();
1157
        getView().setFocusableInTouchMode(true);
1158
        getView().requestFocus();
1159
        getView().setOnKeyListener(new View.OnKeyListener() {
1160
            @Override
1161
            public boolean onKey(View v, int keyCode, KeyEvent event) {
1162
 
1163
                if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
1164
                    try {
22130 rajender 1165
                        if (landingURL.contains("http://pm.shop2020.in")) {
1166
                            if (doubleBackToExitPressedOnce) {
1167
                                new AlertDialog.Builder(getActivity())
1168
                                        .setIcon(R.drawable.symbol)
1169
                                        .setTitle("Exit!")
1170
                                        .setMessage("Are you sure you want to close?")
1171
                                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
1172
                                            @Override
1173
                                            public void onClick(DialogInterface dialog, int which) {
1174
                                                if(userData.getString("userStatus","").equals("notRegistered"))
1175
                                                {
1176
                                                    Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
1177
                                                    mGoogleApiClient.disconnect();
1178
                                                    userDataEditor.clear().commit();
1179
                                                    mGoogleApiClient.connect();
1180
                                                    startActivity(new Intent(getActivity(), LoginActivity.class));
21480 rajender 1181
 
22130 rajender 1182
 
1183
                                                }
1184
                                                else{
1185
                                                    Intent startMain = new Intent(Intent.ACTION_MAIN);
1186
                                                    startMain.addCategory(Intent.CATEGORY_HOME);
1187
                                                    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
1188
 
1189
                                                    startActivity(startMain);
1190
                                                }}
1191
 
1192
                                        })
1193
                                        .setNegativeButton("No", null)
1194
                                        .show();
1195
                                return true;
1196
                            }
1197
                            doubleBackToExitPressedOnce = true;
1198
                            Toast.makeText(getActivity(), "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
1199
 
1200
                            new Handler().postDelayed(new Runnable() {
1201
 
1202
                                @Override
1203
                                public void run() {
1204
                                    doubleBackToExitPressedOnce = false;
1205
                                }
1206
                            }, 5000);
1207
                        }else {
21480 rajender 1208
                            if (webView.canGoBack()) {
1209
                                webView.goBack();
1210
                            } else {
1211
                                Intent i = new Intent(getActivity(), MainActivity.class);
1212
                                i.putExtra("displayView", "0");
1213
                                startActivity(i);
1214
                            }
1215
                            return true;
1216
 
1217
                        }
1218
 
1219
                    } catch (Exception e) {
1220
                        e.printStackTrace();
1221
                        return false;
1222
                    }
1223
                }
1224
                return false;
1225
            }
1226
 
1227
        });
1228
    }
1229
 
1230
    public void fetchOrderDetails() {
1231
        if (isInternetOn()) {
1232
            new FetchOrderURLS().execute();
1233
        }
1234
    }
1235
 
1236
    public void pushDataInAmazon(String orderId) {
1237
 
1238
        AmazonOrderDetails amazonOrderClient = new AmazonOrderDetails();
1239
        nameValuePairsRawHtmlAmazon = new ArrayList<NameValuePair>();
1240
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
1241
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("id", orderId));
1242
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("store_id", apiData.getString("store.code.amazon", null)));
1243
        nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("order_url", amazonData.getString("amazonurl", "")));
1244
        //nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("sub_tag",userData.getString("subtag",null)));
1245
        amazonWebView.loadUrl(amazonData.getString("amazonurl", ""));
1246
        amazonWebView.setWebViewClient(amazonOrderClient);
1247
 
1248
    }
1249
 
1250
    public void storeSubTagId(String url) {
1251
 
1252
        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"))) {
1253
            StringTokenizer st2 = new StringTokenizer(url, "&");
1254
            while (st2.hasMoreElements()) {
1255
                String token = st2.nextToken();
1256
                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"))) {
1257
                    String subtagId = userData.getString("subtag", "null");
1258
                    if (subtagId == null) {
1259
                        userDataEditor.putString("subtag", token.split("=")[1]);
1260
                        userDataEditor.commit();
1261
                    } else {
1262
                        userDataEditor.remove("subtag");
1263
                        userDataEditor.commit();
1264
                        userDataEditor.putString("subtag", token.split("=")[1]);
1265
                        userDataEditor.commit();
1266
                    }
1267
                } else
1268
                    continue;
1269
            }
1270
        } else
1271
            return;
1272
    }
1273
 
1274
 
1275
    boolean displayActionBar;
1276
 
1277
    public void getDisplayActionBar(String url) throws Exception {
1278
        String snapdealConfirmation = apiData.getString("snapdeal.order.success.url", null);
1279
        String flipkartConfirmation = apiData.getString("flipkart.order.success.url", null);
1280
        String amazonConfirmation = apiData.getString("amazon.order.success.url", null);
1281
        String amazonThankYouConfirmation = apiData.getString("amazon.order.success.thankyou.url", null);
1282
        String saholicConfirmation = apiData.getString("saholic.order.success.url", null);
1283
        if (url.contains(snapdealConfirmation) || url.contains(flipkartConfirmation) || url.contains(amazonConfirmation) || url.contains(amazonThankYouConfirmation) || url.contains(saholicConfirmation)) {
1284
            displayActionBar = true;
1285
            String storeID = getStoreId(url);
1286
            if (storeID == null) {
1287
                Log.e("Deals Page Activity", "Null value returned for storeID");
1288
            } else {
1289
                nameValuePairsRawHtml = new ArrayList<NameValuePair>();
1290
                nameValuePairsRawHtml.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
1291
                nameValuePairsRawHtml.add(new BasicNameValuePair("store_id", storeID));
1292
                nameValuePairsRawHtml.add(new BasicNameValuePair("order_url", url));
1293
                nameValuePairsRawHtml.add(new BasicNameValuePair("sub_tag", userData.getString("subtag", null)));
1294
            }
1295
        } else {
1296
            displayActionBar = false;
1297
        }
1298
        return;
1299
    }
1300
 
1301
    public void getOrderSuccessUrlConfirmation(String url) throws Exception {
1302
        for (String s : orderSuccessUrlList) {
1303
            if (url.contains(s)) {
1304
                displayActionBar = true;
1305
                String storeID = getStoreId(url);
1306
                if (storeID == null) {
1307
                    Log.e("Deals Page Activity", "Null value returned for storeID");
1308
                } else {
1309
                    nameValuePairsRawHtml = new ArrayList<NameValuePair>();
1310
                    nameValuePairsRawHtml.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
1311
                    nameValuePairsRawHtml.add(new BasicNameValuePair("store_id", storeID));
1312
                    nameValuePairsRawHtml.add(new BasicNameValuePair("order_url", url));
1313
                    nameValuePairsRawHtml.add(new BasicNameValuePair("sub_tag", userData.getString("subtag", "")));
1314
                }
1315
                break;
1316
            } else {
1317
                displayActionBar = false;
1318
            }
1319
        }
1320
        return;
1321
    }
1322
 
1323
    public String getStoreId(String url) {
1324
       /* if(url.contains("snapdeal")){
1325
            pageRedirect=Integer.parseInt(apiData.getString("pageredirect.snapdeal","0"));
1326
            return apiData.getString("store.code.snapdeal",null);
1327
        }
1328
        else if(url.contains("flipkart")){
1329
            pageRedirect=Integer.parseInt(apiData.getString("pageredirect.flipkart","0"));
1330
            return apiData.getString("store.code.flipkart",null);
1331
        }
1332
        else if(url.contains("amazon")){
1333
            pageRedirect=Integer.parseInt(apiData.getString("pageredirect.amazon","0"));
1334
            return apiData.getString("store.code.amazon",null);
1335
        }
1336
        else if(url.contains("saholic")){
1337
            return apiData.getString("store.code.spice",null);
1338
        }
1339
        else if(url.contains("shopclues")){
1340
            return "7";
1341
        }*/
1342
        return UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "amazon=1,flipkart=2,snapdeal=3,saholic=4,shopclues=5,")), url);
1343
    }
1344
 
1345
    class pushData extends AsyncTask<JSONObject, Integer, String> {
1346
 
1347
        @Override
1348
        protected void onPreExecute() {
1349
 
1350
            super.onPreExecute();
1351
        }
1352
 
1353
        @Override
1354
        protected String doInBackground(JSONObject... objs) {
1355
            HttpClient httpclient = new DefaultHttpClient();
1356
            try {
1357
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
1358
                nameValuePairs.add(new BasicNameValuePair("pushdata",objs[0].toString()));
1359
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api", null));
1360
                httppost.setHeader("Authorization", BASIC_AUTH);
1361
 
1362
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
1363
                HttpResponse response = httpclient.execute(httppost);
1364
                int status = response.getStatusLine().getStatusCode();
1365
 
1366
                if (status == 200) {
1367
                    return "success";
1368
                } else {
1369
                    return "failure";
1370
                }
1371
 
1372
            } catch (ClientProtocolException e) {
1373
                return "failure";
1374
            } catch (IOException e) {
1375
                return "failure";
1376
            }
1377
        }
1378
 
1379
        @Override
1380
        protected void onPostExecute(String result) {
1381
            super.onPostExecute(result);
1382
        }
1383
    }
1384
 
1385
    ArrayList<NameValuePair> nameValuePairsRawHtml = new ArrayList<NameValuePair>();
1386
    ArrayList<NameValuePair> nameValuePairsRawHtmlAmazon = new ArrayList<NameValuePair>();
1387
 
1388
    class javascriptInterface {
1389
 
1390
        WebView view;
1391
 
1392
 
1393
 
22130 rajender 1394
 
21480 rajender 1395
        /**
1396
         * Instantiate the interface and set the context
1397
         */
1398
        public javascriptInterface(WebView c) {
1399
 
1400
            this.view=c;
1401
        }
22130 rajender 1402
        @JavascriptInterface
1403
        public void otpSent() {
1404
            //Toast.makeText(getActivity(),"successfull",Toast.LENGTH_LONG).show();
1405
            getActivity().registerReceiver(broadcastReceiver, new IntentFilter(SMS_RECEIVED));
1406
        }
1407
        @JavascriptInterface
1408
        public void performClick(String strl) {
1409
            Toast.makeText(getActivity(), strl, Toast.LENGTH_SHORT).show();
1410
        }
1411
        @JavascriptInterface
1412
        public void authTokenChange(String newToken) {
1413
            userDataEditor.putString("token" ,newToken);
1414
            Log.d("newtoken",newToken);
1415
            userDataEditor.commit();
1416
            new AuthTokenChange().execute();
1417
        }
21480 rajender 1418
 
22130 rajender 1419
        @JavascriptInterface
1420
        public void logout() {
1421
            try{
1422
                if (mGoogleApiClient.isConnected()) {
1423
                    Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
1424
                    mGoogleApiClient.disconnect();
1425
                    mGoogleApiClient.connect();
1426
                    userDataEditor.clear().commit();
1427
                    startActivity(new Intent(getActivity(), LoginActivity.class));
1428
                }
1429
                else{
1430
                    if(!mGoogleApiClient.isConnected()){
1431
                        userDataEditor.clear().commit();
1432
                        startActivity(new Intent(getActivity(), LoginActivity.class));
1433
                    }
21480 rajender 1434
 
22130 rajender 1435
 
1436
                }
1437
            }catch (Exception e){
1438
                userDataEditor.clear().commit();
1439
                startActivity(new Intent(getActivity(), LoginActivity.class));
21480 rajender 1440
            }
1441
        }
1442
 
1443
        @JavascriptInterface
1444
        public void showToast(String toast) {
1445
            nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(toast)));
1446
            long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);
1447
            List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();
1448
            postDataNameValuePair = orderDetails.readData1();
1449
            for (List<NameValuePair> orderDetail : postDataNameValuePair) {
1450
                orderDetail.add(new BasicNameValuePair("zip", "1"));
1451
                orderDetail.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1452
                orderDetail.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1453
                orderDetail.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1454
                PushRawHTML pm = new PushRawHTML();
1455
                pm.execute(orderDetail);
1456
            }
1457
        }
1458
 
1459
        @JavascriptInterface
1460
        public void amazonOrderTrackingHTML(String html) {
1461
            amazonOrderTrackingData.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));
1462
            amazonOrderTrackingData.add(new BasicNameValuePair("zip", "1"));
1463
            amazonOrderTrackingData.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1464
            amazonOrderTrackingData.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1465
            amazonOrderTrackingData.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1466
            new AmazonOrderTrackingDetails().execute(amazonOrderTrackingData);
1467
        }
1468
 
1469
        @JavascriptInterface
1470
        public void showHTML(String html) {
1471
 
1472
            showToast(html);
1473
        }
1474
 
1475
        @JavascriptInterface
1476
        public void flipkartHTML(String html) {
1477
            nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));
1478
            long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);
1479
            List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();
1480
            postDataNameValuePair = orderDetails.readData1();
1481
            for (List<NameValuePair> orderDetail : postDataNameValuePair) {
1482
                orderDetail.add(new BasicNameValuePair("zip", "1"));
1483
                orderDetail.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1484
                orderDetail.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1485
                orderDetail.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1486
                new loadData().execute(orderDetail);
1487
            }
1488
        }
1489
 
1490
        @JavascriptInterface
1491
        public void orderpage(String html) {
1492
 
1493
            nameValuePairsRawHtml.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
22130 rajender 1494
            nameValuePairsRawHtml.add(new BasicNameValuePair("url",apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts")));
21480 rajender 1495
            nameValuePairsRawHtml.add(new BasicNameValuePair("zip","1"));
1496
            new ProcessFlipkartHtml().execute();
1497
        }
1498
 
1499
        @JavascriptInterface
1500
        public void saholicHTML(String html) {
1501
 
1502
            try {
1503
                obj = new JSONObject();
1504
                jSaholic = new JSONObject();
1505
                jSaholic.put("html", UtilityFunctions.compress(html));
1506
                jSaholic.put("zip", "1");
1507
                jSaholic.put("user_id", userData.getString("id", null));
1508
            } catch (Exception e) {
1509
 
1510
            }
1511
            new checkGateWayProblem().execute(saholicUrl);
1512
        }
1513
 
1514
        @JavascriptInterface
1515
        public void amazonUrls(String url) {
1516
            try {
1517
                obj = new JSONObject();
1518
                JSONObject j = new JSONObject();
1519
                JSONArray jsArray = new JSONArray();
1520
                j.put("url", url);
1521
                j.put("user_id", userData.getString("id", null));
1522
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
1523
                jsArray.put(j);
1524
                obj.put("pushdata", jsArray);
1525
                new pushData().execute(obj);
1526
            } catch (Exception e) {
1527
                e.printStackTrace();
1528
            }
1529
 
1530
            try {
1531
                getOrderSuccessUrlConfirmation(url);
1532
                if (displayActionBar) {
1533
                    fetchAmazonOrder(url);
1534
                }
1535
            } catch (Exception e) {
1536
                e.printStackTrace();
1537
            }
1538
        }
1539
 
1540
        @JavascriptInterface
1541
        public void paytmUrls(String html) {
1542
            try {
1543
                obj = new JSONObject();
1544
                JSONObject j = new JSONObject();
1545
                JSONArray jsArray = new JSONArray();
1546
                j.put("url", html);
1547
                j.put("user_id", userData.getString("id", null));
1548
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
1549
                jsArray.put(j);
1550
                obj.put("pushdata", jsArray);
22130 rajender 1551
                new pushData().execute(obj);
21480 rajender 1552
            } catch (Exception e) {
1553
                e.printStackTrace();
1554
            }
1555
            if (html.contains("https://paytm.com/login")) {
1556
                if (!PAYTMFLAG) {
1557
                    PAYTMFLAG = true;
1558
                    userDataEditor.putString("paytmOrder", "true").commit();
1559
                    userDataEditor.putBoolean("paytmLoggedIn", true).commit();
1560
                }
1561
            } else if (PAYTMFLAG) {
1562
                new PaytmOrderURL().execute();
1563
                PAYTMFLAG = false;
1564
            }
1565
 
1566
        }
1567
 
1568
        @JavascriptInterface
1569
        public void flipkartUrls(String url) {
1570
            try {
1571
                obj = new JSONObject();
1572
                JSONObject j = new JSONObject();
1573
                JSONArray jsArray = new JSONArray();
1574
                j.put("url", url);
1575
                j.put("user_id", userData.getString("id", null));
1576
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
1577
                jsArray.put(j);
1578
                obj.put("pushdata", jsArray);
22130 rajender 1579
                new pushData().execute(obj);
21480 rajender 1580
            } catch (Exception e) {
1581
                e.printStackTrace();
1582
            }
1583
            if (url.contains("https://www.flipkart.com/login")) {
1584
                Flipkartflag = true;
1585
                userDataEditor.putString("flipkartOrder", "true").commit();
1586
                userDataEditor.putBoolean("flipkartLoggedIn", true).commit();
1587
            }
1588
        }
1589
    }
22130 rajender 1590
    class AuthTokenChange extends AsyncTask<String, Integer, String> {
21480 rajender 1591
 
1592
        @Override
1593
        protected void onPreExecute() {
1594
 
1595
            super.onPreExecute();
1596
        }
22130 rajender 1597
 
21480 rajender 1598
        @Override
1599
        protected String doInBackground(String... params) {
1600
            try {
1601
                HttpClient httpclient = new DefaultHttpClient();
22130 rajender 1602
                HttpGet httpget=new HttpGet(apiData.getString("Web_Api","http://shop2020.in:8080/profitmandi-web")+"/user/token-info");
1603
                // HttpGet httpget = new HttpGet(ProfitTillConstants.Web_Api + "/user/token-info");
1604
                httpget.setHeader("Auth-Token", userData.getString("token", ""));
1605
                HttpResponse response = httpclient.execute(httpget);
21480 rajender 1606
                HttpEntity entity = response.getEntity();
1607
                int status = response.getStatusLine().getStatusCode();
1608
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
22130 rajender 1609
                Log.d("Json",String.valueOf(jObjGmail));
21480 rajender 1610
                return String.valueOf(jObjGmail);
1611
 
22130 rajender 1612
            } catch (UnsupportedEncodingException e) {
21480 rajender 1613
                e.printStackTrace();
22130 rajender 1614
            } catch (IOException e) {
21480 rajender 1615
                e.printStackTrace();
1616
            } catch (JSONException e) {
1617
                e.printStackTrace();
1618
            }
1619
            return null;
1620
        }
1621
 
22130 rajender 1622
        @Override
1623
        protected void onPostExecute(String result) {
1624
            super.onPostExecute(result);
1625
            try {
1626
                JSONObject jsonObject = new JSONObject(result);
1627
                JSONObject jobj=jsonObject.getJSONObject("response");
1628
                String userStatus=jobj.getString("userStatus");
1629
                userDataEditor.putString("userStatus",userStatus);
1630
                userDataEditor.commit();
1631
                if(!(userData.getString("userStatus","").equals("notRegistered"))) {
1632
                    String user_id = jobj.getString("userId");
1633
                    userDataEditor.putString("id", user_id);
1634
                    userDataEditor.commit();
1635
                    if(!(userData.getString("id", "").equals(""))){
1636
                        UtilityFunctions utf = new UtilityFunctions();
1637
                        new pushApkData().execute(utf.getDeviceInformation(getActivity()));
1638
                    }
1639
                    else {
1640
                        Toast.makeText(getActivity(),"Network issue",Toast.LENGTH_LONG).show();
1641
                    }}
1642
                else{
1643
 
1644
                }
1645
            }
1646
            catch (JSONException e) {
1647
                e.printStackTrace();
1648
            }
21480 rajender 1649
        }
22130 rajender 1650
    }
1651
    class pushApkData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {
21480 rajender 1652
 
22130 rajender 1653
        @Override
1654
        protected void onPreExecute() {
1655
            super.onPreExecute();
1656
        }
21480 rajender 1657
 
1658
        @Override
22130 rajender 1659
        protected String doInBackground(ArrayList<NameValuePair>... arg0) {
1660
            try {
1661
                HttpClient httpclient = new DefaultHttpClient();
1662
                HttpPost httppost = new HttpPost("http://api.profittill.com/devices/add");
1663
                //HttpPost httppost = new HttpPost(ProfitTillConstants.Push_Url);
1664
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1665
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
1666
                HttpResponse response = httpclient.execute(httppost);
1667
                HttpEntity entity = response.getEntity();
1668
                int status = response.getStatusLine().getStatusCode();
1669
                if(status == 200){
1670
                    return "success";
1671
                } else {
1672
                    return "failure";
1673
                }
1674
            } catch (Exception e) {
1675
                return null;
1676
            }
1677
        }
1678
        @Override
1679
        protected void onPostExecute(String result) {
1680
            super.onPostExecute(result);
1681
            if (userData.getString("fcm_token_sent", "false").equals("false") && (!userData.getString("id", "").equals(""))) {
1682
                regId = FirebaseInstanceId.getInstance().getToken();
1683
                Log.d("RegisterActivity", "registerInBackground - regId: "
1684
                        + regId);
1685
                msg = "Device registered";
1686
                new gcmPushData().execute(msg);
1687
            }}}
1688
 
1689
    class gcmPushData extends AsyncTask<String, Integer, String> {
1690
 
1691
        @Override
21480 rajender 1692
        protected void onPreExecute() {
1693
            super.onPreExecute();
1694
        }
1695
 
1696
        @Override
22130 rajender 1697
        protected String doInBackground(String... arg0) {
1698
            String id = null;
1699
            try {
1700
                HttpClient httpclient = new DefaultHttpClient();
1701
                HttpPost httppost = new HttpPost(apiData.getString("gcm.push.url", ""));
1702
                //HttpPost httppost = new HttpPost(ProfitTillConstants.gcm_url);
1703
                ArrayList<NameValuePair> nameValuePairsGcm = new ArrayList<>();
1704
                TelephonyManager telephonyManager = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);
1705
                nameValuePairsGcm.add(new BasicNameValuePair("gcm_regid", regId));
1706
                nameValuePairsGcm.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));
1707
                nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
1708
                nameValuePairsGcm.add(new BasicNameValuePair("notification_type","fcm"));
1709
                nameValuePairsGcm.add(new BasicNameValuePair("device_message", arg0[0]));
1710
                nameValuePairsGcm.add(new BasicNameValuePair("androidid", UtilityFunctions.androidId(getActivity())));
1711
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1712
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsGcm));
1713
                HttpResponse response = httpclient.execute(httppost);
1714
                HttpEntity entity = response.getEntity();
1715
                int status = response.getStatusLine().getStatusCode();
1716
 
1717
                if (status == 200) {
1718
                    Log.d("ResponseCode GCM ", status + "");
1719
                    userDataEditor.putString("fcm_token_sent", "true");
1720
                    userDataEditor.commit();
1721
                } else {
1722
                    Log.d("ResponseCode GCM ", status + "");
1723
                }
1724
                nameValuePairsGcm.clear();
1725
                Log.e("pass 1", "connection success ");
1726
            } catch (Exception e) {
1727
                Log.e("Fail 1", e.toString());
1728
 
1729
            }
1730
            return null;
1731
        }
1732
 
1733
        @Override
1734
        protected void onPostExecute(String result)
1735
        {
1736
 
1737
            super.onPostExecute(result);
1738
        }}
1739
 
1740
    class loadData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
1741
 
1742
        @Override
1743
        protected void onPreExecute() {
1744
            super.onPreExecute();
1745
        }
1746
 
1747
        @Override
21480 rajender 1748
        protected JSONObject doInBackground(List<NameValuePair>... orderDetail) {
1749
 
1750
 
1751
            try {
1752
                HttpClient httpclient = new DefaultHttpClient();
1753
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
1754
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1755
 
1756
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1757
                HttpResponse response = httpclient.execute(httppost);
1758
                HttpEntity entity = response.getEntity();
1759
 
1760
                int status = response.getStatusLine().getStatusCode();
1761
 
1762
                if (status == 200) {
1763
                    NameValuePair y = orderDetail[0].get(2);
1764
                    int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});
1765
                } else {
1766
                    Log.d("Status in load Data ", "Status Load data " + status);
1767
 
1768
                }
1769
                String getJSON = EntityUtils.toString(entity);
1770
                if (getJSON == null) {
1771
                    return null;
1772
                } else {
1773
                    JSONObject jObjGmail = new JSONObject(getJSON);
1774
                    return jObjGmail;
1775
                }
1776
            } catch (Exception e) {
1777
                return null;
1778
            }
1779
        }
1780
 
1781
 
1782
        @Override
1783
        protected void onPostExecute(JSONObject result) {
1784
            if (result == null) {
1785
                //Log.d("Error in fetching result ", "Flipkart html ");
1786
            } else {
1787
                try {
1788
                    if (result.getString("message").equalsIgnoreCase("PROCESSED"))
1789
                        orderDetails.deleterecords();
1790
                } catch (Exception e) {
1791
                }
1792
            }
1793
            super.onPostExecute(result);
1794
        }
1795
    }
1796
 
1797
    class AmazonOrderDetails extends WebViewClient {
1798
 
1799
        @Override
1800
        public void onReceivedHttpAuthRequest(WebView view,
1801
                                              HttpAuthHandler handler, String host, String realm) {
1802
 
1803
            handler.proceed("dtr", "dtr18Feb2015");
1804
 
1805
        }
1806
 
1807
        @Override
1808
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
1809
            super.onPageStarted(view, url, favicon);
1810
        }
1811
 
1812
        @Override
1813
        public void onPageFinished(WebView view, String url) {
1814
            view.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
1815
            super.onPageFinished(view, url);
1816
        }
1817
    }
1818
 
1819
    class amazonInterface {
1820
 
1821
        Context mContext;
1822
 
1823
        /**
1824
         * Instantiate the interface and set the context
1825
         */
1826
        public amazonInterface(Context c) {
1827
            mContext = c;
1828
        }
1829
 
1830
        /**
1831
         * Show a toast from the web page
1832
         */
1833
        @JavascriptInterface
1834
        public void showToast(String toast) {
1835
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(toast)));
1836
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("zip", "1"));
1837
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1838
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1839
            nameValuePairsRawHtmlAmazon.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1840
            if (isInternetOn()) {
1841
                new amazonPushData().execute(nameValuePairsRawHtmlAmazon);
1842
            }
1843
        }
1844
 
1845
 
1846
        @JavascriptInterface
1847
        public void showHTML(String html) {
1848
            showToast(html);
1849
        }
1850
 
1851
        @JavascriptInterface
1852
        public void orderHistory(String html) {
1853
            List<NameValuePair> amazonOrderHistory = new ArrayList<>();
1854
            amazonOrderHistory.add(new BasicNameValuePair("url", str.get(0)));
1855
            amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
1856
            amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));
1857
            amazonOrderHistory.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1858
            amazonOrderHistory.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1859
            amazonOrderHistory.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1860
            if (isInternetOn()) {
1861
                new pushQueuedData().execute(amazonOrderHistory);
1862
                userDataEditor.putLong("amazonNextFetchTime", System.currentTimeMillis() + ProfitTillConstants.DURATION_TRACKING_ORDERS).commit();
1863
            }
1864
        }
1865
 
1866
        @JavascriptInterface
1867
        public void cancelledHistory(String html) {
1868
            List<NameValuePair> amazonOrderHistory = new ArrayList<>();
1869
            amazonOrderHistory.add(new BasicNameValuePair("url", str.get(j++)));
1870
            amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
1871
            amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));
1872
            amazonOrderHistory.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1873
            amazonOrderHistory.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1874
            amazonOrderHistory.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1875
            if (isInternetOn()) {
1876
                new pushCancelledQueuedData().execute(amazonOrderHistory);
1877
                userDataEditor.putLong("amazonNextFetchTime", System.currentTimeMillis() + ProfitTillConstants.DURATION_TRACKING_ORDERS).commit();
1878
            }
1879
        }
1880
 
1881
        @JavascriptInterface
1882
        public void amazonOrderUrls(String html) {
1883
            //Log.e("OrderUrls","Order amazonOrderUrls" + html);
1884
            List<NameValuePair> amazonOrderHistory = new ArrayList<>();
1885
            amazonOrderHistory.add(new BasicNameValuePair("url", str.get(1)));
1886
            amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
1887
            amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));
1888
            amazonOrderHistory.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
1889
            amazonOrderHistory.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
1890
            amazonOrderHistory.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
1891
            if (isInternetOn()) {
1892
                new pushCancelledQueuedData().execute(amazonOrderHistory);
1893
            } else {
1894
 
1895
            }
1896
        }
1897
 
1898
    }
1899
 
1900
    int j;
1901
 
1902
    class amazonPushData extends AsyncTask<List<NameValuePair>, Integer, String> {
1903
        private StringBuilder sb;
1904
 
1905
        private HttpResponse req;
1906
        private InputStream is;
1907
 
1908
        @Override
1909
        protected void onPreExecute() {
1910
            super.onPreExecute();
1911
            Log.e("Pre execute", "Pre execute");
1912
 
1913
        }
1914
 
1915
        @Override
1916
        protected String doInBackground(List<NameValuePair>... orderDetail) {
1917
            try {
1918
                HttpClient httpclient = new DefaultHttpClient();
1919
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
1920
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1921
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1922
                HttpResponse response = httpclient.execute(httppost);
1923
                HttpEntity entity = response.getEntity();
1924
                int status = response.getStatusLine().getStatusCode();
1925
 
1926
                if (status == 200) {
1927
                    System.out.println("ResponseCode of record: " + status + " is " + status);
1928
                    NameValuePair y = orderDetail[0].get(2);
1929
                    int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});
1930
                    amazonapiSettingsEditor.remove("amazonurl");
1931
                    amazonapiSettingsEditor.commit();
1932
                } else {
1933
                    /*Log.d("ResponseCode",status+"");
1934
                    System.out.println(" NOT Transfered");
1935
                    Log.d("ResponseCode",status+"");*/
1936
                }
1937
/*                Log.e("pass 1", "Amazon success ");*/
1938
            } catch (Exception e) {
1939
/*                Log.e("Fail 1", e.toString());*/
1940
 
1941
            }
1942
            return "success";
1943
        }
1944
 
1945
        @Override
1946
        protected void onPostExecute(String result) {
1947
            super.onPostExecute(result);
1948
            new FetchOrderURLS().execute();
1949
        }
1950
    }
1951
 
1952
 
1953
    class PushRawHTML extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
1954
        @Override
1955
        protected void onPreExecute() {
1956
            super.onPreExecute();
1957
        }
1958
 
1959
        @Override
1960
        protected JSONObject doInBackground(List<NameValuePair>... orderDetail) {
1961
 
1962
            try {
1963
                HttpClient httpclient = new DefaultHttpClient();
1964
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
1965
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1966
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
1967
                HttpResponse response = httpclient.execute(httppost);
1968
                HttpEntity entity = response.getEntity();
1969
                int status = response.getStatusLine().getStatusCode();
1970
 
1971
                if (status == 200) {
1972
                    NameValuePair y = orderDetail[0].get(2);
1973
                    int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});
1974
                } else {
1975
                }
1976
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
1977
 
1978
                return jObjGmail;
1979
            } catch (Exception e) {
1980
                return null;
1981
            }
1982
        }
1983
 
1984
        @Override
1985
        protected void onPostExecute(JSONObject result) {
1986
            super.onPostExecute(result);
1987
            try {
1988
                userDataEditor.putString("amazonOrder", "true").commit();
1989
                userDataEditor.putBoolean("amazonLoggedIn", true).commit();
1990
                userDataEditor.putLong("amazonNextFetchTime", System.currentTimeMillis() + ProfitTillConstants.DURATION_TRACKING_ORDERS).commit();
1991
                if (result.getString("htmlRequired").equalsIgnoreCase("true")) {
1992
                    String orderId = result.getString("orderId");
1993
                    amazonapiSettingsEditor.putString("amazonurl", result.getString("url"));
1994
                    amazonapiSettingsEditor.commit();
1995
                    pushDataInAmazon(orderId);
1996
                }
1997
            } catch (Exception e) {
1998
 
1999
            }
2000
        }
2001
    }
2002
 
2003
    class AmazonOrderTrackingDetails extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
2004
        @Override
2005
        protected void onPreExecute() {
2006
            super.onPreExecute();
2007
        }
2008
 
2009
        @Override
2010
        protected JSONObject doInBackground(List<NameValuePair>... arg0) {
2011
            try {
2012
                HttpClient httpclient = new DefaultHttpClient();
2013
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
2014
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2015
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
2016
                HttpResponse response = httpclient.execute(httppost);
2017
                HttpEntity entity = response.getEntity();
2018
                int status = response.getStatusLine().getStatusCode();
2019
 
2020
                if (status == 200) {
2021
                } else {
2022
                }
2023
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
2024
                return jObjGmail;
2025
 
2026
            } catch (Exception e) {
2027
                return null;
2028
            }
2029
        }
2030
 
2031
        @Override
2032
        protected void onPostExecute(JSONObject result) {
2033
            super.onPostExecute(result);
2034
        }
2035
    }
2036
 
2037
    class pushQueuedData extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
2038
        @Override
2039
        protected void onPreExecute() {
2040
            super.onPreExecute();
2041
        }
2042
 
2043
        @Override
2044
        protected JSONObject doInBackground(List<NameValuePair>... pushOrder) {
2045
 
2046
            try {
2047
                HttpClient httpclient = new DefaultHttpClient();
2048
                //Get store id
2049
                // NameValuePair nvp = pushOrder[1].get(0);
2050
                //String storeId = nvp.getValue();
2051
 
2052
                String fetchUrl = apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + apiData.getString("store.code.amazon", "1");
2053
                HttpPost httppost = new HttpPost(fetchUrl);
2054
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2055
                httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));
2056
                HttpResponse response = httpclient.execute(httppost);
2057
                HttpEntity entity = response.getEntity();
2058
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
2059
                return jObjGmail;
2060
 
2061
            } catch (Exception e) {
2062
                return null;
2063
            }
2064
 
2065
        }
2066
 
2067
        @Override
2068
        protected void onPostExecute(JSONObject result) {
2069
            super.onPostExecute(result);
2070
            try {
2071
                if (result == null) {
2072
 
2073
                } else if (result.getString("result").equalsIgnoreCase("PARSE_ERROR")) {
2074
                    userDataEditor.putBoolean("amazonLoggedIn", false).commit();
2075
                } else {
2076
                    addOrderHistoryCancelled(str.get(1));
2077
                }
2078
            } catch (Exception e) {
2079
                e.printStackTrace();
2080
            }
2081
        }
2082
    }
2083
 
2084
    class pushCancelledQueuedData extends AsyncTask<List<NameValuePair>, Integer, String> {
2085
 
2086
        @Override
2087
        protected void onPreExecute() {
2088
            super.onPreExecute();
2089
        }
2090
 
2091
        @Override
2092
        protected String doInBackground(List<NameValuePair>... pushOrder) {
2093
 
2094
            try {
2095
                HttpClient httpclient = new DefaultHttpClient();
2096
 
2097
                String fetchUrl = apiData.getString("amazon.order.tracking.post.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + apiData.getString("store.code.amazon", "1");
2098
                HttpPost httppost = new HttpPost(fetchUrl);
2099
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2100
                httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));
2101
                HttpResponse response = httpclient.execute(httppost);
2102
                HttpEntity entity = response.getEntity();
2103
 
2104
                return "success";
2105
            } catch (Exception e) {
2106
                return "failure";
2107
            }
2108
 
2109
        }
2110
 
2111
        @Override
2112
        protected void onPostExecute(String result) {
2113
            super.onPostExecute(result);
2114
            try {
2115
                addOrderHistoryCancelled(str.get(++sizeList));
2116
            } catch (Exception e) {
2117
                e.printStackTrace();
2118
            }
2119
            FLAG = false;
2120
        }
2121
    }
2122
 
22130 rajender 2123
    class SendOtpMessage extends AsyncTask<String, Integer, String> {
2124
 
2125
        @Override
2126
        protected void onPreExecute() {
2127
 
2128
            super.onPreExecute();
2129
        }
2130
 
2131
        @Override
2132
        protected String doInBackground(String... params) {
2133
            try {
2134
 
2135
                HttpClient httpclient = new DefaultHttpClient();
2136
                HttpPost httppost = new HttpPost(apiData.getString("Web_Api","http://shop2020.in:8080/profitmandi-web") + "/otp/parseOTP");
2137
                //HttpPost httppost = new HttpPost(ProfitTillConstants.Web_Api + "/otp/parseOTP");
2138
                httppost.setHeader("Auth-Token", userData.getString("token", ""));
2139
                httppost.setEntity(new UrlEncodedFormEntity(messageNameValuePair));
2140
                HttpResponse response = httpclient.execute(httppost);
2141
                HttpEntity entity = response.getEntity();
2142
                int status = response.getStatusLine().getStatusCode();
2143
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
2144
                return String.valueOf(jObjGmail);
2145
 
2146
            }
2147
            catch (UnsupportedEncodingException e) {
2148
                e.printStackTrace();
2149
            }
2150
            catch (IOException e) {
2151
                e.printStackTrace();
2152
            }
2153
            catch (JSONException e) {
2154
                e.printStackTrace();
2155
            }
2156
            return null;
2157
        }
2158
        @Override
2159
        protected void onPostExecute(String result) {
2160
            super.onPostExecute(result);
2161
            try {
2162
                JSONObject jsonObject = new JSONObject(result);
2163
                String response=jsonObject.getString("response");
2164
 
2165
                String js = ("javascript:window.localStorage.setItem('android.otpReceived','"+response +"');");
2166
                webView.loadUrl(js);
2167
                //webView.loadUrl("javascript:alert(window.localStorage.getItem('android.otpReceived'))");
2168
 
2169
                Log.d("otp",js);
2170
           /* for(int i=1; i<6; i++){
2171
                js += "document.getElementsByName('otp" + i + "')[0].value ='" +response.substring(i-1,i) + "';";
2172
 
2173
            }
2174
                 /* String js = ("javascript:document.getElementsByName('otp1')[0].value ='"+response +"';");
2175
                //js +="document.getElementsByName('otpForm')[0].submit();";
2176
               // Log.d("otp",js);
2177
            if (Build.VERSION.SDK_INT >= 19) {
2178
                webView.evaluateJavascript(js, new ValueCallback<String>() {
2179
                    @Override
2180
                    public void onReceiveValue(String s) {
2181
 
2182
                    }
2183
                });
2184
            } else {
2185
                webView.loadUrl(js);
2186
            }*/
2187
                //String js2 =("javascript:document.getElementById('').click()");
2188
                //webView.loadUrl(js2);
2189
            } catch (JSONException e) {
2190
                e.printStackTrace();
2191
            }
2192
        }
2193
 
2194
    }
2195
 
21480 rajender 2196
    int sizeList;
2197
 
2198
    class FetchOrderURLS extends AsyncTask<String, Integer, JSONObject> {
2199
 
2200
        @Override
2201
        protected void onPreExecute() {
2202
            super.onPreExecute();
2203
        }
2204
 
2205
        @Override
2206
        protected JSONObject doInBackground(String... arg0) {
2207
            HttpClient httpclient = new DefaultHttpClient();
2208
            try {
2209
                String fetchUrl = apiData.getString("amazon.order.tracking.get.url", null) + "?user_id=" + userData.getString("id", "") + "&store_id=" + apiData.getString("store.code.amazon", "1");
2210
                HttpGet httppost = new HttpGet(fetchUrl);
2211
 
2212
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2213
                HttpResponse response = httpclient.execute(httppost);
2214
                HttpEntity entity = response.getEntity();
2215
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
2216
                return jObjGmail;
2217
 
2218
            } catch (ClientProtocolException e) {
2219
                return null;
2220
            } catch (IOException e) {
2221
                return null;
2222
            }
2223
            catch (Exception e) {
2224
                e.printStackTrace();
2225
                return null;
2226
            }
2227
        }
2228
 
2229
        @Override
2230
        protected void onPostExecute(JSONObject result) {
2231
            super.onPostExecute(result);
2232
            try {
2233
                if (result == null) {
2234
                    userDataEditor.putString("amazonOrder", "false").commit();
2235
                } else {
2236
                    if (result.length() == 0) {
2237
                        userDataEditor.putString("amazonOrder", "false").commit();
2238
                    } else {
2239
                        JSONArray js = result.getJSONArray("result");
2240
                        if (js.length() != 0) {
2241
                            str = new ArrayList<>();
2242
                            for (int i = 0; i < js.length(); i++) {
2243
                                String s = js.getString(i);
2244
                                str.add(s);
2245
                            }
2246
                            sizeList = 1;
2247
                            j = 1;
2248
                            addOrderHistory(str.get(0));
2249
                        } else {
2250
                            userDataEditor.putString("amazonOrder", "false").commit();
2251
                        }
2252
                    }
2253
                }
2254
            } catch (Exception e) {
2255
            }
2256
        }
2257
    }
2258
 
2259
    int count = 0;
2260
    List<String> str;
2261
 
2262
    public void addOrderHistory(String s) {
2263
        AmazonOrderHistoryDetails amazonOrderClient = new AmazonOrderHistoryDetails();
2264
        amazonOrderHistoryWebView = new WebView(webView.getContext());
2265
        amazonOrderHistoryWebView.setVisibility(View.GONE);
2266
        amazonOrderHistoryWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
2267
        amazonOrderHistoryWebView.getSettings().setJavaScriptEnabled(true);
2268
        amazonOrderHistoryWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
2269
        amazonOrderHistoryWebView.loadUrl(s);
2270
        amazonOrderHistoryWebView.setWebViewClient(amazonOrderClient);
2271
    }
2272
 
2273
    public void addOrderHistoryCancelled(String s) {
2274
        AmazonOrderCancelledDetails amazonOrderClient1 = new AmazonOrderCancelledDetails();
2275
        amazonOrderHistoryCancelledWebView = new WebView(webView.getContext());
2276
        amazonOrderHistoryCancelledWebView.setVisibility(View.GONE);
2277
        amazonOrderHistoryCancelledWebView.getSettings().setJavaScriptEnabled(true);
2278
        amazonOrderHistoryCancelledWebView.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36");
2279
        amazonOrderHistoryCancelledWebView.addJavascriptInterface(new amazonInterface(getActivity()), "HTMLOUT");
2280
        amazonOrderHistoryCancelledWebView.loadUrl(s);
2281
        amazonOrderHistoryCancelledWebView.setWebViewClient(amazonOrderClient1);
2282
    }
2283
 
2284
    class AmazonOrderHistoryDetails extends WebViewClient {
2285
 
2286
        @Override
2287
        public void onReceivedHttpAuthRequest(WebView view,
2288
                                              HttpAuthHandler handler, String host, String realm) {
2289
 
2290
            handler.proceed("dtr", "dtr18Feb2015");
2291
 
2292
        }
2293
 
2294
        @Override
2295
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
2296
            super.onPageStarted(view, url, favicon);
2297
        }
2298
 
2299
        @Override
2300
        public void onPageFinished(WebView view, String url) {
2301
            super.onPageFinished(view, url);
2302
            if (url.contains("signin")) {
2303
                userDataEditor.putBoolean("amazonLoggedIn", false).commit();
2304
            } else {
2305
                view.loadUrl("javascript:window.HTMLOUT.orderHistory('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
2306
            }
2307
        }
2308
    }
2309
 
2310
    class AmazonOrderCancelledDetails extends WebViewClient {
2311
 
2312
        @Override
2313
        public void onReceivedHttpAuthRequest(WebView view,
2314
                                              HttpAuthHandler handler, String host, String realm) {
2315
 
2316
            handler.proceed("dtr", "dtr18Feb2015");
2317
 
2318
        }
2319
 
2320
        @Override
2321
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
2322
            super.onPageStarted(view, url, favicon);
2323
        }
2324
 
2325
        @Override
2326
        public void onPageFinished(WebView view, String url) {
2327
            super.onPageFinished(view, url);
2328
            view.loadUrl("javascript:window.HTMLOUT.cancelledHistory('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
2329
        }
2330
    }
2331
 
2332
 
2333
    public final boolean isInternetOn() {
2334
 
2335
        ConnectivityManager connec =
2336
                (ConnectivityManager) getActivity().getSystemService(getActivity().getBaseContext().CONNECTIVITY_SERVICE);
2337
 
2338
        if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
2339
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
2340
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
2341
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED) {
2342
            return true;
2343
 
2344
        } else if (
2345
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
2346
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED) {
2347
 
2348
            return false;
2349
        }
2350
        return false;
2351
    }
2352
 
2353
    class checkGateWayProblem extends AsyncTask<String, Integer, String> {
2354
        @Override
2355
        protected void onPreExecute() {
2356
            super.onPreExecute();
2357
        }
2358
 
2359
        @Override
2360
        protected String doInBackground(String... arg0) {
2361
            HttpClient httpclient = new DefaultHttpClient();
2362
            try {
2363
                HttpPost httppost = new HttpPost(arg0[0]);
2364
                final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
2365
                httppost.setHeader("Authorization", basicAuth);
2366
                HttpResponse response = httpclient.execute(httppost);
2367
                int status = response.getStatusLine().getStatusCode();
2368
 
2369
                jsArraySaholic = new JSONArray();
2370
                jSaholic.put("url", arg0[0]);
2371
 
2372
                jSaholic.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
2373
                jSaholic.put("httpstatus", status);
2374
                jSaholic.put("cookies", CookieManager.getInstance().getCookie(arg0[0]));
2375
                jsArraySaholic.put(jSaholic);
2376
                obj.put("pushdata", jsArraySaholic);
2377
                Log.d("status ", "Status in checkGatewayProbelm " + status);
2378
                if (status == 200) {
2379
                    return "success";
2380
                } else {
2381
                    return "failure";
2382
                }
2383
 
2384
            } catch (ClientProtocolException e) {
2385
                return "failure";
2386
            } catch (IOException e) {
2387
                return "failure";
2388
            } catch (JSONException e) {
2389
                return "failure";
2390
            }
2391
        }
2392
 
2393
        @Override
2394
        protected void onPostExecute(String result) {
2395
            super.onPostExecute(result);
2396
            new pushData1().execute(obj);
2397
        }
2398
    }
2399
 
2400
    class pushData1 extends AsyncTask<JSONObject, Integer, String> {
2401
 
2402
        @Override
2403
        protected void onPreExecute() {
2404
            super.onPreExecute();
2405
        }
2406
 
2407
        @Override
2408
        protected String doInBackground(JSONObject... arg0) {
2409
            HttpClient httpclient = new DefaultHttpClient();
2410
            try {
2411
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
2412
                nameValuePairs.add(new BasicNameValuePair("pushdata", arg0[0].toString()));
2413
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api", null));
2414
                final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
2415
                httppost.setHeader("Authorization", basicAuth);
2416
 
2417
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
2418
                System.out.println("JSON object in push Data 1 " + arg0[0].toString());
2419
                StringEntity se = new StringEntity(arg0[0].toString());
2420
                HttpResponse response = httpclient.execute(httppost);
2421
                int status = response.getStatusLine().getStatusCode();
2422
 
2423
                if (status == 200) {
2424
                    return "success";
2425
                } else {
2426
                    return "failure";
2427
                }
2428
 
2429
            } catch (ClientProtocolException e) {
2430
                return "failure";
2431
            } catch (IOException e) {
2432
                return "failure";
2433
            }
2434
        }
2435
 
2436
        @Override
2437
        protected void onPostExecute(String result) {
2438
            super.onPostExecute(result);
2439
        }
2440
    }
2441
 
2442
    public void redirectPage(final AlertDialog builder) {
2443
        Handler h = new Handler();
2444
        h.postDelayed(new Runnable() {
2445
            @Override
2446
            public void run() {
2447
                if (builder != null) {
2448
                    builder.dismiss();
2449
                }
2450
                userDataEditor.clear().commit();
2451
                startActivity(new Intent(getActivity(), LoginActivity.class));
2452
            }
2453
        }, 3000);
2454
 
2455
    }
2456
 
2457
    public void sendQueuedResponse() {
2458
 
2459
        List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();
2460
        postDataNameValuePair = orderDetails.readData1();
2461
        for (List<NameValuePair> orderDetail : postDataNameValuePair) {
2462
            orderDetail.add(new BasicNameValuePair("zip", "1"));
2463
            orderDetail.add(new BasicNameValuePair("wifi", UtilityFunctions.checkWifi(getActivity()) + ""));
2464
            orderDetail.add(new BasicNameValuePair("imeinumber", UtilityFunctions.getImeiNumber(getActivity())));
2465
            orderDetail.add(new BasicNameValuePair("appversion", UtilityFunctions.getAppVersion(getActivity())));
2466
            PushRawHTML pm = new PushRawHTML();
2467
            pm.execute(orderDetail);
2468
        }
2469
    }
2470
 
2471
 
2472
    class PaytmWebViewClient extends WebViewClient {
2473
        @Override
2474
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
2475
            super.onPageStarted(view, url, favicon);
2476
        }
2477
 
2478
        @Override
2479
        public void onPageFinished(WebView view, String url) {
2480
            super.onPageFinished(view, url);
2481
            if (url.contains(apiData.getString("paytm.myorders.url", "paytm.com/myorders"))) {
2482
                view.loadUrl("javascript:window.location='" + getPaytmUrl(url) + "';");
2483
            } else {
2484
                view.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('html')[0].innerHTML);");
2485
            }
2486
        }
2487
    }
2488
 
2489
    public String getPaytmUrl(String url) {
2490
        String returnUrl = null;
2491
        //Pattern p = Pattern.compile("[/]myorders/(\\d+)");
2492
        Pattern p = Pattern.compile(apiData.getString("paytm.myorders.pattern", "[/]myorders/(\\d+)"));
2493
        Matcher m = p.matcher(url);
2494
        if (m.find()) {
2495
            returnUrl = m.group(1);
2496
        }
2497
        System.out.println(apiData.getString("paytm.orderdetail.url", "https://paytm.com/shop/orderdetail/") + returnUrl + "?actions=1&channel=web&version=2");
2498
        return apiData.getString("paytm.orderdetail.url", "https://paytm.com/shop/orderdetail/") + returnUrl + "?actions=1&channel=web&version=2";
2499
    }
2500
 
2501
 
2502
    public String getPaytmReferer(String url) {
2503
        String returnUrl = null;
2504
        Pattern p = Pattern.compile(apiData.getString("paytm.summary.pattern", "[/]summary/(\\d+)"));
2505
        //Pattern p = Pattern.compile("[/]summary/(\\d+)");
2506
        Matcher m = p.matcher(url);
2507
        if (m.find()) {
2508
            returnUrl = m.group(1);
2509
        }
2510
        System.out.println("In paytm Referer" + apiData.getString("paytm.myorders.url", "https://paytm.com/myorders/") + returnUrl);
2511
        return apiData.getString("paytm.myorders.url", "https://paytm.com/myorders/") + returnUrl;
2512
    }
2513
 
2514
 
2515
    class PaytmOrderURL extends AsyncTask<String, Integer, JSONObject> {
2516
 
2517
        @Override
2518
        protected void onPreExecute() {
2519
            super.onPreExecute();
2520
        }
2521
 
2522
        @Override
2523
        protected JSONObject doInBackground(String... arg0) {
2524
            HttpClient httpclient = new DefaultHttpClient();
2525
            try {
2526
                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");
2527
                HttpGet httppost = new HttpGet(fetchUrl);
2528
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2529
                HttpResponse response = httpclient.execute(httppost);
2530
                HttpEntity entity = response.getEntity();
2531
                int status = response.getStatusLine().getStatusCode();
2532
 
2533
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
2534
                return jObjGmail;
2535
            } catch (JSONException e) {
2536
                return null;
2537
            } catch (ClientProtocolException e) {
2538
                return null;
2539
            } catch (IOException e) {
2540
                e.printStackTrace();
2541
                return null;
2542
            }
2543
        }
2544
 
2545
        @Override
2546
        protected void onPostExecute(JSONObject result) {
2547
            super.onPostExecute(result);
2548
            try {
2549
                if (result != null) {
2550
                    if (result.length() == 0) {
2551
                        userDataEditor.putString("paytmOrder", "false").commit();
2552
                    } else {
2553
                        JSONArray js = result.getJSONArray("result");
2554
                        if (js.length() != 0) {
2555
                            strPaytmUrls = new ArrayList<>();
2556
                            strPaytmReferer = new ArrayList<>();
2557
                            for (int i = 0; i < js.length(); i++) {
2558
                                JSONObject paytmURLRef = js.getJSONObject(i);
2559
                                String url = paytmURLRef.getString("url");
2560
                                String referer = paytmURLRef.getString("referer");
2561
                                strPaytmUrls.add(url);
2562
                                strPaytmReferer.add(referer);
2563
                            }
2564
                            paytmOrderTracking(strPaytmUrls.get(0), strPaytmReferer.get(0));
2565
                        } else {
2566
                            userDataEditor.putString("paytmOrder", "false").commit();
2567
                        }
2568
                    }
2569
                }
2570
            } catch (Exception e) {
2571
                e.printStackTrace();
2572
            }
2573
 
2574
        }
2575
    }
2576
 
2577
 
2578
    class PaytmOrderCreation extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
2579
 
2580
        @Override
2581
        protected void onPreExecute() {
2582
            super.onPreExecute();
2583
        }
2584
 
2585
        @Override
2586
        protected JSONObject doInBackground(List<NameValuePair>... orderDetail) {
2587
 
2588
 
2589
            try {
2590
                HttpClient httpclient = new DefaultHttpClient();
2591
                HttpPost httppost = new HttpPost(apiData.getString("orderpagehtml.push.api", null));
2592
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2593
                httppost.setEntity(new UrlEncodedFormEntity(orderDetail[0]));
2594
                HttpResponse response = httpclient.execute(httppost);
2595
                HttpEntity entity = response.getEntity();
2596
 
2597
                int status = response.getStatusLine().getStatusCode();
2598
 
2599
                if (status == 200) {
2600
                    NameValuePair y = orderDetail[0].get(2);
2601
                    int z = orderDetails.deleteRecord(y.getName(), new String[]{y.getValue()});
2602
                } else {
2603
                }
2604
                String getJSON = EntityUtils.toString(entity);
2605
                if (getJSON == null) {
2606
                    return null;
2607
                } else {
2608
                    JSONObject jObjGmail = new JSONObject(getJSON);
2609
                    return jObjGmail;
2610
                }
2611
            } catch (Exception e) {
2612
                return null;
2613
            }
2614
        }
2615
 
2616
 
2617
        @Override
2618
        protected void onPostExecute(JSONObject result) {
2619
            if (result == null) {
2620
 
2621
            } else {
2622
                userDataEditor.putString("paytmOrder", "true").commit();
2623
                userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis() + 21600000).commit();
2624
                try {
2625
                    if (result.getString("message").equalsIgnoreCase("PROCESSED"))
2626
                        orderDetails.deleterecords();
2627
                } catch (Exception e) {
2628
                }
2629
            }
2630
            super.onPostExecute(result);
2631
        }
2632
    }
2633
 
2634
    public void paytmOrderTracking(List<String> paytmUrls, List<String> paytmReferers) {
2635
        for (int i = 1; i < paytmReferers.size(); i++) {
2636
            PaytmOrderTrackingClient paytmOrderTrackingClient = new PaytmOrderTrackingClient(paytmUrls.get(i));
2637
            paytmWebView = new WebView(webView.getContext());
2638
            paytmWebView.setVisibility(View.GONE);
2639
            paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");
2640
            paytmWebView.getSettings().setJavaScriptEnabled(true);
2641
            paytmWebView.loadUrl(paytmReferers.get(i));
2642
            paytmWebView.setWebViewClient(paytmOrderTrackingClient);
2643
        }
2644
        userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis() + 21600000).commit();
2645
    }
2646
 
2647
    public void paytmOrderTracking(String paytmUrl, String paytmReferer) {
2648
        PaytmOrderTrackingClient paytmOrderTrackingClient = new PaytmOrderTrackingClient(paytmUrl);
2649
        paytmWebView = new WebView(webView.getContext());
2650
        paytmWebView.setVisibility(View.GONE);
2651
        paytmWebView.addJavascriptInterface(new paytmInterface(getActivity()), "HTMLOUT");
2652
        paytmWebView.getSettings().setJavaScriptEnabled(true);
2653
        paytmWebView.loadUrl(paytmReferer);
2654
        paytmWebView.setWebViewClient(paytmOrderTrackingClient);
2655
        userDataEditor.putLong("paytmNextFetchTime", System.currentTimeMillis() + 21600000).commit();
2656
    }
2657
 
2658
    class PaytmOrderTrackingClient extends WebViewClient {
2659
        String paytmUrlAfterReferer;
2660
 
2661
        public PaytmOrderTrackingClient(String paytmUrl) {
2662
            paytmUrlAfterReferer = paytmUrl;
2663
        }
2664
 
2665
        @Override
2666
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
2667
            super.onPageStarted(view, url, favicon);
2668
        }
2669
 
2670
        @Override
2671
        public void onPageFinished(WebView view, String url) {
2672
            super.onPageFinished(view, url);
2673
            if (url.contains(apiData.getString("paytm.myorders.url", "paytm.com/myorders"))) {
2674
                view.loadUrl("javascript:window.location='" + paytmUrlAfterReferer + "';");
2675
            } else {
2676
                view.loadUrl("javascript:window.HTMLOUT.paytmTracking(document.getElementsByTagName('html')[0].innerHTML);");
2677
            }
2678
        }
2679
    }
2680
 
2681
    List<String> strPaytmUrls, strPaytmReferer;
2682
    int paytmCounter = 0;
2683
 
2684
    class PaytmPushTrackingUrls extends AsyncTask<List<NameValuePair>, Integer, JSONObject> {
2685
        @Override
2686
        protected void onPreExecute() {
2687
            super.onPreExecute();
2688
        }
2689
 
2690
        @Override
2691
        protected JSONObject doInBackground(List<NameValuePair>... pushOrder) {
2692
 
2693
            try {
2694
                HttpClient httpclient = new DefaultHttpClient();
2695
                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");
2696
                HttpPost httppost = new HttpPost(fetchUrl);
2697
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
2698
                httppost.setEntity(new UrlEncodedFormEntity(pushOrder[0]));
2699
                HttpResponse response = httpclient.execute(httppost);
2700
                HttpEntity entity = response.getEntity();
2701
                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
2702
                return jObjGmail;
2703
            } catch (Exception e) {
2704
                return null;
2705
            }
2706
        }
2707
 
2708
        @Override
2709
        protected void onPostExecute(JSONObject result) {
2710
            super.onPostExecute(result);
2711
            try {
2712
                if (result == null) {
2713
 
2714
                } else if (result.getString("result").equalsIgnoreCase("PARSE_ERROR")) {
2715
                    userDataEditor.putBoolean("paytmLoggedIn", false).commit();
2716
                } else {
2717
                    paytmOrderTracking(strPaytmUrls, strPaytmReferer);
2718
                }
2719
            } catch (Exception e) {
2720
                e.printStackTrace();
2721
            }
2722
        }
2723
    }
2724
 
2725
    class paytmInterface {
2726
 
2727
        Context mContext;
2728
 
2729
        public paytmInterface(Context c) {
2730
            mContext = c;
2731
        }
2732
 
2733
        @JavascriptInterface
2734
        public void showHTML(String html) {
2735
            nameValuePairsRawHtml.add(new BasicNameValuePair("rawhtml", UtilityFunctions.compress(html)));
2736
            long x = orderDetails.insertOrderDetails(nameValuePairsRawHtml);
2737
            List<List<NameValuePair>> postDataNameValuePair = new ArrayList<List<NameValuePair>>();
2738
            postDataNameValuePair = orderDetails.readData1();
2739
            for (List<NameValuePair> orderDetail : postDataNameValuePair) {
2740
                orderDetail.add(new BasicNameValuePair("zip", "1"));
2741
                new PaytmOrderCreation().execute(orderDetail);
2742
            }
2743
        }
2744
 
2745
        @JavascriptInterface
2746
        public void paytmTracking(String html) {
2747
            try {
2748
                String url = strPaytmUrls.get(paytmCounter++);
2749
                List<NameValuePair> amazonOrderHistory = new ArrayList<NameValuePair>();
2750
                amazonOrderHistory.add(new BasicNameValuePair("url", url));
2751
                amazonOrderHistory.add(new BasicNameValuePair("html", UtilityFunctions.compress(html)));
2752
                amazonOrderHistory.add(new BasicNameValuePair("zip", "1"));
2753
                if (isInternetOn()) {
2754
                    new PaytmPushTrackingUrls().execute(amazonOrderHistory);
2755
                } else {
2756
 
2757
                }
2758
            } catch (Exception e) {
2759
                e.printStackTrace();
2760
            }
2761
 
2762
        }
2763
    }
2764
 
2765
    public void onShareClick(String url) {
2766
        try {
2767
            List<Intent> targetShareIntents = new ArrayList<Intent>();
2768
            Intent shareIntent = new Intent();
2769
            shareIntent.setAction(Intent.ACTION_SEND);
2770
            shareIntent.setType("text/plain");
2771
            List<ResolveInfo> resInfos = getActivity().getPackageManager().queryIntentActivities(shareIntent, 0);
2772
            if (!resInfos.isEmpty()) {
2773
                for (ResolveInfo resInfo : resInfos) {
2774
                    String packageName = resInfo.activityInfo.packageName;
2775
                    Intent intent = new Intent();
2776
                    intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name));
2777
                    intent.setAction(Intent.ACTION_SEND);
2778
                    intent.setType("text/plain");
2779
                    intent.putExtra(Intent.EXTRA_TEXT, Uri.parse(url).getQueryParameter("message"));
2780
                    intent.setPackage(packageName);
2781
                    targetShareIntents.add(intent);
2782
                }
2783
                if (!targetShareIntents.isEmpty()) {
2784
                    Intent chooserIntent = Intent.createChooser(targetShareIntents.remove(0), "Choose app to share");
2785
                    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetShareIntents.toArray(new Parcelable[]{}));
2786
                    startActivity(chooserIntent);
2787
                }
2788
            }
2789
        } catch (Exception e) {
2790
            e.printStackTrace();
2791
        }
2792
    }
2793
 
2794
    public void fetchAmazonOrder(String url) {
2795
        pd1 = new ProgressDialog(getActivity());
2796
        pd1.setTitle("Please wait");
2797
        pd1.setMessage("Placing your order...");
2798
        pd1.show();
2799
        webView.post(new Runnable() {
2800
            @Override
2801
            public void run() {
2802
                webView.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
2803
            }
2804
        });
2805
 
2806
    }
2807
 
2808
    @Override
2809
    public void onPause() {
2810
        super.onPause();
2811
        if (apiData.getString("deal.redirect", "false").equalsIgnoreCase("true")) {
2812
            if (webView != null) {
2813
                if (isPause) {
2814
                    webView.loadUrl(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", ""));
2815
                    isPause = false;
2816
                }
2817
            }
2818
        }
2819
    }
2820
 
2821
    class FlipkartWebview extends WebViewClient {
2822
 
2823
        @Override
2824
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
2825
            super.onPageStarted(view, url, favicon);
2826
        }
2827
 
2828
        @Override
2829
        public void onPageFinished(WebView view, String url) {
2830
            super.onPageFinished(view, url);
2831
            if(url.contains(apiData.getString("flipkart.response.url","https://www.flipkart.com/rv/accounts"))) {
2832
                view.loadUrl("javascript:window.HTMLOUT.orderpage('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
2833
            }
2834
 
2835
        }
2836
    }
2837
}