Progress with #13

This commit is contained in:
Aidan Follestad 2015-04-19 00:03:38 -05:00
commit 58b277354b
3 changed files with 82 additions and 23 deletions

View file

@ -1,9 +1,12 @@
package com.kabouzeid.gramophone.ui.activities;
import android.annotation.TargetApi;
import android.app.SharedElementCallback;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
@ -24,6 +27,8 @@ import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout;
import com.afollestad.materialdialogs.ThemeSingleton;
@ -58,9 +63,10 @@ import com.koushikdutta.ion.Ion;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class MainActivity extends AbsFabActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks, KabViewsDisableAble {
@ -74,6 +80,48 @@ public class MainActivity extends AbsFabActivity
private ViewPager viewPager;
private PagerSlidingTabStrip slidingTabLayout;
private int currentPage = -1;
private boolean mIsReentering;
public void setReentering(boolean reentering) {
this.mIsReentering = reentering;
}
private final SharedElementCallback mCallback = new SharedElementCallback() {
@Override
public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) {
if (!mIsReentering) {
View navigationBar = findViewById(android.R.id.navigationBarBackground);
// View statusBxar = findViewById(android.R.id.statusBarBackground);
View toolbarFrame = findViewById(R.id.toolbarFrame);
// if (statusBar != null) {
// names.add(statusBar.getTransitionName());
// sharedElements.put(statusBar.getTransitionName(), statusBar);
// }
if (navigationBar != null) {
names.add(navigationBar.getTransitionName());
sharedElements.put(navigationBar.getTransitionName(), navigationBar);
}
if (toolbarFrame != null) {
names.add(toolbarFrame.getTransitionName());
sharedElements.put(toolbarFrame.getTransitionName(), toolbarFrame);
}
} else {
names.remove(Window.NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME);
sharedElements.remove(Window.NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME);
names.remove(Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME);
sharedElements.remove(Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME);
names.remove("toolbar");
sharedElements.remove("toolbar");
}
}
};
@Override
public void onActivityReenter(int requestCode, Intent data) {
super.onActivityReenter(requestCode, data);
mIsReentering = true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -81,6 +129,9 @@ public class MainActivity extends AbsFabActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Util.hasLollipopSDK())
setExitSharedElementCallback(mCallback);
initViews();
navigationDrawerFragment.setUp(
R.id.navigation_drawer,
@ -439,13 +490,13 @@ public class MainActivity extends AbsFabActivity
return id;
}
private boolean isArtistPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal();
}
public ArtistViewFragment getArtistFragment() {
return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal());
}
// private boolean isArtistPage() {
// return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal();
// }
//
// public ArtistViewFragment getArtistFragment() {
// return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal());
// }
private boolean isAlbumPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ALBUM.ordinal();
@ -455,21 +506,21 @@ public class MainActivity extends AbsFabActivity
return (AlbumViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ALBUM.ordinal());
}
private boolean isSongPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal();
}
public SongViewFragment getSongFragment() {
return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal());
}
// private boolean isSongPage() {
// return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal();
// }
//
// public SongViewFragment getSongFragment() {
// return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal());
// }
private boolean isPlaylistPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.PLAYLIST.ordinal();
}
public PlaylistViewFragment getPlaylistFragment() {
return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal());
}
// public PlaylistViewFragment getPlaylistFragment() {
// return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal());
// }
private void setUpGridMenu(Menu menu) {
boolean isPortrait = Util.isInPortraitMode(this);

View file

@ -17,6 +17,7 @@ import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
import com.kabouzeid.gramophone.misc.AppKeys;
import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity;
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
import com.kabouzeid.gramophone.ui.activities.MainActivity;
import com.kabouzeid.gramophone.ui.activities.MusicControllerActivity;
import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity;
@ -24,10 +25,12 @@ import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity;
* @author Karim Abou Zeid (kabouzeid)
*/
public class NavigationUtil {
public static void goToArtist(final Activity activity, final int artistId, final Pair[] sharedViews) {
if (activity instanceof ArtistDetailActivity) {
if (activity instanceof ArtistDetailActivity)
return;
}
else if (activity instanceof MainActivity)
((MainActivity) activity).setReentering(false);
if ((activity instanceof KabViewsDisableAble && ((KabViewsDisableAble) activity).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
if (activity instanceof KabViewsDisableAble)
((KabViewsDisableAble) activity).disableViews();
@ -45,9 +48,10 @@ public class NavigationUtil {
}
public static void goToAlbum(final Activity activity, final int albumId, final Pair[] sharedViews) {
if (activity instanceof AlbumDetailActivity) {
if (activity instanceof AlbumDetailActivity)
return;
}
else if (activity instanceof MainActivity)
((MainActivity) activity).setReentering(false);
if ((activity instanceof KabViewsDisableAble && ((KabViewsDisableAble) activity).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
if (activity instanceof KabViewsDisableAble)
((KabViewsDisableAble) activity).disableViews();