Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
21480 rajender 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;
9
import android.net.Uri;
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;
19
import com.saholic.profittill.Constants.ProfitTillConstants;
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;
28
import java.net.URLDecoder;
29
import java.text.SimpleDateFormat;
30
import java.util.ArrayList;
31
import java.util.Date;
32
import java.util.HashMap;
33
import java.util.Map;
34
import java.util.Set;
35
import java.util.StringTokenizer;
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
    public  static String addParamsToUrl(String urlString, Map<String, String> paramsMap){
57
       // String newUrlString = "";
58
        Uri.Builder builder = Uri.parse(urlString).buildUpon();
59
        for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
60
            builder.appendQueryParameter(entry.getKey(), entry.getValue());
61
        }
62
        return builder.toString();
63
 
64
    }
65
 
66
    public ArrayList<NameValuePair> getDeviceInformation(Context c){
67
        userData = c.getApplicationContext().getSharedPreferences("User_Data", c.getApplicationContext().MODE_PRIVATE);
68
        apkData = c.getApplicationContext().getSharedPreferences("APK_Data", c.getApplicationContext().MODE_PRIVATE);
69
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
70
        apkDataEditor = apkData.edit();
71
        userEditor = userData.edit();
72
        apiEditor = apiData.edit();
73
        ArrayList<NameValuePair> deviceDataList=null;
74
        try {
75
            PackageManager manager = c.getPackageManager();
76
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
22836 rajender 77
            TelephonyManager telephonyManager = (TelephonyManager) c.getSystemService(c.TELEPHONY_SERVICE);
21480 rajender 78
            deviceDataList = new ArrayList<>();
79
            deviceDataList.add(new BasicNameValuePair("user_id", userData.getString("id", "")));
80
            deviceDataList.add(new BasicNameValuePair("versioncode", info.versionCode + ""));
81
            deviceDataList.add(new BasicNameValuePair("versionname", info.versionName + ""));
82
            deviceDataList.add(new BasicNameValuePair("osversion", android.os.Build.VERSION.SDK_INT + ""));
83
            deviceDataList.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));
84
            deviceDataList.add(new BasicNameValuePair("manufacturer", Build.MANUFACTURER));
85
            deviceDataList.add(new BasicNameValuePair("model", Build.MODEL));
86
            deviceDataList.add(new BasicNameValuePair("brand", Build.BRAND));
87
            deviceDataList.add(new BasicNameValuePair("androidid",androidId(c)));
88
            apkDataEditor.putString("versionCode", info.versionCode + "");
89
            apkDataEditor.putString("versionName", info.versionName);
90
            apkDataEditor.putString("osVersion", android.os.Build.VERSION.SDK_INT + "");
91
            apkDataEditor.putString("imeiNumber", telephonyManager.getDeviceId());
22836 rajender 92
            apkDataEditor.commit();
93
        }
94
        catch (Exception e){
21480 rajender 95
            e.printStackTrace();
96
        }
97
        return deviceDataList;
98
    }
99
 
100
   /* public static String clearCookiesNew(String domain,Context c) {
101
        CookieSyncManager.createInstance(c);
102
        CookieManager cookieManager = CookieManager.getInstance();
103
        String cookiestring = cookieManager.getCookie(domain);
104
        String[] cookies =  cookiestring.split(";");
105
        Log.d("Cookie is new  ","Cookie is new " + cookies);
106
        for (int i=0; i<cookies.length; i++) {
107
            if(cookies[i].contains("CakeCookie[debuguser]")){
108
                return "true";
109
            }
110
        }
111
        return "false";
112
    }*/
113
 
114
    public static String clearCookiesNew(String domain,Context c) {
115
        try {
116
            CookieSyncManager.createInstance(c.getApplicationContext());
117
            CookieManager cookieManager = CookieManager.getInstance();
118
            String cookiestring = cookieManager.getCookie(domain);
119
            String[] cookies = cookiestring.split(";");
120
            for (int i = 0; i < cookies.length; i++) {
121
                if (cookies[i].contains("CakeCookie[debuguser]")) {
122
                    return "true";
123
                }
124
            }
125
            return "false";
126
        } catch (Exception e) {
127
            e.printStackTrace();
128
            Tracker t = ((GoogleAnalyticsTracker) c.getApplicationContext()).getTracker(
129
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
130
            t.send(new HitBuilders.ExceptionBuilder().setDescription("Cookie set Fail").build());
131
            return "false";
132
        }
133
    }
134
 
135
    public static boolean checkWifi(Context context){
136
        boolean checkWifi;
137
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
138
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
139
        if (mWifi==null){
140
            checkWifi= Boolean.parseBoolean(null);
141
        }else {
142
            checkWifi = mWifi.isConnected();
143
        }
144
        return checkWifi;
145
    }
146
 
147
    public static String getImeiNumber(Context context){
148
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
149
        return telephonyManager.getDeviceId();
150
    }
151
 
152
    public static String getAppVersion(Context c){
153
        String appVersion;
154
        try {
155
            PackageManager manager = c.getPackageManager();
156
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
157
            appVersion=info.versionCode+"";
158
        }catch (PackageManager.NameNotFoundException pm){
159
            appVersion=null;
160
        }
161
        return appVersion;
162
    }
163
 
164
    public static String notificationDate(){
165
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
166
        return sdf.format(new Date());
167
    }
168
 
169
    public static Map<String,String> generateStoreMap(String toConvertString){
170
        String[] keyValuePairs = toConvertString.split(",");
171
        Map<String,String> map = new HashMap<>();
172
 
173
        for(String pair : keyValuePairs)
174
        {
175
            String[] entry = pair.split("=");
176
            map.put(entry[0].trim(), entry[1].trim());
177
        }
178
        return map;
179
    }
180
 
181
    public static String getNewStoreId(Map storeMap,String orderUrl){
182
        Set<String> keys = storeMap.keySet();
183
        for(String i: keys)
184
        {
185
            if(orderUrl.contains(i)){
186
                return storeMap.get(i).toString();
187
            }
188
        }
189
        return null;
190
    }
191
 
22836 rajender 192
 /*   public String getEmailUrlFromMap(Context c,String url,String defaultUrl){
21480 rajender 193
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
194
        apiEditor = apiData.edit();
195
        Map<String,String> profitmanidUrls=new HashMap<>();
196
        profitmanidUrls.put("profitmandi.com/home",apiData.getString("mobile.website.url", "http://" + ProfitTillConstants.DOMAIN+"/deals"));
197
        profitmanidUrls.put("profitmandi.com/search",apiData.getString("search.url", "http://" + ProfitTillConstants.DOMAIN+"/search"));
198
        profitmanidUrls.put("profitmandi.com/orders",apiData.getString("myorders.url", "http://" + ProfitTillConstants.DOMAIN+"/orders/mine"));
199
        profitmanidUrls.put("profitmandi.com/preferences",apiData.getString("preferences.url", "http://" + ProfitTillConstants.DOMAIN+"/preferences/mine"));
200
        profitmanidUrls.put("profitmandi.com/product","http://"+ProfitTillConstants.DOMAIN+"/store_products/view");
201
        Set<String> keys = profitmanidUrls.keySet();
202
        for(String i: keys){
203
            if(url.contains(i)){
204
                if(url.contains("product")){
205
                    return profitmanidUrls.get(i).toString() + url.split("product")[1];
206
                }else{
207
                    return profitmanidUrls.get(i).toString();
208
                }
209
            }
210
        }
211
        return defaultUrl;
22836 rajender 212
    }*/
21480 rajender 213
 
214
    public static Map<String,String> getReferralRequest(Context c,String referrerObject){
215
        String decodedUrl = URLDecoder.decode(referrerObject);
216
        StringTokenizer st = new StringTokenizer(decodedUrl, "&");
217
        Map<String,String> analyticsRequest=new HashMap<>();
218
        while (st.hasMoreTokens()) {
219
            String token = st.nextToken();
220
            String[] sourceValue = token.split("=");
221
            analyticsRequest.put(sourceValue[0], sourceValue[1]);
222
        }
223
        analyticsRequest.put("imeinumber",UtilityFunctions.getImeiNumber(c));
224
        return analyticsRequest;
225
    }
226
 
227
    public static String campaignUserId(Uri campaignUri){
228
 
229
        DESEncrypter desEncrypter = new DESEncrypter(ProfitTillConstants.AUTH_PASSWORD);
230
        String urlOpen = desEncrypter.decrypt(campaignUri.getQueryParameter("key"));
231
        String campaignUserId=urlOpen.split("user_id=")[1];
232
        return campaignUserId;
233
    }
234
 
235
    public static String androidId(Context c) {
236
        return "" + android.provider.Settings.Secure.getString(c.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
237
    }
238
 
239
    public static int getVersionCode(){
240
        try {
241
            Context c = GoogleAnalyticsTracker.getAppContext();
242
            PackageManager manager = c.getPackageManager();
243
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
244
            return info.versionCode;
245
        }catch (Exception e){
246
            return 31;
247
        }
248
    }
249
}