LocalProfileFragment -> kotlin
This commit is contained in:
parent
8d5fbeb66d
commit
c8c830f51c
2 changed files with 169 additions and 212 deletions
|
@ -1,212 +0,0 @@
|
||||||
package info.nightscout.androidaps.plugins.profile.local;
|
|
||||||
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.Editable;
|
|
||||||
import android.text.TextWatcher;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.RadioButton;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
|
|
||||||
import info.nightscout.androidaps.MainApp;
|
|
||||||
import info.nightscout.androidaps.R;
|
|
||||||
import info.nightscout.androidaps.data.ProfileStore;
|
|
||||||
import info.nightscout.androidaps.events.EventInitializationChanged;
|
|
||||||
import info.nightscout.androidaps.interfaces.PumpDescription;
|
|
||||||
import info.nightscout.androidaps.plugins.bus.RxBus;
|
|
||||||
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
|
|
||||||
import info.nightscout.androidaps.plugins.general.careportal.CareportalFragment;
|
|
||||||
import info.nightscout.androidaps.plugins.general.careportal.Dialogs.NewNSTreatmentDialog;
|
|
||||||
import info.nightscout.androidaps.plugins.general.careportal.OptionsToShow;
|
|
||||||
import info.nightscout.androidaps.utils.DecimalFormatter;
|
|
||||||
import info.nightscout.androidaps.utils.FabricPrivacy;
|
|
||||||
import info.nightscout.androidaps.utils.NumberPicker;
|
|
||||||
import info.nightscout.androidaps.utils.SafeParse;
|
|
||||||
import info.nightscout.androidaps.utils.TimeListEdit;
|
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
|
||||||
|
|
||||||
import static info.nightscout.androidaps.plugins.insulin.InsulinOrefBasePlugin.MIN_DIA;
|
|
||||||
|
|
||||||
public class LocalProfileFragment extends Fragment {
|
|
||||||
private CompositeDisposable disposable = new CompositeDisposable();
|
|
||||||
|
|
||||||
private NumberPicker diaView;
|
|
||||||
private RadioButton mgdlView;
|
|
||||||
private RadioButton mmolView;
|
|
||||||
private TimeListEdit basalView;
|
|
||||||
private Button profileswitchButton;
|
|
||||||
private Button resetButton;
|
|
||||||
private Button saveButton;
|
|
||||||
|
|
||||||
private TextView invalidProfile;
|
|
||||||
|
|
||||||
private Runnable save = () -> {
|
|
||||||
doEdit();
|
|
||||||
if (basalView != null) {
|
|
||||||
basalView.updateLabel(MainApp.gs(R.string.nsprofileview_basal_label) + ": " + getSumLabel());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private TextWatcher textWatch = new TextWatcher() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void afterTextChanged(Editable s) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void beforeTextChanged(CharSequence s, int start,
|
|
||||||
int count, int after) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTextChanged(CharSequence s, int start,
|
|
||||||
int before, int count) {
|
|
||||||
LocalProfilePlugin.getPlugin().dia = SafeParse.stringToDouble(diaView.getText().toString());
|
|
||||||
doEdit();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
||||||
Bundle savedInstanceState) {
|
|
||||||
PumpDescription pumpDescription = ConfigBuilderPlugin.getPlugin().getActivePump().getPumpDescription();
|
|
||||||
View layout = inflater.inflate(R.layout.localprofile_fragment, container, false);
|
|
||||||
diaView = layout.findViewById(R.id.localprofile_dia);
|
|
||||||
diaView.setParams(LocalProfilePlugin.getPlugin().dia, MIN_DIA, 12d, 0.1d, new DecimalFormat("0.0"), false, layout.findViewById(R.id.localprofile_save), textWatch);
|
|
||||||
mgdlView = layout.findViewById(R.id.localprofile_mgdl);
|
|
||||||
mmolView = layout.findViewById(R.id.localprofile_mmol);
|
|
||||||
new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.gs(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50d, 0.1d, new DecimalFormat("0.0"), save);
|
|
||||||
new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.gs(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500d, 0.1d, new DecimalFormat("0.0"), save);
|
|
||||||
basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.gs(R.string.nsprofileview_basal_label) + ": " + getSumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10, 0.01d, new DecimalFormat("0.00"), save);
|
|
||||||
new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.gs(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3d, 200, 0.1d, new DecimalFormat("0.0"), save);
|
|
||||||
profileswitchButton = layout.findViewById(R.id.localprofile_profileswitch);
|
|
||||||
resetButton = layout.findViewById(R.id.localprofile_reset);
|
|
||||||
saveButton = layout.findViewById(R.id.localprofile_save);
|
|
||||||
|
|
||||||
|
|
||||||
invalidProfile = layout.findViewById(R.id.invalidprofile);
|
|
||||||
|
|
||||||
if (!ConfigBuilderPlugin.getPlugin().getActivePump().getPumpDescription().isTempBasalCapable) {
|
|
||||||
layout.findViewById(R.id.localprofile_basal).setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
mgdlView.setChecked(LocalProfilePlugin.getPlugin().mgdl);
|
|
||||||
mmolView.setChecked(LocalProfilePlugin.getPlugin().mmol);
|
|
||||||
|
|
||||||
mgdlView.setOnClickListener(v -> {
|
|
||||||
LocalProfilePlugin.getPlugin().mgdl = mgdlView.isChecked();
|
|
||||||
LocalProfilePlugin.getPlugin().mmol = !LocalProfilePlugin.getPlugin().mgdl;
|
|
||||||
mmolView.setChecked(LocalProfilePlugin.getPlugin().mmol);
|
|
||||||
doEdit();
|
|
||||||
});
|
|
||||||
mmolView.setOnClickListener(v -> {
|
|
||||||
LocalProfilePlugin.getPlugin().mmol = mmolView.isChecked();
|
|
||||||
LocalProfilePlugin.getPlugin().mgdl = !LocalProfilePlugin.getPlugin().mmol;
|
|
||||||
mgdlView.setChecked(LocalProfilePlugin.getPlugin().mgdl);
|
|
||||||
doEdit();
|
|
||||||
});
|
|
||||||
|
|
||||||
profileswitchButton.setOnClickListener(view -> {
|
|
||||||
NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog();
|
|
||||||
final OptionsToShow profileswitch = CareportalFragment.PROFILESWITCHDIRECT;
|
|
||||||
profileswitch.executeProfileSwitch = true;
|
|
||||||
newDialog.setOptions(profileswitch, R.string.careportal_profileswitch);
|
|
||||||
newDialog.show(getFragmentManager(), "NewNSTreatmentDialog");
|
|
||||||
});
|
|
||||||
|
|
||||||
resetButton.setOnClickListener(view -> {
|
|
||||||
LocalProfilePlugin.getPlugin().loadSettings();
|
|
||||||
mgdlView.setChecked(LocalProfilePlugin.getPlugin().mgdl);
|
|
||||||
mmolView.setChecked(LocalProfilePlugin.getPlugin().mmol);
|
|
||||||
diaView.setParams(LocalProfilePlugin.getPlugin().dia, MIN_DIA, 12d, 0.1d, new DecimalFormat("0.0"), false, view.findViewById(R.id.localprofile_save), textWatch);
|
|
||||||
new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.gs(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50d, 0.1d, new DecimalFormat("0.0"), save);
|
|
||||||
new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.gs(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500d, 0.1d, new DecimalFormat("0.0"), save);
|
|
||||||
basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.gs(R.string.nsprofileview_basal_label) + ": " + getSumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10, 0.01d, new DecimalFormat("0.00"), save);
|
|
||||||
new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.gs(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3d, 200, 0.1d, new DecimalFormat("0.0"), save);
|
|
||||||
updateGUI();
|
|
||||||
});
|
|
||||||
|
|
||||||
saveButton.setOnClickListener(view -> {
|
|
||||||
if (!LocalProfilePlugin.getPlugin().isValidEditState()) {
|
|
||||||
return; //Should not happen as saveButton should not be visible if not valid
|
|
||||||
}
|
|
||||||
LocalProfilePlugin.getPlugin().storeSettings();
|
|
||||||
updateGUI();
|
|
||||||
});
|
|
||||||
|
|
||||||
return layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public synchronized void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
disposable.add(RxBus.INSTANCE
|
|
||||||
.toObservable(EventInitializationChanged.class)
|
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
|
||||||
.subscribe(event -> updateGUI(), FabricPrivacy::logException)
|
|
||||||
);
|
|
||||||
updateGUI();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public synchronized void onPause() {
|
|
||||||
super.onPause();
|
|
||||||
disposable.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void doEdit() {
|
|
||||||
LocalProfilePlugin.getPlugin().setEdited(true);
|
|
||||||
updateGUI();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public String getSumLabel() {
|
|
||||||
ProfileStore profile = LocalProfilePlugin.getPlugin().createProfileStore();
|
|
||||||
if (profile != null)
|
|
||||||
return " ∑" + DecimalFormatter.to2Decimal(profile.getDefaultProfile().baseBasalSum()) + MainApp.gs(R.string.insulin_unit_shortname);
|
|
||||||
else
|
|
||||||
return MainApp.gs(R.string.localprofile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void updateGUI() {
|
|
||||||
Activity activity = getActivity();
|
|
||||||
if (activity != null)
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
boolean isValid = LocalProfilePlugin.getPlugin().isValidEditState();
|
|
||||||
boolean isEdited = LocalProfilePlugin.getPlugin().isEdited();
|
|
||||||
if (isValid) {
|
|
||||||
invalidProfile.setVisibility(View.GONE); //show invalid profile
|
|
||||||
|
|
||||||
if (isEdited) {
|
|
||||||
//edited profile -> save first
|
|
||||||
profileswitchButton.setVisibility(View.GONE);
|
|
||||||
saveButton.setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
profileswitchButton.setVisibility(View.VISIBLE);
|
|
||||||
saveButton.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
invalidProfile.setVisibility(View.VISIBLE);
|
|
||||||
profileswitchButton.setVisibility(View.GONE);
|
|
||||||
saveButton.setVisibility(View.GONE); //don't save an invalid profile
|
|
||||||
}
|
|
||||||
|
|
||||||
//Show reset button iff data was edited
|
|
||||||
if (isEdited) {
|
|
||||||
resetButton.setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
resetButton.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,169 @@
|
||||||
|
package info.nightscout.androidaps.plugins.profile.local
|
||||||
|
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.text.Editable
|
||||||
|
import android.text.TextWatcher
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import info.nightscout.androidaps.MainApp
|
||||||
|
import info.nightscout.androidaps.R
|
||||||
|
import info.nightscout.androidaps.events.EventInitializationChanged
|
||||||
|
import info.nightscout.androidaps.interfaces.PumpDescription
|
||||||
|
import info.nightscout.androidaps.plugins.bus.RxBus
|
||||||
|
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
|
||||||
|
import info.nightscout.androidaps.plugins.general.careportal.CareportalFragment
|
||||||
|
import info.nightscout.androidaps.plugins.general.careportal.Dialogs.NewNSTreatmentDialog
|
||||||
|
import info.nightscout.androidaps.plugins.insulin.InsulinOrefBasePlugin.MIN_DIA
|
||||||
|
import info.nightscout.androidaps.utils.DecimalFormatter
|
||||||
|
import info.nightscout.androidaps.utils.FabricPrivacy
|
||||||
|
import info.nightscout.androidaps.utils.SafeParse
|
||||||
|
import info.nightscout.androidaps.utils.TimeListEdit
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
|
import io.reactivex.disposables.CompositeDisposable
|
||||||
|
import kotlinx.android.synthetic.main.localprofile_fragment.*
|
||||||
|
import java.text.DecimalFormat
|
||||||
|
|
||||||
|
class LocalProfileFragment : Fragment() {
|
||||||
|
private var disposable: CompositeDisposable = CompositeDisposable()
|
||||||
|
|
||||||
|
private var basalView: TimeListEdit? = null
|
||||||
|
|
||||||
|
private val save = Runnable {
|
||||||
|
doEdit()
|
||||||
|
basalView?.updateLabel(MainApp.gs(R.string.nsprofileview_basal_label) + ": " + sumLabel())
|
||||||
|
}
|
||||||
|
|
||||||
|
private val textWatch = object : TextWatcher {
|
||||||
|
override fun afterTextChanged(s: Editable) {}
|
||||||
|
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||||
|
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
||||||
|
LocalProfilePlugin.getPlugin().dia = SafeParse.stringToDouble(localprofile_dia.text.toString())
|
||||||
|
doEdit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun sumLabel(): String {
|
||||||
|
val profile = LocalProfilePlugin.getPlugin().createProfileStore().defaultProfile
|
||||||
|
val sum = profile?.baseBasalSum() ?: 0.0
|
||||||
|
return " ∑" + DecimalFormatter.to2Decimal(sum) + MainApp.gs(R.string.insulin_unit_shortname)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?): View? {
|
||||||
|
return inflater.inflate(R.layout.localprofile_fragment, container, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
val pumpDescription = ConfigBuilderPlugin.getPlugin().activePump?.pumpDescription ?: return
|
||||||
|
|
||||||
|
localprofile_dia.setParams(LocalProfilePlugin.getPlugin().dia, MIN_DIA, 12.0, 0.1, DecimalFormat("0.0"), false, localprofile_save, textWatch)
|
||||||
|
TimeListEdit(context, view, R.id.localprofile_ic, MainApp.gs(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50.0, 0.1, DecimalFormat("0.0"), save)
|
||||||
|
TimeListEdit(context, view, R.id.localprofile_isf, MainApp.gs(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500.0, 0.1, DecimalFormat("0.0"), save)
|
||||||
|
basalView = TimeListEdit(context, view, R.id.localprofile_basal, MainApp.gs(R.string.nsprofileview_basal_label) + ": " + sumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10.0, 0.01, DecimalFormat("0.00"), save)
|
||||||
|
TimeListEdit(context, view, R.id.localprofile_target, MainApp.gs(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3.0, 200.0, 0.1, DecimalFormat("0.0"), save)
|
||||||
|
|
||||||
|
|
||||||
|
if (!pumpDescription.isTempBasalCapable) {
|
||||||
|
localprofile_basal.visibility = View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
|
localprofile_mgdl.isChecked = LocalProfilePlugin.getPlugin().mgdl
|
||||||
|
localprofile_mmol.isChecked = LocalProfilePlugin.getPlugin().mmol
|
||||||
|
|
||||||
|
localprofile_mgdl.setOnClickListener {
|
||||||
|
LocalProfilePlugin.getPlugin().mgdl = localprofile_mgdl.isChecked
|
||||||
|
LocalProfilePlugin.getPlugin().mmol = !LocalProfilePlugin.getPlugin().mgdl
|
||||||
|
localprofile_mmol.isChecked = LocalProfilePlugin.getPlugin().mmol
|
||||||
|
doEdit()
|
||||||
|
}
|
||||||
|
localprofile_mmol.setOnClickListener {
|
||||||
|
LocalProfilePlugin.getPlugin().mmol = localprofile_mmol.isChecked
|
||||||
|
LocalProfilePlugin.getPlugin().mgdl = !LocalProfilePlugin.getPlugin().mmol
|
||||||
|
localprofile_mgdl.isChecked = LocalProfilePlugin.getPlugin().mgdl
|
||||||
|
doEdit()
|
||||||
|
}
|
||||||
|
|
||||||
|
localprofile_profileswitch.setOnClickListener {
|
||||||
|
val newDialog = NewNSTreatmentDialog()
|
||||||
|
val profileSwitch = CareportalFragment.PROFILESWITCHDIRECT
|
||||||
|
profileSwitch.executeProfileSwitch = true
|
||||||
|
newDialog.setOptions(profileSwitch, R.string.careportal_profileswitch)
|
||||||
|
fragmentManager?.let { newDialog.show(it, "NewNSTreatmentDialog") }
|
||||||
|
}
|
||||||
|
|
||||||
|
localprofile_reset.setOnClickListener {
|
||||||
|
LocalProfilePlugin.getPlugin().loadSettings()
|
||||||
|
localprofile_mgdl.isChecked = LocalProfilePlugin.getPlugin().mgdl
|
||||||
|
localprofile_mmol.isChecked = LocalProfilePlugin.getPlugin().mmol
|
||||||
|
localprofile_dia.setParams(LocalProfilePlugin.getPlugin().dia, MIN_DIA, 12.0, 0.1, DecimalFormat("0.0"), false, localprofile_save, textWatch)
|
||||||
|
TimeListEdit(context, view, R.id.localprofile_ic, MainApp.gs(R.string.nsprofileview_ic_label) + ":", LocalProfilePlugin.getPlugin().ic, null, 0.5, 50.0, 0.1, DecimalFormat("0.0"), save)
|
||||||
|
TimeListEdit(context, view, R.id.localprofile_isf, MainApp.gs(R.string.nsprofileview_isf_label) + ":", LocalProfilePlugin.getPlugin().isf, null, 0.5, 500.0, 0.1, DecimalFormat("0.0"), save)
|
||||||
|
basalView = TimeListEdit(context, view, R.id.localprofile_basal, MainApp.gs(R.string.nsprofileview_basal_label) + ": " + sumLabel(), LocalProfilePlugin.getPlugin().basal, null, pumpDescription.basalMinimumRate, 10.0, 0.01, DecimalFormat("0.00"), save)
|
||||||
|
TimeListEdit(context, view, R.id.localprofile_target, MainApp.gs(R.string.nsprofileview_target_label) + ":", LocalProfilePlugin.getPlugin().targetLow, LocalProfilePlugin.getPlugin().targetHigh, 3.0, 200.0, 0.1, DecimalFormat("0.0"), save)
|
||||||
|
updateGUI()
|
||||||
|
}
|
||||||
|
|
||||||
|
localprofile_save.setOnClickListener {
|
||||||
|
if (!LocalProfilePlugin.getPlugin().isValidEditState) {
|
||||||
|
return@setOnClickListener //Should not happen as saveButton should not be visible if not valid
|
||||||
|
}
|
||||||
|
LocalProfilePlugin.getPlugin().storeSettings()
|
||||||
|
updateGUI()
|
||||||
|
}
|
||||||
|
updateGUI()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Synchronized
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
disposable.add(RxBus
|
||||||
|
.toObservable(EventInitializationChanged::class.java)
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe({ updateGUI() }, { FabricPrivacy.logException(it) })
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Synchronized
|
||||||
|
override fun onPause() {
|
||||||
|
super.onPause()
|
||||||
|
disposable.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun doEdit() {
|
||||||
|
LocalProfilePlugin.getPlugin().isEdited = true
|
||||||
|
updateGUI()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun updateGUI() {
|
||||||
|
if (invalidprofile == null) return
|
||||||
|
val isValid = LocalProfilePlugin.getPlugin().isValidEditState
|
||||||
|
val isEdited = LocalProfilePlugin.getPlugin().isEdited
|
||||||
|
if (isValid) {
|
||||||
|
invalidprofile.visibility = View.GONE //show invalid profile
|
||||||
|
|
||||||
|
if (isEdited) {
|
||||||
|
//edited profile -> save first
|
||||||
|
localprofile_profileswitch.visibility = View.GONE
|
||||||
|
localprofile_save.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
localprofile_profileswitch.visibility = View.VISIBLE
|
||||||
|
localprofile_save.visibility = View.GONE
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
invalidprofile.visibility = View.VISIBLE
|
||||||
|
localprofile_profileswitch.visibility = View.GONE
|
||||||
|
localprofile_save.visibility = View.GONE //don't save an invalid profile
|
||||||
|
}
|
||||||
|
|
||||||
|
//Show reset button iff data was edited
|
||||||
|
if (isEdited) {
|
||||||
|
localprofile_reset.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
localprofile_reset.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue