package com.ambergleam.android.photogallery.controller; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; import com.ambergleam.android.photogallery.BaseFragment; import com.ambergleam.android.photogallery.BuildConfig; import com.ambergleam.android.photogallery.R; import com.ambergleam.android.photogallery.dialog.AboutDialogFragment; import com.ambergleam.android.photogallery.dialog.ClearDialogFragment; import com.ambergleam.android.photogallery.dialog.LicensesDialogFragment; import com.ambergleam.android.photogallery.manager.DataManager; import javax.inject.Inject; import butterknife.ButterKnife; import butterknife.Bind; import butterknife.OnClick; public class SettingsFragment extends BaseFragment { private static final int REQUEST_DIALOG_CLEAR = 0; @Inject DataManager mDataManager; @Bind(R.id.fragment_settings_notifications_switch) Switch mNotificationSwitch; @Bind(R.id.fragment_settings_version_text) TextView mVersionTextView; public static SettingsFragment newInstance() { return new SettingsFragment(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_settings, parent, false); ButterKnife.bind(this, view); updateUI(); return view; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_settings, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_settings_clear: displayClearDialogFragment(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != Activity.RESULT_OK) { return; } if (requestCode == REQUEST_DIALOG_CLEAR) { mDataManager.clearAppData(getActivity()); Toast.makeText(getActivity(), getString(R.string.dialog_clear_toast), Toast.LENGTH_SHORT).show(); } } private void updateUI() { mNotificationSwitch.setChecked(PollService.isServiceAlarmOn(getActivity())); mVersionTextView.setText(BuildConfig.VERSION_NAME); } private void displayLicensesDialogFragment() { LicensesDialogFragment dialog = LicensesDialogFragment.newInstance(); dialog.show(getFragmentManager(), LicensesDialogFragment.class.getSimpleName()); } private void displayAboutDialogFragment() { AboutDialogFragment dialog = AboutDialogFragment.newInstance(); dialog.show(getFragmentManager(), AboutDialogFragment.class.getSimpleName()); } private void displayClearDialogFragment() { ClearDialogFragment dialog = ClearDialogFragment.newInstance(); dialog.setTargetFragment(this, REQUEST_DIALOG_CLEAR); dialog.show(getFragmentManager(), ClearDialogFragment.class.getSimpleName()); } @OnClick(R.id.fragment_settings_notifications) public void onClickNotifications() { boolean shouldStartAlarm = !PollService.isServiceAlarmOn(getActivity()); PollService.setServiceAlarm(getActivity(), shouldStartAlarm); updateUI(); } @OnClick(R.id.fragment_settings_licenses) public void onClickLicenses() { displayLicensesDialogFragment(); } @OnClick(R.id.fragment_settings_about) public void onClickAbout() { displayAboutDialogFragment(); } }