package com.airlocksoftware.hackernews.activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import com.airlocksoftware.hackernews.R; import com.airlocksoftware.hackernews.data.UserPrefs; import com.airlocksoftware.holo.utils.ViewUtils; public class SettingsActivity extends SlideoutMenuActivity { private boolean mOpenInBrowser; private boolean mSubmitBugReports; private boolean mCompressData; private View mBrowserButton; private View mBugReportsButton; private View mCompressDataButton; private UserPrefs mUserPrefs; private OnClickListener mBrowserListener = new OnClickListener() { @Override public void onClick(View v) { mOpenInBrowser = !mOpenInBrowser; mUserPrefs.saveOpenInBrowser(mOpenInBrowser); notifyDataSetChanged(); } }; private OnClickListener mBugReportsListener = new OnClickListener() { @Override public void onClick(View v) { mSubmitBugReports = !mSubmitBugReports; mUserPrefs.saveBugsenseEnabled(mSubmitBugReports); notifyDataSetChanged(); } }; private OnClickListener mCompressDataListener = new OnClickListener() { @Override public void onClick(View v) { mCompressData = !mCompressData; mUserPrefs.saveCompressData(mCompressData); notifyDataSetChanged(); } }; @Override public void onCreate(Bundle savedState) { super.onCreate(savedState); setContentView(R.layout.act_settings); ViewUtils.fixBackgroundRepeat(findViewById(R.id.scrollview)); findAndBindViews(); retrieveUserPrefs(); notifyDataSetChanged(); setupActionBar(); } private void setupActionBar() { getActionBarView().getController().setTitleText(getString(R.string.settings)); setActiveMenuItem(R.id.settings_button); } private void retrieveUserPrefs() { mUserPrefs = new UserPrefs(this); mOpenInBrowser = mUserPrefs.getOpenInBrowser(); mSubmitBugReports = mUserPrefs.getBugsenseEnabled(); mCompressData = mUserPrefs.getCompressData(); } private void findAndBindViews() { mBrowserButton = findViewById(R.id.btn_browser); mBugReportsButton = findViewById(R.id.btn_bug_reports); mCompressDataButton = findViewById(R.id.btn_compress_data); mBrowserButton.setOnClickListener(mBrowserListener); mBugReportsButton.setOnClickListener(mBugReportsListener); mCompressDataButton.setOnClickListener(mCompressDataListener); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } private void notifyDataSetChanged() { ImageView browserCheckbox = (ImageView) mBrowserButton.findViewById(R.id.img_checkbox_browser); if (mOpenInBrowser) browserCheckbox.setImageResource(R.drawable.chkbox_chkd_dark); else browserCheckbox.setImageResource(R.drawable.chkbox_default_dark); ImageView bugReportCheckbox = (ImageView) mBugReportsButton.findViewById(R.id.img_checkbox_bug_reports); if (mSubmitBugReports) bugReportCheckbox.setImageResource(R.drawable.chkbox_chkd_dark); else bugReportCheckbox.setImageResource(R.drawable.chkbox_default_dark); ImageView compressDataCheckbox = (ImageView) mCompressDataButton.findViewById(R.id.img_checkbox_compress_data); if (mCompressData) compressDataCheckbox.setImageResource(R.drawable.chkbox_chkd_dark); else compressDataCheckbox.setImageResource(R.drawable.chkbox_default_dark); } }