mirror of
https://github.com/badaix/snapcast.git
synced 2025-08-04 00:59:32 +02:00
don't freeze if you press start/stop like a maniac
This commit is contained in:
parent
48c9aa9495
commit
45ba48b864
1 changed files with 24 additions and 0 deletions
|
@ -10,6 +10,7 @@ import android.net.Uri;
|
|||
import android.net.nsd.NsdServiceInfo;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.design.widget.Snackbar.Callback;
|
||||
|
@ -47,6 +48,8 @@ public class MainActivity extends AppCompatActivity implements ClientInfoItem.Cl
|
|||
private RemoteControl remoteControl = null;
|
||||
private ClientInfoAdapter clientInfoAdapter;
|
||||
private SnapclientService snapclientService;
|
||||
private Runnable enablePlayButtonRunnable;
|
||||
private Handler handler;
|
||||
|
||||
/**
|
||||
* ATTENTION: This was auto-generated to implement the App Indexing API.
|
||||
|
@ -54,6 +57,7 @@ public class MainActivity extends AppCompatActivity implements ClientInfoItem.Cl
|
|||
*/
|
||||
private GoogleApiClient client;
|
||||
|
||||
|
||||
/**
|
||||
* Defines callbacks for service binding, passed to bindService()
|
||||
*/
|
||||
|
@ -115,6 +119,16 @@ public class MainActivity extends AppCompatActivity implements ClientInfoItem.Cl
|
|||
// ATTENTION: This was auto-generated to implement the App Indexing API.
|
||||
// See https://g.co/AppIndexing/AndroidStudio for more information.
|
||||
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
|
||||
|
||||
handler = new Handler();
|
||||
enablePlayButtonRunnable =
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (miStartStop != null)
|
||||
miStartStop.setEnabled(true);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -148,6 +162,8 @@ public class MainActivity extends AppCompatActivity implements ClientInfoItem.Cl
|
|||
stopSnapclient();
|
||||
} else {
|
||||
startSnapclient();
|
||||
item.setEnabled(false);
|
||||
handler.postDelayed(enablePlayButtonRunnable, 5000);
|
||||
}
|
||||
return true;
|
||||
} else if (id == R.id.action_hide_offline) {
|
||||
|
@ -171,10 +187,16 @@ public class MainActivity extends AppCompatActivity implements ClientInfoItem.Cl
|
|||
|
||||
private void updateStartStopMenuItem() {
|
||||
if (bound && snapclientService.isRunning()) {
|
||||
Log.d(TAG, "updateStartStopMenuItem: ic_media_stop");
|
||||
miStartStop.setIcon(R.drawable.ic_media_stop);
|
||||
} else {
|
||||
Log.d(TAG, "updateStartStopMenuItem: ic_media_play");
|
||||
miStartStop.setIcon(R.drawable.ic_media_play);
|
||||
}
|
||||
if (miStartStop != null) {
|
||||
handler.removeCallbacks(enablePlayButtonRunnable);
|
||||
miStartStop.setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void startSnapclient() {
|
||||
|
@ -275,11 +297,13 @@ public class MainActivity extends AppCompatActivity implements ClientInfoItem.Cl
|
|||
|
||||
@Override
|
||||
public void onPlayerStart() {
|
||||
Log.d(TAG, "onPlayerStart");
|
||||
updateStartStopMenuItem();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerStop() {
|
||||
Log.d(TAG, "onPlayerStop");
|
||||
updateStartStopMenuItem();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue