Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
14792 manas 1
package com.saholic.profittill.main;
2
 
3
 
15356 manas 4
import android.app.Fragment;
5
import android.app.FragmentManager;
14792 manas 6
import android.content.Context;
7
import android.content.Intent;
8
import android.content.SharedPreferences;
15356 manas 9
import android.content.res.Configuration;
10
import android.content.res.TypedArray;
14792 manas 11
import android.graphics.Color;
12
import android.graphics.drawable.ColorDrawable;
13
import android.net.ConnectivityManager;
16310 manas 14
import android.net.Uri;
14792 manas 15
import android.os.AsyncTask;
15356 manas 16
import android.os.Bundle;
14792 manas 17
import android.os.PersistableBundle;
15356 manas 18
import android.support.v4.app.ActionBarDrawerToggle;
19
import android.support.v4.widget.DrawerLayout;
14792 manas 20
import android.support.v7.app.ActionBarActivity;
15356 manas 21
import android.util.Log;
14792 manas 22
import android.view.KeyEvent;
23
import android.view.Menu;
24
import android.view.MenuItem;
25
import android.view.View;
26
import android.view.ViewConfiguration;
27
import android.view.Window;
16310 manas 28
import android.webkit.CookieManager;
29
import android.webkit.CookieSyncManager;
30
import android.widget.ExpandableListView;
31
import android.widget.LinearLayout;
14792 manas 32
import android.widget.Toast;
15356 manas 33
 
14792 manas 34
import com.facebook.Session;
35
import com.google.android.gms.analytics.HitBuilders;
36
import com.google.android.gms.analytics.Tracker;
37
import com.google.android.gms.common.ConnectionResult;
38
import com.google.android.gms.common.api.GoogleApiClient;
39
import com.google.android.gms.plus.Plus;
40
import com.mixpanel.android.mpmetrics.MixpanelAPI;
41
import com.saholic.profittill.Constants.ProfitTillConstants;
15356 manas 42
import com.saholic.profittill.R;
16278 manas 43
import com.saholic.profittill.Utils.AnalyticsUtility;
15356 manas 44
import com.saholic.profittill.Utils.UtilityFunctions;
16278 manas 45
import com.saholic.profittill.Volley.Analytics;
46
import com.saholic.profittill.Volley.AnalyticsErrorResponse;
47
import com.saholic.profittill.Volley.AnalyticsJsonResponse;
16310 manas 48
import com.saholic.profittill.navigationdrawer.ExpandableNavigationAdapter;
49
import com.saholic.profittill.navigationdrawer.ExpandableNavigationItem;
14792 manas 50
import com.saholic.profittill.navigationdrawer.NavDrawerItem;
51
import com.saholic.profittill.navigationdrawer.NavDrawerListAdapter;
52
import com.testin.agent.TestinAgent;
53
 
54
import org.apache.http.HttpEntity;
55
import org.apache.http.HttpResponse;
56
import org.apache.http.NameValuePair;
57
import org.apache.http.client.HttpClient;
58
import org.apache.http.client.entity.UrlEncodedFormEntity;
59
import org.apache.http.client.methods.HttpPost;
60
import org.apache.http.impl.client.DefaultHttpClient;
61
import org.apache.http.message.BasicNameValuePair;
62
import org.json.JSONException;
63
import org.json.JSONObject;
64
 
65
import java.lang.reflect.Field;
66
import java.lang.reflect.Method;
67
import java.text.SimpleDateFormat;
68
import java.util.ArrayList;
16310 manas 69
import java.util.Arrays;
14792 manas 70
import java.util.Date;
16310 manas 71
import java.util.HashMap;
72
import java.util.List;
73
import java.util.Map;
14792 manas 74
 
75
 
76
public class MainActivity extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
77
    public GoogleApiClient mGoogleApiClient;
78
    SharedPreferences userData;
79
    SharedPreferences apiData;
80
    boolean glogout;
81
    SharedPreferences.Editor userDataEditor;
82
    SharedPreferences.Editor apiSettingsEditor;
83
    SharedPreferences.Editor inviteDataEditor;
84
    SharedPreferences inviteData;
85
    String type1;
86
    int flag;
87
    boolean shouldGoInvisible;
88
    int titleVisible;
89
    String redirectUrl;
90
    MixpanelAPI mixpanel;
91
    String notificationURL;
92
    ArrayList<NameValuePair> nameValuePairsGcm;
16310 manas 93
 
94
 
95
    private DrawerLayout mDrawerLayout;
96
    private ExpandableListView mDrawerList;
97
    private LinearLayout navDrawerView;
98
    ExpandableNavigationAdapter customAdapter;
99
    private ActionBarDrawerToggle mDrawerToggle;
100
    private CharSequence mDrawerTitle;
101
    private CharSequence mTitle;
102
    private String[] mPlanetTitles;
17092 manas 103
    private String[] mHelpTtiles;
16310 manas 104
    private int selectedPosition;
105
    List<ExpandableNavigationItem> listParent;
106
    HashMap<String, List<String>> listDataChild;
107
 
108
 
14792 manas 109
    @Override
110
    protected void onCreate(Bundle savedInstanceState) {
111
        super.onCreate(savedInstanceState);
112
        setContentView(R.layout.activity_main);
113
        TestinAgent.init(this);
114
        userData = getApplicationContext().getSharedPreferences("User_Data", MODE_PRIVATE);
115
        apiData = getApplicationContext().getSharedPreferences("API_Data", MODE_PRIVATE);
116
        userDataEditor = userData.edit();
117
        apiSettingsEditor = apiData.edit();
118
        inviteData = getApplicationContext().getSharedPreferences("Invite_Data", Context.MODE_PRIVATE);
119
        inviteDataEditor = inviteData.edit();
120
        TestinAgent.setUserInfo(userData.getString("id",""));
121
        mixpanel = MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);
122
        type1 = userData.getString("type",null);
123
 
124
        if(getIntent().getAction()=="20"){
15588 manas 125
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
126
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
127
            t.send(new HitBuilders.EventBuilder()
128
                    .setCategory("Notification")
129
                    .setAction("Notification Opened ")
130
                    .setLabel("For User Id " + userData.getString("id","0"))
131
                    .build());
16310 manas 132
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
133
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
134
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
135
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 136
            flag=20;
137
            notificationURL = String.valueOf(getIntent().getData());
138
            nameValuePairsGcm = new ArrayList<>();
139
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
140
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 141
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp", UtilityFunctions.notificationDate()));
14792 manas 142
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
143
            getIntent().getExtras().remove("cid");
144
            new NotificationOpenedData().execute(nameValuePairsGcm);
145
        }else if(getIntent().getAction()=="15"){
15588 manas 146
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
147
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
148
            t.send(new HitBuilders.EventBuilder()
149
                    .setCategory("Notification")
150
                    .setAction("Notification Opened ")
151
                    .setLabel("For User Id " + userData.getString("id","0"))
152
                    .build());
14792 manas 153
            flag=15;
16310 manas 154
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
155
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
156
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
157
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 158
            nameValuePairsGcm = new ArrayList<>();
159
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
160
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 161
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));
14792 manas 162
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
163
            getIntent().getExtras().remove("cid");
164
            new NotificationOpenedData().execute(nameValuePairsGcm);
165
        }else if(getIntent().getAction()=="7"){
15588 manas 166
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
167
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
168
            t.send(new HitBuilders.EventBuilder()
169
                    .setCategory("Notification")
170
                    .setAction("Notification Opened ")
171
                    .setLabel("For User Id " + userData.getString("id","0"))
172
                    .build());
16310 manas 173
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
174
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
175
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
176
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 177
            flag=7;
178
            nameValuePairsGcm = new ArrayList<>();
179
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
180
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 181
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));
14792 manas 182
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
183
            getIntent().getExtras().remove("cid");
184
            new NotificationOpenedData().execute(nameValuePairsGcm);
185
        }else if(getIntent().getAction()=="6"){
15588 manas 186
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
187
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
188
            t.send(new HitBuilders.EventBuilder()
189
                    .setCategory("Notification")
190
                    .setAction("Notification Opened ")
191
                    .setLabel("For User Id " + userData.getString("id","0"))
192
                    .build());
16310 manas 193
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
194
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
195
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
196
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 197
            flag=6;
198
            nameValuePairsGcm = new ArrayList<>();
199
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
200
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 201
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));
14792 manas 202
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
203
            getIntent().getExtras().remove("cid");
204
            new NotificationOpenedData().execute(nameValuePairsGcm);
16080 manas 205
        }else if(getIntent().getAction()=="31"){
206
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
207
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
208
            t.send(new HitBuilders.EventBuilder()
209
                    .setCategory("Email Url Opener")
210
                    .setAction("Email Url Opened ")
211
                    .setLabel("For User Id " + userData.getString("id","0"))
212
                    .build());
16310 manas 213
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
214
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
215
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
216
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 217
            flag=20;
218
            String emailURL= String.valueOf(getIntent().getData());
219
            notificationURL =new UtilityFunctions().getEmailUrlFromMap(getApplicationContext(), emailURL,apiData.getString("mobile.website.url",""))+"?user_id="+userData.getString("id","");
17066 manas 220
        }else if(getIntent().getAction()=="11"){
221
            flag=11;
14792 manas 222
        }else {
223
            Bundle i = getIntent().getExtras();
224
            if (i != null) {
225
                flag = Integer.parseInt(i.getString("displayView"));
226
                if (flag == 31) {
227
                    redirectUrl = i.getString("redirectUrl");
228
                }
229
            }
230
        }
231
 
232
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
233
        getSupportActionBar().setIcon(R.drawable.logo_cirlce_1);
234
        getSupportActionBar().setDisplayShowCustomEnabled(true);
235
        getSupportActionBar().setDisplayShowTitleEnabled(false);
236
 
237
        try {
238
            ViewConfiguration config = ViewConfiguration.get(this);
239
            Field menuKeyField = ViewConfiguration.class
240
                    .getDeclaredField("sHasPermanentMenuKey");
241
            if (menuKeyField != null) {
242
                menuKeyField.setAccessible(true);
243
                menuKeyField.setBoolean(config, false);
244
            }
245
        } catch (Exception ex) {
246
            Log.d("Exception","Message"+ex);
247
        }
248
 
249
        if(type1!=null && type1.equalsIgnoreCase("google")) {
250
            mGoogleApiClient = new GoogleApiClient.Builder(this)
251
                    .addConnectionCallbacks(this)
252
                    .addOnConnectionFailedListener(this).addApi(Plus.API)
253
                    .addScope(Plus.SCOPE_PLUS_LOGIN).build();
254
            mGoogleApiClient.connect();
255
        }
256
 
16310 manas 257
        mTitle = mDrawerTitle = getTitle();
258
 
259
        navDrawerView = (LinearLayout) findViewById(R.id.navDrawerView);
260
        mPlanetTitles = getResources().getStringArray(R.array.stores_array);
17092 manas 261
        mHelpTtiles= getResources().getStringArray(R.array.help_array);
16310 manas 262
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
263
        mDrawerList = (ExpandableListView) findViewById(R.id.nav_left_drawer);
264
 
265
        listParent = new ArrayList<ExpandableNavigationItem>();
266
        listDataChild = new HashMap<String, List<String>>();
267
        listParent.add(new ExpandableNavigationItem(getString(R.string.Deals)));
268
        listParent.add(new ExpandableNavigationItem(getString(R.string.Search)));
269
        listParent.add(new ExpandableNavigationItem(getString(R.string.Stores)));
17092 manas 270
        listParent.add(new ExpandableNavigationItem(getString(R.string.Help)));
16310 manas 271
        listDataChild.put(getString(R.string.Deals), new ArrayList<String>());
272
        listDataChild.put(getString(R.string.Search), new ArrayList<String>());
273
        listDataChild.put(getString(R.string.Stores), Arrays.asList(mPlanetTitles));
17092 manas 274
        listDataChild.put(getString(R.string.Help), Arrays.asList(mHelpTtiles));
16310 manas 275
 
276
        customAdapter = new ExpandableNavigationAdapter(this, listParent, listDataChild);
17092 manas 277
 
16310 manas 278
        mDrawerList.setAdapter(customAdapter);
279
        mDrawerList.setChoiceMode(ExpandableListView.CHOICE_MODE_SINGLE);
280
 
281
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
282
        getSupportActionBar().setHomeButtonEnabled(true);
283
        mDrawerList.setOnChildClickListener(new ExpandableListViewChildClick());
16453 manas 284
        mDrawerList.setOnGroupExpandListener(new ExpandableGroupExpandListener());
17092 manas 285
        mDrawerToggle = new ActionBarDrawerToggle(this,
286
                mDrawerLayout,
287
                R.drawable.menu_button_2,
288
                R.string.drawer_open,
289
                R.string.drawer_close
16310 manas 290
        ) {
291
            public void onDrawerClosed(View view) {
292
                if(titleVisible!=0) {
293
                    if(titleVisible==1)
294
                        getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
295
 
296
                    if(titleVisible==2)
297
                        getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
298
 
299
                    if(titleVisible==3)
300
                        getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
301
 
302
                    if(titleVisible==4)
303
                        getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
304
 
305
                    if(titleVisible==5)
306
                        getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
307
 
308
                    if(titleVisible==6)
309
                        getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
310
                }
311
                shouldGoInvisible = false;
312
                invalidateOptionsMenu();
313
            }
314
 
315
            public void onDrawerOpened(View drawerView) {
316
                getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
317
                shouldGoInvisible = true;
318
                invalidateOptionsMenu();
319
            }
320
        };
321
        mDrawerLayout.setDrawerListener(mDrawerToggle);
322
 
323
 
324
        if (savedInstanceState == null) {
325
 
326
            if (flag == 7) {
327
                getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
328
                displayView(4);
329
            } else if (flag == 6) {
330
                getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
331
                displayView(3);
332
            } else if (flag == 15) {
333
                getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
334
                MyProfile myProfile = new MyProfile();
335
                this.getFragmentManager().beginTransaction()
336
                        .replace(R.id.frame_container, myProfile, "Mike")
337
                        .addToBackStack(null)
338
                        .commit();
339
            }else if (flag == 20) {
340
                getSupportActionBar().setCustomView(R.layout.actionbardeals);
341
                JSONObject propsNotification = new JSONObject();
342
                try {
343
                    mixpanel.identify(userData.getString("id",null));
344
                    propsNotification.put("Screen", "Notification Url opened");
345
                    mixpanel.track("Notification Opened", propsNotification);
346
                } catch (JSONException e) {
347
                    e.printStackTrace();
348
                }
349
                Bundle args = new Bundle();
350
                DealsHomeFragment notifcationFragment = new DealsHomeFragment();
351
                args.putString("key", notificationURL);
352
                this.getFragmentManager().beginTransaction()
353
                        .replace(R.id.frame_container, notifcationFragment, "Mike")
354
                        .addToBackStack(null)
355
                        .commit();
356
                notifcationFragment.setArguments(args);
357
            }else if (flag == 31) {
358
                getSupportActionBar().setCustomView(R.layout.actionbardeals);
359
                Bundle args = new Bundle();
360
                DealsHomeFragment redirectUrlFragment = new DealsHomeFragment();
361
                args.putString("key", redirectUrl);
362
                this.getFragmentManager().beginTransaction()
363
                        .replace(R.id.frame_container, redirectUrlFragment, "Mike")
364
                        .addToBackStack(null)
365
                        .commit();
366
                redirectUrlFragment.setArguments(args);
17066 manas 367
            }else if (flag == 11) {
368
                getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
369
                Bundle args = new Bundle();
370
                AboutUsFragment redirectUrlFragment = new AboutUsFragment();
371
                args.putString("key", redirectUrl);
372
                this.getFragmentManager().beginTransaction()
373
                        .replace(R.id.frame_container, redirectUrlFragment, "Mike")
374
                        .addToBackStack(null)
375
                        .commit();
376
                redirectUrlFragment.setArguments(args);
16310 manas 377
            }else {
378
                getSupportActionBar().setCustomView(R.layout.actionbardeals);
379
                displayView(0);
380
            }
14792 manas 381
        }
382
    }
383
 
17092 manas 384
    private class ExpandableGroupExpandListener implements ExpandableListView.OnGroupExpandListener {
14792 manas 385
        @Override
16453 manas 386
        public void onGroupExpand(int groupPosition) {
387
            int len = customAdapter.getGroupCount();
388
            int index = mDrawerList.getFlatListPosition(ExpandableListView.getPackedPositionForGroup(groupPosition));
389
            mDrawerList.setItemChecked(index, true);
16310 manas 390
            String parentTitle = ((ExpandableNavigationItem) customAdapter.getGroup(groupPosition)).getTitle();
17092 manas 391
 
392
            if (groupPosition == 0 || groupPosition == 1) {
393
                displayView(groupPosition);
16310 manas 394
                mDrawerLayout.closeDrawer(navDrawerView);
395
                mDrawerList.collapseGroup(2);
17092 manas 396
                mDrawerList.collapseGroup(3);
397
            } else {
398
                if (groupPosition == 3) {
399
                    if (mDrawerList.isGroupExpanded(2)) {
400
                        mDrawerList.collapseGroup(2);
401
                    }
402
                } else if (groupPosition == 2) {
403
                    if (mDrawerList.isGroupExpanded(3)) {
404
                        mDrawerList.collapseGroup(3);
405
                    }
406
                }
16310 manas 407
            }
408
            setActionBarTitlte(parentTitle);
17092 manas 409
        }
16310 manas 410
 
411
    }
412
 
16453 manas 413
    private class ExpandableListViewChildClick implements ExpandableListView.OnChildClickListener {
16310 manas 414
        @Override
415
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
416
            int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
417
            parent.setItemChecked(index, true);
418
            mDrawerLayout.closeDrawer(navDrawerView);
17092 manas 419
            if(groupPosition==2) {
420
                displayChildView(childPosition);
421
            }else if(groupPosition==3){
422
                if (childPosition==0) {
423
                    getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
424
                }
425
                else if (childPosition==1) {
426
                    getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
427
                }
428
                else if (childPosition==2) {
429
                    getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
430
                }
431
                displayHelpChildView(childPosition);
432
            }
16310 manas 433
            return false;
434
        }
17092 manas 435
 
16310 manas 436
    }
17092 manas 437
 
438
    private void displayHelpChildView(int position) {
439
        titleVisible=0;
440
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
441
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
442
        Fragment fragment = null;
443
        Map<String, String> jsonParams;
444
        switch (position) {
445
            case 0:
446
                JSONObject propsContactUs = new JSONObject();
447
                try {
448
                    mixpanel.identify(userData.getString("id",null));
449
                    propsContactUs.put("Screen", "Contact Us");
450
                    mixpanel.track("Contact Us", propsContactUs);
451
                } catch (JSONException e) {
452
                    e.printStackTrace();
453
                }
454
                t.send(new HitBuilders.EventBuilder()
455
                        .setCategory("Menu")
456
                        .setAction("Contact Us ")
457
                        .setLabel("Contact us Clicked")
458
                        .build());
459
                fragment = new ContactUsFragment();
460
                break;
461
            case 1:
462
                JSONObject propsHowItWorks = new JSONObject();
463
                try {
464
                    mixpanel.identify(userData.getString("id",null));
465
                    propsHowItWorks.put("Screen", "How it Works");
466
                    mixpanel.track("How it Works", propsHowItWorks);
467
                } catch (JSONException e) {
468
                    e.printStackTrace();
469
                }
470
                t.send(new HitBuilders.EventBuilder()
471
                        .setCategory("Menu")
472
                        .setAction("Tutorials ")
473
                        .setLabel("Tutorials Clicked")
474
                        .build());
475
                fragment = new HowItWorksFragment();
476
                break;
477
            case 2:
478
                JSONObject propsAboutUs = new JSONObject();
479
                try {
480
                    mixpanel.identify(userData.getString("id",null));
481
                    propsAboutUs.put("Screen", "About Us");
482
                    mixpanel.track("About Us", propsAboutUs);
483
                } catch (JSONException e) {
484
                    e.printStackTrace();
485
                }
486
                t.send(new HitBuilders.EventBuilder()
487
                        .setCategory("Menu")
488
                        .setAction("About Us ")
489
                        .setLabel("About us Clicked")
490
                        .build());
491
                fragment = new AboutUsFragment();
492
                break;
493
            default:
494
                break;
495
        }
496
        if (fragment != null) {
497
            FragmentManager fragmentManager = getFragmentManager();
498
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
499
 
500
        } else {
501
            Log.e("MainActivity", "Error in creating fragment");
502
        }
503
    }
504
 
14792 manas 505
    @Override
506
    public boolean onCreateOptionsMenu(Menu menu) {
507
        mainMenu=menu;
508
        super.onCreateOptionsMenu(menu);
509
        getMenuInflater().inflate(R.menu.menu_main, menu);
510
 
511
        return true;
512
    }
513
 
514
    @Override
515
    public boolean onOptionsItemSelected(MenuItem item) {
516
        Fragment menuFragment= null;
517
        JSONObject props = new JSONObject();
518
        Bundle args = new Bundle();
519
        String id = userData.getString("id",null);
520
        if (mDrawerToggle.onOptionsItemSelected(item)) {
521
            return true;
522
        }
523
        getSupportActionBar().setDisplayShowCustomEnabled(true);
524
        switch (item.getItemId()) {
525
            case R.id.action_settings:
526
                android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
527
                android.webkit.CookieSyncManager.createInstance(this);
528
                cookieManager.removeAllCookie();
529
                try {
530
                    mixpanel.identify(userData.getString("id",null));
531
                    props.put("Screen", "Signing Out");
532
                    mixpanel.track("Signing Out", props);
533
                } catch (JSONException e) {
534
                    e.printStackTrace();
535
                }
16278 manas 536
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
537
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Sign Out","Sign Out Clicked"),
538
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
539
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 540
                try{
541
                    if (mGoogleApiClient.isConnected()) {
542
                        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
543
                        mGoogleApiClient.disconnect();
544
                        mGoogleApiClient.connect();
545
                        userDataEditor.clear().commit();
546
                        inviteDataEditor.clear().commit();
547
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
548
                    }
549
                    else if(Session.getActiveSession() != null){
550
                        Session.getActiveSession().closeAndClearTokenInformation();
551
                        Session.setActiveSession(null);
552
                        userDataEditor.clear().commit();
553
                        inviteDataEditor.clear().commit();
554
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
555
                    }
556
                    else{
557
                        if(!mGoogleApiClient.isConnected() || Session.getActiveSession()==null){
558
                            userDataEditor.clear().commit();
559
                            inviteDataEditor.clear().commit();
560
                            startActivity(new Intent(MainActivity.this, LoginActivity.class));
561
                        }
562
 
563
 
564
                    }
565
                }catch (Exception e){
566
                    userDataEditor.clear().commit();
567
                    startActivity(new Intent(MainActivity.this, LoginActivity.class));
568
                }
569
                return true;
570
 
571
            case R.id.my_wallet:
572
                titleVisible=3;
573
                getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
574
                try {
575
                    mixpanel.identify(userData.getString("id",null));
576
                    props.put("Screen", "My Wallet");
577
                    mixpanel.track("My Wallet", props);
578
                } catch (JSONException e) {
579
                    e.printStackTrace();
580
                }
16278 manas 581
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
582
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Wallet","My Wallet Clicked"),
583
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
584
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 585
                MyWallet myWallet= new MyWallet();
586
                this.getFragmentManager().beginTransaction()
587
                        .replace(R.id.frame_container, myWallet,"Mike")
588
                        .addToBackStack(null)
589
                        .commit();
590
                return true;
591
            case R.id.pending_cashback:
592
                titleVisible=5;
593
                getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
594
                try {
595
                    mixpanel.identify(userData.getString("id",null));
596
                    props.put("Screen", "Cashback Status");
597
                    mixpanel.track("Cashback Status", props);
598
                } catch (JSONException e) {
599
                    e.printStackTrace();
600
                }
16278 manas 601
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
602
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Cashback Status","Cashback Status Clicked"),
603
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
604
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 605
                args.putString("key", apiData.getString("pendingcashback.url",null)+"?user_id="+id);
606
                DealsHomeFragment orderFragment= new DealsHomeFragment();
607
                this.getFragmentManager().beginTransaction()
608
                        .replace(R.id.frame_container, orderFragment,"Mike")
609
                        .addToBackStack(null)
14792 manas 610
                        .commit();
16080 manas 611
                orderFragment.setArguments(args);
612
 
14792 manas 613
                return true;
614
            case R.id.my_favorites:
615
                titleVisible=1;
616
                getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
617
                try {
618
                    mixpanel.identify(userData.getString("id",null));
619
                    props.put("Screen", "My Favorites");
620
                    mixpanel.track("My Favorites", props);
621
                } catch (JSONException e) {
622
                    e.printStackTrace();
623
                }
16278 manas 624
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
625
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Favorites","My Favorites Clicked"),
626
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
627
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 628
                args.putString("key", apiData.getString("myfavourite.url",null)+"?user_id="+id);
629
                DealsHomeFragment favoritesFragment= new DealsHomeFragment();
630
                this.getFragmentManager().beginTransaction()
631
                        .replace(R.id.frame_container, favoritesFragment,"Mike")
632
                        .addToBackStack(null)
633
                        .commit();
634
                favoritesFragment.setArguments(args);
635
                return true;
636
            case R.id.my_profile:
637
                titleVisible=6;
638
                getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
639
                try {
640
                    mixpanel.identify(userData.getString("id",null));
641
                    props.put("Screen", "My Profile");
642
                    mixpanel.track("My profile", props);
643
                } catch (JSONException e) {
644
                    e.printStackTrace();
645
                }
16278 manas 646
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
647
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Profile","My Profile Clicked"),
648
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
649
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 650
                MyProfile myProfile= new MyProfile();
651
                this.getFragmentManager().beginTransaction()
652
                        .replace(R.id.frame_container, myProfile,"Mike")
653
                        .addToBackStack(null)
654
                        .commit();
655
                return true;
656
            case R.id.my_order:
657
                titleVisible=4;
658
                getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
659
                try {
660
                    mixpanel.identify(userData.getString("id",null));
661
                    props.put("Screen", "My Orders");
662
                    mixpanel.track("My Orders", props);
663
                } catch (JSONException e) {
664
                    e.printStackTrace();
665
                }
16278 manas 666
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
667
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Orders","My Orders Clicked"),
668
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
669
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 670
                args.putString("key", apiData.getString("myorders.url",null)+"?user_id="+id);
16080 manas 671
                DealsHomeFragment preferenceFragment= new DealsHomeFragment();
14792 manas 672
                this.getFragmentManager().beginTransaction()
16080 manas 673
                        .replace(R.id.frame_container, preferenceFragment,"Mike")
14792 manas 674
                        .addToBackStack(null)
675
                        .commit();
16080 manas 676
                preferenceFragment.setArguments(args);
14792 manas 677
 
678
                return true;
679
            case R.id.my_preferences:
680
                titleVisible=2;
681
                getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
682
                try {
683
                    mixpanel.identify(userData.getString("id",null));
684
                    props.put("Screen", "My Preferences");
685
                    mixpanel.track("My Preferences", props);
686
                } catch (JSONException e) {
687
                    e.printStackTrace();
688
                }
16080 manas 689
                userDataEditor.remove("preferences").commit();
16278 manas 690
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
691
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Preferences","My Preferences Clicked"),
692
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
693
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 694
                PreferencesFragment my_preferences = new PreferencesFragment();
695
                this.getFragmentManager().beginTransaction()
696
                        .replace(R.id.frame_container, my_preferences,"Mike")
697
                        .addToBackStack(null)
698
                        .commit();
699
 
700
                return true;
701
           default:
702
                return super.onOptionsItemSelected(item);
703
        }
704
 
705
 
706
    }
707
    public void signOutFromGplus() {
708
 
709
 
710
        if (mGoogleApiClient.isConnected()) {
711
            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
712
            mGoogleApiClient.disconnect();
713
            mGoogleApiClient.connect();
714
            glogout=true;
715
            userDataEditor.remove("id");
716
            userDataEditor.remove("type");
717
            userDataEditor.remove("email");
718
            userDataEditor.commit();
719
        } else {
720
            glogout=false;
721
            }
722
    }
723
 
724
    @Override
725
    public void onConnected(Bundle bundle) {
726
 
727
    }
728
 
729
    @Override
730
    public void onConnectionSuspended(int i) {
731
 
732
    }
733
 
734
    @Override
735
    public void onConnectionFailed(ConnectionResult connectionResult) {
736
 
737
    }
738
 
739
    @Override
740
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
741
        super.onSaveInstanceState(outState, outPersistentState);
742
    }
743
    @Override
744
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
745
        super.onRestoreInstanceState(savedInstanceState);
16080 manas 746
        Intent i= new Intent(MainActivity.this,MainActivity.class);
14792 manas 747
        i.putExtra("displayView","0");
748
        startActivity(i);
749
    }
750
 
751
    @Override
752
    public boolean onMenuOpened(int featureId, Menu menu)
753
    {
754
        if(featureId == Window.FEATURE_ACTION_BAR && menu != null){
755
            if(menu.getClass().getSimpleName().equals("MenuBuilder")){
756
                try{
757
                    Method m = menu.getClass().getDeclaredMethod(
758
                            "setOptionalIconsVisible", Boolean.TYPE);
759
                    m.setAccessible(true);
760
                    m.invoke(menu, true);
761
 
762
                }
763
                catch(Exception e){
764
                    throw new RuntimeException(e);
765
                }
766
            }
767
        }
768
        return super.onMenuOpened(featureId, menu);
769
    }
770
 
771
    private void displayView(int position) {
772
        titleVisible=0;
16278 manas 773
 
14792 manas 774
        Bundle args = new Bundle();
775
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
776
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
777
        String id = userData.getString("id",null);
778
        Fragment fragment = null;
779
        switch (position) {
780
            case 0:
781
                JSONObject props = new JSONObject();
782
                try {
783
                    mixpanel.getPeople().set( "$last_login",new Date());
784
                    mixpanel.identify(userData.getString("id",null));
785
                    props.put("Screen", "Deals Screen");
786
                    mixpanel.track("Deals", props);
787
                } catch (JSONException e) {
788
                    e.printStackTrace();
789
                }
790
 
791
                t.send(new HitBuilders.EventBuilder()
792
                        .setCategory("Menu")
793
                        .setAction("Deals ")
794
                        .setLabel("Deals Clicked")
795
                        .build());
16278 manas 796
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
797
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Deals","Deals Clicked"),
798
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
799
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 800
                args.putString("key", apiData.getString("mobile.website.url","")+"?user_id="+id);
801
                fragment = new DealsHomeFragment();
802
                fragment.setArguments(args);
803
                break;
804
            case 1:
805
                JSONObject props1 = new JSONObject();
806
                try {
807
                    mixpanel.identify(userData.getString("id",null));
808
                    props1.put("Screen", "Search");
809
                    mixpanel.track("Search", props1);
810
                } catch (JSONException e) {
811
                    e.printStackTrace();
812
                }
813
                t.send(new HitBuilders.EventBuilder()
814
                        .setCategory("Menu")
815
                        .setAction("Search ")
816
                        .setLabel("Search Clicked")
817
                        .build());
16278 manas 818
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
819
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Search","Search Clicked"),
820
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
821
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 822
                args.putString("key", apiData.getString("search.url",null)+"?user_id="+id);
823
                fragment = new DealsHomeFragment();
824
                fragment.setArguments(args);
825
                break;
16310 manas 826
            default:
827
                break;
828
        }
829
        if (fragment != null) {
830
            FragmentManager fragmentManager = getFragmentManager();
831
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
832
 
833
        } else {
834
            Log.e("MainActivity", "Error in creating fragment");
835
        }
836
    }
837
 
838
 
839
    private void displayChildView(int position) {
840
        titleVisible=0;
841
        Bundle args = new Bundle();
842
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
843
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
844
        String id = userData.getString("id", null);
845
        Fragment fragment = null;
846
        Map<String, String> jsonParams;
847
        switch (position) {
848
            case 0:
14792 manas 849
                JSONObject propsAmazon = new JSONObject();
850
                try {
851
                    mixpanel.identify(userData.getString("id",null));
852
                    propsAmazon.put("Screen", "Amazon");
853
                    mixpanel.track("Amazon", propsAmazon);
854
                } catch (JSONException e) {
855
                    e.printStackTrace();
856
                }
857
                t.send(new HitBuilders.EventBuilder()
858
                        .setCategory("Menu")
859
                        .setAction("Amazon ")
860
                        .setLabel("Amazon Clicked")
861
                        .build());
16278 manas 862
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
863
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Amazon","Amazon Clicked"),
864
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
865
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 866
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code","amazon=1,flipkart=2,snapdeal=3,spice=4,shopclues=5,")),ProfitTillConstants.AMAZON));
14792 manas 867
                fragment = new DealsHomeFragment();
868
                fragment.setArguments(args);
869
                break;
16310 manas 870
            case 1:
14792 manas 871
                JSONObject propsFlipkart = new JSONObject();
872
                try {
873
                    mixpanel.identify(userData.getString("id",null));
874
                    propsFlipkart.put("Screen", "Flipkart");
875
                    mixpanel.track("Flipkart", propsFlipkart);
876
                } catch (JSONException e) {
877
                    e.printStackTrace();
878
                }
879
                t.send(new HitBuilders.EventBuilder()
880
                        .setCategory("Menu")
881
                        .setAction("Flipkart ")
882
                        .setLabel("Flipkart Clicked")
883
                        .build());
16278 manas 884
 
885
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
886
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Flipkart","Flipkart Clicked"),
887
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
888
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 889
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code","amazon=1,flipkart=2,snapdeal=3,spice=4,shopclues=5,")),ProfitTillConstants.FLIPKART));
14792 manas 890
                fragment = new DealsHomeFragment();
891
                fragment.setArguments(args);
892
                break;
16310 manas 893
            case 2:
16453 manas 894
                t.send(new HitBuilders.EventBuilder()
895
                        .setCategory("Menu")
17092 manas 896
                        .setAction("HomeShop18 ")
897
                        .setLabel("HomeShop18 Clicked")
898
                        .build());
899
 
900
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
901
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","HomeShop18","HomeShop18 Clicked"),
902
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
903
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
904
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code","amazon=1,flipkart=2,snapdeal=3,spice=4,shopclues=5,paytm=6,homeshop18=7,")),ProfitTillConstants.HOMESHOP18));
905
                //args.putString("key","https://paytm.com");
906
                fragment = new DealsHomeFragment();
907
                fragment.setArguments(args);
908
                break;
909
            case 3:
910
                t.send(new HitBuilders.EventBuilder()
911
                        .setCategory("Menu")
16453 manas 912
                        .setAction("Paytm ")
913
                        .setLabel("Paytm Clicked")
914
                        .build());
915
 
916
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
917
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Paytm","Paytm Clicked"),
918
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
919
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
920
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code","amazon=1,flipkart=2,snapdeal=3,spice=4,shopclues=5,")),ProfitTillConstants.PAYTM));
921
                fragment = new DealsHomeFragment();
922
                fragment.setArguments(args);
923
                break;
17092 manas 924
            case 4:
14792 manas 925
                JSONObject propsSaholic = new JSONObject();
926
                try {
927
                    mixpanel.identify(userData.getString("id",null));
928
                    propsSaholic.put("Screen", "Saholic");
929
                    mixpanel.track("Saholic", propsSaholic);
930
                } catch (JSONException e) {
931
                    e.printStackTrace();
932
                }
933
                t.send(new HitBuilders.EventBuilder()
934
                        .setCategory("Menu")
935
                        .setAction("Saholic ")
936
                        .setLabel("Saholic Clicked")
937
                        .build());
16278 manas 938
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
939
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Saholic","Saholic Clicked"),
940
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
941
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 942
                args.putString("key", apiData.getString("saholic.autologin.url","")+"?user_id="+userData.getString("id",""));
943
                fragment = new DealsHomeFragment();
944
                fragment.setArguments(args);
945
                break;
17092 manas 946
            case 5:
16080 manas 947
                JSONObject propsShopclues = new JSONObject();
948
                try {
949
                    mixpanel.identify(userData.getString("id",null));
950
                    propsShopclues.put("Screen", "Shopclues");
951
                    mixpanel.track("Shopclues", propsShopclues);
952
                } catch (JSONException e) {
953
                    e.printStackTrace();
954
                }
955
                t.send(new HitBuilders.EventBuilder()
956
                        .setCategory("Menu")
957
                        .setAction("Shopclues ")
958
                        .setLabel("Shopclues Clicked")
959
                        .build());
16310 manas 960
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
961
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Shopclues","Shopclues Clicked"),
962
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
963
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
964
                String url=apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code","amazon=1,flipkart=2,snapdeal=3,spice=4,shopclues=5,")),ProfitTillConstants.SHOPCLUES);
16080 manas 965
                args.putString("key", url);
16310 manas 966
                if(Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
967
                    CookieSyncManager.createInstance(getApplicationContext());
968
                    CookieManager cookieManager1 = CookieManager.getInstance();
969
                    cookieManager1.setCookie(url, "token=" + userData.getString("token", ""));
970
                    cookieManager1.setCookie(url, "walletAuthentication=true");
971
                    cookieManager1.setCookie(url, "shopcluesActive=true");
972
                }
16080 manas 973
                fragment = new DealsHomeFragment();
974
                fragment.setArguments(args);
16310 manas 975
                break;
17092 manas 976
            case 6:
14792 manas 977
                JSONObject propsSnapdeal = new JSONObject();
978
                try {
979
                    mixpanel.identify(userData.getString("id",null));
980
                    propsSnapdeal.put("Screen", "Snapdeal");
981
                    mixpanel.track("Snapdeal", propsSnapdeal);
982
                } catch (JSONException e) {
983
                    e.printStackTrace();
984
                }
985
                t.send(new HitBuilders.EventBuilder()
986
                        .setCategory("Menu")
987
                        .setAction("Snapdeal ")
988
                        .setLabel("Snapdeal Clicked")
989
                        .build());
16278 manas 990
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
991
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Snapdeal","Snapdeal Clicked"),
992
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
993
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16310 manas 994
                args.putString("key", apiData.getString("affiliate.url.redirect", "") + "?user_id=" + userData.getString("id", "") + "&store_id=" + UtilityFunctions.getNewStoreId(UtilityFunctions.generateStoreMap(apiData.getString("stores.code", "amazon=1,flipkart=2,snapdeal=3,spice=4,shopclues=5,")), ProfitTillConstants.SNAPDEAL));
14792 manas 995
                fragment = new DealsHomeFragment();
996
                fragment.setArguments(args);
997
                break;
998
            default:
999
                break;
1000
        }
1001
        if (fragment != null) {
1002
            FragmentManager fragmentManager = getFragmentManager();
1003
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
16310 manas 1004
 
1005
        } else {
1006
            Log.e("MainActivity", "Error in creating fragment");
14792 manas 1007
        }
1008
    }
1009
 
1010
 
16310 manas 1011
    public void setActionBarTitlte(String parentTitle){
1012
        if (parentTitle.equals("Deals")) {
1013
            getSupportActionBar().setCustomView(R.layout.actionbardeals);
1014
        }
1015
        if (parentTitle.equalsIgnoreCase("Visit Other Stores")) {
1016
            getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
1017
        }
16453 manas 1018
        if (parentTitle.equals("FAQ")) {
16310 manas 1019
            getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
1020
        }
1021
        if (parentTitle.equals("Contact Us")) {
1022
            getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
1023
        }
1024
        if (parentTitle.equals("Search")) {
1025
            getSupportActionBar().setCustomView(R.layout.actionbarsearch);
1026
        }
1027
        if (parentTitle.equals("How it Works")) {
1028
            getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
1029
        }
1030
    }
14792 manas 1031
 
1032
    @Override
1033
    protected void onPostCreate(Bundle savedInstanceState) {
1034
        super.onPostCreate(savedInstanceState);
1035
        mDrawerToggle.syncState();
1036
    }
1037
 
1038
    @Override
1039
    public boolean onPrepareOptionsMenu(Menu menu) {
1040
        boolean drawerOpen = shouldGoInvisible;
1041
        hideMenuItems(menu, !drawerOpen);
1042
        return super.onPrepareOptionsMenu(menu);
1043
    }
1044
    private void hideMenuItems(Menu menu, boolean visible)
1045
    {
1046
       for(int i = 0; i < menu.size(); i++){
1047
        menu.getItem(i).setVisible(visible);
1048
       }
1049
    }
1050
    @Override
1051
    public void onConfigurationChanged(Configuration newConfig) {
1052
        super.onConfigurationChanged(newConfig);
1053
        mDrawerToggle.onConfigurationChanged(newConfig);
1054
    }
1055
    @Override
1056
    public boolean onKeyUp(int keycode, KeyEvent e) {
1057
        switch(keycode) {
1058
            case KeyEvent.KEYCODE_MENU:
1059
 
1060
                if (mainMenu !=null) {
1061
                    mainMenu.performIdentifierAction(R.id.overflowMenu,0);
1062
                }
1063
        }
1064
 
1065
        return super.onKeyUp(keycode, e);
1066
    }
1067
    @Override
1068
    public boolean onKeyDown(int keyCode, KeyEvent event) {
1069
 
1070
        switch(keyCode) {
1071
            case KeyEvent.KEYCODE_MENU:
1072
                  if (mainMenu !=null) {
1073
                  mainMenu.performIdentifierAction(R.id.overflowMenu,0);
1074
                  }
1075
        }
1076
        return super.onKeyUp(keyCode, event);
1077
    }
1078
    private Menu mainMenu;
1079
    public final boolean isInternetOn() {
1080
 
1081
        ConnectivityManager connec =
1082
                (ConnectivityManager)getSystemService(this.getBaseContext().CONNECTIVITY_SERVICE);
1083
 
1084
        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
1085
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
1086
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
1087
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {
1088
            return true;
1089
 
1090
        } else if (
1091
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
1092
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {
1093
            return false;
1094
        }
1095
        return false;
1096
    }
1097
    class NotificationOpenedData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {
1098
 
1099
        @Override
1100
        protected void onPreExecute() {
1101
            super.onPreExecute();
1102
 
1103
        }
1104
 
1105
        @Override
1106
        protected String doInBackground(ArrayList<NameValuePair>... arg0) {
1107
 
1108
            try {
1109
                HttpClient httpclient = new DefaultHttpClient();
1110
                HttpPost httppost = new HttpPost(apiData.getString("notification.data.url","http://api.profittill.com/pushnotifications/add"));
1111
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1112
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
1113
                HttpResponse response = httpclient.execute(httppost);
1114
                HttpEntity entity = response.getEntity();
1115
                int status = response.getStatusLine().getStatusCode();
1116
 
1117
                nameValuePairsGcm.clear();
1118
            } catch (Exception e) {
17092 manas 1119
                e.printStackTrace();
14792 manas 1120
            }
1121
            return "success";
1122
        }
1123
 
1124
        @Override
1125
        protected void onPostExecute(String result) {
1126
            super.onPostExecute(result);
1127
        }
1128
    }
1129
}