Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.saholic.profittill.Utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.Base64;
import android.util.Log;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;

import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
import com.saholic.profittill.Constants.ProfitTillConstants;
import com.saholic.profittill.main.GoogleAnalyticsTracker;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.zip.DeflaterOutputStream;

/**
 * Created by kshitij on 23/4/15.
 */
public class UtilityFunctions {
    SharedPreferences apiData, userData,apkData;
    SharedPreferences.Editor apiEditor,userEditor,apkDataEditor;
    public static String compress(String html){
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            OutputStream out = new DeflaterOutputStream(baos);
            out.write(html.getBytes("UTF-8"));
            out.close();
        } catch (IOException e) {
            throw new AssertionError(e);
        }
        Log.d("Returning String ", Base64.encodeToString(baos.toByteArray(), Base64.NO_WRAP) + "");
        return Base64.encodeToString(baos.toByteArray(),Base64.NO_WRAP);
    }
    public  static String addParamsToUrl(String urlString, Map<String, String> paramsMap){
       // String newUrlString = "";
        Uri.Builder builder = Uri.parse(urlString).buildUpon();
        for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
            builder.appendQueryParameter(entry.getKey(), entry.getValue());
        }
        return builder.toString();

    }

    public ArrayList<NameValuePair> getDeviceInformation(Context c){
        userData = c.getApplicationContext().getSharedPreferences("User_Data", c.getApplicationContext().MODE_PRIVATE);
        apkData = c.getApplicationContext().getSharedPreferences("APK_Data", c.getApplicationContext().MODE_PRIVATE);
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
        apkDataEditor = apkData.edit();
        userEditor = userData.edit();
        apiEditor = apiData.edit();
        ArrayList<NameValuePair> deviceDataList=null;
        try {
            PackageManager manager = c.getPackageManager();
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
            TelephonyManager telephonyManager = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
            deviceDataList = new ArrayList<>();
            deviceDataList.add(new BasicNameValuePair("user_id", userData.getString("id", "")));
            deviceDataList.add(new BasicNameValuePair("versioncode", info.versionCode + ""));
            deviceDataList.add(new BasicNameValuePair("versionname", info.versionName + ""));
            deviceDataList.add(new BasicNameValuePair("osversion", android.os.Build.VERSION.SDK_INT + ""));
            deviceDataList.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));
            deviceDataList.add(new BasicNameValuePair("manufacturer", Build.MANUFACTURER));
            deviceDataList.add(new BasicNameValuePair("model", Build.MODEL));
            deviceDataList.add(new BasicNameValuePair("brand", Build.BRAND));
            deviceDataList.add(new BasicNameValuePair("androidid",androidId(c)));
            apkDataEditor.putString("versionCode", info.versionCode + "");
            apkDataEditor.putString("versionName", info.versionName);
            apkDataEditor.putString("osVersion", android.os.Build.VERSION.SDK_INT + "");
            apkDataEditor.putString("imeiNumber", telephonyManager.getDeviceId());
        }catch (Exception e){
            e.printStackTrace();
        }
        return deviceDataList;
    }

   /* public static String clearCookiesNew(String domain,Context c) {
        CookieSyncManager.createInstance(c);
        CookieManager cookieManager = CookieManager.getInstance();
        String cookiestring = cookieManager.getCookie(domain);
        String[] cookies =  cookiestring.split(";");
        Log.d("Cookie is new  ","Cookie is new " + cookies);
        for (int i=0; i<cookies.length; i++) {
            if(cookies[i].contains("CakeCookie[debuguser]")){
                return "true";
            }
        }
        return "false";
    }*/

    public static String clearCookiesNew(String domain,Context c) {
        try {
            CookieSyncManager.createInstance(c.getApplicationContext());
            CookieManager cookieManager = CookieManager.getInstance();
            String cookiestring = cookieManager.getCookie(domain);
            String[] cookies = cookiestring.split(";");
            for (int i = 0; i < cookies.length; i++) {
                if (cookies[i].contains("CakeCookie[debuguser]")) {
                    return "true";
                }
            }
            return "false";
        } catch (Exception e) {
            e.printStackTrace();
            Tracker t = ((GoogleAnalyticsTracker) c.getApplicationContext()).getTracker(
                    GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
            t.send(new HitBuilders.ExceptionBuilder().setDescription("Cookie set Fail").build());
            return "false";
        }
    }

    public static boolean checkWifi(Context context){
        boolean checkWifi;
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (mWifi==null){
            checkWifi= Boolean.parseBoolean(null);
        }else {
            checkWifi = mWifi.isConnected();
        }
        return checkWifi;
    }

    public static String getImeiNumber(Context context){
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        return telephonyManager.getDeviceId();
    }

    public static String getAppVersion(Context c){
        String appVersion;
        try {
            PackageManager manager = c.getPackageManager();
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
            appVersion=info.versionCode+"";
        }catch (PackageManager.NameNotFoundException pm){
            appVersion=null;
        }
        return appVersion;
    }

    public static String notificationDate(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(new Date());
    }

    public static Map<String,String> generateStoreMap(String toConvertString){
        String[] keyValuePairs = toConvertString.split(",");
        Map<String,String> map = new HashMap<>();

        for(String pair : keyValuePairs)
        {
            String[] entry = pair.split("=");
            map.put(entry[0].trim(), entry[1].trim());
        }
        return map;
    }

    public static String getNewStoreId(Map storeMap,String orderUrl){
        Set<String> keys = storeMap.keySet();
        for(String i: keys)
        {
            if(orderUrl.contains(i)){
                return storeMap.get(i).toString();
            }
        }
        return null;
    }

    public String getEmailUrlFromMap(Context c,String url,String defaultUrl){
        apiData = c.getApplicationContext().getSharedPreferences("API_Data", c.getApplicationContext().MODE_PRIVATE);
        apiEditor = apiData.edit();
        Map<String,String> profitmanidUrls=new HashMap<>();
        profitmanidUrls.put("profitmandi.com/home",apiData.getString("mobile.website.url", "http://" + ProfitTillConstants.DOMAIN+"/deals"));
        profitmanidUrls.put("profitmandi.com/search",apiData.getString("search.url", "http://" + ProfitTillConstants.DOMAIN+"/search"));
        profitmanidUrls.put("profitmandi.com/orders",apiData.getString("myorders.url", "http://" + ProfitTillConstants.DOMAIN+"/orders/mine"));
        profitmanidUrls.put("profitmandi.com/preferences",apiData.getString("preferences.url", "http://" + ProfitTillConstants.DOMAIN+"/preferences/mine"));
        profitmanidUrls.put("profitmandi.com/product","http://"+ProfitTillConstants.DOMAIN+"/store_products/view");
        Set<String> keys = profitmanidUrls.keySet();
        for(String i: keys){
            if(url.contains(i)){
                if(url.contains("product")){
                    return profitmanidUrls.get(i).toString() + url.split("product")[1];
                }else{
                    return profitmanidUrls.get(i).toString();
                }
            }
        }
        return defaultUrl;
    }

    public static Map<String,String> getReferralRequest(Context c,String referrerObject){
        String decodedUrl = URLDecoder.decode(referrerObject);
        StringTokenizer st = new StringTokenizer(decodedUrl, "&");
        Map<String,String> analyticsRequest=new HashMap<>();
        while (st.hasMoreTokens()) {
            String token = st.nextToken();
            String[] sourceValue = token.split("=");
            analyticsRequest.put(sourceValue[0], sourceValue[1]);
        }
        analyticsRequest.put("imeinumber",UtilityFunctions.getImeiNumber(c));
        return analyticsRequest;
    }

    public static String campaignUserId(Uri campaignUri){

        DESEncrypter desEncrypter = new DESEncrypter(ProfitTillConstants.AUTH_PASSWORD);
        String urlOpen = desEncrypter.decrypt(campaignUri.getQueryParameter("key"));
        String campaignUserId=urlOpen.split("user_id=")[1];
        return campaignUserId;
    }

    public static String androidId(Context c) {
        return "" + android.provider.Settings.Secure.getString(c.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
    }

    public static int getVersionCode(){
        try {
            Context c = GoogleAnalyticsTracker.getAppContext();
            PackageManager manager = c.getPackageManager();
            PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);
            return info.versionCode;
        }catch (Exception e){
            return 31;
        }
    }
}