package org.droidplanner.android.utils.unit; import android.content.Context; import org.droidplanner.android.utils.prefs.DroidPlannerPrefs; import org.droidplanner.android.utils.unit.systems.ImperialUnitSystem; import org.droidplanner.android.utils.unit.systems.MetricUnitSystem; import org.droidplanner.android.utils.unit.systems.UnitSystem; import java.util.Locale; /** * Created by fhuya on 11/11/14. */ public class UnitManager { private static DroidPlannerPrefs dpPrefs; private static MetricUnitSystem metricUnitSystem; private static ImperialUnitSystem imperialUnitSystem; public static UnitSystem getUnitSystem(Context context){ if(dpPrefs == null) dpPrefs = DroidPlannerPrefs.getInstance(context); final int unitSystemType = dpPrefs.getUnitSystemType(); switch(unitSystemType){ case UnitSystem.AUTO: default: Locale locale = Locale.getDefault(); if(Locale.US.equals(locale)) { if(imperialUnitSystem == null) imperialUnitSystem = new ImperialUnitSystem(); return imperialUnitSystem; } else { if (metricUnitSystem == null) metricUnitSystem = new MetricUnitSystem(); return metricUnitSystem; } case UnitSystem.METRIC: if(metricUnitSystem == null) metricUnitSystem = new MetricUnitSystem(); return metricUnitSystem; case UnitSystem.IMPERIAL: if(imperialUnitSystem == null) imperialUnitSystem = new ImperialUnitSystem(); return imperialUnitSystem; } } }