/* * This source is part of the * _____ ___ ____ * __ / / _ \/ _ | / __/___ _______ _ * / // / , _/ __ |/ _/_/ _ \/ __/ _ `/ * \___/_/|_/_/ |_/_/ (_)___/_/ \_, / * /___/ * repository. * * Copyright (C) 2015 Carmen Alvarez (c@rmen.ca) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package ca.rmen.android.networkmonitor.app.dbops.ui; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.preference.ListPreference; import android.support.v7.preference.Preference; import android.view.View; import android.widget.TextView; import ca.rmen.android.networkmonitor.Constants; import ca.rmen.android.networkmonitor.R; import ca.rmen.android.networkmonitor.app.dbops.backend.DBOpIntentService; import ca.rmen.android.networkmonitor.app.prefs.FilterColumnActivity; import ca.rmen.android.networkmonitor.app.prefs.NetMonPreferenceFragmentCompat; import ca.rmen.android.networkmonitor.app.prefs.NetMonPreferences; import ca.rmen.android.networkmonitor.provider.NetMonColumns; import ca.rmen.android.networkmonitor.util.Log; public class GnuplotSettingsActivity extends AppCompatActivity { private static final String TAG = Constants.TAG + GnuplotSettingsActivity.class.getSimpleName(); private static final String PREF_EXPORT_GNUPLOT_SERIES_FILTER = "PREF_EXPORT_GNUPLOT_SERIES_FILTER"; private Preference mFilterPreference; private ListPreference mSeriesPref; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.v(TAG, "onCreate"); setContentView(R.layout.gnuplot_settings); NetMonPreferenceFragmentCompat prefFragment = NetMonPreferenceFragmentCompat.newInstance(R.xml.export_gnuplot_preferences); getSupportFragmentManager(). beginTransaction(). replace(R.id.preference_fragment, prefFragment). commit(); getSupportFragmentManager().executePendingTransactions(); ((TextView) findViewById(R.id.ok)).setText(R.string.export); mSeriesPref = (ListPreference) prefFragment.findPreference(NetMonPreferences.PREF_EXPORT_GNUPLOT_SERIES); ListPreference yAxisPref = (ListPreference) prefFragment.findPreference(NetMonPreferences.PREF_EXPORT_GNUPLOT_Y_AXIS); mFilterPreference = prefFragment.findPreference(PREF_EXPORT_GNUPLOT_SERIES_FILTER); mFilterPreference.setOnPreferenceClickListener(mOnPreferenceClickListener); mSeriesPref.setOnPreferenceChangeListener(mOnPreferenceChangeListener); updateColumnLabels(mSeriesPref); updateColumnLabels(yAxisPref); updateFilterPreferenceTitle(mSeriesPref.getValue()); } private void updateColumnLabels(ListPreference listPreference) { CharSequence[] entryValues = listPreference.getEntryValues(); CharSequence[] entries = NetMonColumns.getColumnLabels(this, entryValues); listPreference.setEntries(entries); } private void updateFilterPreferenceTitle(String seriesColumnName) { String seriesColumnLabel = NetMonColumns.getColumnLabel(this, seriesColumnName); mFilterPreference.setTitle(getString(R.string.export_gnuplot_series_filter_title, seriesColumnLabel)); } public void onOk(@SuppressWarnings("UnusedParameters") View view) { DBOpIntentService.startActionExport(this, DBOpIntentService.ExportFormat.GNUPLOT); finish(); } public void onCancel(@SuppressWarnings("UnusedParameters") View view) { finish(); } private final Preference.OnPreferenceClickListener mOnPreferenceClickListener = new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent intent = new Intent(GnuplotSettingsActivity.this, FilterColumnActivity.class); intent.putExtra(FilterColumnActivity.EXTRA_COLUMN_NAME, mSeriesPref.getValue()); startActivity(intent); return true; } }; private final Preference.OnPreferenceChangeListener mOnPreferenceChangeListener = (preference, newValue) -> { updateFilterPreferenceTitle((String) newValue); return true; }; }