base ConfigBuilder plugin
This commit is contained in:
parent
7e3d1e6ad4
commit
32bfea8d18
|
@ -1,5 +1,6 @@
|
||||||
package info.nightscout.androidaps;
|
package info.nightscout.androidaps;
|
||||||
|
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.view.ViewPager;
|
import android.support.v4.view.ViewPager;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -7,9 +8,15 @@ import android.support.v7.widget.Toolbar;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
|
import com.squareup.otto.Subscribe;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import info.nightscout.androidaps.events.EventRefreshGui;
|
||||||
|
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment;
|
||||||
import info.nightscout.androidaps.plugins.LowSuspend.LowSuspendFragment;
|
import info.nightscout.androidaps.plugins.LowSuspend.LowSuspendFragment;
|
||||||
import info.nightscout.androidaps.plugins.OpenAPSMA.OpenAPSMAFragment;
|
import info.nightscout.androidaps.plugins.OpenAPSMA.OpenAPSMAFragment;
|
||||||
import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
|
import info.nightscout.androidaps.plugins.Overview.OverviewFragment;
|
||||||
|
@ -26,7 +33,9 @@ public class MainActivity extends AppCompatActivity {
|
||||||
private Toolbar toolbar;
|
private Toolbar toolbar;
|
||||||
private SlidingTabLayout mTabs;
|
private SlidingTabLayout mTabs;
|
||||||
private ViewPager mPager;
|
private ViewPager mPager;
|
||||||
private TabPageAdapter mAdapter;
|
private static TabPageAdapter pageAdapter;
|
||||||
|
|
||||||
|
ArrayList<Fragment> pluginsList = new ArrayList<Fragment>();
|
||||||
|
|
||||||
public static TreatmentsFragment treatmentsFragment;
|
public static TreatmentsFragment treatmentsFragment;
|
||||||
public static TempBasalsFragment tempBasalsFragment;
|
public static TempBasalsFragment tempBasalsFragment;
|
||||||
|
@ -38,25 +47,51 @@ public class MainActivity extends AppCompatActivity {
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
// Register all tabs in app here
|
// Register all tabs in app here
|
||||||
mAdapter = new TabPageAdapter(getSupportFragmentManager());
|
pluginsList.add(OverviewFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("Overview", OverviewFragment.newInstance());
|
pluginsList.add((VirtualPumpFragment) MainApp.setActivePump(VirtualPumpFragment.newInstance()));
|
||||||
mAdapter.registerNewFragment("VirtualPump", (VirtualPumpFragment) MainApp.setActivePump(VirtualPumpFragment.newInstance()));
|
pluginsList.add(LowSuspendFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("LowSuspend", LowSuspendFragment.newInstance());
|
pluginsList.add(OpenAPSMAFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("OpenAPS MA", OpenAPSMAFragment.newInstance());
|
pluginsList.add(treatmentsFragment = TreatmentsFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("Treatments", treatmentsFragment = TreatmentsFragment.newInstance());
|
pluginsList.add(tempBasalsFragment = TempBasalsFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("TempBasals", tempBasalsFragment = TempBasalsFragment.newInstance());
|
pluginsList.add(ProfileViewerFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("Profile", ProfileViewerFragment.newInstance());
|
pluginsList.add(ObjectivesFragment.newInstance());
|
||||||
mAdapter.registerNewFragment("Objectives", ObjectivesFragment.newInstance());
|
pluginsList.add(ConfigBuilderFragment.newInstance());
|
||||||
|
|
||||||
|
/*
|
||||||
|
pageAdapter.registerNewFragment(OverviewFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment((VirtualPumpFragment) MainApp.setActivePump(VirtualPumpFragment.newInstance()));
|
||||||
|
pageAdapter.registerNewFragment(LowSuspendFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment(OpenAPSMAFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment(treatmentsFragment = TreatmentsFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment(tempBasalsFragment = TempBasalsFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment(ProfileViewerFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment(ObjectivesFragment.newInstance());
|
||||||
|
pageAdapter.registerNewFragment(ConfigBuilderFragment.newInstance());
|
||||||
|
*/
|
||||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
mPager = (ViewPager) findViewById(R.id.pager);
|
|
||||||
mPager.setAdapter(mAdapter);
|
|
||||||
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
|
|
||||||
mTabs.setViewPager(mPager);
|
|
||||||
|
|
||||||
registerBus();
|
registerBus();
|
||||||
|
|
||||||
|
setUpTabs(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onStatusEvent(final EventRefreshGui ev) {
|
||||||
|
setUpTabs(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setUpTabs(boolean switchToLast) {
|
||||||
|
pageAdapter = new TabPageAdapter(getSupportFragmentManager());
|
||||||
|
for(Fragment f: pluginsList) {
|
||||||
|
pageAdapter.registerNewFragment(f);
|
||||||
|
}
|
||||||
|
mPager = (ViewPager) findViewById(R.id.pager);
|
||||||
|
mPager.setAdapter(pageAdapter);
|
||||||
|
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
|
||||||
|
mTabs.setViewPager(mPager);
|
||||||
|
if (switchToLast)
|
||||||
|
mPager.setCurrentItem(pageAdapter.getCount()-1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -82,5 +117,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
MainApp.bus().register(this);
|
MainApp.bus().register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static TabPageAdapter getPageAdapter() {
|
||||||
|
return pageAdapter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,10 +12,7 @@ import org.json.JSONObject;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.Date;
|
import info.nightscout.androidaps.plugins.Pump;
|
||||||
|
|
||||||
import info.nightscout.androidaps.data.Pump;
|
|
||||||
import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment;
|
|
||||||
import info.nightscout.client.data.NSProfile;
|
import info.nightscout.client.data.NSProfile;
|
||||||
import info.nightscout.androidaps.db.DatabaseHelper;
|
import info.nightscout.androidaps.db.DatabaseHelper;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package info.nightscout.androidaps.events;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mike on 13.06.2016.
|
||||||
|
*/
|
||||||
|
public class EventRefreshGui {
|
||||||
|
}
|
|
@ -0,0 +1,210 @@
|
||||||
|
package info.nightscout.androidaps.plugins.ConfigBuilder;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.CheckBox;
|
||||||
|
import android.widget.ListView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import info.nightscout.androidaps.MainActivity;
|
||||||
|
import info.nightscout.androidaps.MainApp;
|
||||||
|
import info.nightscout.androidaps.R;
|
||||||
|
import info.nightscout.androidaps.events.EventRefreshGui;
|
||||||
|
import info.nightscout.androidaps.plugins.PluginBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple {@link Fragment} subclass.
|
||||||
|
*/
|
||||||
|
public class ConfigBuilderFragment extends Fragment implements PluginBase {
|
||||||
|
private static Logger log = LoggerFactory.getLogger(ConfigBuilderFragment.class);
|
||||||
|
|
||||||
|
ListView pumpListView;
|
||||||
|
ListView treatmentsListView;
|
||||||
|
ListView tempsListView;
|
||||||
|
ListView profileListView;
|
||||||
|
ListView apsListView;
|
||||||
|
ListView generalListView;
|
||||||
|
|
||||||
|
PluginCustomAdapter pumpDataAdapter = null;
|
||||||
|
PluginCustomAdapter treatmentsDataAdapter = null;
|
||||||
|
PluginCustomAdapter tempsDataAdapter = null;
|
||||||
|
PluginCustomAdapter profileDataAdapter = null;
|
||||||
|
PluginCustomAdapter apsDataAdapter = null;
|
||||||
|
PluginCustomAdapter generalDataAdapter = null;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
View view = inflater.inflate(R.layout.configbuilder_fragment, container, false);
|
||||||
|
pumpListView = (ListView) view.findViewById(R.id.configbuilder_pumplistview);
|
||||||
|
treatmentsListView = (ListView) view.findViewById(R.id.configbuilder_treatmentslistview);
|
||||||
|
tempsListView = (ListView) view.findViewById(R.id.configbuilder_tempslistview);
|
||||||
|
profileListView = (ListView) view.findViewById(R.id.configbuilder_profilelistview);
|
||||||
|
apsListView = (ListView) view.findViewById(R.id.configbuilder_apslistview);
|
||||||
|
generalListView = (ListView) view.findViewById(R.id.configbuilder_generallistview);
|
||||||
|
|
||||||
|
//Array list of countries
|
||||||
|
ArrayList<PluginBase> pluginList = MainActivity.getPageAdapter().getPluginsList();
|
||||||
|
pumpDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainActivity.getPageAdapter().getSpecificPluginsList(PluginBase.PUMP));
|
||||||
|
pumpListView.setAdapter(pumpDataAdapter);
|
||||||
|
treatmentsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainActivity.getPageAdapter().getSpecificPluginsList(PluginBase.TREATMENT));
|
||||||
|
treatmentsListView.setAdapter(treatmentsDataAdapter);
|
||||||
|
tempsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainActivity.getPageAdapter().getSpecificPluginsList(PluginBase.TEMPBASAL));
|
||||||
|
tempsListView.setAdapter(tempsDataAdapter);
|
||||||
|
profileDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainActivity.getPageAdapter().getSpecificPluginsList(PluginBase.PROFILE));
|
||||||
|
profileListView.setAdapter(profileDataAdapter);
|
||||||
|
apsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainActivity.getPageAdapter().getSpecificPluginsList(PluginBase.APS));
|
||||||
|
apsListView.setAdapter(apsDataAdapter);
|
||||||
|
generalDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainActivity.getPageAdapter().getSpecificPluginsList(PluginBase.GENERAL));
|
||||||
|
generalListView.setAdapter(generalDataAdapter);
|
||||||
|
|
||||||
|
|
||||||
|
apsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
|
public void onItemClick(AdapterView<?> parent, View view,
|
||||||
|
int position, long id) {
|
||||||
|
// When clicked, show a toast with the TextView text
|
||||||
|
PluginBase plugin = (PluginBase) parent.getItemAtPosition(position);
|
||||||
|
Toast.makeText(MainApp.instance().getApplicationContext(),
|
||||||
|
"Clicked on Row: " + plugin.getName(),
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return PluginBase.GENERAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return MainApp.instance().getString(R.string.configbuilder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
// Always enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
// Always visible
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ConfigBuilderFragment newInstance() {
|
||||||
|
ConfigBuilderFragment fragment = new ConfigBuilderFragment();
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class PluginCustomAdapter extends ArrayAdapter<PluginBase> {
|
||||||
|
|
||||||
|
private ArrayList<PluginBase> pluginList;
|
||||||
|
|
||||||
|
public PluginCustomAdapter(Context context, int textViewResourceId,
|
||||||
|
ArrayList<PluginBase> pluginList) {
|
||||||
|
super(context, textViewResourceId, pluginList);
|
||||||
|
this.pluginList = new ArrayList<PluginBase>();
|
||||||
|
this.pluginList.addAll(pluginList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class PluginViewHolder {
|
||||||
|
TextView name;
|
||||||
|
CheckBox checkboxEnabled;
|
||||||
|
CheckBox checkboxVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
|
|
||||||
|
PluginViewHolder holder = null;
|
||||||
|
|
||||||
|
if (convertView == null) {
|
||||||
|
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.configbuilder_simpleitem, null);
|
||||||
|
|
||||||
|
holder = new PluginViewHolder();
|
||||||
|
holder.name = (TextView) convertView.findViewById(R.id.configbuilder_simpleitem_name);
|
||||||
|
holder.checkboxEnabled = (CheckBox) convertView.findViewById(R.id.configbuilder_simpleitem_checkboxenabled);
|
||||||
|
holder.checkboxVisible = (CheckBox) convertView.findViewById(R.id.configbuilder_simpleitem_checkboxvisible);
|
||||||
|
convertView.setTag(holder);
|
||||||
|
|
||||||
|
holder.checkboxEnabled.setOnClickListener(new View.OnClickListener() {
|
||||||
|
public void onClick(View v) {
|
||||||
|
CheckBox cb = (CheckBox) v;
|
||||||
|
PluginBase plugin = (PluginBase) cb.getTag();
|
||||||
|
Toast.makeText(MainApp.instance().getApplicationContext(),
|
||||||
|
"Clicked on ENABLED: " + plugin.getName() +
|
||||||
|
" is " + cb.isChecked(),
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
plugin.setFragmentEnabled(cb.isChecked());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
holder.checkboxVisible.setOnClickListener(new View.OnClickListener() {
|
||||||
|
public void onClick(View v) {
|
||||||
|
CheckBox cb = (CheckBox) v;
|
||||||
|
PluginBase plugin = (PluginBase) cb.getTag();
|
||||||
|
Toast.makeText(MainApp.instance().getApplicationContext(),
|
||||||
|
"Clicked on VISIBLE: " + plugin.getName() +
|
||||||
|
" is " + cb.isChecked(),
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
plugin.setFragmentVisible(cb.isChecked());
|
||||||
|
MainApp.bus().post(new EventRefreshGui());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
holder = (PluginViewHolder) convertView.getTag();
|
||||||
|
}
|
||||||
|
|
||||||
|
PluginBase plugin = pluginList.get(position);
|
||||||
|
holder.name.setText(plugin.getName());
|
||||||
|
holder.checkboxEnabled.setChecked(plugin.isEnabled());
|
||||||
|
holder.checkboxVisible.setChecked(plugin.isVisibleInTabs());
|
||||||
|
holder.name.setTag(plugin);
|
||||||
|
holder.checkboxEnabled.setTag(plugin);
|
||||||
|
holder.checkboxVisible.setTag(plugin);
|
||||||
|
|
||||||
|
if (!plugin.canBeHidden()) {
|
||||||
|
holder.checkboxEnabled.setEnabled(false);
|
||||||
|
holder.checkboxVisible.setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return convertView;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void displayListView() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,7 @@
|
||||||
package info.nightscout.androidaps.plugins.LowSuspend;
|
package info.nightscout.androidaps.plugins.LowSuspend;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
@ -25,7 +23,7 @@ import info.nightscout.androidaps.Config;
|
||||||
import info.nightscout.androidaps.Constants;
|
import info.nightscout.androidaps.Constants;
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Pump;
|
import info.nightscout.androidaps.plugins.Pump;
|
||||||
import info.nightscout.androidaps.db.DatabaseHelper;
|
import info.nightscout.androidaps.db.DatabaseHelper;
|
||||||
import info.nightscout.androidaps.events.EventNewBG;
|
import info.nightscout.androidaps.events.EventNewBG;
|
||||||
import info.nightscout.androidaps.plugins.APSBase;
|
import info.nightscout.androidaps.plugins.APSBase;
|
||||||
|
@ -46,17 +44,44 @@ public class LowSuspendFragment extends Fragment implements View.OnClickListener
|
||||||
Date lastAPSRun = null;
|
Date lastAPSRun = null;
|
||||||
APSResult lastAPSResult = null;
|
APSResult lastAPSResult = null;
|
||||||
|
|
||||||
|
boolean fragmentEnabled = false;
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return MainApp.instance().getString(R.string.lowsuspend);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean selected) {
|
||||||
|
this.fragmentEnabled = selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public int getType() {
|
||||||
return PluginBase.APS;
|
return PluginBase.APS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFragmentVisible() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public APSResult getLastAPSResult() {
|
public APSResult getLastAPSResult() {
|
||||||
return lastAPSResult;
|
return lastAPSResult;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package info.nightscout.androidaps.plugins.Objectives;
|
package info.nightscout.androidaps.plugins.Objectives;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v7.widget.CardView;
|
import android.support.v7.widget.CardView;
|
||||||
|
@ -15,6 +14,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.plugins.PluginBase;
|
import info.nightscout.androidaps.plugins.PluginBase;
|
||||||
|
|
||||||
|
@ -22,16 +22,42 @@ public class ObjectivesFragment extends Fragment implements PluginBase {
|
||||||
RecyclerView recyclerView;
|
RecyclerView recyclerView;
|
||||||
LinearLayoutManager llm;
|
LinearLayoutManager llm;
|
||||||
|
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public int getType() {
|
||||||
return PluginBase.GENERAL;
|
return PluginBase.GENERAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFragmentVisible() {
|
public String getName() {
|
||||||
|
return MainApp.instance().getString(R.string.objectives);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
class Objective {
|
class Objective {
|
||||||
String objective;
|
String objective;
|
||||||
String gate;
|
String gate;
|
||||||
|
@ -92,7 +118,7 @@ public class ObjectivesFragment extends Fragment implements PluginBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(ObjectiveViewHolder holder, int position) {
|
public void onBindViewHolder(ObjectiveViewHolder holder, int position) {
|
||||||
holder.position.setText(String.valueOf(position+1));
|
holder.position.setText(String.valueOf(position + 1));
|
||||||
holder.objective.setText(objectives.get(position).objective);
|
holder.objective.setText(objectives.get(position).objective);
|
||||||
holder.gate.setText(objectives.get(position).gate);
|
holder.gate.setText(objectives.get(position).gate);
|
||||||
holder.started.setText(objectives.get(position).started.toString());
|
holder.started.setText(objectives.get(position).started.toString());
|
||||||
|
|
|
@ -13,7 +13,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import info.nightscout.androidaps.Config;
|
import info.nightscout.androidaps.Config;
|
||||||
import info.nightscout.androidaps.data.Pump;
|
import info.nightscout.androidaps.plugins.Pump;
|
||||||
import info.nightscout.androidaps.db.DatabaseHelper;
|
import info.nightscout.androidaps.db.DatabaseHelper;
|
||||||
import info.nightscout.androidaps.plugins.ScriptReader;
|
import info.nightscout.androidaps.plugins.ScriptReader;
|
||||||
import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment;
|
import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment;
|
||||||
|
|
|
@ -25,8 +25,7 @@ import info.nightscout.androidaps.Constants;
|
||||||
import info.nightscout.androidaps.MainActivity;
|
import info.nightscout.androidaps.MainActivity;
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Iob;
|
import info.nightscout.androidaps.plugins.Pump;
|
||||||
import info.nightscout.androidaps.data.Pump;
|
|
||||||
import info.nightscout.androidaps.db.DatabaseHelper;
|
import info.nightscout.androidaps.db.DatabaseHelper;
|
||||||
import info.nightscout.androidaps.events.EventNewBG;
|
import info.nightscout.androidaps.events.EventNewBG;
|
||||||
import info.nightscout.androidaps.events.EventTreatmentChange;
|
import info.nightscout.androidaps.events.EventTreatmentChange;
|
||||||
|
@ -54,16 +53,44 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener,
|
||||||
Date lastAPSRun = null;
|
Date lastAPSRun = null;
|
||||||
APSResult lastAPSResult = null;
|
APSResult lastAPSResult = null;
|
||||||
|
|
||||||
|
boolean fragmentEnabled = false;
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public String getName() {
|
||||||
return PluginBase.APS;
|
return MainApp.instance().getString(R.string.openapsma);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFragmentVisible() {
|
public boolean isEnabled() {
|
||||||
|
return fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
this.fragmentEnabled = fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return PluginBase.APS;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public APSResult getLastAPSResult() {
|
public APSResult getLastAPSResult() {
|
||||||
return lastAPSResult;
|
return lastAPSResult;
|
||||||
|
@ -153,7 +180,7 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invoke() {
|
public void invoke() {
|
||||||
DetermineBasalAdapterJS determineBasalAdapterJS = null;
|
DetermineBasalAdapterJS determineBasalAdapterJS = null;
|
||||||
try {
|
try {
|
||||||
determineBasalAdapterJS = new DetermineBasalAdapterJS(new ScriptReader(MainApp.instance().getBaseContext()));
|
determineBasalAdapterJS = new DetermineBasalAdapterJS(new ScriptReader(MainApp.instance().getBaseContext()));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
|
@ -44,17 +44,41 @@ public class OverviewFragment extends Fragment implements PluginBase {
|
||||||
TextView deltaView;
|
TextView deltaView;
|
||||||
GraphView bgGraph;
|
GraphView bgGraph;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return MainApp.instance().getString(R.string.overview);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
// Always enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
// Always visible
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public int getType() {
|
||||||
return PluginBase.GENERAL;
|
return PluginBase.GENERAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFragmentVisible() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static OverviewFragment newInstance() {
|
public static OverviewFragment newInstance() {
|
||||||
OverviewFragment fragment = new OverviewFragment();
|
OverviewFragment fragment = new OverviewFragment();
|
||||||
return fragment;
|
return fragment;
|
||||||
|
@ -136,7 +160,7 @@ public class OverviewFragment extends Fragment implements PluginBase {
|
||||||
|
|
||||||
Double lowLine = NSProfile.toUnits(80d, 4d, units); // TODO: make this customisable
|
Double lowLine = NSProfile.toUnits(80d, 4d, units); // TODO: make this customisable
|
||||||
Double highLine = NSProfile.toUnits(180d, 10d, units);
|
Double highLine = NSProfile.toUnits(180d, 10d, units);
|
||||||
Double maxY = NSProfile.toUnits(400d , 20d, units); // TODO: add some scale support
|
Double maxY = NSProfile.toUnits(400d, 20d, units); // TODO: add some scale support
|
||||||
|
|
||||||
List<BgReading> bgReadingsArray = MainApp.getDbHelper().getDataFromTime(fromTime);
|
List<BgReading> bgReadingsArray = MainApp.getDbHelper().getDataFromTime(fromTime);
|
||||||
List<BgReading> inRangeArray = new ArrayList<BgReading>();
|
List<BgReading> inRangeArray = new ArrayList<BgReading>();
|
||||||
|
|
|
@ -7,10 +7,18 @@ import java.util.Date;
|
||||||
*/
|
*/
|
||||||
public interface PluginBase {
|
public interface PluginBase {
|
||||||
int GENERAL = 1;
|
int GENERAL = 1;
|
||||||
int PROFILE = 2;
|
int TREATMENT = 2;
|
||||||
int APS = 3;
|
int TEMPBASAL = 3;
|
||||||
int PUMP = 4;
|
int PROFILE = 4;
|
||||||
|
int APS = 5;
|
||||||
|
int PUMP = 6;
|
||||||
|
|
||||||
public int getType();
|
public int getType();
|
||||||
public boolean isFragmentVisible();
|
|
||||||
|
String getName();
|
||||||
|
boolean isEnabled();
|
||||||
|
boolean isVisibleInTabs();
|
||||||
|
boolean canBeHidden();
|
||||||
|
void setFragmentEnabled(boolean fragmentEnabled);
|
||||||
|
void setFragmentVisible(boolean fragmentVisible);
|
||||||
}
|
}
|
|
@ -35,17 +35,44 @@ public class ProfileViewerFragment extends Fragment implements PluginBase {
|
||||||
|
|
||||||
private static DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
|
private static DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00");
|
||||||
|
|
||||||
|
boolean fragmentEnabled = true;
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return MainApp.instance().getString(R.string.profileviewer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
this.fragmentEnabled = fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public int getType() {
|
||||||
return PluginBase.PROFILE;
|
return PluginBase.PROFILE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFragmentVisible() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ProfileViewerFragment newInstance(String param1, String param2) {
|
public static ProfileViewerFragment newInstance(String param1, String param2) {
|
||||||
ProfileViewerFragment fragment = new ProfileViewerFragment();
|
ProfileViewerFragment fragment = new ProfileViewerFragment();
|
||||||
return fragment;
|
return fragment;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package info.nightscout.androidaps.data;
|
package info.nightscout.androidaps.plugins;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import info.nightscout.androidaps.db.Treatment;
|
import info.nightscout.androidaps.data.Result;
|
||||||
import info.nightscout.client.data.NSProfile;
|
import info.nightscout.client.data.NSProfile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -16,7 +16,7 @@ public interface Pump {
|
||||||
Integer getBatteryPercent();
|
Integer getBatteryPercent();
|
||||||
Integer getReservoirValue();
|
Integer getReservoirValue();
|
||||||
|
|
||||||
// Upload to pump new basal profile from MainApp.getNSProfile()
|
// Upload to pump new basal profile
|
||||||
void setNewBasalProfile(NSProfile profile);
|
void setNewBasalProfile(NSProfile profile);
|
||||||
|
|
||||||
double getBaseBasalRate(); // base basal rate, not temp basal
|
double getBaseBasalRate(); // base basal rate, not temp basal
|
|
@ -1,8 +1,6 @@
|
||||||
package info.nightscout.androidaps.plugins.TempBasals;
|
package info.nightscout.androidaps.plugins.TempBasals;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v7.widget.CardView;
|
import android.support.v7.widget.CardView;
|
||||||
|
@ -31,7 +29,6 @@ import java.util.Locale;
|
||||||
|
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Iob;
|
|
||||||
import info.nightscout.androidaps.db.TempBasal;
|
import info.nightscout.androidaps.db.TempBasal;
|
||||||
import info.nightscout.androidaps.events.EventNewBG;
|
import info.nightscout.androidaps.events.EventNewBG;
|
||||||
import info.nightscout.androidaps.events.EventTempBasalChange;
|
import info.nightscout.androidaps.events.EventTempBasalChange;
|
||||||
|
@ -56,17 +53,44 @@ public class TempBasalsFragment extends Fragment implements PluginBase {
|
||||||
|
|
||||||
private List<TempBasal> tempBasals;
|
private List<TempBasal> tempBasals;
|
||||||
|
|
||||||
|
boolean fragmentEnabled = true;
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public String getName() {
|
||||||
return PluginBase.GENERAL;
|
return MainApp.instance().getString(R.string.tempbasals);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFragmentVisible() {
|
public boolean isEnabled() {
|
||||||
|
return fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
this.fragmentEnabled = fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return PluginBase.TEMPBASAL;
|
||||||
|
}
|
||||||
|
|
||||||
private void initializeData() {
|
private void initializeData() {
|
||||||
try {
|
try {
|
||||||
Dao<TempBasal, Long> dao = MainApp.getDbHelper().getDaoTempBasals();
|
Dao<TempBasal, Long> dao = MainApp.getDbHelper().getDaoTempBasals();
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package info.nightscout.androidaps.plugins.Treatments;
|
package info.nightscout.androidaps.plugins.Treatments;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -32,7 +31,6 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import info.nightscout.androidaps.MainActivity;
|
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Iob;
|
import info.nightscout.androidaps.data.Iob;
|
||||||
|
@ -64,17 +62,44 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener
|
||||||
|
|
||||||
private List<Treatment> treatments;
|
private List<Treatment> treatments;
|
||||||
|
|
||||||
|
boolean fragmentEnabled = true;
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public String getName() {
|
||||||
return PluginBase.GENERAL;
|
return MainApp.instance().getString(R.string.treatments);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFragmentVisible() {
|
public boolean isEnabled() {
|
||||||
|
return fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
this.fragmentEnabled = fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return PluginBase.TREATMENT;
|
||||||
|
}
|
||||||
|
|
||||||
private void initializeData() {
|
private void initializeData() {
|
||||||
try {
|
try {
|
||||||
Dao<Treatment, Long> dao = MainApp.getDbHelper().getDaoTreatments();
|
Dao<Treatment, Long> dao = MainApp.getDbHelper().getDaoTreatments();
|
||||||
|
|
|
@ -20,10 +20,9 @@ import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import info.nightscout.androidaps.Config;
|
import info.nightscout.androidaps.Config;
|
||||||
import info.nightscout.androidaps.MainActivity;
|
|
||||||
import info.nightscout.androidaps.MainApp;
|
import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.data.Pump;
|
import info.nightscout.androidaps.plugins.Pump;
|
||||||
import info.nightscout.androidaps.data.Result;
|
import info.nightscout.androidaps.data.Result;
|
||||||
import info.nightscout.androidaps.db.TempBasal;
|
import info.nightscout.androidaps.db.TempBasal;
|
||||||
import info.nightscout.androidaps.db.Treatment;
|
import info.nightscout.androidaps.db.Treatment;
|
||||||
|
@ -47,16 +46,43 @@ public class VirtualPumpFragment extends Fragment implements PluginBase, Pump {
|
||||||
TextView batteryView;
|
TextView batteryView;
|
||||||
TextView reservoirView;
|
TextView reservoirView;
|
||||||
|
|
||||||
|
boolean fragmentEnabled = true;
|
||||||
|
boolean fragmentVisible = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getType() {
|
public String getName() {
|
||||||
return PluginBase.PUMP;
|
return MainApp.instance().getString(R.string.virtualpump);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFragmentVisible() {
|
public boolean isEnabled() {
|
||||||
|
return fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVisibleInTabs() {
|
||||||
|
return fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeHidden() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setFragmentEnabled(boolean fragmentEnabled) {
|
||||||
|
this.fragmentEnabled = fragmentEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setFragmentVisible(boolean fragmentVisible) {
|
||||||
|
this.fragmentVisible = fragmentVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return PluginBase.PUMP;
|
||||||
|
}
|
||||||
|
|
||||||
public static VirtualPumpFragment newInstance() {
|
public static VirtualPumpFragment newInstance() {
|
||||||
VirtualPumpFragment fragment = new VirtualPumpFragment();
|
VirtualPumpFragment fragment = new VirtualPumpFragment();
|
||||||
return fragment;
|
return fragment;
|
||||||
|
@ -128,7 +154,7 @@ public class VirtualPumpFragment extends Fragment implements PluginBase, Pump {
|
||||||
tempBasal = null;
|
tempBasal = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isExtendedBoluslInProgress()) {
|
if (isExtendedBoluslInProgress()) {
|
||||||
long plannedTimeEnd = extendedBolus.getPlannedTimeEnd().getTime();
|
long plannedTimeEnd = extendedBolus.getPlannedTimeEnd().getTime();
|
||||||
if (plannedTimeEnd < now) {
|
if (plannedTimeEnd < now) {
|
||||||
extendedBolus.timeEnd = new Date(plannedTimeEnd);
|
extendedBolus.timeEnd = new Date(plannedTimeEnd);
|
||||||
|
@ -344,7 +370,7 @@ public class VirtualPumpFragment extends Fragment implements PluginBase, Pump {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getJSONStatus(){
|
public JSONObject getJSONStatus() {
|
||||||
JSONObject pump = new JSONObject();
|
JSONObject pump = new JSONObject();
|
||||||
JSONObject battery = new JSONObject();
|
JSONObject battery = new JSONObject();
|
||||||
JSONObject status = new JSONObject();
|
JSONObject status = new JSONObject();
|
||||||
|
|
|
@ -1,58 +1,69 @@
|
||||||
package info.nightscout.androidaps.tabs;
|
package info.nightscout.androidaps.tabs;
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.PluralsRes;
|
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.app.FragmentPagerAdapter;
|
import android.support.v4.app.FragmentStatePagerAdapter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import info.nightscout.androidaps.plugins.PluginBase;
|
import info.nightscout.androidaps.plugins.PluginBase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mike on 30.05.2016.
|
* Created by mike on 30.05.2016.
|
||||||
*/
|
*/
|
||||||
public class TabPageAdapter extends FragmentPagerAdapter {
|
public class TabPageAdapter extends FragmentStatePagerAdapter {
|
||||||
|
|
||||||
int registeredTabs = 0;
|
ArrayList<PluginBase> fragmentList = new ArrayList<PluginBase>();
|
||||||
List<Fragment> fragmentList = new ArrayList<Fragment>();
|
ArrayList<PluginBase> visibleFragmentList = new ArrayList<PluginBase>();
|
||||||
|
|
||||||
|
FragmentManager fm;
|
||||||
|
|
||||||
public TabPageAdapter(FragmentManager fm) {
|
public TabPageAdapter(FragmentManager fm) {
|
||||||
super(fm);
|
super(fm);
|
||||||
|
this.fm = fm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
if (position > registeredTabs)
|
Fragment fragment = (Fragment) visibleFragmentList.get(position);
|
||||||
return null;
|
|
||||||
Fragment fragment = fragmentList.get(position);
|
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CharSequence getPageTitle(int position) {
|
public CharSequence getPageTitle(int position) {
|
||||||
return fragmentList.get(position).getArguments().getString("name");
|
return visibleFragmentList.get(position).getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return registeredTabs;
|
return visibleFragmentList.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int registerNewFragment(String name, Fragment fragment) {
|
public void registerNewFragment(Fragment fragment) {
|
||||||
if (((PluginBase) fragment).isFragmentVisible()){
|
PluginBase plugin = (PluginBase) fragment;
|
||||||
fragmentList.add(fragment);
|
fragmentList.add(plugin);
|
||||||
Bundle args = new Bundle();
|
if (plugin.isVisibleInTabs()) {
|
||||||
args.putString("name", name);
|
visibleFragmentList.add(plugin);
|
||||||
fragment.setArguments(args);
|
|
||||||
registeredTabs++;
|
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
return registeredTabs - 1;
|
|
||||||
}
|
}
|
||||||
return registeredTabs;
|
}
|
||||||
|
|
||||||
|
public ArrayList<PluginBase> getPluginsList() {
|
||||||
|
return fragmentList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<PluginBase> getSpecificPluginsList(int type) {
|
||||||
|
ArrayList<PluginBase> newList = new ArrayList<PluginBase>();
|
||||||
|
|
||||||
|
Iterator<PluginBase> it = fragmentList.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
PluginBase p = it.next();
|
||||||
|
if (p.getType() == type)
|
||||||
|
newList.add(p);
|
||||||
|
}
|
||||||
|
return newList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
89
app/src/main/res/layout/configbuilder_fragment.xml
Normal file
89
app/src/main/res/layout/configbuilder_fragment.xml
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context="info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment">
|
||||||
|
|
||||||
|
<!-- TODO: Update blank fragment layout -->
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configbuilder_pump"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/configbuilder_pumplistview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="10dp"
|
||||||
|
android:layout_marginRight="10dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configbuilder_treatments"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/configbuilder_treatmentslistview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configbuilder_tempbasals"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/configbuilder_tempslistview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configbuilder_profile"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/configbuilder_profilelistview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configbuilder_aps"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/configbuilder_apslistview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/configbuilder_general"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/configbuilder_generallistview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
49
app/src/main/res/layout/configbuilder_simpleitem.xml
Normal file
49
app/src/main/res/layout/configbuilder_simpleitem.xml
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/configbuilder_simpleitem_checkboxenabled"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:focusable="false"
|
||||||
|
android:focusableInTouchMode="false"
|
||||||
|
android:text="Enabled" />
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/configbuilder_simpleitem_checkboxvisible"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:focusable="false"
|
||||||
|
android:focusableInTouchMode="false"
|
||||||
|
android:text="Visible" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/configbuilder_simpleitem_upimage"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:src="@android:drawable/arrow_up_float" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/configbuilder_simpleitem_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:text="Plugin name"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
|
@ -88,4 +88,20 @@
|
||||||
<string name="avgdelta">Avg. delta:</string>
|
<string name="avgdelta">Avg. delta:</string>
|
||||||
<string name="minago">min ago</string>
|
<string name="minago">min ago</string>
|
||||||
|
|
||||||
|
<string name="configbuilder">Config Builder</string>
|
||||||
|
<string name="lowsuspend">Low Suspend</string>
|
||||||
|
<string name="objectives">Objectives</string>
|
||||||
|
<string name="openapsma">OpenAPS MA</string>
|
||||||
|
<string name="overview">Overview</string>
|
||||||
|
<string name="profileviewer">Profile Viewer</string>
|
||||||
|
<string name="tempbasals">Temp Basals</string>
|
||||||
|
<string name="treatments">Treatments</string>
|
||||||
|
<string name="virtualpump">Virtual Pump</string>
|
||||||
|
<string name="configbuilder_pump">Pump</string>
|
||||||
|
<string name="configbuilder_treatments">Treatments</string>
|
||||||
|
<string name="configbuilder_tempbasals">Temp Basals</string>
|
||||||
|
<string name="configbuilder_profile">Profile</string>
|
||||||
|
<string name="configbuilder_aps">APS</string>
|
||||||
|
<string name="configbuilder_general">General</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue