Set android:windowSharedElementsUseOverlay to false

This commit is contained in:
Karim Abou Zeid 2016-01-30 13:02:33 +01:00
commit f27dbdab3d
3 changed files with 9 additions and 31 deletions

View file

@ -86,7 +86,7 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
/** /**
* Should be overwritten and re enable all {@link android.view.View} to ensure they are accessible again * Should be overwritten and re enable all {@link android.view.View} to ensure they are accessible again
* <p/> * <p>
* This is necessary because of a bug with the shared element transition * This is necessary because of a bug with the shared element transition
*/ */
@Override @Override
@ -96,7 +96,7 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
/** /**
* Should be overwritten and disable all views that start a new activity on click to prevent opening an activity multiple times * Should be overwritten and disable all views that start a new activity on click to prevent opening an activity multiple times
* <p/> * <p>
* This is necessary because of a bug with the shared element transition * This is necessary because of a bug with the shared element transition
*/ */
@Override @Override

View file

@ -8,7 +8,6 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.util.Pair; import android.support.v4.util.Pair;
import android.view.View;
import android.widget.Toast; import android.widget.Toast;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
@ -18,7 +17,6 @@ import com.kabouzeid.gramophone.model.Playlist;
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.PlaylistDetailActivity; import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity;
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
/** /**
* @author Karim Abou Zeid (kabouzeid) * @author Karim Abou Zeid (kabouzeid)
@ -31,8 +29,6 @@ public class NavigationUtil {
final Intent intent = new Intent(activity, ArtistDetailActivity.class); final Intent intent = new Intent(activity, ArtistDetailActivity.class);
intent.putExtra(ArtistDetailActivity.EXTRA_ARTIST_ID, artistId); intent.putExtra(ArtistDetailActivity.EXTRA_ARTIST_ID, artistId);
sharedElements = addMiniPlayerSharedElement(activity, sharedElements);
//noinspection unchecked //noinspection unchecked
activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle()); activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
} }
@ -43,8 +39,6 @@ public class NavigationUtil {
final Intent intent = new Intent(activity, AlbumDetailActivity.class); final Intent intent = new Intent(activity, AlbumDetailActivity.class);
intent.putExtra(AlbumDetailActivity.EXTRA_ALBUM_ID, albumId); intent.putExtra(AlbumDetailActivity.EXTRA_ALBUM_ID, albumId);
sharedElements = addMiniPlayerSharedElement(activity, sharedElements);
//noinspection unchecked //noinspection unchecked
activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle()); activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
} }
@ -55,29 +49,7 @@ public class NavigationUtil {
final Intent intent = new Intent(activity, PlaylistDetailActivity.class); final Intent intent = new Intent(activity, PlaylistDetailActivity.class);
intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist); intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist);
sharedElements = addMiniPlayerSharedElement(activity, sharedElements); activity.startActivity(intent);
//noinspection unchecked
activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
}
private static Pair[] addMiniPlayerSharedElement(Activity activity, @Nullable Pair... sharedElements) {
if (activity instanceof AbsSlidingMusicPanelActivity) {
View miniPlayer = ((AbsSlidingMusicPanelActivity) activity).getMiniPlayerFragment().getView();
Pair miniPlayerSharedElement = Pair.create(miniPlayer, activity.getString(R.string.transition_mini_player));
if (sharedElements != null) {
Pair[] tmpSharedElements;
tmpSharedElements = new Pair[sharedElements.length + 1];
System.arraycopy(sharedElements, 0, tmpSharedElements, 0, sharedElements.length);
sharedElements = tmpSharedElements;
sharedElements[sharedElements.length - 1] = miniPlayerSharedElement;
} else {
sharedElements = new Pair[]{miniPlayerSharedElement};
}
}
return sharedElements;
} }
private static boolean disableViewsAndCheckIsReadyForTransition(@NonNull final Activity activity) { private static boolean disableViewsAndCheckIsReadyForTransition(@NonNull final Activity activity) {

View file

@ -5,6 +5,8 @@
<item name="rect_selector">@drawable/rect_ripple_selector_dark</item> <item name="rect_selector">@drawable/rect_ripple_selector_dark</item>
<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowSharedElementsUseOverlay">false</item>
</style> </style>
<style name="Theme.Phonograph.Light" parent="Theme.Phonograph.Base.Light"> <style name="Theme.Phonograph.Light" parent="Theme.Phonograph.Base.Light">
@ -12,6 +14,8 @@
<item name="rect_selector">@drawable/rect_ripple_selector</item> <item name="rect_selector">@drawable/rect_ripple_selector</item>
<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowSharedElementsUseOverlay">false</item>
</style> </style>
<style name="Theme.Phonograph.Black" parent="Theme.Phonograph.Base.Black"> <style name="Theme.Phonograph.Black" parent="Theme.Phonograph.Base.Black">
@ -19,6 +23,8 @@
<item name="rect_selector">@drawable/rect_ripple_selector_dark</item> <item name="rect_selector">@drawable/rect_ripple_selector_dark</item>
<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowSharedElementsUseOverlay">false</item>
</style> </style>
<style name="Theme.Phonograph.Notification" parent="@android:style/TextAppearance.Material.Notification" /> <style name="Theme.Phonograph.Notification" parent="@android:style/TextAppearance.Material.Notification" />