Subversion Repositories SmartDukaan

Rev

Rev 15356 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14792 manas 1
package com.saholic.profittill.main;
2
 
3
 
4
import android.content.Context;
5
import android.content.Intent;
6
import android.content.SharedPreferences;
7
import android.graphics.Color;
8
import android.graphics.drawable.ColorDrawable;
9
import android.net.ConnectivityManager;
10
import android.os.AsyncTask;
11
import android.os.PersistableBundle;
12
import android.support.v7.app.ActionBarActivity;
13
import android.os.Bundle;
14
import android.view.KeyEvent;
15
import android.view.Menu;
16
import android.view.MenuItem;
17
import android.app.Fragment;
18
import android.app.FragmentManager;
19
import android.content.res.Configuration;
20
import android.content.res.TypedArray;
21
import android.support.v4.app.ActionBarDrawerToggle;
22
import android.support.v4.widget.DrawerLayout;
23
import android.util.Log;
24
import android.view.View;
25
import android.view.ViewConfiguration;
26
import android.view.Window;
27
import android.widget.AdapterView;
28
import android.widget.ListView;
29
import android.widget.Toast;
30
import com.facebook.Session;
31
import com.google.android.gms.analytics.HitBuilders;
32
import com.google.android.gms.analytics.Tracker;
33
import com.google.android.gms.common.ConnectionResult;
34
import com.google.android.gms.common.api.GoogleApiClient;
35
import com.google.android.gms.plus.Plus;
36
import com.mixpanel.android.mpmetrics.MixpanelAPI;
37
import com.saholic.profittill.*;
38
import com.saholic.profittill.Constants.ProfitTillConstants;
39
import com.saholic.profittill.navigationdrawer.NavDrawerItem;
40
import com.saholic.profittill.navigationdrawer.NavDrawerListAdapter;
41
import com.testin.agent.TestinAgent;
42
 
43
import org.apache.http.HttpEntity;
44
import org.apache.http.HttpResponse;
45
import org.apache.http.NameValuePair;
46
import org.apache.http.client.HttpClient;
47
import org.apache.http.client.entity.UrlEncodedFormEntity;
48
import org.apache.http.client.methods.HttpPost;
49
import org.apache.http.impl.client.DefaultHttpClient;
50
import org.apache.http.message.BasicNameValuePair;
51
import org.json.JSONException;
52
import org.json.JSONObject;
53
 
54
import java.lang.reflect.Field;
55
import java.lang.reflect.Method;
56
import java.net.CookieManager;
57
import java.text.SimpleDateFormat;
58
import java.util.ArrayList;
59
import java.util.Date;
60
 
61
 
62
public class MainActivity extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
63
    private DrawerLayout mDrawerLayout;
64
    private ListView mDrawerList;
65
    private ActionBarDrawerToggle mDrawerToggle;
66
    public GoogleApiClient mGoogleApiClient;
67
    SharedPreferences userData;
68
    SharedPreferences apiData;
69
    boolean glogout;
70
    SharedPreferences.Editor userDataEditor;
71
    SharedPreferences.Editor apiSettingsEditor;
72
    SharedPreferences.Editor inviteDataEditor;
73
    SharedPreferences inviteData;
74
    private String[] navMenuTitles;
75
    private TypedArray navMenuIcons;
76
    String type1;
77
    private ArrayList<NavDrawerItem> navDrawerItems;
78
    private NavDrawerListAdapter adapter;
79
    int flag;
80
    boolean shouldGoInvisible;
81
    int titleVisible;
82
    StringBuilder subtag,sb;
83
    String userIdAffliate;
84
    Date dateAffliate;
85
    String stringDateAffliate;
86
    SimpleDateFormat dateFormatAffliate;
87
    String redirectUrl;
88
    MixpanelAPI mixpanel;
89
    String notificationURL;
90
    ArrayList<NameValuePair> nameValuePairsGcm;
91
    @Override
92
    protected void onCreate(Bundle savedInstanceState) {
93
        super.onCreate(savedInstanceState);
94
        setContentView(R.layout.activity_main);
95
        TestinAgent.init(this);
96
        userData = getApplicationContext().getSharedPreferences("User_Data", MODE_PRIVATE);
97
        apiData = getApplicationContext().getSharedPreferences("API_Data", MODE_PRIVATE);
98
        userDataEditor = userData.edit();
99
        apiSettingsEditor = apiData.edit();
100
        inviteData = getApplicationContext().getSharedPreferences("Invite_Data", Context.MODE_PRIVATE);
101
        inviteDataEditor = inviteData.edit();
102
        TestinAgent.setUserInfo(userData.getString("id",""));
103
        mixpanel = MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);
104
        type1 = userData.getString("type",null);
105
 
106
        if(getIntent().getAction()=="20"){
107
            flag=20;
108
            notificationURL = String.valueOf(getIntent().getData());
109
            nameValuePairsGcm = new ArrayList<>();
110
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
111
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
112
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",new Date()+""));
113
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
114
            getIntent().getExtras().remove("cid");
115
            new NotificationOpenedData().execute(nameValuePairsGcm);
116
        }else if(getIntent().getAction()=="15"){
117
            flag=15;
118
            nameValuePairsGcm = new ArrayList<>();
119
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
120
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
121
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",new Date()+""));
122
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
123
            getIntent().getExtras().remove("cid");
124
            new NotificationOpenedData().execute(nameValuePairsGcm);
125
        }else if(getIntent().getAction()=="7"){
126
            flag=7;
127
            nameValuePairsGcm = new ArrayList<>();
128
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
129
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
130
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",new Date()+""));
131
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
132
            getIntent().getExtras().remove("cid");
133
            new NotificationOpenedData().execute(nameValuePairsGcm);
134
        }else if(getIntent().getAction()=="6"){
135
            flag=6;
136
            nameValuePairsGcm = new ArrayList<>();
137
            nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id","")));
138
            nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));
139
            nameValuePairsGcm.add(new BasicNameValuePair("timestamp",new Date()+""));
140
            nameValuePairsGcm.add(new BasicNameValuePair("result","opened"));
141
            getIntent().getExtras().remove("cid");
142
            new NotificationOpenedData().execute(nameValuePairsGcm);
143
        }else {
144
            Bundle i = getIntent().getExtras();
145
            if (i != null) {
146
                flag = Integer.parseInt(i.getString("displayView"));
147
                if (flag == 31) {
148
                    redirectUrl = i.getString("redirectUrl");
149
                }
150
            }
151
        }
152
 
153
 
154
 
155
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
156
        getSupportActionBar().setIcon(R.drawable.logo_cirlce_1);
157
        getSupportActionBar().setDisplayShowCustomEnabled(true);
158
        getSupportActionBar().setDisplayShowTitleEnabled(false);
159
 
160
        try {
161
            ViewConfiguration config = ViewConfiguration.get(this);
162
            Field menuKeyField = ViewConfiguration.class
163
                    .getDeclaredField("sHasPermanentMenuKey");
164
            if (menuKeyField != null) {
165
                menuKeyField.setAccessible(true);
166
                menuKeyField.setBoolean(config, false);
167
            }
168
        } catch (Exception ex) {
169
            Log.d("Exception","Message"+ex);
170
        }
171
 
172
        if(type1!=null && type1.equalsIgnoreCase("google")) {
173
            mGoogleApiClient = new GoogleApiClient.Builder(this)
174
                    .addConnectionCallbacks(this)
175
                    .addOnConnectionFailedListener(this).addApi(Plus.API)
176
                    .addScope(Plus.SCOPE_PLUS_LOGIN).build();
177
            mGoogleApiClient.connect();
178
        }
179
 
180
        /*mTitle = mDrawerTitle = getTitle();*/
181
        // load slide menu items
182
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
183
 
184
        // nav drawer icons from resources
185
        navMenuIcons = getResources()
186
                .obtainTypedArray(R.array.nav_drawer_icons);
187
 
188
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
189
        mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
190
        mDrawerLayout.setBackgroundColor(getResources().getColor(R.color.White));
191
        navDrawerItems = new ArrayList<NavDrawerItem>();
192
 
193
 
194
 
195
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
196
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, 0)));
197
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
198
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
199
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
200
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
201
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
202
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1)));
203
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[8], navMenuIcons.getResourceId(8, -1)));
204
       /* navDrawerItems.add(new NavDrawerItem(navMenuTitles[9], navMenuIcons.getResourceId(8, -1)));*/
205
        navMenuIcons.recycle();
206
 
207
        mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
208
 
209
        // setting the nav drawer list adapter
210
        adapter = new NavDrawerListAdapter(getApplicationContext(),navDrawerItems);
211
        mDrawerList.setAdapter(adapter);
212
 
213
        // enabling action bar app icon and behaving it as toggle button
214
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
215
        getSupportActionBar().setHomeButtonEnabled(true);
216
 
217
        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
218
                R.drawable.menubutton, //nav menu toggle icon
219
                R.string.hello_world, // nav drawer open - description for accessibility
220
                R.string.hello_world// nav drawer close - description for accessibility
221
        ) {
222
            public void onDrawerClosed(View view) {
223
                if(titleVisible!=0) {
224
                    if(titleVisible==1)
225
                        getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
226
 
227
                    if(titleVisible==2)
228
                        getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
229
 
230
                    if(titleVisible==3)
231
                        getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
232
 
233
                    if(titleVisible==4)
234
                        getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
235
 
236
                    if(titleVisible==5)
237
                        getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
238
 
239
                    if(titleVisible==6)
240
                        getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
241
 
242
 
243
                }
244
                else{
245
                    if (getTitle().equals("Deals")) {
246
                        getSupportActionBar().setCustomView(R.layout.actionbardeals);
247
                    }
248
                    if (getTitle().equals("Saholic") || getTitle().equals("Flipkart") || getTitle().equals("Snapdeal") || getTitle().equals("Amazon")) {
249
                        getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
250
                    }
251
                    if (getTitle().equals("FAQ")) {
252
                        getSupportActionBar().setCustomView(R.layout.actionbaraboutus);
253
                    }
254
                    if (getTitle().equals("Contact Us")) {
255
                        getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
256
                    }
257
                    if (getTitle().equals("Search")) {
258
                        getSupportActionBar().setCustomView(R.layout.actionbarsearch);
259
                    }
260
                    if (getTitle().equals("How It Works")) {
261
                        getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
262
                    }
263
                }
264
                shouldGoInvisible = false;
265
                invalidateOptionsMenu();
266
            }
267
 
268
            public void onDrawerOpened(View drawerView) {
269
                getSupportActionBar().setCustomView(R.layout.actionbarprofittill);
270
                shouldGoInvisible = true;
271
                invalidateOptionsMenu();
272
            }
273
            @Override
274
            public void onDrawerSlide(View drawerView, float slideOffset) {
275
 
276
 
277
            }
278
 
279
        };
280
        mDrawerLayout.setDrawerListener(mDrawerToggle);
281
 
282
        if (savedInstanceState == null) {
283
 
284
                if (flag == 7) {
285
                    getSupportActionBar().setCustomView(R.layout.actionbarhowitworks);
286
                    displayView(flag);
287
                } else if (flag == 6) {
288
                    getSupportActionBar().setCustomView(R.layout.actionbarcontactus);
289
                    displayView(flag);
290
                } else if (flag == 15) {
291
                    getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
292
                    MyProfile myProfile = new MyProfile();
293
                    this.getFragmentManager().beginTransaction()
294
                            .replace(R.id.frame_container, myProfile, "Mike")
295
                            .addToBackStack(null)
296
                            .commit();
297
                }else if (flag == 20) {
298
                    getSupportActionBar().setCustomView(R.layout.actionbardeals);
299
                    JSONObject propsNotification = new JSONObject();
300
                    try {
301
                        mixpanel.identify(userData.getString("id",null));
302
                        propsNotification.put("Screen", "Notification Url opened");
303
                        mixpanel.track("Notification Opened", propsNotification);
304
                    } catch (JSONException e) {
305
                        e.printStackTrace();
306
                    }
307
                    Bundle args = new Bundle();
308
                    DealsHomeFragment notifcationFragment = new DealsHomeFragment();
309
                    args.putString("key", notificationURL);
310
                    this.getFragmentManager().beginTransaction()
311
                            .replace(R.id.frame_container, notifcationFragment, "Mike")
312
                            .addToBackStack(null)
313
                            .commit();
314
                    notifcationFragment.setArguments(args);
315
                }else if (flag == 31) {
316
                    getSupportActionBar().setCustomView(R.layout.actionbardeals);
317
                    Bundle args = new Bundle();
318
                    DealsHomeFragment redirectUrlFragment = new DealsHomeFragment();
319
                    args.putString("key", redirectUrl);
320
                    this.getFragmentManager().beginTransaction()
321
                            .replace(R.id.frame_container, redirectUrlFragment, "Mike")
322
                            .addToBackStack(null)
323
                            .commit();
324
                    redirectUrlFragment.setArguments(args);
325
                }else {
326
                    getSupportActionBar().setCustomView(R.layout.actionbardeals);
327
                    displayView(0);
328
                }
329
 
330
        }
331
    }
332
 
333
    /**
334
     * Slide menu item click listener
335
     * */
336
    private class SlideMenuClickListener implements
337
            ListView.OnItemClickListener {
338
        @Override
339
        public void onItemClick(AdapterView<?> parent, View view, int position,
340
                                long id) {
341
            // display view for selected nav drawer item
342
            displayView(position);
343
        }
344
    }
345
 
346
    @Override
347
    public boolean onCreateOptionsMenu(Menu menu) {
348
        mainMenu=menu;
349
        super.onCreateOptionsMenu(menu);
350
        getMenuInflater().inflate(R.menu.menu_main, menu);
351
 
352
        return true;
353
    }
354
 
355
    @Override
356
    public boolean onOptionsItemSelected(MenuItem item) {
357
        Fragment menuFragment= null;
358
        JSONObject props = new JSONObject();
359
        Bundle args = new Bundle();
360
        String id = userData.getString("id",null);
361
        if (mDrawerToggle.onOptionsItemSelected(item)) {
362
            return true;
363
        }
364
        getSupportActionBar().setDisplayShowCustomEnabled(true);
365
        switch (item.getItemId()) {
366
            case R.id.action_settings:
367
                android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
368
                android.webkit.CookieSyncManager.createInstance(this);
369
                cookieManager.removeAllCookie();
370
                try {
371
                    mixpanel.identify(userData.getString("id",null));
372
                    props.put("Screen", "Signing Out");
373
                    mixpanel.track("Signing Out", props);
374
                } catch (JSONException e) {
375
                    e.printStackTrace();
376
                }
377
                try{
378
                    if (mGoogleApiClient.isConnected()) {
379
                        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
380
                        mGoogleApiClient.disconnect();
381
                        mGoogleApiClient.connect();
382
                        userDataEditor.clear().commit();
383
                        inviteDataEditor.clear().commit();
384
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
385
                    }
386
                    else if(Session.getActiveSession() != null){
387
                        Session.getActiveSession().closeAndClearTokenInformation();
388
                        Session.setActiveSession(null);
389
                        userDataEditor.clear().commit();
390
                        inviteDataEditor.clear().commit();
391
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
392
                    }
393
                    else{
394
                        if(!mGoogleApiClient.isConnected() || Session.getActiveSession()==null){
395
                            userDataEditor.clear().commit();
396
                            inviteDataEditor.clear().commit();
397
                            startActivity(new Intent(MainActivity.this, LoginActivity.class));
398
                        }
399
 
400
                        /*Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
401
                        mGoogleApiClient.disconnect();
402
                        mGoogleApiClient.connect();*/
403
                        //userDataEditor.clear().commit();
404
                    }
405
                /*if(type1.equalsIgnoreCase("facebook")) {
406
                    Log.d("fblogout","logout");
407
                    if (Session.getActiveSession() != null) {
408
                        Session.getActiveSession().closeAndClearTokenInformation();
409
 
410
                    }
411
                    Session.setActiveSession(null);
412
                    userDataEditor.remove("id");
413
                    userDataEditor.remove("type");
414
                    userDataEditor.remove("email");
415
                    userDataEditor.commit();
416
                    startActivity(new Intent(MainActivity.this, LoginActivity.class));
417
                }
418
                else{
419
                    signOutFromGplus();
420
                    if(glogout==true){
421
                        startActivity(new Intent(MainActivity.this, LoginActivity.class));
422
                    }
423
                }*/
424
                }catch (Exception e){
425
                    Log.d("Exception ","Exception");
426
                   /* if (Session.getActiveSession() != null) {
427
                        Session.getActiveSession().closeAndClearTokenInformation();
428
                    }else{
429
                        signOutFromGplus();
430
                    }*/
431
                    userDataEditor.clear().commit();
432
                    startActivity(new Intent(MainActivity.this, LoginActivity.class));
433
                }
434
                return true;
435
 
436
            case R.id.my_wallet:
437
                titleVisible=3;
438
                getSupportActionBar().setCustomView(R.layout.actionbarmywallet);
439
                try {
440
                    mixpanel.identify(userData.getString("id",null));
441
                    props.put("Screen", "My Wallet");
442
                    mixpanel.track("My Wallet", props);
443
                } catch (JSONException e) {
444
                    e.printStackTrace();
445
                }
446
                MyWallet myWallet= new MyWallet();
447
                this.getFragmentManager().beginTransaction()
448
                        .replace(R.id.frame_container, myWallet,"Mike")
449
                        .addToBackStack(null)
450
                        .commit();
451
                return true;
452
            case R.id.pending_cashback:
453
                titleVisible=5;
454
                getSupportActionBar().setCustomView(R.layout.actionbarpendingcashback);
455
                try {
456
                    mixpanel.identify(userData.getString("id",null));
457
                    props.put("Screen", "Cashback Status");
458
                    mixpanel.track("Cashback Status", props);
459
                } catch (JSONException e) {
460
                    e.printStackTrace();
461
                }
462
                PendingCashback pendingCashback= new PendingCashback();
463
                this.getFragmentManager().beginTransaction()
464
                        .replace(R.id.frame_container, pendingCashback,"Mike")
465
                        .addToBackStack(null)
466
                        .commit();
467
                return true;
468
            case R.id.my_favorites:
469
                titleVisible=1;
470
                getSupportActionBar().setCustomView(R.layout.actionbarmyfavorites);
471
                try {
472
                    mixpanel.identify(userData.getString("id",null));
473
                    props.put("Screen", "My Favorites");
474
                    mixpanel.track("My Favorites", props);
475
                } catch (JSONException e) {
476
                    e.printStackTrace();
477
                }
478
                args.putString("key", apiData.getString("myfavourite.url",null)+"?user_id="+id);
479
                DealsHomeFragment favoritesFragment= new DealsHomeFragment();
480
                this.getFragmentManager().beginTransaction()
481
                        .replace(R.id.frame_container, favoritesFragment,"Mike")
482
                        .addToBackStack(null)
483
                        .commit();
484
                favoritesFragment.setArguments(args);
485
                return true;
486
            case R.id.my_profile:
487
                titleVisible=6;
488
                getSupportActionBar().setCustomView(R.layout.actionbarmyprofile);
489
                try {
490
                    mixpanel.identify(userData.getString("id",null));
491
                    props.put("Screen", "My Profile");
492
                    mixpanel.track("My profile", props);
493
                } catch (JSONException e) {
494
                    e.printStackTrace();
495
                }
496
                MyProfile myProfile= new MyProfile();
497
                this.getFragmentManager().beginTransaction()
498
                        .replace(R.id.frame_container, myProfile,"Mike")
499
                        .addToBackStack(null)
500
                        .commit();
501
                return true;
502
            case R.id.my_order:
503
                titleVisible=4;
504
                getSupportActionBar().setCustomView(R.layout.actionbarmyorders);
505
                try {
506
                    mixpanel.identify(userData.getString("id",null));
507
                    props.put("Screen", "My Orders");
508
                    mixpanel.track("My Orders", props);
509
                } catch (JSONException e) {
510
                    e.printStackTrace();
511
                }
512
                args.putString("key", apiData.getString("myorders.url",null)+"?user_id="+id);
513
                DealsHomeFragment orderFragment= new DealsHomeFragment();
514
                this.getFragmentManager().beginTransaction()
515
                        .replace(R.id.frame_container, orderFragment,"Mike")
516
                        .addToBackStack(null)
517
                        .commit();
518
                orderFragment.setArguments(args);
519
 
520
                return true;
521
            case R.id.my_preferences:
522
                titleVisible=2;
523
                getSupportActionBar().setCustomView(R.layout.actionbarprefernces);
524
                try {
525
                    mixpanel.identify(userData.getString("id",null));
526
                    props.put("Screen", "My Preferences");
527
                    mixpanel.track("My Preferences", props);
528
                } catch (JSONException e) {
529
                    e.printStackTrace();
530
                }
531
                PreferencesFragment my_preferences = new PreferencesFragment();
532
                this.getFragmentManager().beginTransaction()
533
                        .replace(R.id.frame_container, my_preferences,"Mike")
534
                        .addToBackStack(null)
535
                        .commit();
536
 
537
                return true;
538
           default:
539
                return super.onOptionsItemSelected(item);
540
        }
541
 
542
 
543
    }
544
    public void signOutFromGplus() {
545
 
546
 
547
        if (mGoogleApiClient.isConnected()) {
548
            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
549
            mGoogleApiClient.disconnect();
550
            mGoogleApiClient.connect();
551
            glogout=true;
552
            userDataEditor.remove("id");
553
            userDataEditor.remove("type");
554
            userDataEditor.remove("email");
555
            userDataEditor.commit();
556
        } else {
557
            glogout=false;
558
            }
559
    }
560
 
561
    @Override
562
    public void onConnected(Bundle bundle) {
563
 
564
    }
565
 
566
    @Override
567
    public void onConnectionSuspended(int i) {
568
 
569
    }
570
 
571
    @Override
572
    public void onConnectionFailed(ConnectionResult connectionResult) {
573
 
574
    }
575
 
576
    @Override
577
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
578
        Toast.makeText(getApplicationContext(),"Toast in saved instance" + flag,Toast.LENGTH_SHORT).show();
579
        super.onSaveInstanceState(outState, outPersistentState);
580
    }
581
    @Override
582
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
583
        super.onRestoreInstanceState(savedInstanceState);
584
 Intent i= new Intent(MainActivity.this,MainActivity.class);
585
        i.putExtra("displayView","0");
586
        startActivity(i);
587
    }
588
 
589
    @Override
590
    public boolean onMenuOpened(int featureId, Menu menu)
591
    {
592
        if(featureId == Window.FEATURE_ACTION_BAR && menu != null){
593
            if(menu.getClass().getSimpleName().equals("MenuBuilder")){
594
                try{
595
                    Method m = menu.getClass().getDeclaredMethod(
596
                            "setOptionalIconsVisible", Boolean.TYPE);
597
                    m.setAccessible(true);
598
                    m.invoke(menu, true);
599
 
600
                }
601
                catch(Exception e){
602
                    throw new RuntimeException(e);
603
                }
604
            }
605
        }
606
        return super.onMenuOpened(featureId, menu);
607
    }
608
 
609
    private void displayView(int position) {
610
        titleVisible=0;
611
        Bundle args = new Bundle();
612
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
613
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
614
        String id = userData.getString("id",null);
615
        Fragment fragment = null;
616
        switch (position) {
617
            case 0:
618
                JSONObject props = new JSONObject();
619
                try {
620
                    mixpanel.getPeople().set( "$last_login",new Date());
621
                    mixpanel.identify(userData.getString("id",null));
622
                    props.put("Screen", "Deals Screen");
623
                    mixpanel.track("Deals", props);
624
                } catch (JSONException e) {
625
                    e.printStackTrace();
626
                }
627
 
628
                t.send(new HitBuilders.EventBuilder()
629
                        .setCategory("Menu")
630
                        .setAction("Deals ")
631
                        .setLabel("Deals Clicked")
632
                        .build());
633
                args.putString("key", apiData.getString("mobile.website.url","")+"?user_id="+id);
634
                fragment = new DealsHomeFragment();
635
                fragment.setArguments(args);
636
                break;
637
            case 1:
638
                JSONObject props1 = new JSONObject();
639
                try {
640
                    mixpanel.identify(userData.getString("id",null));
641
                    props1.put("Screen", "Search");
642
                    mixpanel.track("Search", props1);
643
                } catch (JSONException e) {
644
                    e.printStackTrace();
645
                }
646
                t.send(new HitBuilders.EventBuilder()
647
                        .setCategory("Menu")
648
                        .setAction("Search ")
649
                        .setLabel("Search Clicked")
650
                        .build());
651
                args.putString("key", apiData.getString("search.url",null)+"?user_id="+id);
652
                fragment = new DealsHomeFragment();
653
                fragment.setArguments(args);
654
                break;
655
            case 2:
656
                JSONObject propsAmazon = new JSONObject();
657
                try {
658
                    mixpanel.identify(userData.getString("id",null));
659
                    propsAmazon.put("Screen", "Amazon");
660
                    mixpanel.track("Amazon", propsAmazon);
661
                } catch (JSONException e) {
662
                    e.printStackTrace();
663
                }
664
                t.send(new HitBuilders.EventBuilder()
665
                        .setCategory("Menu")
666
                        .setAction("Amazon ")
667
                        .setLabel("Amazon Clicked")
668
                        .build());
669
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+apiData.getString("store.code.amazon",""));
670
                fragment = new DealsHomeFragment();
671
                fragment.setArguments(args);
672
                break;
673
            case 3:
674
                JSONObject propsFlipkart = new JSONObject();
675
                try {
676
                    mixpanel.identify(userData.getString("id",null));
677
                    propsFlipkart.put("Screen", "Flipkart");
678
                    mixpanel.track("Flipkart", propsFlipkart);
679
                } catch (JSONException e) {
680
                    e.printStackTrace();
681
                }
682
                t.send(new HitBuilders.EventBuilder()
683
                        .setCategory("Menu")
684
                        .setAction("Flipkart ")
685
                        .setLabel("Flipkart Clicked")
686
                        .build());
687
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+apiData.getString("store.code.flipkart",""));
688
                fragment = new DealsHomeFragment();
689
                fragment.setArguments(args);
690
                break;
691
            case 4:
692
                JSONObject propsSaholic = new JSONObject();
693
                try {
694
                    mixpanel.identify(userData.getString("id",null));
695
                    propsSaholic.put("Screen", "Saholic");
696
                    mixpanel.track("Saholic", propsSaholic);
697
                } catch (JSONException e) {
698
                    e.printStackTrace();
699
                }
700
                t.send(new HitBuilders.EventBuilder()
701
                        .setCategory("Menu")
702
                        .setAction("Saholic ")
703
                        .setLabel("Saholic Clicked")
704
                        .build());
705
                args.putString("key", apiData.getString("saholic.autologin.url","")+"?user_id="+userData.getString("id",""));
706
                fragment = new DealsHomeFragment();
707
                fragment.setArguments(args);
708
                break;
709
            case 5:
710
                JSONObject propsSnapdeal = new JSONObject();
711
                try {
712
                    mixpanel.identify(userData.getString("id",null));
713
                    propsSnapdeal.put("Screen", "Snapdeal");
714
                    mixpanel.track("Snapdeal", propsSnapdeal);
715
                } catch (JSONException e) {
716
                    e.printStackTrace();
717
                }
718
                t.send(new HitBuilders.EventBuilder()
719
                        .setCategory("Menu")
720
                        .setAction("Snapdeal ")
721
                        .setLabel("Snapdeal Clicked")
722
                        .build());
723
                args.putString("key", apiData.getString("affiliate.url.redirect","")+"?user_id="+userData.getString("id","")+"&store_id="+apiData.getString("store.code.snapdeal",""));
724
                fragment = new DealsHomeFragment();
725
                fragment.setArguments(args);
726
                break;
727
            case 6:
728
                JSONObject propsContactUs = new JSONObject();
729
                try {
730
                    mixpanel.identify(userData.getString("id",null));
731
                    propsContactUs.put("Screen", "Contact Us");
732
                    mixpanel.track("Contact Us", propsContactUs);
733
                } catch (JSONException e) {
734
                    e.printStackTrace();
735
                }
736
                t.send(new HitBuilders.EventBuilder()
737
                        .setCategory("Menu")
738
                        .setAction("Contact Us ")
739
                        .setLabel("Contact us Clicked")
740
                        .build());
741
                fragment = new ContactUsFragment();
742
                break;
743
            case 7:
744
                JSONObject propsHowItWorks = new JSONObject();
745
                try {
746
                    mixpanel.identify(userData.getString("id",null));
747
                    propsHowItWorks.put("Screen", "How it Works");
748
                    mixpanel.track("How it Works", propsHowItWorks);
749
                } catch (JSONException e) {
750
                    e.printStackTrace();
751
                }
752
                t.send(new HitBuilders.EventBuilder()
753
                        .setCategory("Menu")
754
                        .setAction("Tutorials ")
755
                        .setLabel("Tutorials Clicked")
756
                        .build());
757
                fragment = new HowItWorksFragment();
758
                break;
759
            case 8:
760
                JSONObject propsAboutUs = new JSONObject();
761
                try {
762
                    mixpanel.identify(userData.getString("id",null));
763
                    propsAboutUs.put("Screen", "About Us");
764
                    mixpanel.track("About Us", propsAboutUs);
765
                } catch (JSONException e) {
766
                    e.printStackTrace();
767
                }
768
                t.send(new HitBuilders.EventBuilder()
769
                        .setCategory("Menu")
770
                        .setAction("About Us ")
771
                        .setLabel("About us Clicked")
772
                        .build());
773
                fragment = new AboutUsFragment();
774
                break;
775
            default:
776
                break;
777
        }
778
        if (fragment != null) {
779
            FragmentManager fragmentManager = getFragmentManager();
780
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
781
            mDrawerList.setItemChecked(position, true);
782
            mDrawerList.setSelection(position);
783
            setTitle(navMenuTitles[position]);
784
            mDrawerLayout.closeDrawer(mDrawerList);
785
        } else {
786
            Log.e("MainActivity", "Error in creating fragment");
787
        }
788
    }
789
 
790
 
791
 
792
    @Override
793
    protected void onPostCreate(Bundle savedInstanceState) {
794
        super.onPostCreate(savedInstanceState);
795
        mDrawerToggle.syncState();
796
    }
797
 
798
    @Override
799
    public boolean onPrepareOptionsMenu(Menu menu) {
800
        boolean drawerOpen = shouldGoInvisible;
801
        hideMenuItems(menu, !drawerOpen);
802
        return super.onPrepareOptionsMenu(menu);
803
    }
804
    private void hideMenuItems(Menu menu, boolean visible)
805
    {
806
       for(int i = 0; i < menu.size(); i++){
807
        menu.getItem(i).setVisible(visible);
808
       }
809
    }
810
    @Override
811
    public void onConfigurationChanged(Configuration newConfig) {
812
        super.onConfigurationChanged(newConfig);
813
        mDrawerToggle.onConfigurationChanged(newConfig);
814
    }
815
    @Override
816
    public boolean onKeyUp(int keycode, KeyEvent e) {
817
        switch(keycode) {
818
            case KeyEvent.KEYCODE_MENU:
819
 
820
                if (mainMenu !=null) {
821
                    mainMenu.performIdentifierAction(R.id.overflowMenu,0);
822
                }
823
        }
824
 
825
        return super.onKeyUp(keycode, e);
826
    }
827
    @Override
828
    public boolean onKeyDown(int keyCode, KeyEvent event) {
829
 
830
        switch(keyCode) {
831
            case KeyEvent.KEYCODE_MENU:
832
                  if (mainMenu !=null) {
833
                  mainMenu.performIdentifierAction(R.id.overflowMenu,0);
834
                  }
835
        }
836
        return super.onKeyUp(keyCode, event);
837
    }
838
    private Menu mainMenu;
839
    public final boolean isInternetOn() {
840
 
841
        ConnectivityManager connec =
842
                (ConnectivityManager)getSystemService(this.getBaseContext().CONNECTIVITY_SERVICE);
843
 
844
        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
845
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
846
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
847
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {
848
 
849
            Toast.makeText(this, " Connected ", Toast.LENGTH_LONG).show();
850
            return true;
851
 
852
        } else if (
853
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
854
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {
855
 
856
            Toast.makeText(this, " Not Connected ", Toast.LENGTH_LONG).show();
857
            return false;
858
        }
859
        return false;
860
    }
861
    class NotificationOpenedData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {
862
 
863
        @Override
864
        protected void onPreExecute() {
865
            super.onPreExecute();
866
 
867
        }
868
 
869
        @Override
870
        protected String doInBackground(ArrayList<NameValuePair>... arg0) {
871
 
872
            try {
873
                HttpClient httpclient = new DefaultHttpClient();
874
                HttpPost httppost = new HttpPost(apiData.getString("notification.data.url","http://api.profittill.com/pushnotifications/add"));
875
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
876
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
877
                HttpResponse response = httpclient.execute(httppost);
878
                HttpEntity entity = response.getEntity();
879
                int status = response.getStatusLine().getStatusCode();
880
 
881
                if(status == 200){
882
                    Log.d("Notification Opened","Notication opened and main activity page and sent successfully");
883
                    Log.d("ResponseCode GCM ",status+"");
884
                } else {
885
                    Log.d("ResponseCode GCM ",status+"");
886
                }
887
 
888
                nameValuePairsGcm.clear();
889
                Log.e("pass 1", "connection success ");
890
            } catch (Exception e) {
891
                Log.e("Fail 1", e.toString());
892
 
893
            }
894
            return "success";
895
        }
896
 
897
        @Override
898
        protected void onPostExecute(String result) {
899
            super.onPostExecute(result);
900
            Log.d("Notification Opened","Notication opened and main activity page");
901
        }
902
    }
903
}