Skip to content

Commit 6440ae2

Browse files
committed
Populate spinners with initial data
1 parent 580a18a commit 6440ae2

File tree

3 files changed

+93
-9
lines changed

3 files changed

+93
-9
lines changed

app/src/main/java/protect/videotranscoder/activity/MainActivity.java

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
import android.view.MenuItem;
2525
import android.view.View;
2626
import android.webkit.WebView;
27+
import android.widget.AdapterView;
28+
import android.widget.ArrayAdapter;
29+
import android.widget.Spinner;
30+
import android.widget.SpinnerAdapter;
2731
import android.widget.TextView;
2832
import android.widget.Toast;
2933
import android.widget.VideoView;
@@ -93,6 +97,17 @@ public class MainActivity extends AppCompatActivity
9397
private Timer videoTimer = null;
9498
private ProgressDialog progressDialog;
9599

100+
private Spinner containerSpinner;
101+
private Spinner videoCodecSpinner;
102+
private Spinner fpsSpinner;
103+
private Spinner resolutionSpinner;
104+
private Spinner videoBitrateSpinner;
105+
private Spinner audioCodecSpinner;
106+
private Spinner audioBitrateSpinner;
107+
private Spinner audioSampleRateSpinner;
108+
private Spinner audioChannelSpinner;
109+
110+
96111
private TextView tvLeft, tvRight;
97112
private MediaInfo videoInfo;
98113
private File outputDestination;
@@ -114,6 +129,16 @@ protected void onCreate(Bundle savedInstanceState)
114129
progressDialog.setCancelable(false);
115130
rangeSeekBar.setEnabled(false);
116131

132+
containerSpinner = findViewById(R.id.containerSpinner);
133+
videoCodecSpinner = findViewById(R.id.videoCodecSpinner);
134+
fpsSpinner = findViewById(R.id.fpsSpinner);
135+
resolutionSpinner = findViewById(R.id.resolutionSpinner);
136+
videoBitrateSpinner = findViewById(R.id.videoBitrateSpinner);
137+
audioCodecSpinner = findViewById(R.id.audioCodecSpinner);
138+
audioBitrateSpinner = findViewById(R.id.audioBitrateSpinner);
139+
audioSampleRateSpinner = findViewById(R.id.audioSampleRateSpinner);
140+
audioChannelSpinner = findViewById(R.id.audioChannelSpinner);
141+
117142
FFmpegUtil.init(this, new ResultCallbackHandler<Boolean>()
118143
{
119144
@Override
@@ -290,6 +315,66 @@ private void populateOptionDefaults()
290315
{
291316
findViewById(id).setVisibility(View.VISIBLE);
292317
}
318+
319+
containerSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, MediaContainer.values()));
320+
containerSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
321+
{
322+
@Override
323+
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
324+
{
325+
MediaContainer container = (MediaContainer)parentView.getItemAtPosition(position);
326+
int visibility = container.supportedVideoCodecs.size() > 0 ? View.VISIBLE : View.GONE;
327+
328+
for(int resId : VIDEO_SETTINGS_IDS)
329+
{
330+
findViewById(resId).setVisibility(visibility);
331+
}
332+
333+
videoCodecSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout.spinner_textview, container.supportedVideoCodecs));
334+
audioCodecSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout.spinner_textview, container.supportedAudioCodecs));
335+
}
336+
337+
@Override
338+
public void onNothingSelected(AdapterView<?> parentView)
339+
{
340+
// Nothing to do
341+
}
342+
});
343+
344+
String [] fps = new String [] {"24", "23.98", "25", "29.97", "30", "50"};
345+
fpsSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, fps));
346+
347+
String [] resolution = new String[] {"176x144", "320x240", "480x360", "640x360", "640x480", "800x600", "960x720", "1024x768", "1280x720", "1920x1080", "2048x1080", "2048x858", "2560x1440", "2560x1600", "4096x2160"};
348+
resolutionSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, resolution));
349+
350+
// TODO: Should be a text field, not a spinner
351+
String [] videoBitrate = new String[] {"500"};
352+
videoBitrateSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, videoBitrate));
353+
354+
audioCodecSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
355+
{
356+
@Override
357+
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
358+
{
359+
AudioCodec audioCodec = (AudioCodec) parentView.getItemAtPosition(position);
360+
audioChannelSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout.spinner_textview, audioCodec.supportedChannels));
361+
}
362+
363+
@Override
364+
public void onNothingSelected(AdapterView<?> parentView)
365+
{
366+
// Nothing to do
367+
}
368+
});
369+
370+
String [] audioBitrate = new String[] {"15", "24", "32", "64", "96", "128", "192", "256", "320", "384", "448", "512"};
371+
audioBitrateSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, audioBitrate));
372+
373+
String [] sampleRate = new String[] {"8000", "11025", "16000", "22050", "24000", "32000", "44100", "48000"};
374+
audioSampleRateSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, sampleRate));
375+
376+
String [] channels = new String[] {"1", "2"};
377+
audioChannelSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, channels));
293378
}
294379

295380
@Override

app/src/main/res/layout/activity_main.xml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
android:gravity="end"
104104
android:layout_height="wrap_content"
105105
android:layout_width="match_parent"
106-
android:padding="@dimen/inputPadding"
107106
android:textSize="@dimen/inputSize"
108107
android:drawSelectorOnTop="true" />
109108
</LinearLayout>
@@ -158,7 +157,6 @@
158157
android:gravity="end"
159158
android:layout_height="wrap_content"
160159
android:layout_width="match_parent"
161-
android:padding="@dimen/inputPadding"
162160
android:textSize="@dimen/inputSize"
163161
android:drawSelectorOnTop="true" />
164162
</LinearLayout>
@@ -191,7 +189,6 @@
191189
android:gravity="end"
192190
android:layout_height="wrap_content"
193191
android:layout_width="match_parent"
194-
android:padding="@dimen/inputPadding"
195192
android:textSize="@dimen/inputSize"
196193
android:drawSelectorOnTop="true" />
197194
</LinearLayout>
@@ -224,7 +221,6 @@
224221
android:gravity="end"
225222
android:layout_height="wrap_content"
226223
android:layout_width="match_parent"
227-
android:padding="@dimen/inputPadding"
228224
android:textSize="@dimen/inputSize"
229225
android:drawSelectorOnTop="true" />
230226
</LinearLayout>
@@ -257,7 +253,6 @@
257253
android:gravity="end"
258254
android:layout_height="wrap_content"
259255
android:layout_width="match_parent"
260-
android:padding="@dimen/inputPadding"
261256
android:textSize="@dimen/inputSize"
262257
android:drawSelectorOnTop="true" />
263258
</LinearLayout>
@@ -312,7 +307,6 @@
312307
android:gravity="end"
313308
android:layout_height="wrap_content"
314309
android:layout_width="match_parent"
315-
android:padding="@dimen/inputPadding"
316310
android:textSize="@dimen/inputSize"
317311
android:drawSelectorOnTop="true" />
318312
</LinearLayout>
@@ -345,7 +339,6 @@
345339
android:gravity="end"
346340
android:layout_height="wrap_content"
347341
android:layout_width="match_parent"
348-
android:padding="@dimen/inputPadding"
349342
android:textSize="@dimen/inputSize"
350343
android:drawSelectorOnTop="true" />
351344
</LinearLayout>
@@ -378,7 +371,6 @@
378371
android:gravity="end"
379372
android:layout_height="wrap_content"
380373
android:layout_width="match_parent"
381-
android:padding="@dimen/inputPadding"
382374
android:textSize="@dimen/inputSize"
383375
android:drawSelectorOnTop="true" />
384376
</LinearLayout>
@@ -411,7 +403,6 @@
411403
android:gravity="end"
412404
android:layout_height="wrap_content"
413405
android:layout_width="match_parent"
414-
android:padding="@dimen/inputPadding"
415406
android:textSize="@dimen/inputSize"
416407
android:drawSelectorOnTop="true" />
417408
</LinearLayout>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="fill_parent"
4+
android:layout_height="wrap_content"
5+
android:textSize="@dimen/inputSize"
6+
android:padding="@dimen/inputPadding"
7+
android:gravity="end"
8+
android:id="@+id/text"/>

0 commit comments

Comments
 (0)