18
18
import android .app .Activity ;
19
19
import android .content .Intent ;
20
20
import android .graphics .Bitmap ;
21
- import android .graphics .Canvas ;
22
- import android .graphics .Color ;
23
- import android .graphics .PorterDuff ;
24
21
import android .graphics .drawable .BitmapDrawable ;
25
22
import android .os .Bundle ;
26
23
import android .os .RemoteException ;
27
- import android .support .annotation .NonNull ;
28
24
import android .support .annotation .Nullable ;
25
+ import android .support .annotation .StringRes ;
26
+ import android .support .design .widget .Snackbar ;
29
27
import android .support .v4 .media .MediaBrowserCompat ;
30
28
import android .support .v4 .media .MediaMetadataCompat ;
31
29
import android .support .v4 .media .session .MediaControllerCompat ;
@@ -71,6 +69,7 @@ public class MediaAppControllerActivity extends AppCompatActivity {
71
69
private MediaControllerCompat mController ;
72
70
private MediaBrowserCompat mBrowser ;
73
71
72
+ private View mRootView ;
74
73
private EditText mUriInput ;
75
74
private TextView mMediaInfoText ;
76
75
@@ -95,6 +94,7 @@ protected void onCreate(Bundle savedInstanceState) {
95
94
final Toolbar toolbar = (Toolbar ) findViewById (R .id .toolbar );
96
95
setSupportActionBar (toolbar );
97
96
97
+ mRootView = findViewById (R .id .root_view );
98
98
mUriInput = (EditText ) findViewById (R .id .uri_id_query );
99
99
mMediaInfoText = (TextView ) findViewById (R .id .media_info );
100
100
@@ -107,12 +107,6 @@ protected void onCreate(Bundle savedInstanceState) {
107
107
setupButtons ();
108
108
setupMediaController ();
109
109
110
- findViewById (R .id .reconnect ).setOnClickListener (new View .OnClickListener () {
111
- @ Override
112
- public void onClick (View view ) {
113
- setupMediaController ();
114
- }
115
- });
116
110
findViewById (R .id .update_media_info_btn ).setOnClickListener (new View .OnClickListener () {
117
111
@ Override
118
112
public void onClick (View view ) {
@@ -262,29 +256,34 @@ public void onPlaybackStateChanged(PlaybackStateCompat playbackState) {
262
256
}
263
257
});
264
258
Log .d (TAG , "MediaControllerCompat created" );
265
- findViewById (R .id .status_info ).setVisibility (View .GONE );
266
- } catch (RemoteException e ) {
267
- Log .e (TAG , "Failed to connect with session token: " + e );
268
- String msg = getString (R .string .media_controller_failed_msg );
269
- ((TextView ) findViewById (R .id .status_info )).setText (msg );
270
- findViewById (R .id .status_info ).setVisibility (View .VISIBLE );
259
+ } catch (RemoteException remoteException ) {
260
+ Log .e (TAG , "Failed to connect with session token: " + remoteException );
261
+ showDisconnected (R .string .media_controller_failed_msg );
271
262
}
272
263
}
273
264
274
265
@ Override
275
266
public void onConnectionSuspended () {
276
267
Log .d (TAG , "MediaBrowser connection suspended" );
277
- String msg = getString (R .string .connection_suspended_msg );
278
- ((TextView ) findViewById (R .id .status_info )).setText (msg );
279
- findViewById (R .id .status_info ).setVisibility (View .VISIBLE );
268
+ showDisconnected (R .string .connection_suspended_msg );
280
269
}
281
270
282
271
@ Override
283
272
public void onConnectionFailed () {
284
273
Log .e (TAG , "MediaBrowser connection failed" );
285
- String msg = getString (R .string .connection_failed_msg );
286
- ((TextView ) findViewById (R .id .status_info )).setText (msg );
287
- findViewById (R .id .status_info ).setVisibility (View .VISIBLE );
274
+ showDisconnected (R .string .connection_failed_msg );
275
+ }
276
+
277
+ private void showDisconnected (@ StringRes final int stringResource ) {
278
+ final Snackbar snackbar =
279
+ Snackbar .make (mRootView , stringResource , Snackbar .LENGTH_INDEFINITE );
280
+ snackbar .setAction (R .string .reconnect , new View .OnClickListener () {
281
+ @ Override
282
+ public void onClick (final View view ) {
283
+ setupMediaController ();
284
+ }
285
+ });
286
+ snackbar .show ();
288
287
}
289
288
}
290
289
}
0 commit comments