package com.jopek.lectordecodi.ui.settings; import static com.jopek.lectordecodi.SharedPreferencesManager.getColor; import static com.jopek.lectordecodi.SharedPreferencesManager.getSaveHeight; import static com.jopek.lectordecodi.SharedPreferencesManager.getSaveWidth; import static com.jopek.lectordecodi.SharedPreferencesManager.getWhereSave; import static com.jopek.lectordecodi.SharedPreferencesManager.setColor; import static com.jopek.lectordecodi.SharedPreferencesManager.setSaveHeight; import static com.jopek.lectordecodi.SharedPreferencesManager.setSaveWidth; import static com.jopek.lectordecodi.SharedPreferencesManager.setWhereSave; 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.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import com.jopek.lectordecodi.R; import com.jopek.lectordecodi.databinding.FragmentSettingsBinding; public class SettingsFragment extends Fragment { private SettingsViewModel mViewModel; private FragmentSettingsBinding binding; public static SettingsFragment newInstance() { return new SettingsFragment(); } @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = FragmentSettingsBinding.inflate(inflater, container, false); View root = binding.getRoot(); addListenersForEditText(); binding.etWhereSave.setText(getWhereSave(getActivity())); binding.etSaveWidth.setText(String.valueOf(getSaveWidth(getActivity()))); binding.etSaveHeight.setText(String.valueOf(getSaveHeight(getActivity()))); if (getColor(getActivity()) == R.color.teal_700) binding.radioGroup.check(R.id.radio_teal); else binding.radioGroup.check(R.id.radio_purple); // @style/Theme.LectorDeCodi.AppBarOverlay return root; } private void addListenersForEditText() { binding.etWhereSave.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { setWhereSave(getContext(), String.valueOf(editable)); } }); binding.etSaveWidth.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { if (editable.length() == 0) setSaveWidth(getContext(), 0); else setSaveWidth(getContext(), Integer.parseInt(editable.toString())); } }); binding.etSaveHeight.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { if (editable.length() == 0) setSaveHeight(getContext(), 0); else setSaveHeight(getContext(), Integer.parseInt(editable.toString())); } }); binding.radioGroup.setOnCheckedChangeListener((group, checkedId) -> { if (checkedId == R.id.radio_teal) { getActivity().findViewById(R.id.toolbar).setBackgroundColor(getResources().getColor(R.color.teal_700)); setColor(getActivity(), R.color.teal_700); } else { getActivity().findViewById(R.id.toolbar).setBackgroundColor(getResources().getColor(R.color.purple_200)); setColor(getActivity(), R.color.purple_200); } }); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mViewModel = new ViewModelProvider(this).get(SettingsViewModel.class); // TODO: Use the ViewModel } }