Skip to content

Commit

Permalink
resolve TransactionTooLargeException on android 7 (#265)
Browse files Browse the repository at this point in the history
  • Loading branch information
csoni111 authored and cpg committed Aug 22, 2017
1 parent a15b3c7 commit ee3ba01
Showing 1 changed file with 15 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,16 +84,6 @@ public static boolean supports(String mime_type) {
return SUPPORTED_FORMATS.contains(mime_type);
}

private static final class State
{
private State() {
}

public static final String AUDIO_TITLE = "audio_title";
public static final String AUDIO_SUBTITLE = "audio_subtitle";
public static final String AUDIO_ALBUM_ART = "audio_album_art";
}

@Inject
ServerClient serverClient;

Expand All @@ -111,7 +101,7 @@ protected void onCreate(Bundle savedInstanceState) {

setUpHomeNavigation();

setUpAudio(savedInstanceState);
setUpAudio();
}

private void setUpInjections() {
Expand All @@ -123,10 +113,9 @@ private void setUpHomeNavigation() {
getSupportActionBar().setIcon(R.drawable.ic_launcher);
}

private void setUpAudio(Bundle state) {
private void setUpAudio() {
setUpAudioFile();
setUpAudioTitle();
setUpAudioMetadata(state);
}

private void setUpAudioFile() {
Expand All @@ -141,24 +130,6 @@ private void setUpAudioTitle() {
getSupportActionBar().setTitle(audioFile.getName());
}

private void setUpAudioMetadata(Bundle state) {
if (isAudioMetadataStateValid(state)) {
setUpAudioMetadataState(state);

showAudioMetadata();
}
}

private boolean isAudioMetadataStateValid(Bundle state) {
return (state != null) && state.containsKey(State.AUDIO_TITLE);
}

private void setUpAudioMetadataState(Bundle state) {
getAudioTitleView().setText(state.getString(State.AUDIO_TITLE));
getAudioSubtitleView().setText(state.getString(State.AUDIO_SUBTITLE));
getAudioAlbumArtView().setImageBitmap((Bitmap) state.getParcelable(State.AUDIO_ALBUM_ART));
}

private TextView getAudioTitleView() {
return (TextView) findViewById(R.id.text_title);
}
Expand Down Expand Up @@ -251,6 +222,7 @@ private boolean areAudioControlsAvailable() {
private void setUpAudioPlayback() {
if (audioService.isAudioStarted()) {
showAudio();
setUpAudioMetadata();
} else {
audioService.startAudio(getShare(), getAudioFiles(), getFile());
}
Expand Down Expand Up @@ -418,7 +390,9 @@ protected void onResume() {

BusProvider.getBus().register(this);

setUpAudioMetadata();
if (hasAudioFileChanged()) {
setUpAudioMetadata();
}
}

private void showAudioControlsForced() {
Expand All @@ -427,20 +401,22 @@ private void showAudioControlsForced() {
}
}

private boolean hasAudioFileChanged() {
return isAudioServiceAvailable() && !this.audioFile.equals(audioService.getAudioFile());
}

private void setUpAudioMetadata() {
if (!isAudioServiceAvailable()) {
return;
}

if (!this.audioFile.equals(audioService.getAudioFile())) {
this.audioFile = audioService.getAudioFile();
this.audioFile = audioService.getAudioFile();

tearDownAudioTitle();
tearDownAudioMetadata();
tearDownAudioTitle();
tearDownAudioMetadata();

setUpAudioTitle();
setUpAudioMetadata(audioService.getAudioMetadataFormatter(), audioService.getAudioAlbumArt());
}
setUpAudioTitle();
setUpAudioMetadata(audioService.getAudioMetadataFormatter(), audioService.getAudioAlbumArt());
}

private boolean isAudioServiceAvailable() {
Expand Down Expand Up @@ -481,33 +457,6 @@ private void tearDownAudioServiceBind() {
unbindService(this);
}

@Override
protected void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);

if (isAudioMetadataLoaded()) {
tearDownAudioMetadataState(state);
}
}

private boolean isAudioMetadataLoaded() {
String audioTitle = getAudioTitleView().getText().toString();
String audioSubtitle = getAudioSubtitleView().getText().toString();
BitmapDrawable audioAlbumArt = (BitmapDrawable) getAudioAlbumArtView().getDrawable();

return !audioTitle.isEmpty() && !audioSubtitle.isEmpty() && (audioAlbumArt != null);
}

private void tearDownAudioMetadataState(Bundle state) {
String audioTitle = getAudioTitleView().getText().toString();
String audioSubtitle = getAudioSubtitleView().getText().toString();
BitmapDrawable audioAlbumArt = (BitmapDrawable) getAudioAlbumArtView().getDrawable();

state.putString(State.AUDIO_TITLE, audioTitle);
state.putString(State.AUDIO_SUBTITLE, audioSubtitle);
state.putParcelable(State.AUDIO_ALBUM_ART, audioAlbumArt.getBitmap());
}

@Override
protected void onDestroy() {
super.onDestroy();
Expand Down

0 comments on commit ee3ba01

Please sign in to comment.