Subversion Repositories SmartDukaan

Rev

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

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