Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
15357 manas 1
package com.saholic.profittill.Utils;
2
 
3
import android.content.Context;
4
import android.content.SharedPreferences;
5
import android.content.pm.PackageInfo;
6
import android.content.pm.PackageManager;
7
import android.net.ConnectivityManager;
8
import android.net.NetworkInfo;
18082 manas 9
import android.net.Uri;
15357 manas 10
import android.os.Build;
11
import android.telephony.TelephonyManager;
12
import android.util.Base64;
13
import android.util.Log;
14
import android.webkit.CookieManager;
15
import android.webkit.CookieSyncManager;
16
 
17
import com.google.android.gms.analytics.HitBuilders;
18
import com.google.android.gms.analytics.Tracker;
16080 manas 19
import com.saholic.profittill.Constants.ProfitTillConstants;
15357 manas 20
import com.saholic.profittill.main.GoogleAnalyticsTracker;
21
 
22
import org.apache.http.NameValuePair;
23
import org.apache.http.message.BasicNameValuePair;
24
 
25
import java.io.ByteArrayOutputStream;
26
import java.io.IOException;
27
import java.io.OutputStream;
17063 manas 28
import java.net.URLDecoder;
15357 manas 29
import java.text.SimpleDateFormat;
30
import java.util.ArrayList;
31
import java.util.Date;
16080 manas 32
import java.util.HashMap;
33
import java.util.Map;
34
import java.util.Set;
17063 manas 35
import java.util.StringTokenizer;
15357 manas 36
import java.util.zip.DeflaterOutputStream;
37
 
38
/**
39
 * Created by kshitij on 23/4/15.
40
 */
41
public class UtilityFunctions {
42
    SharedPreferences apiData, userData,apkData;
43
    SharedPreferences.Editor apiEditor,userEditor,apkDataEditor;
44
    public static String compress(String html){
45
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
46
        try {
47
            OutputStream out = new DeflaterOutputStream(baos);
48
            out.write(html.getBytes("UTF-8"));
49
            out.close();
50
        } catch (IOException e) {
51
            throw new AssertionError(e);
52
        }
53
        Log.d("Returning String ", Base64.encodeToString(baos.toByteArray(), Base64.NO_WRAP) + "");
54
        return Base64.encodeToString(baos.toByteArray(),Base64.NO_WRAP);
55
    }
56
 
57
    public ArrayList<NameValuePair> getDeviceInformation(Context c){
58
        userData = c.getApplicationContext().getSharedPreferences("User_Data", c.getApplicationContext().MODE_PRIVATE);
59
        apkData = c.getApplicationContext().getSharedPreferences("APK_Data", c.getApplicationContext().MODE_PRIVATE);
60
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
61
        apkDataEditor = apkData.edit();
62
        userEditor = userData.edit();
63
        apiEditor = apiData.edit();
64
        ArrayList<NameValuePair> deviceDataList=null;
65
        try {
66
            PackageManager manager = c.getPackageManager();
67
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
68
            TelephonyManager telephonyManager = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
69
            deviceDataList = new ArrayList<>();
70
            deviceDataList.add(new BasicNameValuePair("user_id", userData.getString("id", "")));
71
            deviceDataList.add(new BasicNameValuePair("versioncode", info.versionCode + ""));
72
            deviceDataList.add(new BasicNameValuePair("versionname", info.versionName + ""));
73
            deviceDataList.add(new BasicNameValuePair("osversion", android.os.Build.VERSION.SDK_INT + ""));
74
            deviceDataList.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));
75
            deviceDataList.add(new BasicNameValuePair("manufacturer", Build.MANUFACTURER));
76
            deviceDataList.add(new BasicNameValuePair("model", Build.MODEL));
77
            deviceDataList.add(new BasicNameValuePair("brand", Build.BRAND));
19653 manas 78
            deviceDataList.add(new BasicNameValuePair("androidid",androidId(c)));
15357 manas 79
            apkDataEditor.putString("versionCode", info.versionCode + "");
80
            apkDataEditor.putString("versionName", info.versionName);
81
            apkDataEditor.putString("osVersion", android.os.Build.VERSION.SDK_INT + "");
82
            apkDataEditor.putString("imeiNumber", telephonyManager.getDeviceId());
83
        }catch (Exception e){
84
            e.printStackTrace();
85
        }
86
        return deviceDataList;
87
    }
88
 
89
   /* public static String clearCookiesNew(String domain,Context c) {
90
        CookieSyncManager.createInstance(c);
91
        CookieManager cookieManager = CookieManager.getInstance();
92
        String cookiestring = cookieManager.getCookie(domain);
93
        String[] cookies =  cookiestring.split(";");
94
        Log.d("Cookie is new  ","Cookie is new " + cookies);
95
        for (int i=0; i<cookies.length; i++) {
96
            if(cookies[i].contains("CakeCookie[debuguser]")){
97
                return "true";
98
            }
99
        }
100
        return "false";
101
    }*/
102
 
103
    public static String clearCookiesNew(String domain,Context c) {
104
        try {
105
            CookieSyncManager.createInstance(c.getApplicationContext());
106
            CookieManager cookieManager = CookieManager.getInstance();
107
            String cookiestring = cookieManager.getCookie(domain);
108
            String[] cookies = cookiestring.split(";");
109
            for (int i = 0; i < cookies.length; i++) {
110
                if (cookies[i].contains("CakeCookie[debuguser]")) {
111
                    return "true";
112
                }
113
            }
114
            return "false";
115
        } catch (Exception e) {
116
            e.printStackTrace();
117
            Tracker t = ((GoogleAnalyticsTracker) c.getApplicationContext()).getTracker(
118
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
119
            t.send(new HitBuilders.ExceptionBuilder().setDescription("Cookie set Fail").build());
120
            return "false";
121
        }
122
    }
123
 
124
    public static boolean checkWifi(Context context){
125
        boolean checkWifi;
126
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
127
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
128
        if (mWifi==null){
129
            checkWifi= Boolean.parseBoolean(null);
130
        }else {
131
            if (mWifi.isConnected()) {
132
                checkWifi = true;
133
            } else {
134
                checkWifi = false;
135
            }
136
        }
137
        return checkWifi;
138
    }
139
 
140
    public static String getImeiNumber(Context context){
141
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
142
        return telephonyManager.getDeviceId();
143
    }
144
 
145
    public static String getAppVersion(Context c){
146
        String appVersion;
147
        try {
148
            PackageManager manager = c.getPackageManager();
149
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
150
            appVersion=info.versionCode+"";
151
        }catch (PackageManager.NameNotFoundException pm){
152
            appVersion=null;
153
        }
154
        return appVersion;
155
    }
156
 
157
    public static String notificationDate(){
158
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
159
        return sdf.format(new Date());
160
    }
16080 manas 161
 
162
    public static Map<String,String> generateStoreMap(String toConvertString){
163
        String[] keyValuePairs = toConvertString.split(",");
164
        Map<String,String> map = new HashMap<>();
165
 
166
        for(String pair : keyValuePairs)
167
        {
168
            String[] entry = pair.split("=");
169
            map.put(entry[0].trim(), entry[1].trim());
170
        }
171
        return map;
172
    }
173
 
174
    public static String getNewStoreId(Map storeMap,String orderUrl){
175
        Set<String> keys = storeMap.keySet();
176
        for(String i: keys)
177
        {
178
            if(orderUrl.contains(i)){
179
                return storeMap.get(i).toString();
180
            }
181
        }
182
        return null;
183
    }
184
 
185
    public String getEmailUrlFromMap(Context c,String url,String defaultUrl){
186
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
187
        apiEditor = apiData.edit();
188
        Map<String,String> profitmanidUrls=new HashMap<>();
189
        profitmanidUrls.put("profitmandi.com/home",apiData.getString("mobile.website.url", "http://" + ProfitTillConstants.DOMAIN+"/deals"));
190
        profitmanidUrls.put("profitmandi.com/search",apiData.getString("search.url", "http://" + ProfitTillConstants.DOMAIN+"/search"));
191
        profitmanidUrls.put("profitmandi.com/orders",apiData.getString("myorders.url", "http://" + ProfitTillConstants.DOMAIN+"/orders/mine"));
192
        profitmanidUrls.put("profitmandi.com/preferences",apiData.getString("preferences.url", "http://" + ProfitTillConstants.DOMAIN+"/preferences/mine"));
193
        profitmanidUrls.put("profitmandi.com/product","http://"+ProfitTillConstants.DOMAIN+"/store_products/view");
194
        Set<String> keys = profitmanidUrls.keySet();
195
        for(String i: keys){
196
            if(url.contains(i)){
197
                if(url.contains("product")){
198
                    return profitmanidUrls.get(i).toString() + url.split("product")[1];
199
                }else{
200
                    return profitmanidUrls.get(i).toString();
201
                }
202
            }
203
        }
204
        return defaultUrl;
205
    }
17063 manas 206
 
207
    public static Map<String,String> getReferralRequest(Context c,String referrerObject){
208
        String decodedUrl = URLDecoder.decode(referrerObject);
209
        StringTokenizer st = new StringTokenizer(decodedUrl, "&");
210
        Map<String,String> analyticsRequest=new HashMap<>();
211
        while (st.hasMoreTokens()) {
212
            String token = st.nextToken();
213
            String[] sourceValue = token.split("=");
214
            analyticsRequest.put(sourceValue[0], sourceValue[1]);
215
        }
216
        analyticsRequest.put("imeinumber",UtilityFunctions.getImeiNumber(c));
217
        return analyticsRequest;
218
    }
18082 manas 219
 
220
    public static String campaignUserId(Uri campaignUri){
221
 
222
        DESEncrypter desEncrypter = new DESEncrypter(ProfitTillConstants.AUTH_PASSWORD);
223
        String urlOpen = desEncrypter.decrypt(campaignUri.getQueryParameter("key"));
224
        String campaignUserId=urlOpen.split("user_id=")[1];
225
        return campaignUserId;
226
    }
19653 manas 227
 
228
    public static String androidId(Context c) {
229
        return "" + android.provider.Settings.Secure.getString(c.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
230
    }
19946 manas 231
 
232
    public static int getVersionCode(){
233
        try {
234
            Context c = GoogleAnalyticsTracker.getAppContext();
235
            PackageManager manager = c.getPackageManager();
236
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
237
            return info.versionCode;
238
        }catch (Exception e){
239
            return 31;
240
        }
241
    }
15357 manas 242
}