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; package com.kabouzeid.gramophone.ui.activities;
import android.annotation.TargetApi;
import android.app.SharedElementCallback;
import android.content.Intent; import android.content.Intent;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.provider.MediaStore; import android.provider.MediaStore;
@ -24,6 +27,8 @@ import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.SubMenu; import android.view.SubMenu;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
@ -58,9 +63,10 @@ import com.koushikdutta.ion.Ion;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class MainActivity extends AbsFabActivity public class MainActivity extends AbsFabActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks, KabViewsDisableAble { implements NavigationDrawerFragment.NavigationDrawerCallbacks, KabViewsDisableAble {
@ -74,6 +80,48 @@ public class MainActivity extends AbsFabActivity
private ViewPager viewPager; private ViewPager viewPager;
private PagerSlidingTabStrip slidingTabLayout; private PagerSlidingTabStrip slidingTabLayout;
private int currentPage = -1; 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 @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -81,6 +129,9 @@ public class MainActivity extends AbsFabActivity
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
if (Util.hasLollipopSDK())
setExitSharedElementCallback(mCallback);
initViews(); initViews();
navigationDrawerFragment.setUp( navigationDrawerFragment.setUp(
R.id.navigation_drawer, R.id.navigation_drawer,
@ -439,13 +490,13 @@ public class MainActivity extends AbsFabActivity
return id; return id;
} }
private boolean isArtistPage() { // private boolean isArtistPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal(); // return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal();
} // }
//
public ArtistViewFragment getArtistFragment() { // public ArtistViewFragment getArtistFragment() {
return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal()); // return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal());
} // }
private boolean isAlbumPage() { private boolean isAlbumPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ALBUM.ordinal(); return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ALBUM.ordinal();
@ -455,21 +506,21 @@ public class MainActivity extends AbsFabActivity
return (AlbumViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ALBUM.ordinal()); return (AlbumViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ALBUM.ordinal());
} }
private boolean isSongPage() { // private boolean isSongPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal(); // return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal();
} // }
//
public SongViewFragment getSongFragment() { // public SongViewFragment getSongFragment() {
return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal()); // return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal());
} // }
private boolean isPlaylistPage() { private boolean isPlaylistPage() {
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.PLAYLIST.ordinal(); return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.PLAYLIST.ordinal();
} }
public PlaylistViewFragment getPlaylistFragment() { // public PlaylistViewFragment getPlaylistFragment() {
return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal()); // return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal());
} // }
private void setUpGridMenu(Menu menu) { private void setUpGridMenu(Menu menu) {
boolean isPortrait = Util.isInPortraitMode(this); 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.misc.AppKeys;
import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity; import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity;
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity; 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.MusicControllerActivity;
import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity; import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity;
@ -24,10 +25,12 @@ import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity;
* @author Karim Abou Zeid (kabouzeid) * @author Karim Abou Zeid (kabouzeid)
*/ */
public class NavigationUtil { public class NavigationUtil {
public static void goToArtist(final Activity activity, final int artistId, final Pair[] sharedViews) { public static void goToArtist(final Activity activity, final int artistId, final Pair[] sharedViews) {
if (activity instanceof ArtistDetailActivity) { if (activity instanceof ArtistDetailActivity)
return; 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).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
if (activity instanceof KabViewsDisableAble) if (activity instanceof KabViewsDisableAble)
((KabViewsDisableAble) activity).disableViews(); ((KabViewsDisableAble) activity).disableViews();
@ -45,9 +48,10 @@ public class NavigationUtil {
} }
public static void goToAlbum(final Activity activity, final int albumId, final Pair[] sharedViews) { public static void goToAlbum(final Activity activity, final int albumId, final Pair[] sharedViews) {
if (activity instanceof AlbumDetailActivity) { if (activity instanceof AlbumDetailActivity)
return; 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).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
if (activity instanceof KabViewsDisableAble) if (activity instanceof KabViewsDisableAble)
((KabViewsDisableAble) activity).disableViews(); ((KabViewsDisableAble) activity).disableViews();

View file

@ -19,14 +19,18 @@
android:fitsSystemWindows="true" /> android:fitsSystemWindows="true" />
<LinearLayout <LinearLayout
android:id="@+id/toolbarFrame"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="@dimen/main_toolbar_padding_top"> android:paddingTop="@dimen/main_toolbar_padding_top"
android:transitionName="toolbar"
tools:ignore="UnusedAttribute">
<android.support.v7.widget.Toolbar <android.support.v7.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
style="@style/Toolbar" style="@style/Toolbar"
android:transitionName=""
android:background="?colorPrimary"> android:background="?colorPrimary">
<TextView <TextView