BolusActivity -> kt
This commit is contained in:
parent
5ca9390f07
commit
ffdcf9900b
|
@ -1,86 +0,0 @@
|
|||
package info.nightscout.androidaps.interaction.actions;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.wearable.view.GridPagerAdapter;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.events.EventWearToMobile;
|
||||
import info.nightscout.androidaps.interaction.utils.PlusMinusEditText;
|
||||
import info.nightscout.shared.SafeParse;
|
||||
import info.nightscout.shared.weardata.EventData;
|
||||
|
||||
public class BolusActivity extends ViewSelectorActivity {
|
||||
|
||||
PlusMinusEditText editInsulin;
|
||||
double maxBolus;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setAdapter(new MyGridViewPagerAdapter());
|
||||
maxBolus = sp.getDouble(getString(R.string.key_treatmentssafety_maxbolus), 3.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
finish();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private class MyGridViewPagerAdapter extends GridPagerAdapter {
|
||||
@Override
|
||||
public int getColumnCount(int arg0) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRowCount() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object instantiateItem(ViewGroup container, int row, int col) {
|
||||
|
||||
final View view;
|
||||
if (col == 0) {
|
||||
view = getInflatedPlusMinusView(container);
|
||||
double def = 0;
|
||||
if (editInsulin != null) {
|
||||
def = SafeParse.stringToDouble(editInsulin.editText.getText().toString());
|
||||
}
|
||||
editInsulin = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, maxBolus, 0.1d, new DecimalFormat("#0.0"), false);
|
||||
setLabelToPlusMinusView(view, getString(R.string.action_insulin));
|
||||
container.addView(view);
|
||||
view.requestFocus();
|
||||
} else {
|
||||
view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false);
|
||||
final ImageView confirmButton = view.findViewById(R.id.confirmbutton);
|
||||
confirmButton.setOnClickListener((View v) -> {
|
||||
rxBus.send(new EventWearToMobile(new EventData.ActionBolusPreCheck(SafeParse.stringToDouble(editInsulin.editText.getText().toString()), 0)));
|
||||
showToast(BolusActivity.this, R.string.action_bolus_confirmation);
|
||||
finishAffinity();
|
||||
});
|
||||
container.addView(view);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(ViewGroup container, int row, int col, Object view) {
|
||||
container.removeView((View) view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(View view, Object object) {
|
||||
return view == object;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
@file:Suppress("DEPRECATION")
|
||||
|
||||
package info.nightscout.androidaps.interaction.actions
|
||||
|
||||
import android.os.Bundle
|
||||
import android.support.wearable.view.GridPagerAdapter
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.events.EventWearToMobile
|
||||
import info.nightscout.androidaps.interaction.utils.PlusMinusEditText
|
||||
import info.nightscout.shared.SafeParse
|
||||
import info.nightscout.shared.weardata.EventData.ActionBolusPreCheck
|
||||
import java.text.DecimalFormat
|
||||
|
||||
class BolusActivity : ViewSelectorActivity() {
|
||||
|
||||
var editInsulin: PlusMinusEditText? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setAdapter(MyGridViewPagerAdapter())
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
finish()
|
||||
}
|
||||
|
||||
private inner class MyGridViewPagerAdapter : GridPagerAdapter() {
|
||||
|
||||
override fun getColumnCount(arg0: Int): Int = 2
|
||||
override fun getRowCount(): Int = 1
|
||||
|
||||
override fun instantiateItem(container: ViewGroup, row: Int, col: Int): Any {
|
||||
val view: View
|
||||
if (col == 0) {
|
||||
view = getInflatedPlusMinusView(container)
|
||||
val initValue = if (editInsulin != null) SafeParse.stringToDouble(editInsulin?.editText?.text.toString()) else 0.0
|
||||
val maxBolus = sp.getDouble(getString(R.string.key_treatmentssafety_maxbolus), 3.0)
|
||||
editInsulin = PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, initValue, 0.0, maxBolus, 0.1, DecimalFormat("#0.0"), false)
|
||||
setLabelToPlusMinusView(view, getString(R.string.action_insulin))
|
||||
container.addView(view)
|
||||
view.requestFocus()
|
||||
} else {
|
||||
view = LayoutInflater.from(applicationContext).inflate(R.layout.action_send_item, container, false)
|
||||
val confirmButton = view.findViewById<ImageView>(R.id.confirmbutton)
|
||||
confirmButton.setOnClickListener {
|
||||
rxBus.send(EventWearToMobile(ActionBolusPreCheck(SafeParse.stringToDouble(editInsulin?.editText?.text.toString()), 0)))
|
||||
showToast(this@BolusActivity, R.string.action_bolus_confirmation)
|
||||
finishAffinity()
|
||||
}
|
||||
container.addView(view)
|
||||
}
|
||||
return view
|
||||
}
|
||||
|
||||
override fun destroyItem(container: ViewGroup, row: Int, col: Int, view: Any) {
|
||||
container.removeView(view as View)
|
||||
}
|
||||
|
||||
override fun isViewFromObject(view: View, `object`: Any): Boolean = view === `object`
|
||||
}
|
||||
}
|
|
@ -1,112 +0,0 @@
|
|||
package info.nightscout.androidaps.interaction.actions;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.wearable.view.DotsPageIndicator;
|
||||
import android.support.wearable.view.GridPagerAdapter;
|
||||
import android.support.wearable.view.GridViewPager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.wear.widget.CurvedTextView;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import dagger.android.DaggerActivity;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.plugins.bus.RxBus;
|
||||
import info.nightscout.shared.sharedPreferences.SP;
|
||||
|
||||
/**
|
||||
* Created by adrian on 13/02/17.
|
||||
*/
|
||||
|
||||
public class ViewSelectorActivity extends DaggerActivity {
|
||||
|
||||
@Inject SP sp;
|
||||
@Inject RxBus rxBus;
|
||||
|
||||
private GridViewPager pager;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.grid_layout);
|
||||
|
||||
setTitleBasedOnScreenShape();
|
||||
|
||||
pager = findViewById(R.id.pager);
|
||||
DotsPageIndicator dotsPageIndicator = findViewById(R.id.page_indicator);
|
||||
dotsPageIndicator.setPager(pager);
|
||||
pager.setOnPageChangeListener(new GridViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int row, int column, float rowOffset, float columnOffset, int rowOffsetPixels, int columnOffsetPixels) {
|
||||
dotsPageIndicator.onPageScrolled(row, column, rowOffset, columnOffset, rowOffsetPixels,
|
||||
columnOffsetPixels);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int row, int column) {
|
||||
dotsPageIndicator.onPageSelected(row, column);
|
||||
View view = pager.getChildAt(column);
|
||||
view.requestFocus();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
dotsPageIndicator.onPageScrollStateChanged(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setAdapter(GridPagerAdapter adapter) {
|
||||
pager.setAdapter(adapter);
|
||||
}
|
||||
|
||||
private void setTitleBasedOnScreenShape() {
|
||||
// intents can inject dynamic titles, otherwise we'll use the default
|
||||
String title = String.valueOf(getTitle());
|
||||
if (getIntent().getExtras() != null) {
|
||||
title = getIntent().getExtras().getString("title", title);
|
||||
}
|
||||
CurvedTextView titleViewCurved = findViewById(R.id.title_curved);
|
||||
TextView titleView = findViewById(R.id.title);
|
||||
if (this.getResources().getConfiguration().isScreenRound()) {
|
||||
titleViewCurved.setText(title);
|
||||
titleViewCurved.setVisibility(View.VISIBLE);
|
||||
titleView.setVisibility((View.GONE));
|
||||
} else {
|
||||
titleView.setText(title);
|
||||
titleView.setVisibility(View.VISIBLE);
|
||||
titleViewCurved.setVisibility((View.GONE));
|
||||
}
|
||||
}
|
||||
|
||||
View getInflatedPlusMinusView(ViewGroup container) {
|
||||
int design = sp.getInt("input_design", 1);
|
||||
|
||||
if (design == 2) {
|
||||
return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item_quickrighty, container, false);
|
||||
} else if (design == 3) {
|
||||
return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item_quicklefty, container, false);
|
||||
} else if (design == 4) {
|
||||
return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item_viktoria, container, false);
|
||||
}
|
||||
|
||||
//default
|
||||
return LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_editplusminus_item, container, false);
|
||||
}
|
||||
|
||||
void setLabelToPlusMinusView(View view, String labelText) {
|
||||
final TextView textView = view.findViewById(R.id.label);
|
||||
textView.setText(labelText);
|
||||
}
|
||||
|
||||
void showToast(Context context, int text) {
|
||||
Toast.makeText(context, getString(text), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
@file:Suppress("DEPRECATION")
|
||||
|
||||
package info.nightscout.androidaps.interaction.actions
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.support.wearable.view.DotsPageIndicator
|
||||
import android.support.wearable.view.GridPagerAdapter
|
||||
import android.support.wearable.view.GridViewPager
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.wear.widget.CurvedTextView
|
||||
import dagger.android.DaggerActivity
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.plugins.bus.RxBus
|
||||
import info.nightscout.shared.sharedPreferences.SP
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Created by adrian on 13/02/17.
|
||||
*/
|
||||
open class ViewSelectorActivity : DaggerActivity() {
|
||||
|
||||
@Inject lateinit var sp: SP
|
||||
@Inject lateinit var rxBus: RxBus
|
||||
|
||||
private var pager: GridViewPager? = null
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.grid_layout)
|
||||
setTitleBasedOnScreenShape()
|
||||
pager = findViewById(R.id.pager)
|
||||
val dotsPageIndicator: DotsPageIndicator = findViewById(R.id.page_indicator)
|
||||
dotsPageIndicator.setPager(pager)
|
||||
pager?.setOnPageChangeListener(object : GridViewPager.OnPageChangeListener {
|
||||
override fun onPageScrolled(row: Int, column: Int, rowOffset: Float, columnOffset: Float, rowOffsetPixels: Int, columnOffsetPixels: Int) {
|
||||
dotsPageIndicator.onPageScrolled(row, column, rowOffset, columnOffset, rowOffsetPixels, columnOffsetPixels)
|
||||
}
|
||||
|
||||
override fun onPageSelected(row: Int, column: Int) {
|
||||
dotsPageIndicator.onPageSelected(row, column)
|
||||
pager?.getChildAt(column)?.requestFocus()
|
||||
}
|
||||
|
||||
override fun onPageScrollStateChanged(state: Int) {
|
||||
dotsPageIndicator.onPageScrollStateChanged(state)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun setAdapter(adapter: GridPagerAdapter?) {
|
||||
pager?.adapter = adapter
|
||||
}
|
||||
|
||||
private fun setTitleBasedOnScreenShape() {
|
||||
// intents can inject dynamic titles, otherwise we'll use the default
|
||||
var title: String? = this.title.toString()
|
||||
title = intent?.extras?.getString("title", title)
|
||||
val titleViewCurved: CurvedTextView = findViewById(R.id.title_curved)
|
||||
val titleView = findViewById<TextView>(R.id.title)
|
||||
if (this.resources.configuration.isScreenRound) {
|
||||
titleViewCurved.text = title
|
||||
titleViewCurved.visibility = View.VISIBLE
|
||||
titleView.visibility = View.GONE
|
||||
} else {
|
||||
titleView.text = title
|
||||
titleView.visibility = View.VISIBLE
|
||||
titleViewCurved.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
fun getInflatedPlusMinusView(container: ViewGroup?): View =
|
||||
when (sp.getInt("input_design", 1)) {
|
||||
2 -> LayoutInflater.from(applicationContext).inflate(R.layout.action_editplusminus_item_quickrighty, container, false)
|
||||
3 -> LayoutInflater.from(applicationContext).inflate(R.layout.action_editplusminus_item_quicklefty, container, false)
|
||||
4 -> LayoutInflater.from(applicationContext).inflate(R.layout.action_editplusminus_item_viktoria, container, false)
|
||||
else -> LayoutInflater.from(applicationContext).inflate(R.layout.action_editplusminus_item, container, false)
|
||||
}
|
||||
|
||||
fun setLabelToPlusMinusView(view: View, labelText: String?) {
|
||||
val textView = view.findViewById<TextView>(R.id.label)
|
||||
textView.text = labelText
|
||||
}
|
||||
|
||||
fun showToast(context: Context?, text: Int) {
|
||||
Toast.makeText(context, getString(text), Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ import android.os.Bundle
|
|||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.events.EventWearToMobile
|
||||
import info.nightscout.androidaps.interaction.AAPSPreferences
|
||||
import info.nightscout.androidaps.interaction.actions.BolusActivity
|
||||
import info.nightscout.androidaps.interaction.actions.ECarbActivity
|
||||
import info.nightscout.androidaps.interaction.actions.TempTargetActivity
|
||||
import info.nightscout.androidaps.interaction.actions.TreatmentActivity
|
||||
|
@ -31,6 +32,7 @@ class MainMenuActivity : MenuListActivity() {
|
|||
add(MenuItem(R.drawable.ic_calculator, getString(R.string.menu_wizard)))
|
||||
add(MenuItem(R.drawable.ic_e_carbs, getString(R.string.menu_ecarb)))
|
||||
add(MenuItem(R.drawable.ic_treatment, getString(R.string.menu_treatment)))
|
||||
add(MenuItem(R.drawable.ic_bolus, getString(R.string.menu_bolus)))
|
||||
add(MenuItem(R.drawable.ic_temptarget, getString(R.string.menu_tempt)))
|
||||
add(MenuItem(R.drawable.ic_status, getString(R.string.status_cpp)))
|
||||
add(MenuItem(R.drawable.ic_settings, getString(R.string.menu_settings)))
|
||||
|
@ -47,6 +49,7 @@ class MainMenuActivity : MenuListActivity() {
|
|||
getString(R.string.status_cpp) -> rxBus.send(EventWearToMobile(EventData.ActionProfileSwitchSendInitialData(System.currentTimeMillis())))
|
||||
getString(R.string.menu_tempt) -> startActivity(Intent(this, TempTargetActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
getString(R.string.menu_treatment) -> startActivity(Intent(this, TreatmentActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
getString(R.string.menu_bolus) -> startActivity(Intent(this, BolusActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
getString(R.string.menu_wizard) -> startActivity(Intent(this, WizardActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
getString(R.string.menu_status) -> startActivity(Intent(this, StatusMenuActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
getString(R.string.menu_prime_fill) -> startActivity(Intent(this, FillMenuActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
|
|
Loading…
Reference in a new issue