11package io .pslab .fragment ;
22
33import android .os .Bundle ;
4+
45import androidx .fragment .app .Fragment ;
56
67import android .view .LayoutInflater ;
1011import android .widget .ArrayAdapter ;
1112import android .widget .CheckBox ;
1213import android .widget .CompoundButton ;
14+ import android .widget .SeekBar ;
1315import android .widget .Spinner ;
16+ import android .widget .TextView ;
1417
1518import io .pslab .R ;
1619import io .pslab .activity .OscilloscopeActivity ;
20+ import io .pslab .others .FloatSeekBar ;
1721
1822public class DataAnalysisFragment extends Fragment {
1923
2024 private Spinner spinnerCurveFit ;
2125 private Spinner spinnerChannelSelect1 ;
2226 private Spinner spinnerChannelSelect2 ;
2327 private CheckBox checkBoxFouierTransform ;
28+ private Spinner spinnerChannelSelectHorizontalOffset ;
29+ private Spinner spinnerChannelSelectVerticalOffset ;
30+ private FloatSeekBar seekBarHorizontalOffset ;
31+ private FloatSeekBar seekBarVerticalOffset ;
32+ private TextView textViewHorizontalOffset ;
33+ private TextView textViewVerticalOffset ;
2434
2535 public static DataAnalysisFragment newInstance () {
2636 return new DataAnalysisFragment ();
@@ -29,13 +39,19 @@ public static DataAnalysisFragment newInstance() {
2939 @ Override
3040 public View onCreateView (LayoutInflater inflater , ViewGroup container ,
3141 Bundle savedInstanceState ) {
32- View v = inflater .inflate (R .layout .fragment_data_analysis , container , false );
42+ View v = inflater .inflate (R .layout .fragment_data_analysis_main , container , false );
3343 String [] curveFits = {"Sine Fit" , "Square Fit" };
3444 String [] channels = {"None" , "CH1" , "CH2" , "CH3" , "MIC" };
3545
3646 spinnerCurveFit = v .findViewById (R .id .spinner_curve_fit_da );
3747 spinnerChannelSelect1 = v .findViewById (R .id .spinner_channel_select_da1 );
3848 spinnerChannelSelect2 = v .findViewById (R .id .spinner_channel_select_da2 );
49+ spinnerChannelSelectHorizontalOffset = v .findViewById (R .id .spinner_channel_select_horizontal_offset );
50+ spinnerChannelSelectVerticalOffset = v .findViewById (R .id .spinner_channel_select_vertical_offset );
51+ seekBarHorizontalOffset = v .findViewById (R .id .seekbar_horizontal_offset );
52+ seekBarVerticalOffset = v .findViewById (R .id .seekbar_vertical_offset );
53+ textViewHorizontalOffset = v .findViewById (R .id .textview_horizontal_offset );
54+ textViewVerticalOffset = v .findViewById (R .id .textview_vertical_offset );
3955 checkBoxFouierTransform = v .findViewById (R .id .checkBox_fourier_da );
4056 boolean tabletSize = getResources ().getBoolean (R .bool .isTablet );
4157 ArrayAdapter <String > curveFitAdapter ;
@@ -55,10 +71,15 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
5571 spinnerCurveFit .setAdapter (curveFitAdapter );
5672 spinnerChannelSelect1 .setAdapter (adapter );
5773 spinnerChannelSelect2 .setAdapter (adapter );
74+ spinnerChannelSelectHorizontalOffset .setAdapter (adapter );
75+ spinnerChannelSelectVerticalOffset .setAdapter (adapter );
5876
5977 spinnerCurveFit .setSelection (curveFitAdapter .getPosition ("Sine Fit" ), true );
6078 spinnerChannelSelect1 .setSelection (adapter .getPosition ("None" ), true );
6179 spinnerChannelSelect2 .setSelection (adapter .getPosition ("None" ), true );
80+ spinnerChannelSelectHorizontalOffset .setSelection (adapter .getPosition ("None" ), true );
81+ spinnerChannelSelectVerticalOffset .setSelection (adapter .getPosition ("None" ), true );
82+
6283 spinnerCurveFit .setOnItemSelectedListener (new AdapterView .OnItemSelectedListener () {
6384 @ Override
6485 public void onItemSelected (AdapterView <?> parent , View view , int position , long id ) {
@@ -101,6 +122,78 @@ public void onNothingSelected(AdapterView<?> parent) {
101122 }
102123 });
103124
125+ spinnerChannelSelectHorizontalOffset .setOnItemSelectedListener (new AdapterView .OnItemSelectedListener () {
126+ @ Override
127+ public void onItemSelected (AdapterView <?> adapterView , View view , int i , long l ) {
128+ if (spinnerChannelSelectHorizontalOffset .getSelectedItem () != "None" ) {
129+ seekBarHorizontalOffset .setValue (((OscilloscopeActivity ) getActivity ()).xOffsets .get (spinnerChannelSelectHorizontalOffset .getSelectedItem ().toString ()));
130+ }
131+ }
132+
133+ @ Override
134+ public void onNothingSelected (AdapterView <?> adapterView ) {
135+ // Do nothing
136+ }
137+ });
138+
139+ spinnerChannelSelectVerticalOffset .setOnItemSelectedListener (new AdapterView .OnItemSelectedListener () {
140+ @ Override
141+ public void onItemSelected (AdapterView <?> adapterView , View view , int i , long l ) {
142+ if (spinnerChannelSelectVerticalOffset .getSelectedItem () != "None" ) {
143+ seekBarVerticalOffset .setValue (((OscilloscopeActivity ) getActivity ()).yOffsets .get (spinnerChannelSelectVerticalOffset .getSelectedItem ().toString ()));
144+ }
145+ }
146+
147+ @ Override
148+ public void onNothingSelected (AdapterView <?> adapterView ) {
149+ // Do nothing
150+ }
151+ });
152+
153+ if (((OscilloscopeActivity ) getActivity ()).xAxisScale == 875 ) {
154+ seekBarHorizontalOffset .setters (0 , ((OscilloscopeActivity ) getActivity ()).xAxisScale / 1000.0 );
155+ } else {
156+ seekBarHorizontalOffset .setters (0 , ((OscilloscopeActivity ) getActivity ()).xAxisScale );
157+ }
158+ seekBarHorizontalOffset .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
159+ @ Override
160+ public void onProgressChanged (SeekBar seekBar , int i , boolean b ) {
161+ textViewHorizontalOffset .setText (String .format ("%sms" , seekBarHorizontalOffset .getValue ()));
162+ ((OscilloscopeActivity ) getActivity ()).xOffsets .put (spinnerChannelSelectHorizontalOffset .getSelectedItem ().toString (), seekBarHorizontalOffset .getValue ());
163+ }
164+
165+ @ Override
166+ public void onStartTrackingTouch (SeekBar seekBar ) {
167+ // Do nothing
168+ }
169+
170+ @ Override
171+ public void onStopTrackingTouch (SeekBar seekBar ) {
172+ // Do nothing
173+ }
174+ });
175+ seekBarHorizontalOffset .setProgress (0 );
176+
177+ seekBarVerticalOffset .setters (-1 * ((OscilloscopeActivity ) getActivity ()).yAxisScale , ((OscilloscopeActivity ) getActivity ()).yAxisScale );
178+ seekBarVerticalOffset .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
179+ @ Override
180+ public void onProgressChanged (SeekBar seekBar , int i , boolean b ) {
181+ textViewVerticalOffset .setText (String .format ("%sV" , seekBarVerticalOffset .getValue ()));
182+ ((OscilloscopeActivity ) getActivity ()).yOffsets .put (spinnerChannelSelectVerticalOffset .getSelectedItem ().toString (), seekBarVerticalOffset .getValue ());
183+ }
184+
185+ @ Override
186+ public void onStartTrackingTouch (SeekBar seekBar ) {
187+ // Do nothing
188+ }
189+
190+ @ Override
191+ public void onStopTrackingTouch (SeekBar seekBar ) {
192+ // Do nothing
193+ }
194+ });
195+ seekBarVerticalOffset .setProgress (50 );
196+
104197 checkBoxFouierTransform .setOnCheckedChangeListener (new CompoundButton .OnCheckedChangeListener () {
105198 @ Override
106199 public void onCheckedChanged (CompoundButton buttonView , boolean isChecked ) {
0 commit comments