diff --git a/app/build.gradle b/app/build.gradle index 9785c18..5a331b6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,6 +35,13 @@ dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'jp.kshoji:midi-driver:0.1.5:@aar' - implementation 'androidx.preference:preference:1.1.0-beta01' + implementation 'androidx.preference:preference:1.1.0-rc01' implementation 'com.android.support:design:28.0.0' + + // For the navigation drawer + implementation "com.mikepenz:materialdrawer:7.0.0-rc01" + implementation "androidx.recyclerview:recyclerview:1.0.0" + implementation "androidx.annotation:annotation:1.1.0" + implementation "com.google.android.material:material:1.0.0" + implementation "androidx.constraintlayout:constraintlayout:1.1.3" } diff --git a/app/src/main/java/com/midisheetmusic/MidiPlayer.java b/app/src/main/java/com/midisheetmusic/MidiPlayer.java index b11f150..d43b761 100644 --- a/app/src/main/java/com/midisheetmusic/MidiPlayer.java +++ b/app/src/main/java/com/midisheetmusic/MidiPlayer.java @@ -12,21 +12,32 @@ package com.midisheetmusic; -import java.util.*; -import java.io.*; -import android.app.*; -import android.content.*; -import android.graphics.*; -import android.view.*; -import android.widget.*; -import android.os.*; -import android.media.*; +import android.app.Activity; +import android.content.Context; +import android.graphics.Color; +import android.graphics.Point; +import android.graphics.PorterDuff; +import android.media.MediaPlayer; +import android.os.Handler; +import android.os.SystemClock; import android.util.AttributeSet; - -import androidx.drawerlayout.widget.DrawerLayout; +import android.view.View; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.SeekBar; +import android.widget.TextView; +import android.widget.Toast; import com.midisheetmusic.sheets.ChordSymbol; import com.midisheetmusic.sheets.MusicSymbol; +import com.mikepenz.materialdrawer.Drawer; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Locale; /** * The MidiPlayer is the panel at the top used to play the sound @@ -58,19 +69,15 @@ * and determines which notes to shade. */ public class MidiPlayer extends LinearLayout { - private ImageButton backButton; /** The back button */ - private ImageButton rewindButton; /** The rewind button */ - private ImageButton playButton; /** The play/pause button */ - private ImageButton stopButton; /** The stop button */ - private ImageButton fastFwdButton; /** The fast forward button */ - private ImageButton settingsButton; /** The fast forward button */ private Button midiButton; private Button leftHandButton; private Button rightHandButton; private ImageButton pianoButton; - private TextView speedText; /** The "Speed %" label */ - private SeekBar speedBar; /** The seekbar for controlling the playback speed */ - private DrawerLayout drawerLayout; + /** The "Speed %" label */ + private TextView speedText; + /** The seekbar for controlling playback speed */ + private SeekBar speedBar; + private Drawer drawer; /** The index corresponding to left/right hand in the track list */ private static final int LEFT_TRACK = 1; @@ -168,16 +175,16 @@ void OnMidiNote(int note, boolean pressed) { void init() { inflate(activity, R.layout.player_toolbar, this); - backButton = findViewById(R.id.btn_back); - rewindButton = findViewById(R.id.btn_rewind); - stopButton = findViewById(R.id.btn_replay); - playButton = findViewById(R.id.btn_play); - fastFwdButton = findViewById(R.id.btn_forward); + ImageButton backButton = findViewById(R.id.btn_back); + ImageButton rewindButton = findViewById(R.id.btn_rewind); + ImageButton stopButton = findViewById(R.id.btn_replay); + ImageButton playButton = findViewById(R.id.btn_play); + ImageButton fastFwdButton = findViewById(R.id.btn_forward); + ImageButton settingsButton = findViewById(R.id.btn_settings); leftHandButton = findViewById(R.id.btn_left); rightHandButton = findViewById(R.id.btn_right); midiButton = findViewById(R.id.btn_midi); pianoButton = findViewById(R.id.btn_piano); - settingsButton = findViewById(R.id.btn_settings); speedText = findViewById(R.id.txt_speed); speedBar = findViewById(R.id.speed_bar); @@ -186,11 +193,11 @@ void init() { stopButton.setOnClickListener(v -> Stop()); playButton.setOnClickListener(v -> Play()); fastFwdButton.setOnClickListener(v -> FastForward()); + settingsButton.setOnClickListener(v -> drawer.openDrawer()); midiButton.setOnClickListener(v -> toggleMidi()); leftHandButton.setOnClickListener(v -> toggleTrack(LEFT_TRACK)); rightHandButton.setOnClickListener(v -> toggleTrack(RIGHT_TRACK)); pianoButton.setOnClickListener(v -> togglePiano()); - settingsButton.setOnClickListener(v -> drawerLayout.openDrawer(Gravity.RIGHT)); speedBar.getProgressDrawable().setColorFilter(Color.parseColor("#00BB87"), PorterDuff.Mode.SRC_IN); speedBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @@ -711,8 +718,8 @@ public boolean isInMidiMode() { return playstate == midi; } - public void setDrawerLayout(DrawerLayout drawerLayout) { - this.drawerLayout = drawerLayout; + public void setDrawer(Drawer drawer) { + this.drawer = drawer; } } diff --git a/app/src/main/java/com/midisheetmusic/SheetMusicActivity.java b/app/src/main/java/com/midisheetmusic/SheetMusicActivity.java index 9fa0b74..f4d7965 100644 --- a/app/src/main/java/com/midisheetmusic/SheetMusicActivity.java +++ b/app/src/main/java/com/midisheetmusic/SheetMusicActivity.java @@ -13,7 +13,6 @@ package com.midisheetmusic; import android.app.AlertDialog; -import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; @@ -23,20 +22,19 @@ import android.net.Uri; import android.os.Bundle; import android.os.Environment; +import android.view.Gravity; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.drawerlayout.widget.DrawerLayout; -import com.google.android.material.navigation.NavigationView; import com.midisheetmusic.sheets.ClefSymbol; +import com.mikepenz.materialdrawer.Drawer; +import com.mikepenz.materialdrawer.DrawerBuilder; +import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; import java.io.File; import java.io.FileOutputStream; @@ -53,8 +51,7 @@ *