Subversion Repositories SmartDukaan

Rev

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