Subversion Repositories SmartDukaan

Rev

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