package org.greengin.sciencetoolkit.ui.base.modelconfig;
import org.greengin.sciencetoolkit.common.ui.base.Arguments;
import org.greengin.sciencetoolkit.common.ui.base.modelconfig.settings.AbstractSettingsFragment;
import org.greengin.sciencetoolkit.common.ui.base.modelconfig.settings.AppSettingsFragment;
import org.greengin.sciencetoolkit.ui.base.SenseItArguments;
import org.greengin.sciencetoolkit.ui.base.modelconfig.settings.LivePlotSettingsFragment;
import org.greengin.sciencetoolkit.ui.base.modelconfig.settings.SensorListSettingsFragment;
import org.greengin.sciencetoolkit.ui.base.modelconfig.settings.SensorSettingsFragment;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
public class SenseItSettingsFragmentManager {
public static void insert(FragmentManager manager, int container, String settingsId) {
String[] parts = settingsId.split(":", 2);
insert(manager, container, parts[0], settingsId);
}
public static void insert(FragmentManager manager, int container, String fragmentType, String settingsId) {
AbstractSettingsFragment f = get(fragmentType, settingsId);
if (f != null) {
manager.beginTransaction().replace(container, f).commit();
}
}
public static AbstractSettingsFragment get(String fragmentType, String settingsId) {
AbstractSettingsFragment fragment = null;
boolean sensorArg = false;
boolean profileArg = false;
if (fragmentType != null) {
if (fragmentType.equals("app")) {
fragment = new AppSettingsFragment();
} else if (fragmentType.equals("sensor_list")) {
fragment = new SensorListSettingsFragment();
} else if (fragmentType.equals("sensor")) {
sensorArg = true;
fragment = new SensorSettingsFragment();
} else if (fragmentType.equals("liveplot")) {
sensorArg = true;
fragment = new LivePlotSettingsFragment();
} else if (fragmentType.equals("profile_data_variables")) {
profileArg = true;
}
if (fragment != null) {
Bundle args = new Bundle();
args.putString(Arguments.ARG_SETTINGS, settingsId);
if (sensorArg) {
args.putString(SenseItArguments.ARG_SENSOR, getKeyParam(settingsId));
} else if (profileArg) {
args.putString(SenseItArguments.ARG_PROFILE, getKeyParam(settingsId));
}
fragment.setArguments(args);
}
}
return fragment;
}
private static String getKeyParam(String key) {
String[] parts = key.split(":", 2);
return parts.length > 1 ? parts[1] : null;
}
}