Progress with #13
This commit is contained in:
parent
6c5bff9b25
commit
58b277354b
3 changed files with 82 additions and 23 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue