Skip to content

Commit 97ed017

Browse files
authored
Merge pull request #4 from googlesamples/fix-crash
Fix crash when attempting to connect via an Intent.
2 parents 70fd2e9 + f1656a9 commit 97ed017

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

mediacontroller/src/main/java/com/example/android/mediacontroller/MediaAppControllerActivity.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ public class MediaAppControllerActivity extends AppCompatActivity {
126126
private RatingUiHelper mRatingUiHelper;
127127
private CustomControlsAdapter mCustomControlsAdapter = new CustomControlsAdapter();
128128

129+
private ViewPager mViewPager;
129130
private Spinner mInputTypeView;
130131
private EditText mUriInput;
131132
private TextView mMediaInfoText;
@@ -163,6 +164,7 @@ protected void onCreate(Bundle savedInstanceState) {
163164
final Toolbar toolbar = findViewById(R.id.toolbar);
164165
setSupportActionBar(toolbar);
165166

167+
mViewPager = findViewById(R.id.view_pager);
166168
mInputTypeView = findViewById(R.id.input_type);
167169
mUriInput = findViewById(R.id.uri_id_query);
168170
mMediaInfoText = findViewById(R.id.media_info);
@@ -192,17 +194,19 @@ protected void onCreate(Bundle savedInstanceState) {
192194
// that will be taken care of by #connectToMediaBrowserPackage in handleIntent.
193195
setupMediaController();
194196
setupToolbar(mMediaAppDetails.appName, mMediaAppDetails.icon);
197+
} else {
198+
// Wait to show the ViewPager until connected.
199+
mViewPager.setVisibility(View.GONE);
195200
}
196201

197-
final ViewPager viewPager = findViewById(R.id.view_pager);
198202
final int[] pages = {
199203
R.id.prepare_play_page,
200204
R.id.controls_page,
201205
R.id.custom_controls_page,
202206
};
203207
// Simplify the adapter by not keeping track of creating/destroying off-screen views.
204-
viewPager.setOffscreenPageLimit(pages.length);
205-
viewPager.setAdapter(new PagerAdapter() {
208+
mViewPager.setOffscreenPageLimit(pages.length);
209+
mViewPager.setAdapter(new PagerAdapter() {
206210

207211
@Override
208212
public int getCount() {
@@ -221,7 +225,7 @@ public Object instantiateItem(@NonNull ViewGroup container, int position) {
221225
}
222226
});
223227
final TabLayout pageIndicator = findViewById(R.id.page_indicator);
224-
pageIndicator.setupWithViewPager(viewPager);
228+
pageIndicator.setupWithViewPager(mViewPager);
225229

226230
final RecyclerView customControlsList = findViewById(R.id.custom_controls_list);
227231
customControlsList.setLayoutManager(new LinearLayoutManager(this));
@@ -335,6 +339,9 @@ private void setupMediaController() {
335339
mCallback.onPlaybackStateChanged(mController.getPlaybackState());
336340
mCallback.onMetadataChanged(mController.getMetadata());
337341

342+
// Ensure views are visible.
343+
mViewPager.setVisibility(View.VISIBLE);
344+
338345
Log.d(TAG, "MediaControllerCompat created");
339346
} catch (RemoteException remoteException) {
340347
Log.e(TAG, "Failed to create MediaController from session token", remoteException);

0 commit comments

Comments
 (0)