Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 24e82fa2 authored by Rafael Tonholo's avatar Rafael Tonholo
Browse files

refactor(storage): convert DefaultStorage to kotlin

parent e0e66788
Loading
Loading
Loading
Loading
+0 −80
Original line number Diff line number Diff line
package com.fsck.k9.preferences;


import java.util.Collections;
import java.util.Map;

import androidx.annotation.NonNull;
import net.thunderbird.core.preferences.Storage;
import timber.log.Timber;

public class DefaultStorage implements Storage {
    private final Map<String, String> values;

    public DefaultStorage(Map<String, String> values) {
        this.values = Collections.unmodifiableMap(values);
    }

    @Override
    public boolean isEmpty() {
        return values.isEmpty();
    }

    @Override
    public boolean contains(@NonNull String key) {
        return values.containsKey(key);
    }

    @NonNull
    @Override
    public Map<String, String> getAll() {
        return values;
    }

    @Override
    public boolean getBoolean(@NonNull String key, boolean defValue) {
        String val = values.get(key);
        if (val == null) {
            return defValue;
        }
        return Boolean.parseBoolean(val);
    }

    @Override
    public int getInt(@NonNull String key, int defValue) {
        String val = values.get(key);
        if (val == null) {
            return defValue;
        }
        try {
            return Integer.parseInt(val);
        } catch (NumberFormatException nfe) {
            Timber.e(nfe, "Could not parse int");
            return defValue;
        }
    }

    @Override
    public long getLong(@NonNull String key, long defValue) {
        String val = values.get(key);
        if (val == null) {
            return defValue;
        }
        try {
            return Long.parseLong(val);
        } catch (NumberFormatException nfe) {
            Timber.e(nfe, "Could not parse long");
            return defValue;
        }
    }

    @NonNull
    @Override
    public String getString(String key, String defValue) {
        String val = values.get(key);
        if (val == null) {
            return defValue;
        }
        return val;
    }
}
+45 −0
Original line number Diff line number Diff line
package com.fsck.k9.preferences

import java.util.Collections
import net.thunderbird.core.preferences.Storage
import timber.log.Timber

class DefaultStorage(
    values: Map<String, String>,
) : Storage {
    private val values: Map<String, String> = Collections.unmodifiableMap(values)

    override fun isEmpty(): Boolean = values.isEmpty()

    override fun contains(key: String): Boolean = values.contains(key)

    override fun getAll(): Map<String, String> = values

    override fun getBoolean(key: String, defValue: Boolean): Boolean =
        values[key]
            ?.toBoolean()
            ?: defValue

    override fun getInt(key: String, defValue: Int): Int {
        val value = values[key] ?: return defValue
        return try {
            value.toInt()
        } catch (e: NumberFormatException) {
            Timber.e(e, "Could not parse int")
            defValue
        }
    }

    override fun getLong(key: String, defValue: Long): Long {
        val value = values[key] ?: return defValue
        return try {
            value.toLong()
        } catch (e: NumberFormatException) {
            Timber.e(e, "Could not parse long")
            defValue
        }
    }

    override fun getString(key: String?, defValue: String?): String =
        values[key] ?: defValue.orEmpty()
}