added toggle button for decoder

This commit is contained in:
Ahmet Inan 2015-02-17 16:56:48 +01:00
parent 007dbb0a42
commit 0856b2edcf
4 changed files with 87 additions and 44 deletions

View file

@ -52,6 +52,7 @@ public class MainActivity extends Activity {
private ShareActionProvider share;
private int notifyID = 1;
private boolean enableAnalyzer = true;
private Menu menu;
private void showNotification() {
Intent intent = new Intent(this, MainActivity.class);
@ -123,39 +124,68 @@ public class MainActivity extends Activity {
setContentView(R.layout.activity_main);
changeLayoutOrientation(getResources().getConfiguration());
image = (ImageView)findViewById(R.id.image);
manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
startDecoder();
}
protected void stopDecoder() {
if (decoder == null)
return;
decoder.destroy();
decoder = null;
manager.cancel(notifyID);
menu.findItem(R.id.action_toggle_decoder).setIcon(getResources().getDrawable(android.R.drawable.ic_media_play));
menu.setGroupEnabled(R.id.group_decoder, false);
}
protected void startDecoder() {
if (decoder != null)
return;
decoder = new Decoder(this,
(SpectrumView)findViewById(R.id.spectrum),
(SpectrumView)findViewById(R.id.spectrogram),
image,
(ImageView)findViewById(R.id.image),
(VUMeterView)findViewById(R.id.meter)
);
manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
decoder.enable_analyzer(enableAnalyzer);
showNotification();
if (menu != null) {
menu.findItem(R.id.action_toggle_decoder).setIcon(getResources().getDrawable(android.R.drawable.ic_media_pause));
menu.setGroupEnabled(R.id.group_decoder, true);
}
}
protected void toggleDecoder() {
if (decoder == null)
startDecoder();
else
stopDecoder();
}
@Override
protected void onDestroy () {
decoder.destroy();
decoder = null;
manager.cancel(notifyID);
stopDecoder();
super.onDestroy();
}
@Override
protected void onPause() {
decoder.pause();
if (decoder != null)
decoder.pause();
super.onPause();
}
@Override
protected void onResume() {
decoder.resume();
if (decoder != null)
decoder.resume();
super.onResume();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
this.menu = menu;
share = (ShareActionProvider)menu.findItem(R.id.menu_item_share).getActionProvider();
return true;
}
@ -183,6 +213,9 @@ public class MainActivity extends Activity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_toggle_decoder:
toggleDecoder();
return true;
case R.id.action_save_image:
storeBitmap(image.bitmap);
return true;

View file

@ -15,47 +15,55 @@
android:showAsAction="ifRoom" />
<item
android:id="@+id/action_clear_image"
android:title="@string/action_clear_image"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
android:id="@+id/action_toggle_decoder"
android:title="@string/action_toggle_decoder"
android:icon="@android:drawable/ic_media_pause"
android:showAsAction="ifRoom" />
<item android:id="@+id/action_softer_image" android:title="@string/action_softer_image" />
<item android:id="@+id/action_sharper_image" android:title="@string/action_sharper_image" />
<group android:id="@+id/group_decoder">
<item
android:id="@+id/action_clear_image"
android:title="@string/action_clear_image"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
android:showAsAction="ifRoom" />
<item android:id="@+id/action_toggle_scaling" android:title="@string/action_toggle_scaling" />
<item android:id="@+id/action_toggle_debug" android:title="@string/action_toggle_debug" />
<item android:id="@+id/action_toggle_auto" android:title="@string/action_toggle_auto" />
<item android:id="@+id/action_toggle_analyzer" android:title="@string/action_toggle_analyzer" />
<item android:id="@+id/action_softer_image" android:title="@string/action_softer_image" />
<item android:id="@+id/action_sharper_image" android:title="@string/action_sharper_image" />
<item android:id="@+id/action_increase_update_rate" android:title="@string/action_increase_update_rate" />
<item android:id="@+id/action_decrease_update_rate" android:title="@string/action_decrease_update_rate" />
<item android:id="@+id/action_toggle_scaling" android:title="@string/action_toggle_scaling" />
<item android:id="@+id/action_toggle_debug" android:title="@string/action_toggle_debug" />
<item android:id="@+id/action_toggle_auto" android:title="@string/action_toggle_auto" />
<item android:id="@+id/action_toggle_analyzer" android:title="@string/action_toggle_analyzer" />
<item android:id="@+id/action_raw_mode" android:title="@string/action_raw_mode" />
<item android:id="@+id/action_increase_update_rate" android:title="@string/action_increase_update_rate" />
<item android:id="@+id/action_decrease_update_rate" android:title="@string/action_decrease_update_rate" />
<item android:title="@string/robot_modes"><menu>
<item android:id="@+id/action_robot36_mode" android:title="@string/action_robot36_mode" />
<item android:id="@+id/action_robot72_mode" android:title="@string/action_robot72_mode" />
</menu></item>
<item android:title="@string/pd_modes"><menu>
<item android:id="@+id/action_pd50_mode" android:title="@string/action_pd50_mode" />
<item android:id="@+id/action_pd90_mode" android:title="@string/action_pd90_mode" />
<item android:id="@+id/action_pd120_mode" android:title="@string/action_pd120_mode" />
<item android:id="@+id/action_pd160_mode" android:title="@string/action_pd160_mode" />
<item android:id="@+id/action_pd180_mode" android:title="@string/action_pd180_mode" />
<item android:id="@+id/action_pd240_mode" android:title="@string/action_pd240_mode" />
<item android:id="@+id/action_pd290_mode" android:title="@string/action_pd290_mode" />
</menu></item>
<item android:title="@string/martin_modes"><menu>
<item android:id="@+id/action_martin1_mode" android:title="@string/action_martin1_mode" />
<item android:id="@+id/action_martin2_mode" android:title="@string/action_martin2_mode" />
</menu></item>
<item android:title="@string/scottie_modes"><menu>
<item android:id="@+id/action_scottie1_mode" android:title="@string/action_scottie1_mode" />
<item android:id="@+id/action_scottie2_mode" android:title="@string/action_scottie2_mode" />
<item android:id="@+id/action_scottieDX_mode" android:title="@string/action_scottieDX_mode" />
</menu></item>
<item android:title="@string/wraase_modes"><menu>
<item android:id="@+id/action_wraaseSC2_180_mode" android:title="@string/action_wraaseSC2_180_mode" />
</menu></item>
<item android:id="@+id/action_raw_mode" android:title="@string/action_raw_mode" />
<item android:title="@string/robot_modes"><menu>
<item android:id="@+id/action_robot36_mode" android:title="@string/action_robot36_mode" />
<item android:id="@+id/action_robot72_mode" android:title="@string/action_robot72_mode" />
</menu></item>
<item android:title="@string/pd_modes"><menu>
<item android:id="@+id/action_pd50_mode" android:title="@string/action_pd50_mode" />
<item android:id="@+id/action_pd90_mode" android:title="@string/action_pd90_mode" />
<item android:id="@+id/action_pd120_mode" android:title="@string/action_pd120_mode" />
<item android:id="@+id/action_pd160_mode" android:title="@string/action_pd160_mode" />
<item android:id="@+id/action_pd180_mode" android:title="@string/action_pd180_mode" />
<item android:id="@+id/action_pd240_mode" android:title="@string/action_pd240_mode" />
<item android:id="@+id/action_pd290_mode" android:title="@string/action_pd290_mode" />
</menu></item>
<item android:title="@string/martin_modes"><menu>
<item android:id="@+id/action_martin1_mode" android:title="@string/action_martin1_mode" />
<item android:id="@+id/action_martin2_mode" android:title="@string/action_martin2_mode" />
</menu></item>
<item android:title="@string/scottie_modes"><menu>
<item android:id="@+id/action_scottie1_mode" android:title="@string/action_scottie1_mode" />
<item android:id="@+id/action_scottie2_mode" android:title="@string/action_scottie2_mode" />
<item android:id="@+id/action_scottieDX_mode" android:title="@string/action_scottieDX_mode" />
</menu></item>
<item android:title="@string/wraase_modes"><menu>
<item android:id="@+id/action_wraaseSC2_180_mode" android:title="@string/action_wraaseSC2_180_mode" />
</menu></item>
</group>
</menu>

View file

@ -4,6 +4,7 @@
<string name="decoder_running">"Dekodierer läuft</string>
<string name="action_save_image">Bild speichern</string>
<string name="action_clear_image">Bild löschen</string>
<string name="action_toggle_decoder">Dekodierer umschalten</string>
<string name="action_toggle_auto">Automatik umschalten</string>
<string name="action_toggle_debug">Bildanalyse umschalten</string>
<string name="action_toggle_analyzer">Analysator umschalten</string>

View file

@ -4,6 +4,7 @@
<string name="decoder_running">"decoder is running</string>
<string name="action_save_image">Save Image</string>
<string name="action_clear_image">Clear Image</string>
<string name="action_toggle_decoder">Toggle Decoder</string>
<string name="action_toggle_auto">Toggle Auto Mode</string>
<string name="action_toggle_debug">Toggle Debug Mode</string>
<string name="action_toggle_analyzer">Toggle Analyzer</string>