Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | 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);
77
            TelephonyManager telephonyManager = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
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());
92
        }catch (Exception e){
93
            e.printStackTrace();
94
        }
95
        return deviceDataList;
96
    }
97
 
98
   /* public static String clearCookiesNew(String domain,Context c) {
99
        CookieSyncManager.createInstance(c);
100
        CookieManager cookieManager = CookieManager.getInstance();
101
        String cookiestring = cookieManager.getCookie(domain);
102
        String[] cookies =  cookiestring.split(";");
103
        Log.d("Cookie is new  ","Cookie is new " + cookies);
104
        for (int i=0; i<cookies.length; i++) {
105
            if(cookies[i].contains("CakeCookie[debuguser]")){
106
                return "true";
107
            }
108
        }
109
        return "false";
110
    }*/
111
 
112
    public static String clearCookiesNew(String domain,Context c) {
113
        try {
114
            CookieSyncManager.createInstance(c.getApplicationContext());
115
            CookieManager cookieManager = CookieManager.getInstance();
116
            String cookiestring = cookieManager.getCookie(domain);
117
            String[] cookies = cookiestring.split(";");
118
            for (int i = 0; i < cookies.length; i++) {
119
                if (cookies[i].contains("CakeCookie[debuguser]")) {
120
                    return "true";
121
                }
122
            }
123
            return "false";
124
        } catch (Exception e) {
125
            e.printStackTrace();
126
            Tracker t = ((GoogleAnalyticsTracker) c.getApplicationContext()).getTracker(
127
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
128
            t.send(new HitBuilders.ExceptionBuilder().setDescription("Cookie set Fail").build());
129
            return "false";
130
        }
131
    }
132
 
133
    public static boolean checkWifi(Context context){
134
        boolean checkWifi;
135
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
136
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
137
        if (mWifi==null){
138
            checkWifi= Boolean.parseBoolean(null);
139
        }else {
140
            checkWifi = mWifi.isConnected();
141
        }
142
        return checkWifi;
143
    }
144
 
145
    public static String getImeiNumber(Context context){
146
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
147
        return telephonyManager.getDeviceId();
148
    }
149
 
150
    public static String getAppVersion(Context c){
151
        String appVersion;
152
        try {
153
            PackageManager manager = c.getPackageManager();
154
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
155
            appVersion=info.versionCode+"";
156
        }catch (PackageManager.NameNotFoundException pm){
157
            appVersion=null;
158
        }
159
        return appVersion;
160
    }
161
 
162
    public static String notificationDate(){
163
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
164
        return sdf.format(new Date());
165
    }
166
 
167
    public static Map<String,String> generateStoreMap(String toConvertString){
168
        String[] keyValuePairs = toConvertString.split(",");
169
        Map<String,String> map = new HashMap<>();
170
 
171
        for(String pair : keyValuePairs)
172
        {
173
            String[] entry = pair.split("=");
174
            map.put(entry[0].trim(), entry[1].trim());
175
        }
176
        return map;
177
    }
178
 
179
    public static String getNewStoreId(Map storeMap,String orderUrl){
180
        Set<String> keys = storeMap.keySet();
181
        for(String i: keys)
182
        {
183
            if(orderUrl.contains(i)){
184
                return storeMap.get(i).toString();
185
            }
186
        }
187
        return null;
188
    }
189
 
190
    public String getEmailUrlFromMap(Context c,String url,String defaultUrl){
191
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
192
        apiEditor = apiData.edit();
193
        Map<String,String> profitmanidUrls=new HashMap<>();
194
        profitmanidUrls.put("profitmandi.com/home",apiData.getString("mobile.website.url", "http://" + ProfitTillConstants.DOMAIN+"/deals"));
195
        profitmanidUrls.put("profitmandi.com/search",apiData.getString("search.url", "http://" + ProfitTillConstants.DOMAIN+"/search"));
196
        profitmanidUrls.put("profitmandi.com/orders",apiData.getString("myorders.url", "http://" + ProfitTillConstants.DOMAIN+"/orders/mine"));
197
        profitmanidUrls.put("profitmandi.com/preferences",apiData.getString("preferences.url", "http://" + ProfitTillConstants.DOMAIN+"/preferences/mine"));
198
        profitmanidUrls.put("profitmandi.com/product","http://"+ProfitTillConstants.DOMAIN+"/store_products/view");
199
        Set<String> keys = profitmanidUrls.keySet();
200
        for(String i: keys){
201
            if(url.contains(i)){
202
                if(url.contains("product")){
203
                    return profitmanidUrls.get(i).toString() + url.split("product")[1];
204
                }else{
205
                    return profitmanidUrls.get(i).toString();
206
                }
207
            }
208
        }
209
        return defaultUrl;
210
    }
211
 
212
    public static Map<String,String> getReferralRequest(Context c,String referrerObject){
213
        String decodedUrl = URLDecoder.decode(referrerObject);
214
        StringTokenizer st = new StringTokenizer(decodedUrl, "&");
215
        Map<String,String> analyticsRequest=new HashMap<>();
216
        while (st.hasMoreTokens()) {
217
            String token = st.nextToken();
218
            String[] sourceValue = token.split("=");
219
            analyticsRequest.put(sourceValue[0], sourceValue[1]);
220
        }
221
        analyticsRequest.put("imeinumber",UtilityFunctions.getImeiNumber(c));
222
        return analyticsRequest;
223
    }
224
 
225
    public static String campaignUserId(Uri campaignUri){
226
 
227
        DESEncrypter desEncrypter = new DESEncrypter(ProfitTillConstants.AUTH_PASSWORD);
228
        String urlOpen = desEncrypter.decrypt(campaignUri.getQueryParameter("key"));
229
        String campaignUserId=urlOpen.split("user_id=")[1];
230
        return campaignUserId;
231
    }
232
 
233
    public static String androidId(Context c) {
234
        return "" + android.provider.Settings.Secure.getString(c.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
235
    }
236
 
237
    public static int getVersionCode(){
238
        try {
239
            Context c = GoogleAnalyticsTracker.getAppContext();
240
            PackageManager manager = c.getPackageManager();
241
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
242
            return info.versionCode;
243
        }catch (Exception e){
244
            return 31;
245
        }
246
    }
247
}