Subversion Repositories SmartDukaan

Rev

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