Subversion Repositories SmartDukaan

Rev

Rev 16453 | Rev 17092 | 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 {
16310 manas 77
    /*private DrawerLayout mDrawerLayout;
14792 manas 78
    private ListView mDrawerList;
16310 manas 79
    private ActionBarDrawerToggle mDrawerToggle;*/
14792 manas 80
    public GoogleApiClient mGoogleApiClient;
81
    SharedPreferences userData;
82
    SharedPreferences apiData;
83
    boolean glogout;
84
    SharedPreferences.Editor userDataEditor;
85
    SharedPreferences.Editor apiSettingsEditor;
86
    SharedPreferences.Editor inviteDataEditor;
87
    SharedPreferences inviteData;
88
    private String[] navMenuTitles;
89
    private TypedArray navMenuIcons;
90
    String type1;
91
    private ArrayList<NavDrawerItem> navDrawerItems;
92
    private NavDrawerListAdapter adapter;
93
    int flag;
94
    boolean shouldGoInvisible;
95
    int titleVisible;
96
    StringBuilder subtag,sb;
97
    String userIdAffliate;
98
    Date dateAffliate;
99
    String stringDateAffliate;
100
    SimpleDateFormat dateFormatAffliate;
101
    String redirectUrl;
102
    MixpanelAPI mixpanel;
103
    String notificationURL;
104
    ArrayList<NameValuePair> nameValuePairsGcm;
16310 manas 105
 
106
 
107
    private DrawerLayout mDrawerLayout;
108
    private ExpandableListView mDrawerList;
109
    private LinearLayout navDrawerView;
110
    ExpandableNavigationAdapter customAdapter;
111
    private ActionBarDrawerToggle mDrawerToggle;
112
    private CharSequence mDrawerTitle;
113
    private CharSequence mTitle;
114
    private String[] mPlanetTitles;
115
    private String[] mHelpTitle;
116
    private int selectedPosition;
117
    List<ExpandableNavigationItem> listParent;
118
    HashMap<String, List<String>> listDataChild;
119
 
120
 
14792 manas 121
    @Override
122
    protected void onCreate(Bundle savedInstanceState) {
123
        super.onCreate(savedInstanceState);
124
        setContentView(R.layout.activity_main);
125
        TestinAgent.init(this);
126
        userData = getApplicationContext().getSharedPreferences("User_Data", MODE_PRIVATE);
127
        apiData = getApplicationContext().getSharedPreferences("API_Data", MODE_PRIVATE);
128
        userDataEditor = userData.edit();
129
        apiSettingsEditor = apiData.edit();
130
        inviteData = getApplicationContext().getSharedPreferences("Invite_Data", Context.MODE_PRIVATE);
131
        inviteDataEditor = inviteData.edit();
132
        TestinAgent.setUserInfo(userData.getString("id",""));
133
        mixpanel = MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);
134
        type1 = userData.getString("type",null);
135
 
136
        if(getIntent().getAction()=="20"){
15588 manas 137
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
138
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
139
            t.send(new HitBuilders.EventBuilder()
140
                    .setCategory("Notification")
141
                    .setAction("Notification Opened ")
142
                    .setLabel("For User Id " + userData.getString("id","0"))
143
                    .build());
16310 manas 144
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
145
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
146
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
147
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 148
            flag=20;
149
            notificationURL = String.valueOf(getIntent().getData());
150
            nameValuePairsGcm = new ArrayList<>();
151
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
152
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 153
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp", UtilityFunctions.notificationDate()));
14792 manas 154
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
155
            getIntent().getExtras().remove("cid");
156
            new NotificationOpenedData().execute(nameValuePairsGcm);
157
        }else if(getIntent().getAction()=="15"){
15588 manas 158
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
159
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
160
            t.send(new HitBuilders.EventBuilder()
161
                    .setCategory("Notification")
162
                    .setAction("Notification Opened ")
163
                    .setLabel("For User Id " + userData.getString("id","0"))
164
                    .build());
14792 manas 165
            flag=15;
16310 manas 166
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
167
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
168
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
169
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 170
            nameValuePairsGcm = new ArrayList<>();
171
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
172
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 173
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));
14792 manas 174
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
175
            getIntent().getExtras().remove("cid");
176
            new NotificationOpenedData().execute(nameValuePairsGcm);
177
        }else if(getIntent().getAction()=="7"){
15588 manas 178
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
179
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
180
            t.send(new HitBuilders.EventBuilder()
181
                    .setCategory("Notification")
182
                    .setAction("Notification Opened ")
183
                    .setLabel("For User Id " + userData.getString("id","0"))
184
                    .build());
16310 manas 185
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
186
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
187
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
188
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 189
            flag=7;
190
            nameValuePairsGcm = new ArrayList<>();
191
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
192
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 193
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));
14792 manas 194
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
195
            getIntent().getExtras().remove("cid");
196
            new NotificationOpenedData().execute(nameValuePairsGcm);
197
        }else if(getIntent().getAction()=="6"){
15588 manas 198
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
199
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
200
            t.send(new HitBuilders.EventBuilder()
201
                    .setCategory("Notification")
202
                    .setAction("Notification Opened ")
203
                    .setLabel("For User Id " + userData.getString("id","0"))
204
                    .build());
16310 manas 205
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
206
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
207
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
208
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 209
            flag=6;
210
            nameValuePairsGcm = new ArrayList<>();
211
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
212
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
15356 manas 213
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));
14792 manas 214
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
215
            getIntent().getExtras().remove("cid");
216
            new NotificationOpenedData().execute(nameValuePairsGcm);
16080 manas 217
        }else if(getIntent().getAction()=="31"){
218
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
219
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
220
            t.send(new HitBuilders.EventBuilder()
221
                    .setCategory("Email Url Opener")
222
                    .setAction("Email Url Opened ")
223
                    .setLabel("For User Id " + userData.getString("id","0"))
224
                    .build());
16310 manas 225
            new Analytics(ProfitTillConstants.ANALYTICS_URL,
226
                    AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Notification","Notification Opened",getIntent().getExtras().getString("cid")),
227
                    AnalyticsJsonResponse.getAnalyticsRequestInstance(),
228
                    AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 229
            flag=20;
230
            String emailURL= String.valueOf(getIntent().getData());
231
            notificationURL =new UtilityFunctions().getEmailUrlFromMap(getApplicationContext(), emailURL,apiData.getString("mobile.website.url",""))+"?user_id="+userData.getString("id","");
17066 manas 232
        }else if(getIntent().getAction()=="11"){
233
            flag=11;
14792 manas 234
        }else {
235
            Bundle i = getIntent().getExtras();
236
            if (i != null) {
237
                flag = Integer.parseInt(i.getString("displayView"));
238
                if (flag == 31) {
239
                    redirectUrl = i.getString("redirectUrl");
240
                }
241
            }
242
        }
243
 
244
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
245
        getSupportActionBar().setIcon(R.drawable.logo_cirlce_1);
246
        getSupportActionBar().setDisplayShowCustomEnabled(true);
247
        getSupportActionBar().setDisplayShowTitleEnabled(false);
248
 
249
        try {
250
            ViewConfiguration config = ViewConfiguration.get(this);
251
            Field menuKeyField = ViewConfiguration.class
252
                    .getDeclaredField("sHasPermanentMenuKey");
253
            if (menuKeyField != null) {
254
                menuKeyField.setAccessible(true);
255
                menuKeyField.setBoolean(config, false);
256
            }
257
        } catch (Exception ex) {
258
            Log.d("Exception","Message"+ex);
259
        }
260
 
261
        if(type1!=null && type1.equalsIgnoreCase("google")) {
262
            mGoogleApiClient = new GoogleApiClient.Builder(this)
263
                    .addConnectionCallbacks(this)
264
                    .addOnConnectionFailedListener(this).addApi(Plus.API)
265
                    .addScope(Plus.SCOPE_PLUS_LOGIN).build();
266
            mGoogleApiClient.connect();
267
        }
268
 
16310 manas 269
        /*mTitle = mDrawerTitle = getTitle();*//*
14792 manas 270
        // load slide menu items
271
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
272
 
273
        // nav drawer icons from resources
274
        navMenuIcons = getResources()
275
                .obtainTypedArray(R.array.nav_drawer_icons);
276
 
277
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
278
        mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
279
        mDrawerLayout.setBackgroundColor(getResources().getColor(R.color.White));
280
        navDrawerItems = new ArrayList<NavDrawerItem>();
281
 
282
 
283
 
284
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
285
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, 0)));
286
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
287
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
288
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
289
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
290
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
291
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1)));
292
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[8], navMenuIcons.getResourceId(8, -1)));
16310 manas 293
*//*        navDrawerItems.add(new NavDrawerItem(navMenuTitles[9], navMenuIcons.getResourceId(9, -1)));*//*
14792 manas 294
        navMenuIcons.recycle();
295
 
296
        mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
16310 manas 297
ExpandableListViewClick
14792 manas 298
        // setting the nav drawer list adapter
299
        adapter = new NavDrawerListAdapter(getApplicationContext(),navDrawerItems);
300
        mDrawerList.setAdapter(adapter);
301
 
302
        // enabling action bar app icon and behaving it as toggle button
303
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
304
        getSupportActionBar().setHomeButtonEnabled(true);
305
 
306
        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
16080 manas 307
                R.drawable.menu_button_2, //nav menu toggle icon
14792 manas 308
                R.string.hello_world, // nav drawer open - description for accessibility
309
                R.string.hello_world// nav drawer close - description for accessibility
310
        ) {
311
            public void onDrawerClosed(View view) {
312
                if(titleVisible!=0) {
313
                    if(titleVisible==1)
314
                        getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
315
 
316
                    if(titleVisible==2)
317
                        getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
318
 
319
                    if(titleVisible==3)
320
                        getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
321
 
322
                    if(titleVisible==4)
323
                        getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
324
 
325
                    if(titleVisible==5)
326
                        getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
327
 
328
                    if(titleVisible==6)
329
                        getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
330
 
331
 
332
                }
333
                else{
334
                    if (getTitle().equals("Deals")) {
335
                        getSupportActionBar().setCustomView(R.layout.actionbardeals);
336
                    }
337
                    if (getTitle().equals("Saholic") || getTitle().equals("Flipkart") || getTitle().equals("Snapdeal") || getTitle().equals("Amazon")) {
338
                        getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
339
                    }
340
                    if (getTitle().equals("FAQ")) {
341
                        getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
342
                    }
343
                    if (getTitle().equals("Contact Us")) {
344
                        getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
345
                    }
346
                    if (getTitle().equals("Search")) {
347
                        getSupportActionBar().setCustomView(R.layout.actionbarsearch);
348
                    }
349
                    if (getTitle().equals("How It Works")) {
350
                        getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
351
                    }
352
                }
353
                shouldGoInvisible = false;
354
                invalidateOptionsMenu();
355
            }
356
 
357
            public void onDrawerOpened(View drawerView) {
358
                getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
359
                shouldGoInvisible = true;
360
                invalidateOptionsMenu();
361
            }
362
            @Override
363
            public void onDrawerSlide(View drawerView, float slideOffset) {
364
 
365
 
366
            }
367
 
368
        };
369
        mDrawerLayout.setDrawerListener(mDrawerToggle);
370
 
371
        if (savedInstanceState == null) {
372
 
373
                if (flag == 7) {
374
                    getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
375
                    displayView(flag);
376
                } else if (flag == 6) {
377
                    getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
378
                    displayView(flag);
379
                } else if (flag == 15) {
380
                    getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
381
                    MyProfile myProfile = new MyProfile();
382
                    this.getFragmentManager().beginTransaction()
383
                            .replace(R.id.frame_container, myProfile, "Mike")
384
                            .addToBackStack(null)
385
                            .commit();
386
                }else if (flag == 20) {
387
                    getSupportActionBar().setCustomView(R.layout.actionbardeals);
388
                    JSONObject propsNotification = new JSONObject();
389
                    try {
390
                        mixpanel.identify(userData.getString("id",null));
391
                        propsNotification.put("Screen", "Notification Url opened");
392
                        mixpanel.track("Notification Opened", propsNotification);
393
                    } catch (JSONException e) {
394
                        e.printStackTrace();
395
                    }
396
                    Bundle args = new Bundle();
397
                    DealsHomeFragment notifcationFragment = new DealsHomeFragment();
398
                    args.putString("key", notificationURL);
399
                    this.getFragmentManager().beginTransaction()
400
                            .replace(R.id.frame_container, notifcationFragment, "Mike")
401
                            .addToBackStack(null)
402
                            .commit();
403
                    notifcationFragment.setArguments(args);
404
                }else if (flag == 31) {
405
                    getSupportActionBar().setCustomView(R.layout.actionbardeals);
406
                    Bundle args = new Bundle();
407
                    DealsHomeFragment redirectUrlFragment = new DealsHomeFragment();
408
                    args.putString("key", redirectUrl);
409
                    this.getFragmentManager().beginTransaction()
410
                            .replace(R.id.frame_container, redirectUrlFragment, "Mike")
411
                            .addToBackStack(null)
412
                            .commit();
413
                    redirectUrlFragment.setArguments(args);
414
                }else {
415
                    getSupportActionBar().setCustomView(R.layout.actionbardeals);
416
                    displayView(0);
417
                }
418
 
16310 manas 419
        }*/
420
 
421
        mTitle = mDrawerTitle = getTitle();
422
 
423
        navDrawerView = (LinearLayout) findViewById(R.id.navDrawerView);
424
        mPlanetTitles = getResources().getStringArray(R.array.stores_array);
425
 
426
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
427
        // mDrawerList = (ListView) findViewById(R.id.left_drawer);
428
 
429
        mDrawerList = (ExpandableListView) findViewById(R.id.nav_left_drawer);
430
 
431
        // set a custom shadow that overlays the main content when the drawer
432
        // opens
433
        //mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
434
 
435
        listParent = new ArrayList<ExpandableNavigationItem>();
436
        listDataChild = new HashMap<String, List<String>>();
437
 
438
        // Navigation Drawer of Flight starts
439
        listParent.add(new ExpandableNavigationItem(getString(R.string.Deals)));
440
        listParent.add(new ExpandableNavigationItem(getString(R.string.Search)));
441
        listParent.add(new ExpandableNavigationItem(getString(R.string.Stores)));
442
        listParent.add(new ExpandableNavigationItem(getString(R.string.Contact_Us)));
443
        listParent.add(new ExpandableNavigationItem(getString(R.string.Tutorials)));
444
        listParent.add(new ExpandableNavigationItem(getString(R.string.About_Us)));
445
 
446
        listDataChild.put(getString(R.string.Deals), new ArrayList<String>());
447
        listDataChild.put(getString(R.string.Search), new ArrayList<String>());
448
 
16453 manas 449
        /*listDataChild.put(getString(R.string.Help), Arrays.asList(mHelpTitle));*/
16310 manas 450
        listDataChild.put(getString(R.string.Stores), Arrays.asList(mPlanetTitles));
451
        listDataChild.put(getString(R.string.Contact_Us), new ArrayList<String>());
452
        listDataChild.put(getString(R.string.Tutorials), new ArrayList<String>());
453
        listDataChild.put(getString(R.string.About_Us), new ArrayList<String>());
454
 
455
        customAdapter = new ExpandableNavigationAdapter(this, listParent, listDataChild);
456
        // setting list adapter
457
        mDrawerList.setAdapter(customAdapter);
458
        mDrawerList.setChoiceMode(ExpandableListView.CHOICE_MODE_SINGLE);
459
        // // set up the drawer's list view with items and click listener
460
        // mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, mPlanetTitles));
461
        // mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
462
 
463
        // enable ActionBar app icon to behave as action to toggle nav drawer
464
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
465
        getSupportActionBar().setHomeButtonEnabled(true);
466
        //mDrawerList.setOnItemClickListener(new ExpandableListViewClick());
16453 manas 467
        //mDrawerList.setOnGroupClickListener(new ExpandableListViewGroupClick());
16310 manas 468
        mDrawerList.setOnChildClickListener(new ExpandableListViewChildClick());
16453 manas 469
        mDrawerList.setOnGroupExpandListener(new ExpandableGroupExpandListener());
16310 manas 470
        mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
471
                mDrawerLayout, /* DrawerLayout object */
16453 manas 472
                R.drawable.menu_button_2, /* nav drawer image to replace 'Up' caret */
16310 manas 473
                R.string.drawer_open, /* "open drawer" description for accessibility */
474
                R.string.drawer_close /* "close drawer" description for accessibility */
475
        ) {
476
            public void onDrawerClosed(View view) {
477
                if(titleVisible!=0) {
478
                    if(titleVisible==1)
479
                        getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
480
 
481
                    if(titleVisible==2)
482
                        getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
483
 
484
                    if(titleVisible==3)
485
                        getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
486
 
487
                    if(titleVisible==4)
488
                        getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
489
 
490
                    if(titleVisible==5)
491
                        getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
492
 
493
                    if(titleVisible==6)
494
                        getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
495
                }
496
                shouldGoInvisible = false;
497
                invalidateOptionsMenu();
498
            }
499
 
500
            public void onDrawerOpened(View drawerView) {
501
                getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
502
                shouldGoInvisible = true;
503
                invalidateOptionsMenu();
504
            }
505
        };
506
        mDrawerLayout.setDrawerListener(mDrawerToggle);
507
 
508
 
509
        if (savedInstanceState == null) {
510
 
511
            if (flag == 7) {
512
                getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
513
                displayView(4);
514
            } else if (flag == 6) {
515
                getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
516
                displayView(3);
517
            } else if (flag == 15) {
518
                getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
519
                MyProfile myProfile = new MyProfile();
520
                this.getFragmentManager().beginTransaction()
521
                        .replace(R.id.frame_container, myProfile, "Mike")
522
                        .addToBackStack(null)
523
                        .commit();
524
            }else if (flag == 20) {
525
                getSupportActionBar().setCustomView(R.layout.actionbardeals);
526
                JSONObject propsNotification = new JSONObject();
527
                try {
528
                    mixpanel.identify(userData.getString("id",null));
529
                    propsNotification.put("Screen", "Notification Url opened");
530
                    mixpanel.track("Notification Opened", propsNotification);
531
                } catch (JSONException e) {
532
                    e.printStackTrace();
533
                }
534
                Bundle args = new Bundle();
535
                DealsHomeFragment notifcationFragment = new DealsHomeFragment();
536
                args.putString("key", notificationURL);
537
                this.getFragmentManager().beginTransaction()
538
                        .replace(R.id.frame_container, notifcationFragment, "Mike")
539
                        .addToBackStack(null)
540
                        .commit();
541
                notifcationFragment.setArguments(args);
542
            }else if (flag == 31) {
543
                getSupportActionBar().setCustomView(R.layout.actionbardeals);
544
                Bundle args = new Bundle();
545
                DealsHomeFragment redirectUrlFragment = new DealsHomeFragment();
546
                args.putString("key", redirectUrl);
547
                this.getFragmentManager().beginTransaction()
548
                        .replace(R.id.frame_container, redirectUrlFragment, "Mike")
549
                        .addToBackStack(null)
550
                        .commit();
551
                redirectUrlFragment.setArguments(args);
17066 manas 552
            }else if (flag == 11) {
553
                getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
554
                Bundle args = new Bundle();
555
                AboutUsFragment redirectUrlFragment = new AboutUsFragment();
556
                args.putString("key", redirectUrl);
557
                this.getFragmentManager().beginTransaction()
558
                        .replace(R.id.frame_container, redirectUrlFragment, "Mike")
559
                        .addToBackStack(null)
560
                        .commit();
561
                redirectUrlFragment.setArguments(args);
16310 manas 562
            }else {
563
                getSupportActionBar().setCustomView(R.layout.actionbardeals);
564
                displayView(0);
565
            }
14792 manas 566
        }
567
    }
568
 
16453 manas 569
    private class ExpandableGroupExpandListener implements ExpandableListView.OnGroupExpandListener{
14792 manas 570
        @Override
16453 manas 571
        public void onGroupExpand(int groupPosition) {
572
            int len = customAdapter.getGroupCount();
14792 manas 573
 
16453 manas 574
            int index = mDrawerList.getFlatListPosition(ExpandableListView.getPackedPositionForGroup(groupPosition));
575
            mDrawerList.setItemChecked(index, true);
16310 manas 576
            String parentTitle = ((ExpandableNavigationItem) customAdapter.getGroup(groupPosition)).getTitle();
16453 manas 577
            Log.d("Group Pos in child View", "" + groupPosition);
578
            if(!(parentTitle.equalsIgnoreCase(getString(R.string.Stores)))) {
16310 manas 579
                mDrawerLayout.closeDrawer(navDrawerView);
580
                mDrawerList.collapseGroup(2);
581
            }
582
            if(groupPosition!=2){
583
                displayView(groupPosition);
584
            }
585
            setActionBarTitlte(parentTitle);
586
 
16453 manas 587
            for (int i = 0; i < len; i++) {
588
                if(i!=2) {
589
                    mDrawerList.collapseGroup(i);
590
                }
591
            }
16310 manas 592
        }
593
    }
594
 
595
 
16453 manas 596
 
597
 
598
    private class ExpandableListViewChildClick implements ExpandableListView.OnChildClickListener {
16310 manas 599
        @Override
600
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
601
            int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
602
            parent.setItemChecked(index, true);
603
            mDrawerLayout.closeDrawer(navDrawerView);
604
            displayChildView(childPosition);
605
            return false;
606
        }
607
    }
14792 manas 608
    @Override
609
    public boolean onCreateOptionsMenu(Menu menu) {
610
        mainMenu=menu;
611
        super.onCreateOptionsMenu(menu);
612
        getMenuInflater().inflate(R.menu.menu_main, menu);
613
 
614
        return true;
615
    }
616
 
617
    @Override
618
    public boolean onOptionsItemSelected(MenuItem item) {
619
        Fragment menuFragment= null;
620
        JSONObject props = new JSONObject();
621
        Bundle args = new Bundle();
622
        String id = userData.getString("id",null);
623
        if (mDrawerToggle.onOptionsItemSelected(item)) {
624
            return true;
625
        }
626
        getSupportActionBar().setDisplayShowCustomEnabled(true);
627
        switch (item.getItemId()) {
628
            case R.id.action_settings:
629
                android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
630
                android.webkit.CookieSyncManager.createInstance(this);
631
                cookieManager.removeAllCookie();
632
                try {
633
                    mixpanel.identify(userData.getString("id",null));
634
                    props.put("Screen", "Signing Out");
635
                    mixpanel.track("Signing Out", props);
636
                } catch (JSONException e) {
637
                    e.printStackTrace();
638
                }
16278 manas 639
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
640
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Sign Out","Sign Out Clicked"),
641
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
642
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 643
                try{
644
                    if (mGoogleApiClient.isConnected()) {
645
                        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
646
                        mGoogleApiClient.disconnect();
647
                        mGoogleApiClient.connect();
648
                        userDataEditor.clear().commit();
649
                        inviteDataEditor.clear().commit();
650
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
651
                    }
652
                    else if(Session.getActiveSession() != null){
653
                        Session.getActiveSession().closeAndClearTokenInformation();
654
                        Session.setActiveSession(null);
655
                        userDataEditor.clear().commit();
656
                        inviteDataEditor.clear().commit();
657
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
658
                    }
659
                    else{
660
                        if(!mGoogleApiClient.isConnected() || Session.getActiveSession()==null){
661
                            userDataEditor.clear().commit();
662
                            inviteDataEditor.clear().commit();
663
                            startActivity(new Intent(MainActivity.this, LoginActivity.class));
664
                        }
665
 
666
 
667
                    }
668
                }catch (Exception e){
669
                    userDataEditor.clear().commit();
670
                    startActivity(new Intent(MainActivity.this, LoginActivity.class));
671
                }
672
                return true;
673
 
674
            case R.id.my_wallet:
675
                titleVisible=3;
676
                getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
677
                try {
678
                    mixpanel.identify(userData.getString("id",null));
679
                    props.put("Screen", "My Wallet");
680
                    mixpanel.track("My Wallet", props);
681
                } catch (JSONException e) {
682
                    e.printStackTrace();
683
                }
16278 manas 684
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
685
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Wallet","My Wallet Clicked"),
686
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
687
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 688
                MyWallet myWallet= new MyWallet();
689
                this.getFragmentManager().beginTransaction()
690
                        .replace(R.id.frame_container, myWallet,"Mike")
691
                        .addToBackStack(null)
692
                        .commit();
693
                return true;
694
            case R.id.pending_cashback:
695
                titleVisible=5;
696
                getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
697
                try {
698
                    mixpanel.identify(userData.getString("id",null));
699
                    props.put("Screen", "Cashback Status");
700
                    mixpanel.track("Cashback Status", props);
701
                } catch (JSONException e) {
702
                    e.printStackTrace();
703
                }
16278 manas 704
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
705
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Cashback Status","Cashback Status Clicked"),
706
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
707
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 708
                args.putString("key", apiData.getString("pendingcashback.url",null)+"?user_id="+id);
709
                DealsHomeFragment orderFragment= new DealsHomeFragment();
710
                this.getFragmentManager().beginTransaction()
711
                        .replace(R.id.frame_container, orderFragment,"Mike")
712
                        .addToBackStack(null)
14792 manas 713
                        .commit();
16080 manas 714
                orderFragment.setArguments(args);
715
 
14792 manas 716
                return true;
717
            case R.id.my_favorites:
718
                titleVisible=1;
719
                getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
720
                try {
721
                    mixpanel.identify(userData.getString("id",null));
722
                    props.put("Screen", "My Favorites");
723
                    mixpanel.track("My Favorites", props);
724
                } catch (JSONException e) {
725
                    e.printStackTrace();
726
                }
16278 manas 727
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
728
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Favorites","My Favorites Clicked"),
729
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
730
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 731
                args.putString("key", apiData.getString("myfavourite.url",null)+"?user_id="+id);
732
                DealsHomeFragment favoritesFragment= new DealsHomeFragment();
733
                this.getFragmentManager().beginTransaction()
734
                        .replace(R.id.frame_container, favoritesFragment,"Mike")
735
                        .addToBackStack(null)
736
                        .commit();
737
                favoritesFragment.setArguments(args);
738
                return true;
739
            case R.id.my_profile:
740
                titleVisible=6;
741
                getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
742
                try {
743
                    mixpanel.identify(userData.getString("id",null));
744
                    props.put("Screen", "My Profile");
745
                    mixpanel.track("My profile", props);
746
                } catch (JSONException e) {
747
                    e.printStackTrace();
748
                }
16278 manas 749
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
750
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Profile","My Profile Clicked"),
751
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
752
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 753
                MyProfile myProfile= new MyProfile();
754
                this.getFragmentManager().beginTransaction()
755
                        .replace(R.id.frame_container, myProfile,"Mike")
756
                        .addToBackStack(null)
757
                        .commit();
758
                return true;
759
            case R.id.my_order:
760
                titleVisible=4;
761
                getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
762
                try {
763
                    mixpanel.identify(userData.getString("id",null));
764
                    props.put("Screen", "My Orders");
765
                    mixpanel.track("My Orders", props);
766
                } catch (JSONException e) {
767
                    e.printStackTrace();
768
                }
16278 manas 769
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
770
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Orders","My Orders Clicked"),
771
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
772
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 773
                args.putString("key", apiData.getString("myorders.url",null)+"?user_id="+id);
16080 manas 774
                DealsHomeFragment preferenceFragment= new DealsHomeFragment();
14792 manas 775
                this.getFragmentManager().beginTransaction()
16080 manas 776
                        .replace(R.id.frame_container, preferenceFragment,"Mike")
14792 manas 777
                        .addToBackStack(null)
778
                        .commit();
16080 manas 779
                preferenceFragment.setArguments(args);
14792 manas 780
 
781
                return true;
782
            case R.id.my_preferences:
783
                titleVisible=2;
784
                getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
785
                try {
786
                    mixpanel.identify(userData.getString("id",null));
787
                    props.put("Screen", "My Preferences");
788
                    mixpanel.track("My Preferences", props);
789
                } catch (JSONException e) {
790
                    e.printStackTrace();
791
                }
16080 manas 792
                userDataEditor.remove("preferences").commit();
16278 manas 793
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
794
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","My Preferences","My Preferences Clicked"),
795
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
796
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 797
                PreferencesFragment my_preferences = new PreferencesFragment();
798
                this.getFragmentManager().beginTransaction()
799
                        .replace(R.id.frame_container, my_preferences,"Mike")
800
                        .addToBackStack(null)
801
                        .commit();
802
 
803
                return true;
804
           default:
805
                return super.onOptionsItemSelected(item);
806
        }
807
 
808
 
809
    }
810
    public void signOutFromGplus() {
811
 
812
 
813
        if (mGoogleApiClient.isConnected()) {
814
            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
815
            mGoogleApiClient.disconnect();
816
            mGoogleApiClient.connect();
817
            glogout=true;
818
            userDataEditor.remove("id");
819
            userDataEditor.remove("type");
820
            userDataEditor.remove("email");
821
            userDataEditor.commit();
822
        } else {
823
            glogout=false;
824
            }
825
    }
826
 
827
    @Override
828
    public void onConnected(Bundle bundle) {
829
 
830
    }
831
 
832
    @Override
833
    public void onConnectionSuspended(int i) {
834
 
835
    }
836
 
837
    @Override
838
    public void onConnectionFailed(ConnectionResult connectionResult) {
839
 
840
    }
841
 
842
    @Override
843
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
844
        super.onSaveInstanceState(outState, outPersistentState);
845
    }
846
    @Override
847
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
848
        super.onRestoreInstanceState(savedInstanceState);
16080 manas 849
        Intent i= new Intent(MainActivity.this,MainActivity.class);
14792 manas 850
        i.putExtra("displayView","0");
851
        startActivity(i);
852
    }
853
 
854
    @Override
855
    public boolean onMenuOpened(int featureId, Menu menu)
856
    {
857
        if(featureId == Window.FEATURE_ACTION_BAR && menu != null){
858
            if(menu.getClass().getSimpleName().equals("MenuBuilder")){
859
                try{
860
                    Method m = menu.getClass().getDeclaredMethod(
861
                            "setOptionalIconsVisible", Boolean.TYPE);
862
                    m.setAccessible(true);
863
                    m.invoke(menu, true);
864
 
865
                }
866
                catch(Exception e){
867
                    throw new RuntimeException(e);
868
                }
869
            }
870
        }
871
        return super.onMenuOpened(featureId, menu);
872
    }
873
 
874
    private void displayView(int position) {
875
        titleVisible=0;
16278 manas 876
 
14792 manas 877
        Bundle args = new Bundle();
878
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
879
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
880
        String id = userData.getString("id",null);
881
        Fragment fragment = null;
882
        switch (position) {
883
            case 0:
884
                JSONObject props = new JSONObject();
885
                try {
886
                    mixpanel.getPeople().set( "$last_login",new Date());
887
                    mixpanel.identify(userData.getString("id",null));
888
                    props.put("Screen", "Deals Screen");
889
                    mixpanel.track("Deals", props);
890
                } catch (JSONException e) {
891
                    e.printStackTrace();
892
                }
893
 
894
                t.send(new HitBuilders.EventBuilder()
895
                        .setCategory("Menu")
896
                        .setAction("Deals ")
897
                        .setLabel("Deals Clicked")
898
                        .build());
16278 manas 899
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
900
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Deals","Deals Clicked"),
901
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
902
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 903
                args.putString("key", apiData.getString("mobile.website.url","")+"?user_id="+id);
904
                fragment = new DealsHomeFragment();
905
                fragment.setArguments(args);
906
                break;
907
            case 1:
908
                JSONObject props1 = new JSONObject();
909
                try {
910
                    mixpanel.identify(userData.getString("id",null));
911
                    props1.put("Screen", "Search");
912
                    mixpanel.track("Search", props1);
913
                } catch (JSONException e) {
914
                    e.printStackTrace();
915
                }
916
                t.send(new HitBuilders.EventBuilder()
917
                        .setCategory("Menu")
918
                        .setAction("Search ")
919
                        .setLabel("Search Clicked")
920
                        .build());
16278 manas 921
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
922
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Search","Search Clicked"),
923
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
924
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 925
                args.putString("key", apiData.getString("search.url",null)+"?user_id="+id);
926
                fragment = new DealsHomeFragment();
927
                fragment.setArguments(args);
928
                break;
16310 manas 929
            case 3:
930
                JSONObject propsContactUs = new JSONObject();
931
                try {
932
                    mixpanel.identify(userData.getString("id",null));
933
                    propsContactUs.put("Screen", "Contact Us");
934
                    mixpanel.track("Contact Us", propsContactUs);
935
                } catch (JSONException e) {
936
                    e.printStackTrace();
937
                }
938
                t.send(new HitBuilders.EventBuilder()
939
                        .setCategory("Menu")
940
                        .setAction("Contact Us ")
941
                        .setLabel("Contact us Clicked")
942
                        .build());
943
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
944
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Contact Us","Contact Us Clicked"),
945
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
946
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
947
                fragment = new ContactUsFragment();
948
                break;
949
            case 4:
950
                JSONObject propsHowItWorks = new JSONObject();
951
                try {
952
                    mixpanel.identify(userData.getString("id",null));
953
                    propsHowItWorks.put("Screen", "How it Works");
954
                    mixpanel.track("How it Works", propsHowItWorks);
955
                } catch (JSONException e) {
956
                    e.printStackTrace();
957
                }
958
                t.send(new HitBuilders.EventBuilder()
959
                        .setCategory("Menu")
960
                        .setAction("Tutorials ")
961
                        .setLabel("Tutorials Clicked")
962
                        .build());
963
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
964
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","How it Works","How it works Clicked"),
965
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
966
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
967
                fragment = new HowItWorksFragment();
968
                break;
969
            case 5:
970
                JSONObject propsAboutUs = new JSONObject();
971
                try {
972
                    mixpanel.identify(userData.getString("id",null));
973
                    propsAboutUs.put("Screen", "About Us");
974
                    mixpanel.track("About Us", propsAboutUs);
975
                } catch (JSONException e) {
976
                    e.printStackTrace();
977
                }
978
                t.send(new HitBuilders.EventBuilder()
979
                        .setCategory("Menu")
980
                        .setAction("About Us ")
981
                        .setLabel("About us Clicked")
982
                        .build());
983
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
984
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","About Us","About Us Clicked"),
985
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
986
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
987
                fragment = new AboutUsFragment();
988
                break;
989
            default:
990
                break;
991
        }
992
       /* if (fragment != null) {
993
            FragmentManager fragmentManager = getFragmentManager();
994
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
995
            mDrawerList.setItemChecked(position, true);
996
            mDrawerList.setSelection(position);
997
            setTitle(navMenuTitles[position]);
998
            mDrawerLayout.closeDrawer(mDrawerList);
999
        }*/
1000
        if (fragment != null) {
1001
            FragmentManager fragmentManager = getFragmentManager();
1002
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
1003
 
1004
        } else {
1005
            Log.e("MainActivity", "Error in creating fragment");
1006
        }
1007
    }
1008
 
1009
 
1010
    private void displayChildView(int position) {
1011
        titleVisible=0;
1012
        Bundle args = new Bundle();
1013
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
1014
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
1015
        String id = userData.getString("id", null);
1016
        Fragment fragment = null;
1017
        Map<String, String> jsonParams;
1018
        switch (position) {
1019
            case 0:
14792 manas 1020
                JSONObject propsAmazon = new JSONObject();
1021
                try {
1022
                    mixpanel.identify(userData.getString("id",null));
1023
                    propsAmazon.put("Screen", "Amazon");
1024
                    mixpanel.track("Amazon", propsAmazon);
1025
                } catch (JSONException e) {
1026
                    e.printStackTrace();
1027
                }
1028
                t.send(new HitBuilders.EventBuilder()
1029
                        .setCategory("Menu")
1030
                        .setAction("Amazon ")
1031
                        .setLabel("Amazon Clicked")
1032
                        .build());
16278 manas 1033
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
1034
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Amazon","Amazon Clicked"),
1035
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
1036
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 1037
                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 1038
                fragment = new DealsHomeFragment();
1039
                fragment.setArguments(args);
1040
                break;
16310 manas 1041
            case 1:
14792 manas 1042
                JSONObject propsFlipkart = new JSONObject();
1043
                try {
1044
                    mixpanel.identify(userData.getString("id",null));
1045
                    propsFlipkart.put("Screen", "Flipkart");
1046
                    mixpanel.track("Flipkart", propsFlipkart);
1047
                } catch (JSONException e) {
1048
                    e.printStackTrace();
1049
                }
1050
                t.send(new HitBuilders.EventBuilder()
1051
                        .setCategory("Menu")
1052
                        .setAction("Flipkart ")
1053
                        .setLabel("Flipkart Clicked")
1054
                        .build());
16278 manas 1055
 
1056
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
1057
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Flipkart","Flipkart Clicked"),
1058
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
1059
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16080 manas 1060
                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 1061
                fragment = new DealsHomeFragment();
1062
                fragment.setArguments(args);
1063
                break;
16310 manas 1064
            case 2:
16453 manas 1065
                t.send(new HitBuilders.EventBuilder()
1066
                        .setCategory("Menu")
1067
                        .setAction("Paytm ")
1068
                        .setLabel("Paytm Clicked")
1069
                        .build());
1070
 
1071
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
1072
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Paytm","Paytm Clicked"),
1073
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
1074
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
1075
                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));
1076
                //args.putString("key","https://paytm.com");
1077
                fragment = new DealsHomeFragment();
1078
                fragment.setArguments(args);
1079
                break;
1080
            case 3:
14792 manas 1081
                JSONObject propsSaholic = new JSONObject();
1082
                try {
1083
                    mixpanel.identify(userData.getString("id",null));
1084
                    propsSaholic.put("Screen", "Saholic");
1085
                    mixpanel.track("Saholic", propsSaholic);
1086
                } catch (JSONException e) {
1087
                    e.printStackTrace();
1088
                }
1089
                t.send(new HitBuilders.EventBuilder()
1090
                        .setCategory("Menu")
1091
                        .setAction("Saholic ")
1092
                        .setLabel("Saholic Clicked")
1093
                        .build());
16278 manas 1094
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
1095
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Saholic","Saholic Clicked"),
1096
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
1097
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
14792 manas 1098
                args.putString("key", apiData.getString("saholic.autologin.url","")+"?user_id="+userData.getString("id",""));
1099
                fragment = new DealsHomeFragment();
1100
                fragment.setArguments(args);
1101
                break;
16453 manas 1102
            case 4:
16080 manas 1103
                JSONObject propsShopclues = new JSONObject();
1104
                try {
1105
                    mixpanel.identify(userData.getString("id",null));
1106
                    propsShopclues.put("Screen", "Shopclues");
1107
                    mixpanel.track("Shopclues", propsShopclues);
1108
                } catch (JSONException e) {
1109
                    e.printStackTrace();
1110
                }
1111
                t.send(new HitBuilders.EventBuilder()
1112
                        .setCategory("Menu")
1113
                        .setAction("Shopclues ")
1114
                        .setLabel("Shopclues Clicked")
1115
                        .build());
16310 manas 1116
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
1117
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Shopclues","Shopclues Clicked"),
1118
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
1119
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
1120
                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 1121
                args.putString("key", url);
16310 manas 1122
                if(Uri.parse(url).getHost().equalsIgnoreCase(ProfitTillConstants.DOMAIN)) {
1123
                    CookieSyncManager.createInstance(getApplicationContext());
1124
                    CookieManager cookieManager1 = CookieManager.getInstance();
1125
                    cookieManager1.setCookie(url, "token=" + userData.getString("token", ""));
1126
                    cookieManager1.setCookie(url, "walletAuthentication=true");
1127
                    cookieManager1.setCookie(url, "shopcluesActive=true");
1128
                }
16080 manas 1129
                fragment = new DealsHomeFragment();
1130
                fragment.setArguments(args);
16310 manas 1131
                break;
16453 manas 1132
            case 5:
14792 manas 1133
                JSONObject propsSnapdeal = new JSONObject();
1134
                try {
1135
                    mixpanel.identify(userData.getString("id",null));
1136
                    propsSnapdeal.put("Screen", "Snapdeal");
1137
                    mixpanel.track("Snapdeal", propsSnapdeal);
1138
                } catch (JSONException e) {
1139
                    e.printStackTrace();
1140
                }
1141
                t.send(new HitBuilders.EventBuilder()
1142
                        .setCategory("Menu")
1143
                        .setAction("Snapdeal ")
1144
                        .setLabel("Snapdeal Clicked")
1145
                        .build());
16278 manas 1146
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
1147
                        AnalyticsUtility.getAnalyticsRequest(MainActivity.this,userData.getString("id",""),"Menu","Snapdeal","Snapdeal Clicked"),
1148
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
1149
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(MainActivity.this);
16310 manas 1150
                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 1151
                fragment = new DealsHomeFragment();
1152
                fragment.setArguments(args);
1153
                break;
1154
            default:
1155
                break;
1156
        }
1157
        if (fragment != null) {
1158
            FragmentManager fragmentManager = getFragmentManager();
1159
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
16310 manas 1160
 
1161
        } else {
1162
            Log.e("MainActivity", "Error in creating fragment");
14792 manas 1163
        }
1164
    }
1165
 
1166
 
16310 manas 1167
    public void setActionBarTitlte(String parentTitle){
1168
        if (parentTitle.equals("Deals")) {
1169
            getSupportActionBar().setCustomView(R.layout.actionbardeals);
1170
        }
1171
        if (parentTitle.equalsIgnoreCase("Visit Other Stores")) {
1172
            getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
1173
        }
16453 manas 1174
        if (parentTitle.equals("FAQ")) {
16310 manas 1175
            getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
1176
        }
1177
        if (parentTitle.equals("Contact Us")) {
1178
            getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
1179
        }
1180
        if (parentTitle.equals("Search")) {
1181
            getSupportActionBar().setCustomView(R.layout.actionbarsearch);
1182
        }
1183
        if (parentTitle.equals("How it Works")) {
1184
            getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
1185
        }
1186
    }
14792 manas 1187
 
1188
    @Override
1189
    protected void onPostCreate(Bundle savedInstanceState) {
1190
        super.onPostCreate(savedInstanceState);
1191
        mDrawerToggle.syncState();
1192
    }
1193
 
1194
    @Override
1195
    public boolean onPrepareOptionsMenu(Menu menu) {
1196
        boolean drawerOpen = shouldGoInvisible;
1197
        hideMenuItems(menu, !drawerOpen);
1198
        return super.onPrepareOptionsMenu(menu);
1199
    }
1200
    private void hideMenuItems(Menu menu, boolean visible)
1201
    {
1202
       for(int i = 0; i < menu.size(); i++){
1203
        menu.getItem(i).setVisible(visible);
1204
       }
1205
    }
1206
    @Override
1207
    public void onConfigurationChanged(Configuration newConfig) {
1208
        super.onConfigurationChanged(newConfig);
1209
        mDrawerToggle.onConfigurationChanged(newConfig);
1210
    }
1211
    @Override
1212
    public boolean onKeyUp(int keycode, KeyEvent e) {
1213
        switch(keycode) {
1214
            case KeyEvent.KEYCODE_MENU:
1215
 
1216
                if (mainMenu !=null) {
1217
                    mainMenu.performIdentifierAction(R.id.overflowMenu,0);
1218
                }
1219
        }
1220
 
1221
        return super.onKeyUp(keycode, e);
1222
    }
1223
    @Override
1224
    public boolean onKeyDown(int keyCode, KeyEvent event) {
1225
 
1226
        switch(keyCode) {
1227
            case KeyEvent.KEYCODE_MENU:
1228
                  if (mainMenu !=null) {
1229
                  mainMenu.performIdentifierAction(R.id.overflowMenu,0);
1230
                  }
1231
        }
1232
        return super.onKeyUp(keyCode, event);
1233
    }
1234
    private Menu mainMenu;
1235
    public final boolean isInternetOn() {
1236
 
1237
        ConnectivityManager connec =
1238
                (ConnectivityManager)getSystemService(this.getBaseContext().CONNECTIVITY_SERVICE);
1239
 
1240
        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
1241
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
1242
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
1243
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {
1244
 
1245
            Toast.makeText(this, " Connected ", Toast.LENGTH_LONG).show();
1246
            return true;
1247
 
1248
        } else if (
1249
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
1250
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {
1251
 
1252
            Toast.makeText(this, " Not Connected ", Toast.LENGTH_LONG).show();
1253
            return false;
1254
        }
1255
        return false;
1256
    }
1257
    class NotificationOpenedData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {
1258
 
1259
        @Override
1260
        protected void onPreExecute() {
1261
            super.onPreExecute();
1262
 
1263
        }
1264
 
1265
        @Override
1266
        protected String doInBackground(ArrayList<NameValuePair>... arg0) {
1267
 
1268
            try {
1269
                HttpClient httpclient = new DefaultHttpClient();
1270
                HttpPost httppost = new HttpPost(apiData.getString("notification.data.url","http://api.profittill.com/pushnotifications/add"));
1271
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
1272
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
1273
                HttpResponse response = httpclient.execute(httppost);
1274
                HttpEntity entity = response.getEntity();
1275
                int status = response.getStatusLine().getStatusCode();
1276
 
1277
                if(status == 200){
1278
                    Log.d("Notification Opened","Notication opened and main activity page and sent successfully");
1279
                    Log.d("ResponseCode GCM ",status+"");
1280
                } else {
1281
                    Log.d("ResponseCode GCM ",status+"");
1282
                }
1283
 
1284
                nameValuePairsGcm.clear();
1285
                Log.e("pass 1", "connection success ");
1286
            } catch (Exception e) {
1287
                Log.e("Fail 1", e.toString());
1288
 
1289
            }
1290
            return "success";
1291
        }
1292
 
1293
        @Override
1294
        protected void onPostExecute(String result) {
1295
            super.onPostExecute(result);
1296
            Log.d("Notification Opened","Notication opened and main activity page");
1297
        }
1298
    }
1299
}