Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
16279 manas 1
package com.saholic.profittill.Utils;
2
 
3
import android.content.Context;
4
import android.content.pm.PackageInfo;
5
import android.content.pm.PackageManager;
6
import android.net.ConnectivityManager;
7
import android.net.NetworkInfo;
8
import android.os.Build;
9
import android.telephony.TelephonyManager;
10
import android.util.DisplayMetrics;
11
 
12
import com.google.android.gms.common.ConnectionResult;
13
import com.google.android.gms.common.GooglePlayServicesUtil;
14
 
15
import java.util.HashMap;
16
import java.util.Map;
17
 
18
/**
19
 * Created by kshitij on 24/7/15.
20
 */
21
public class AnalyticsUtility {
22
    public static String getImeiNumber(Context context){
23
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
24
        return telephonyManager.getDeviceId();
25
    }
26
    public static String getNetworkOperatorName(Context context){
27
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
28
        return telephonyManager.getNetworkOperatorName();
29
    }
30
    public static String getNetworkOperator(Context context){
31
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
32
        return telephonyManager.getNetworkOperator();
33
    }
34
    public static String checkGooglePlayServices(Context context){
35
        if(ConnectionResult.SUCCESS== GooglePlayServicesUtil.isGooglePlayServicesAvailable(context)){
36
            return "available";
37
        }else{
38
            return "error" + GooglePlayServicesUtil.isGooglePlayServicesAvailable(context);
39
        }
40
    }
41
 
42
    public static String getAppVersionCode(Context c){
43
        String appVersion;
44
        try {
45
            PackageManager manager = c.getPackageManager();
46
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
47
            appVersion=info.versionCode+"";
48
        }catch (PackageManager.NameNotFoundException pm){
49
            appVersion=null;
50
        }
51
        return appVersion;
52
    }
53
 
54
    public static String getAppVersionName(Context c){
55
        String appVersion;
56
        try {
57
            PackageManager manager = c.getPackageManager();
58
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
59
            appVersion=info.versionName+"";
60
        }catch (PackageManager.NameNotFoundException pm){
61
            appVersion=null;
62
        }
63
        return appVersion;
64
    }
65
 
66
    public static boolean checkWifi(Context context){
67
        boolean checkWifi;
68
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
69
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
70
        if (mWifi==null){
71
            checkWifi= Boolean.parseBoolean(null);
72
        }else {
73
            if (mWifi.isConnected()) {
74
                checkWifi = true;
75
            } else {
76
                checkWifi = false;
77
            }
78
        }
79
        return checkWifi;
80
    }
81
 
82
    public static int getOsVersion(){
83
        return android.os.Build.VERSION.SDK_INT;
84
    }
85
public static String getManufacturer(){
86
        return Build.MANUFACTURER;
87
    }
88
 
89
    public static String getBrand(){
90
        return Build.BRAND;
91
    }
92
    public static String getModel(){
93
        return Build.MODEL;
94
    }
95
 
96
 
97
    public static int getHeight(Context c){
98
        DisplayMetrics metrics = c.getResources().getDisplayMetrics();
99
        return metrics.heightPixels;
100
    }
101
 
102
    public static int getwidth(Context c){
103
        DisplayMetrics metrics = c.getResources().getDisplayMetrics();
104
        return metrics.widthPixels;
105
    }
106
 
107
 
108
 
109
    public static String getProperties(Context c){
110
        StringBuilder properties = new StringBuilder();
111
        properties.append("{");
112
        properties.append("'Imei Number':'"+UtilityFunctions.getImeiNumber(c)+"'");
113
        properties.append(",'Version Code':'" + AnalyticsUtility.getAppVersionCode(c)+"'");
114
        properties.append(",'Version Name':'" + AnalyticsUtility.getAppVersionName(c)+"'");
115
        properties.append(",'Os Version':'"+AnalyticsUtility.getOsVersion()+"'");
116
        properties.append(",'Manufacturer':'"+AnalyticsUtility.getManufacturer()+"'");
117
        properties.append(",'Brand':'"+AnalyticsUtility.getBrand()+"'");
118
        properties.append(",'Model':'"+AnalyticsUtility.getModel()+"'");
119
        properties.append(",'WiFi':'" + AnalyticsUtility.checkWifi(c)+"'");
120
        properties.append(",'Google Play Services':'" + AnalyticsUtility.checkGooglePlayServices(c)+"'");
121
        properties.append(",'Operator Name':'" + AnalyticsUtility.getNetworkOperatorName(c)+"'");
122
        properties.append(",'Operator Type':'" + AnalyticsUtility.getNetworkClass(c)+"'");
123
        properties.append(",'Height':'" + AnalyticsUtility.getHeight(c)+"'");
124
        properties.append(",'Width':'" + AnalyticsUtility.getwidth(c)+"'");
125
        properties.append("}");
126
        return properties.toString();
127
    }
128
 
129
    public static String getNetworkClass(Context context) {
130
        TelephonyManager mTelephonyManager = (TelephonyManager)
131
                context.getSystemService(Context.TELEPHONY_SERVICE);
132
        int networkType = mTelephonyManager.getNetworkType();
133
        switch (networkType) {
134
            case TelephonyManager.NETWORK_TYPE_GPRS:
135
            case TelephonyManager.NETWORK_TYPE_EDGE:
136
            case TelephonyManager.NETWORK_TYPE_CDMA:
137
            case TelephonyManager.NETWORK_TYPE_1xRTT:
138
            case TelephonyManager.NETWORK_TYPE_IDEN:
139
                return "2G";
140
            case TelephonyManager.NETWORK_TYPE_UMTS:
141
            case TelephonyManager.NETWORK_TYPE_EVDO_0:
142
            case TelephonyManager.NETWORK_TYPE_EVDO_A:
143
            case TelephonyManager.NETWORK_TYPE_HSDPA:
144
            case TelephonyManager.NETWORK_TYPE_HSUPA:
145
            case TelephonyManager.NETWORK_TYPE_HSPA:
146
            case TelephonyManager.NETWORK_TYPE_EVDO_B:
147
            case TelephonyManager.NETWORK_TYPE_EHRPD:
148
            case TelephonyManager.NETWORK_TYPE_HSPAP:
149
                return "3G";
150
            case TelephonyManager.NETWORK_TYPE_LTE:
151
                return "4G";
152
            default:
153
                return "Unknown";
154
        }
155
    }
156
 
157
 
158
    public static Map<String,String> getAnalyticsRequest(Context c, String user_id,String category,String action,String label){
159
        Map<String,String> analyticsRequest=new HashMap<>();
160
        analyticsRequest.put("user_id", user_id);
161
        analyticsRequest.put("category", category);
162
        analyticsRequest.put("action", action);
163
        analyticsRequest.put("label", label);
164
        analyticsRequest.put("properties", getProperties(c));
165
        return analyticsRequest;
166
    }
167
}