562935844@qq.com
2023-08-31 fdcf461fbfa3bcd650685743e891ad3357898f0c
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java
New file
@@ -0,0 +1,203 @@
package com.hdl.sdk.common.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Base64;
import com.hdl.sdk.common.HDLSdk;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
/**
 * Created by Tong on 2021/9/28.
 */
public class SPUtils {
    private static final String APP_PREFERENCES_KEY = "profile";
    private static final SharedPreferences PREFERENCES =
            HDLSdk.getInstance().getContext().getApplicationContext().getSharedPreferences(APP_PREFERENCES_KEY, Context.MODE_PRIVATE);
    private static SharedPreferences getAppPreference() {
        return PREFERENCES;
    }
    //======通用存储========
    public static void put(final String key, final String value) {
        getAppPreference().edit().putString(key, value).apply();
    }
    public static String getString(final String key) {
        return getString(key, "");
    }
    public static String getString(final String key, final String defaultValue) {
        return getAppPreference().getString(key, defaultValue);
    }
    public static void put(final String key, final int value) {
        put(key, value, false);
    }
    public static void put(final String key, final int value, final boolean isCommit) {
        getAppPreference().edit().putInt(key, value).apply();
    }
    public static int getInt(final String key) {
        return getInt(key, -1);
    }
    public static int getInt(final String key, final int defaultValue) {
        return getAppPreference().getInt(key, defaultValue);
    }
    public static void put(final String key, final long value) {
        getAppPreference().edit().putLong(key, value).apply();
    }
    public static long getLong(final String key) {
        return getLong(key, -1L);
    }
    public static long getLong(final String key, final long defaultValue) {
        return getAppPreference().getLong(key, defaultValue);
    }
    public static void put(final String key, final float value) {
        getAppPreference().edit().putFloat(key, value).apply();
    }
    public static float getFloat(final String key) {
        return getFloat(key, -1f);
    }
    public static float getFloat(final String key, final float defaultValue) {
        return getAppPreference().getFloat(key, defaultValue);
    }
    public static void put(final String key, final boolean value) {
        getAppPreference().edit().putBoolean(key, value).apply();
    }
    public static boolean getBoolean(final String key) {
        return getBoolean(key, false);
    }
    public static boolean getBoolean(final String key, final boolean defaultValue) {
        return getAppPreference().getBoolean(key, defaultValue);
    }
    public static void put(final String key,
                           final Set<String> value
    ) {
        getAppPreference().edit().putStringSet(key, value).apply();
    }
    public static Set<String> getStringSet(final String key) {
        return getStringSet(key, Collections.<String>emptySet());
    }
    public static Set<String> getStringSet(final String key,
                                           final Set<String> defaultValue) {
        return getAppPreference().getStringSet(key, defaultValue);
    }
    public static Map<String, ?> getAll() {
        return getAppPreference().getAll();
    }
    public static boolean contains(final String key) {
        return getAppPreference().contains(key);
    }
    public static void remove(final String key) {
        getAppPreference().edit().remove(key).apply();
    }
    public static void clear() {
        getAppPreference()
                .edit()
                .clear()
                .apply();
    }
    private static String Object2String(Object object) {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ObjectOutputStream objectOutputStream = null;
        try {
            objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
            objectOutputStream.writeObject(object);
            String string = new String(Base64.encode(byteArrayOutputStream.toByteArray(), Base64.DEFAULT));
            objectOutputStream.close();
            return string;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    private static Object String2Object(String objectString) {
        byte[] mobileBytes = Base64.decode(objectString.getBytes(), Base64.DEFAULT);
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(mobileBytes);
        ObjectInputStream objectInputStream = null;
        try {
            objectInputStream = new ObjectInputStream(byteArrayInputStream);
            Object object = objectInputStream.readObject();
            objectInputStream.close();
            return object;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public static void saveSerializableEntity(String key, Object saveObject) {
        SharedPreferences.Editor editor = getAppPreference().edit();
        String string = Object2String(saveObject);
        editor.putString(key, string);
        editor.commit();
    }
    public static Object getSerializableEntity(String key) {
        String string = getAppPreference().getString(key, null);
        if (string != null) {
            Object object = String2Object(string);
            return object;
        } else {
            return null;
        }
    }
}