Subversion Repositories SmartDukaan

Rev

Rev 21168 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21168 rajender 1
package com.saholic.profittill;
2
 
3
import android.app.NotificationManager;
4
import android.app.PendingIntent;
5
import android.content.Context;
6
import android.content.Intent;
7
import android.content.SharedPreferences;
8
import android.graphics.Bitmap;
9
import android.graphics.BitmapFactory;
10
import android.media.RingtoneManager;
11
import android.net.Uri;
12
import android.os.AsyncTask;
21329 rajender 13
import android.os.Build;
21168 rajender 14
import android.os.Bundle;
15
import android.support.v4.app.NotificationCompat;
16
import android.util.Log;
17
 
18
import com.google.android.gms.analytics.HitBuilders;
19
import com.google.android.gms.analytics.Tracker;
20
import com.google.android.gms.common.server.converter.StringToIntConverter;
21
import com.google.firebase.messaging.FirebaseMessagingService;
22
import com.google.firebase.messaging.RemoteMessage;
23
import com.mixpanel.android.mpmetrics.MixpanelAPI;
24
import com.saholic.profittill.Constants.ProfitTillConstants;
25
import com.saholic.profittill.Network.NotificationCount;
26
import com.saholic.profittill.Utils.AnalyticsUtility;
27
import com.saholic.profittill.Utils.UtilityFunctions;
28
import com.saholic.profittill.Volley.Analytics;
29
import com.saholic.profittill.Volley.AnalyticsErrorResponse;
30
import com.saholic.profittill.Volley.AnalyticsJsonResponse;
31
import com.saholic.profittill.main.GoogleAnalyticsTracker;
32
import com.saholic.profittill.main.LoginActivity;
33
import com.saholic.profittill.main.MainActivity;
34
import com.saholic.profittill.main.ReferrerActivity;
35
 
36
import org.apache.http.HttpEntity;
37
import org.apache.http.HttpResponse;
38
import org.apache.http.NameValuePair;
39
import org.apache.http.client.HttpClient;
40
import org.apache.http.client.entity.UrlEncodedFormEntity;
41
import org.apache.http.client.methods.HttpPost;
42
import org.apache.http.impl.client.DefaultHttpClient;
43
import org.apache.http.message.BasicNameValuePair;
44
import org.apache.http.util.EntityUtils;
45
import org.json.JSONArray;
46
import org.json.JSONException;
47
import org.json.JSONObject;
48
 
49
import java.io.InputStream;
50
import java.net.HttpURLConnection;
51
import java.net.URL;
52
import java.util.ArrayList;
53
import java.util.Map;
54
 
55
/**
56
 * Created by rajender on 5/4/17.
57
 */
58
public class MyFirebaseMessagingService extends FirebaseMessagingService {
59
    SharedPreferences userData;
60
    SharedPreferences apiData;
61
    MixpanelAPI mixpanel;
62
    SharedPreferences.Editor userDataEditor;
63
    SharedPreferences.Editor apiSettingsEditor;
64
    ArrayList<NameValuePair> nameValuePairsGcm;
65
    public static int NOTIFICATION_ID = 1;
66
    private NotificationManager mNotificationManager;
67
    NotificationCompat.Builder builder;
68
    SharedPreferences notificationData;
69
    SharedPreferences.Editor notificationDataEditor;
70
    private static final String TAG = "MyFirebaseMsgService";
71
    Intent intent;
72
  Bitmap bitmap;
73
 
74
    @Override
75
    public void onMessageReceived(RemoteMessage remoteMessage) {
76
        userData = this.getSharedPreferences("User_Data", Context.MODE_PRIVATE);
77
        apiData = this.getSharedPreferences("API_Data", Context.MODE_PRIVATE);
78
        userDataEditor = userData.edit();
79
        apiSettingsEditor = apiData.edit();
80
        notificationData = this.getSharedPreferences("Notification_Data", Context.MODE_PRIVATE);
81
        notificationDataEditor = notificationData.edit();
82
        mixpanel = MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);
83
        Map<String, String> data = remoteMessage.getData();
84
        if (data.containsKey("image")) {
85
            String imageUri = data.get("image");
86
            bitmap = getBitmapfromUrl(imageUri);
87
 
88
        }
89
            try {
90
               if(data.get("type").equalsIgnoreCase("update")){
91
                    new CheckNotificationExpiry().execute(data);
92
                }
93
                String campaignUserId = data.get("url").split("user_id=")[1];
94
                if (userData.getString("id", "0").equalsIgnoreCase(campaignUserId)) {
95
                    new Analytics(ProfitTillConstants.ANALYTICS_URL,
96
                            AnalyticsUtility.getAnalyticsRequest(getApplicationContext(), userData.getString("id", ""), "Notification", "Check Expiry", data.get("cid") + ""),
97
                            AnalyticsJsonResponse.getAnalyticsRequestInstance(),
98
                            AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(getApplicationContext());
99
                    new CheckNotificationExpiry().execute(data);
100
                }
101
 
102
 
103
            }
104
            catch (Exception e) {
105
                e.printStackTrace();
106
                Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
107
                        GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
108
                t.send(new HitBuilders.ExceptionBuilder()
109
                        .setDescription("Exception while Checking" + e.getMessage())
110
                        .build());
111
            }
112
 
113
        }
114
 
115
        class CheckNotificationExpiry extends AsyncTask<Map, Integer, String> {
116
            Map extras;
117
 
118
            @Override
119
            protected String doInBackground(Map... params) {
120
                extras = params[0];
121
                try {
122
                    HttpClient httpclient = new DefaultHttpClient();
123
                    String notificationCheckUrl = apiData.getString("notification.check.url", "http://api.profittill.com/notification_campaigns/notificationactive");
124
                    HttpPost httppost = new HttpPost(notificationCheckUrl + "?cid=" + extras.get("cid") + "&imeinumber=" + UtilityFunctions.getImeiNumber(getApplicationContext()));
125
                    httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
126
                    HttpResponse response = httpclient.execute(httppost);
127
                    HttpEntity entity = response.getEntity();
128
                    JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
129
                    int status = response.getStatusLine().getStatusCode();
130
                    return String.valueOf(jObjGmail.getString("success"));
131
                    // return jObjGmail.getString("success");
132
                } catch (Exception e) {
133
                    e.printStackTrace();
134
                    Log.e("Fail 1", e.toString());
135
                    return "true";
136
                }
137
 
138
            }
139
 
140
            @Override
141
            protected void onPostExecute(String result) {
142
                super.onPostExecute(result);
143
                if (result.isEmpty() || result.equals(null) || result.equalsIgnoreCase("true")) {
144
                    if (notificationData.getString("cid", "").equalsIgnoreCase(extras.get("cid").toString().split("_")[0])) {
145
                        Log.d("Campaign Id is same " + notificationData.getString("cid", ""), "Campaign Id is same " + extras.get("cid").toString().split("_")[0]);
146
                    } else {
147
                        notificationDataEditor.putString("cid", extras.get("cid").toString().split("_")[0]);
148
                        notificationDataEditor.commit();
149
                        sendNotification(extras.get("message") + "", extras.get("type") + "", extras.get("title") + "", extras.get("url") + "", extras.get("cid") + "", bitmap);
150
                    }
151
                } else {
152
                    new Analytics(ProfitTillConstants.ANALYTICS_URL,
153
                            AnalyticsUtility.getAnalyticsRequest(getApplicationContext(), userData.getString("id", ""), "Notification", "Notification Expired", extras.get("cid") + ""),
154
                            AnalyticsJsonResponse.getAnalyticsRequestInstance(),
155
                            AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(getApplicationContext());
156
                    nameValuePairsGcm = new ArrayList<>();
157
                    nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id", "")));
158
                    nameValuePairsGcm.add(new BasicNameValuePair("cid", extras.get("cid") + ""));
159
                    nameValuePairsGcm.add(new BasicNameValuePair("timestamp", UtilityFunctions.notificationDate()));
160
                    nameValuePairsGcm.add(new BasicNameValuePair("result", "expired"));
161
                    new NotificationRecievedData().execute(nameValuePairsGcm);
162
                }
163
            }
164
        }
165
 
166
    private void sendNotification(String msg, String type, String title, String url, String cid, Bitmap image) {
167
        JSONObject propsNotificationRecieved = new JSONObject();
168
        Bundle bundle;
169
        try {
170
            mixpanel.identify(userData.getString("id", null));
171
            propsNotificationRecieved.put("Screen", "Notification Reached");
172
            mixpanel.track("Notification Recieved", propsNotificationRecieved
173
            );
174
        } catch (JSONException e) {
175
            e.printStackTrace();
176
        }
177
        if (title.isEmpty()) {
178
            title = "ProfitMandi";
179
        }
180
        Intent resultIntent;
181
        mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
182
        if (userData.getString("id", "").isEmpty()) {
183
            resultIntent = new Intent(this, LoginActivity.class);
184
            resultIntent.setAction("Login");
185
            bundle = new Bundle();
186
            bundle.putString("cid", cid);
187
            resultIntent.putExtras(bundle);
188
        } else if (userData.getString("referralCodeRequired", "false").equalsIgnoreCase("true")) {
189
            resultIntent = new Intent(this, ReferrerActivity.class);
190
            resultIntent.setAction("Login");
191
            bundle = new Bundle();
192
            bundle.putString("cid", cid);
193
            resultIntent.putExtras(bundle);
194
        } else {
195
            if (type.equalsIgnoreCase("Url")) {
196
                resultIntent = new Intent(this, MainActivity.class);
197
                bundle = new Bundle();
198
                bundle.putString("cid", cid);
199
                resultIntent.putExtras(bundle);
200
                resultIntent.setAction("20");
201
 
202
                if (url.isEmpty()) {
203
                    resultIntent.setData(Uri.parse(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", "")));
204
                } else {
205
                    resultIntent.setData(Uri.parse(url));
206
                }
207
 
208
            } else if (type.equalsIgnoreCase("Update")) {
209
                final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
210
                try {
211
                    resultIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
212
                } catch (android.content.ActivityNotFoundException anfe) {
213
                    resultIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName));
214
                }
215
            } else {
216
                if (url.contains("Profile")) {
217
                    resultIntent = new Intent(this, MainActivity.class);
218
                    bundle = new Bundle();
219
                    bundle.putString("cid", cid);
220
                    resultIntent.putExtras(bundle);
221
                    resultIntent.setAction("15");
222
                } else if (url.contains("Tutorial")) {
223
                    resultIntent = new Intent(this, MainActivity.class);
224
                    bundle = new Bundle();
225
                    bundle.putString("cid", cid);
226
                    resultIntent.putExtras(bundle);
227
                    resultIntent.setAction("7");
228
                } else if (url.contains("Contact")) {
229
                    resultIntent = new Intent(this, MainActivity.class);
230
                    bundle = new Bundle();
231
                    bundle.putString("cid", cid);
232
                    resultIntent.putExtras(bundle);
233
                    resultIntent.setAction("6");
234
                } else {
235
                    resultIntent = new Intent(this, MainActivity.class);
236
                    bundle = new Bundle();
237
                    bundle.putString("cid", cid);
238
                    resultIntent.putExtras(bundle);
239
                }
240
            }
241
        }
242
        PendingIntent contentIntent = PendingIntent.getActivity(this, NOTIFICATION_ID, resultIntent, 0);
243
        Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
244
        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.pmlauncher);
245
        if (image==null) {
21329 rajender 246
            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
247
            if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
248
                mBuilder.setSmallIcon(R.drawable.navigation_bar);
249
            } else{
250
                mBuilder.setSmallIcon(R.drawable.pmnotification3);
251
              }
252
                    mBuilder.setContentTitle(title);
253
                    mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msg));
254
                    mBuilder.setContentText(msg);
255
                    mBuilder.setLargeIcon(bm);
256
                    mBuilder.setAutoCancel(true);
257
                    mBuilder.setSound(alarmSound);
21168 rajender 258
            mBuilder.setContentIntent(contentIntent);
259
            mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
260
        } else {
21329 rajender 261
            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
262
            if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
263
                mBuilder.setSmallIcon(R.drawable.navigation_bar);
264
            } else{
265
                mBuilder.setSmallIcon(R.drawable.pmnotification3);
266
            }
267
                    mBuilder.setContentTitle(title);
268
                    mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msg));
269
                    mBuilder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(image));
270
                    mBuilder.setContentText(msg);
271
                    mBuilder.setLargeIcon(bm);
272
                    mBuilder.setAutoCancel(true);
273
                    mBuilder.setSound(alarmSound);
21168 rajender 274
            mBuilder.setContentIntent(contentIntent);
275
            mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
276
        }
277
 
278
        Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
279
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
280
        t.send(new HitBuilders.EventBuilder()
281
                .setCategory("Notification")
282
                .setAction("Building Notification for campaign Id " + cid)
283
                .setLabel("For User Id " + userData.getString("id", "0"))
284
                .build());
285
        new Analytics(ProfitTillConstants.ANALYTICS_URL,
286
                AnalyticsUtility.getAnalyticsRequest(getApplicationContext(), userData.getString("id", ""), "Notification", "Notification Received", cid),
287
                AnalyticsJsonResponse.getAnalyticsRequestInstance(),
288
                AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(getApplicationContext());
289
        ++NOTIFICATION_ID;
290
        nameValuePairsGcm = new ArrayList<>();
291
        nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id", "")));
292
        nameValuePairsGcm.add(new BasicNameValuePair("cid", cid));
293
        nameValuePairsGcm.add(new BasicNameValuePair("timestamp", UtilityFunctions.notificationDate()));
294
        nameValuePairsGcm.add(new BasicNameValuePair("result", "recieved"));
295
        String userId = userData.getString("id", "");
296
        String androidId = UtilityFunctions.androidId(GoogleAnalyticsTracker.getAppContext());
297
        if (!userId.isEmpty() && !androidId.isEmpty()) {
298
            String notificationUrl = apiData.getString("notification.count", "http://45.33.50.227:3001/getNotificationCount") + "?user_id=" + userId + "&android_id=" + androidId;
299
            new NotificationCount().getCount(GoogleAnalyticsTracker.getAppContext(), null, notificationUrl);
300
        }
301
        new NotificationRecievedData().execute(nameValuePairsGcm);
302
    }
303
 
304
    class NotificationRecievedData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {
305
 
306
        @Override
307
        protected void onPreExecute() {
308
            super.onPreExecute();
309
            Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(
310
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
311
            t.send(new HitBuilders.EventBuilder()
312
                    .setCategory("Notification")
313
                    .setAction("Received Notification")
314
                    .setLabel("For User Id " + userData.getString("id", "0"))
315
                    .build());
316
        }
317
 
318
        @Override
319
        protected String doInBackground(ArrayList<NameValuePair>... arg0) {
320
 
321
            try {
322
                HttpClient httpclient = new DefaultHttpClient();
323
                HttpPost httppost = new HttpPost(apiData.getString("notification.data.url", "http://api.profittill.com/pushnotifications/add"));
324
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
325
                httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));
326
                HttpResponse response = httpclient.execute(httppost);
327
                HttpEntity entity = response.getEntity();
328
                int status = response.getStatusLine().getStatusCode();
329
                nameValuePairsGcm.clear();
330
            } catch (Exception e) {
331
            }
332
            return "success";
333
        }
334
 
335
        @Override
336
        protected void onPostExecute(String result) {
337
            super.onPostExecute(result);
338
        }
339
    }
340
 
341
    public void sendNotificationByPolling(JSONArray objects,Context c) {
342
        userData = GoogleAnalyticsTracker.getAppContext().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
343
        apiData = GoogleAnalyticsTracker.getAppContext().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
344
        notificationData = GoogleAnalyticsTracker.getAppContext().getSharedPreferences("Notification_Data", Context.MODE_PRIVATE);
345
        userDataEditor = userData.edit();
346
        apiSettingsEditor = apiData.edit();
347
        notificationDataEditor = notificationData.edit();
348
 
349
        Bundle bundle;
350
 
351
        try {
352
            if (objects.length() != 0) {
353
                JSONObject obj = new JSONObject();
354
                JSONArray jsArray = new JSONArray();
355
                for (int i = 0; i < objects.length(); i++) {
356
                    JSONObject j = objects.getJSONObject(i);
357
                    String msg = j.getString("message");
358
                    String type = j.getString("type");
359
                    String title = j.getString("title");
360
                    String url = j.getString("url");
361
                    String cid = j.getString("cid");
362
                    String image=null;
363
                    if(j.has("image")) {
364
                        image = j.getString("image");
365
                        bitmap=getBitmapfromUrl(image);
366
                    }
367
                    if (notificationData.getString("cid", "").equalsIgnoreCase(cid.split("_")[0])) {
368
                        Log.d("Campaign Id is same " + notificationData.getString("cid", ""), "Campaign Id is same " + cid.split("_")[0]);
369
                    } else {
370
                        notificationDataEditor.putString("cid", cid.split("_")[0]);
371
                        notificationDataEditor.commit();
372
                        if (title.isEmpty()) {
373
                            title = "ProfitMandi";
374
                        }
375
                        Intent resultIntent;
376
                        mNotificationManager = (NotificationManager) GoogleAnalyticsTracker.getAppContext().getSystemService(NOTIFICATION_SERVICE);
377
                        if (userData.getString("id", "").isEmpty()) {
378
                            resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), LoginActivity.class);
379
                            resultIntent.setAction("Login");
380
                            bundle = new Bundle();
381
                            bundle.putString("cid", cid);
382
                            resultIntent.putExtras(bundle);
383
                        } else if (userData.getString("referralCodeRequired", "false").equalsIgnoreCase("true")) {
384
                            resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), ReferrerActivity.class);
385
                            resultIntent.setAction("Login");
386
                            bundle = new Bundle();
387
                            bundle.putString("cid", cid);
388
                            resultIntent.putExtras(bundle);
389
                        }
390
                        else {
391
                            if (type.equalsIgnoreCase("Url")) {
392
                                resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), MainActivity.class);
393
                                bundle = new Bundle();
394
                                bundle.putString("cid", cid);
395
                                resultIntent.putExtras(bundle);
396
                                resultIntent.setAction("20");
397
 
398
                                if (url.isEmpty()) {
399
                                    resultIntent.setData(Uri.parse(apiData.getString("mobile.website.url", "") + "?user_id=" + userData.getString("id", "")));
400
                                } else {
401
                                    resultIntent.setData(Uri.parse(url));
402
                                }
403
 
404
                            } else if (type.equalsIgnoreCase("Update")) {
405
                                final String appPackageName = GoogleAnalyticsTracker.getAppContext().getPackageName();
406
                                try {
407
                                    resultIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
408
                                } catch (android.content.ActivityNotFoundException anfe) {
409
                                    resultIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName));
410
                                }
411
                            } else {
412
                                if (url.contains("Profile")) {
413
                                    resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), MainActivity.class);
414
                                    bundle = new Bundle();
415
                                    bundle.putString("cid", cid);
416
                                    resultIntent.putExtras(bundle);
417
                                    resultIntent.setAction("15");
418
                                } else if (url.contains("Tutorial")) {
419
                                    resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), MainActivity.class);
420
                                    bundle = new Bundle();
421
                                    bundle.putString("cid", cid);
422
                                    resultIntent.putExtras(bundle);
423
                                    resultIntent.setAction("7");
424
                                } else if (url.contains("Contact")) {
425
                                    resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), MainActivity.class);
426
                                    bundle = new Bundle();
427
                                    bundle.putString("cid", cid);
428
                                    resultIntent.putExtras(bundle);
429
                                    resultIntent.setAction("6");
430
                                } else {
431
                                    resultIntent = new Intent(GoogleAnalyticsTracker.getAppContext(), MainActivity.class);
432
                                    bundle = new Bundle();
433
                                    bundle.putString("cid", cid);
434
                                    resultIntent.putExtras(bundle);
435
                                }
436
                            }
437
                        }
438
                        PendingIntent contentIntent = PendingIntent.getActivity(GoogleAnalyticsTracker.getAppContext(), NOTIFICATION_ID, resultIntent, 0);
439
                        Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
440
                        Bitmap bm = BitmapFactory.decodeResource(GoogleAnalyticsTracker.getAppContext().getResources(), R.drawable.pmlauncher);
441
                        if (bitmap==null) {
21329 rajender 442
                            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(c);
443
                            if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
444
                              mBuilder.setSmallIcon(R.drawable.navigation_bar);
445
                            } else{
446
                                mBuilder.setSmallIcon(R.drawable.pmnotification3);
447
                            }
448
                                    mBuilder.setContentTitle(title);
449
                                    mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msg));
450
                                    mBuilder.setContentText(msg);
451
                                    mBuilder.setLargeIcon(bm);
452
                                    mBuilder.setAutoCancel(true);
453
                                    mBuilder.setSound(alarmSound);
454
 
21168 rajender 455
                            mBuilder.setContentIntent(contentIntent);
456
                            mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
457
                        }
458
 
459
                        else {
460
                            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
21329 rajender 461
                                    GoogleAnalyticsTracker.getAppContext());
462
                            if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
463
                                mBuilder.setSmallIcon(R.drawable.navigation_bar);
464
                            } else{
465
                                mBuilder.setSmallIcon(R.drawable.pmnotification3);
466
                            }
467
                                    mBuilder.setContentTitle(title);
468
                                    mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msg));
469
                                    mBuilder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(bitmap));
470
                                    mBuilder.setContentText(msg);
471
                                    mBuilder.setLargeIcon(bm);
472
                                    mBuilder.setAutoCancel(true);
473
                                    mBuilder.setSound(alarmSound);
21168 rajender 474
                            mBuilder.setContentIntent(contentIntent);
475
                            mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
476
                        }
477
                        ++NOTIFICATION_ID;
478
                        JSONObject data = new JSONObject();
479
                        data.put("cid", cid);
480
                        data.put("user_id", userData.getString("id", null));
481
                        data.put("timestamp", UtilityFunctions.notificationDate());
482
                        data.put("result", "recieved");
483
                        jsArray.put(data);
484
                    }
485
                    obj.put("pushdata", jsArray);
486
                    String userId = userData.getString("id", "");
487
                    String androidId = UtilityFunctions.androidId(GoogleAnalyticsTracker.getAppContext());
488
                    if (!userId.isEmpty() && !androidId.isEmpty()) {
489
                        String notificationUrl = apiData.getString("notification.count", "") + "?user_id=" + userId + "&android_id=" + androidId;
490
                        new NotificationCount().getCount(GoogleAnalyticsTracker.getAppContext(), null, notificationUrl);
491
                    }
492
                }
493
                new PollNotificationRecievedData().execute(obj);
494
            }
495
        }
496
        catch (Exception e) {
497
            e.printStackTrace();
498
        }
499
    }
500
 
501
    class PollNotificationRecievedData extends AsyncTask<JSONObject, Integer, String> {
502
 
503
        @Override
504
        protected void onPreExecute() {
505
            super.onPreExecute();
506
        }
507
 
508
        @Override
509
        protected String doInBackground(JSONObject... arg0) {
510
 
511
            try {
512
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
513
                nameValuePairs.add(new BasicNameValuePair("pushdata", arg0[0].toString()));
514
                HttpClient httpclient = new DefaultHttpClient();
515
                HttpPost httppost = new HttpPost(apiData.getString("pollnotification.url.received", "http://45.79.106.95:3001/addPollNotification"));
516
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
517
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
518
                HttpResponse response = httpclient.execute(httppost);
519
                HttpEntity entity = response.getEntity();
520
            }
521
            catch (Exception e) {
522
                e.printStackTrace();
523
            }
524
            return "success";
525
        }
526
 
527
        @Override
528
        protected void onPostExecute(String result) {
529
            super.onPostExecute(result);
530
        }
531
    }
532
 
533
 
534
    public Bitmap getBitmapfromUrl(String imageUrl) {
535
        try {
536
            URL url = new URL(imageUrl);
537
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
538
            connection.setDoInput(true);
539
            connection.connect();
540
            InputStream input = connection.getInputStream();
541
            Bitmap bitmap = BitmapFactory.decodeStream(input);
542
            return bitmap;
543
        }
544
        catch (Exception e) {
545
            // TODO Auto-generated catch block
546
            e.printStackTrace();
547
            return null;
548
 
549
        }
550
    }
551
}