package treehou.se.habit.ui.settings.subsettings;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import com.f2prateek.rx.preferences.Preference;
import com.jakewharton.rxbinding.widget.RxCompoundButton;
import com.trello.rxlifecycle.RxLifecycle;
import com.trello.rxlifecycle.components.support.RxFragment;
import javax.inject.Inject;
import rx.android.schedulers.AndroidSchedulers;
import treehou.se.habit.HabitApplication;
import treehou.se.habit.R;
import treehou.se.habit.util.Settings;
public class GeneralSettingsFragment extends RxFragment {
@Inject Settings settings;
public static GeneralSettingsFragment newInstance() {
GeneralSettingsFragment fragment = new GeneralSettingsFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
public GeneralSettingsFragment() {
// Required empty public constructor
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getApplicationComponent().inject(this);
}
protected HabitApplication.ApplicationComponent getApplicationComponent() {
return ((HabitApplication) getContext().getApplicationContext()).component();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_settings_general, container, false);
CheckBox cbxAutoLoadSitemap = (CheckBox) rootView.findViewById(R.id.cbx_open_last_sitemap);
ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if(actionBar != null) {
actionBar.setTitle(R.string.settings_general);
}
Preference<Boolean> settingsAutoloadSitemapRx = settings.getAutoloadSitemapRx();
settingsAutoloadSitemapRx.asObservable()
.compose(RxLifecycle.bindFragment(this.lifecycle()))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(RxCompoundButton.checked(cbxAutoLoadSitemap));
RxCompoundButton.checkedChanges(cbxAutoLoadSitemap)
.compose(RxLifecycle.bindFragment(this.lifecycle()))
.skip(1)
.subscribe(settingsAutoloadSitemapRx.asAction());
// Inflate the layout for this fragment
return rootView;
}
}