Nullpointer fixes

- fixed Nullpointer due to missing views in landscape layout music
player
- fixed Nullpointer for not existing audiofiles in AbsTagEditor
This commit is contained in:
Karim Abou Zeid 2015-01-25 15:51:31 +01:00
commit 00461c881d
5 changed files with 92 additions and 54 deletions

View file

@ -425,40 +425,71 @@ public abstract class AbsTagEditorActivity extends ActionBarActivity {
return id;
}
protected String getSongTitle() throws NullPointerException {
protected String getSongTitle() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.TITLE);
} catch (NullPointerException e) {
return null;
}
}
protected String getAlbumTitle() throws NullPointerException {
protected String getAlbumTitle() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.ALBUM);
} catch (NullPointerException e) {
return null;
}
}
protected String getArtistName() throws NullPointerException {
protected String getArtistName() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.ARTIST);
} catch (NullPointerException e) {
return null;
}
}
protected String getAlbumArtistName() throws NullPointerException {
protected String getAlbumArtistName() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.ALBUM_ARTIST);
} catch (NullPointerException e) {
return null;
}
}
protected String getGenreName() throws NullPointerException {
protected String getGenreName() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.GENRE);
} catch (NullPointerException e) {
return null;
}
}
protected String getSongYear() throws NullPointerException {
protected String getSongYear() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.YEAR);
} catch (NullPointerException e) {
return null;
}
}
protected String getTrackNumber() throws NullPointerException {
protected String getTrackNumber() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.TRACK);
} catch (NullPointerException e) {
return null;
}
}
protected Bitmap getAlbumArt() throws NullPointerException {
protected Bitmap getAlbumArt() {
try {
Artwork artworkTag = getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirstArtwork();
if (artworkTag != null) {
byte[] artworkBinaryData = artworkTag.getBinaryData();
return BitmapFactory.decodeByteArray(artworkBinaryData, 0, artworkBinaryData.length);
}
} catch (NullPointerException e) {
}
return null;
}
}

View file

@ -27,6 +27,7 @@ import org.jaudiotagger.tag.images.ArtworkFactory;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
@ -80,6 +81,8 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
Artwork artwork = null;
Map<FieldKey, String> fieldKeyValueMap = new EnumMap<>(FieldKey.class);
fieldKeyValueMap.put(FieldKey.ALBUM, albumTitle.getText().toString());
//android seems not to recognize album_artist field so we additionally write the normal artist field
fieldKeyValueMap.put(FieldKey.ARTIST, albumArtistName.getText().toString());
fieldKeyValueMap.put(FieldKey.ALBUM_ARTIST, albumArtistName.getText().toString());
fieldKeyValueMap.put(FieldKey.GENRE, genreName.getText().toString());
fieldKeyValueMap.put(FieldKey.YEAR, year.getText().toString());

View file

@ -130,43 +130,58 @@
<com.melnykov.fab.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="false"
android:layout_alignParentTop="false"
style="@style/PlayPauseFab"
android:layout_centerInParent="true"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:adjustViewBounds="false"
android:cropToPadding="false"
android:elevation="8dp"
android:transitionName="@string/transition_fab"
fab:fab_color="@color/materialmusic_accent_color"
fab:fab_colorNormal="@color/materialmusic_accent_color"
fab:fab_colorPressed="@color/materialmusic_accent_color_darker"/>
/>
<ImageButton
android:scaleType="fitCenter"
android:id="@+id/prev_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:layout_toLeftOf="@+id/fab"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:padding="14dp"
android:src="@drawable/ic_skip_previous_white_48dp"/>
<ImageButton
android:scaleType="fitCenter"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:layout_toRightOf="@+id/fab"
android:background="?android:attr/selectableItemBackground"
android:padding="16dp"
android:padding="14dp"
android:src="@drawable/ic_skip_next_white_48dp"/>
<ImageButton
android:scaleType="fitCenter"
android:id="@+id/repeat_button"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:layout_alignParentLeft="true"
android:background="?android:attr/selectableItemBackground"
android:padding="14dp"
android:src="@drawable/ic_repeat_grey600_48dp"/>
<ImageButton
android:scaleType="fitCenter"
android:id="@+id/shuffle_button"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:layout_alignParentRight="true"
android:background="?android:attr/selectableItemBackground"
android:padding="14dp"
android:src="@drawable/ic_shuffle_grey600_48dp"/>
</RelativeLayout>
<SeekBar

View file

@ -158,8 +158,8 @@
<com.melnykov.fab.FloatingActionButton
android:id="@+id/fab"
style="@style/PlayPauseFab"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/editables"
android:src="@drawable/ic_done_white_48dp"
android:layout_margin="16dp"
android:layout_gravity="bottom|right"/>
</FrameLayout>

View file

@ -197,21 +197,10 @@
<com.melnykov.fab.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="false"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/editables"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
android:elevation="8dp"
android:padding="14dp"
android:scaleType="fitCenter"
style="@style/PlayPauseFab"
android:src="@drawable/ic_done_white_48dp"
android:transitionName="@string/transition_fab"
fab:fab_color="@color/materialmusic_accent_color"
fab:fab_colorNormal="@color/materialmusic_accent_color"
fab:fab_colorPressed="@color/materialmusic_accent_color_darker"/>
android:layout_margin="16dp"
android:layout_gravity="bottom|right"/>
</FrameLayout>