From 8a001b60b83a68fe26d0d981ae4032d284acdf8f Mon Sep 17 00:00:00 2001 From: lexer Date: Mon, 28 Mar 2016 15:31:07 -0700 Subject: [PATCH] add scree scoop factory --- scoop-basics/build.gradle | 1 + scoop-basics/src/main/AndroidManifest.xml | 19 +- .../java/com/example/scoop/basics/App.java | 2 + .../com/example/scoop/basics/AppModule.java | 31 +- .../example/scoop/basics/MainActivity.java | 31 +- .../scoop/basics/MainActivityModule.java | 3 +- .../androidservices/SampleIntentService.java | 39 ++ .../example/scoop/basics/scoop/AppRouter.java | 21 +- .../scoop/basics/scoop/DialogRouter.java | 7 +- .../scoop/basics/scoop/DialogUiContainer.java | 23 +- .../scoop/basics/scoop/MainUiContainer.java | 27 +- .../scoop/basics/ui/DemosController.java | 32 +- .../SlideDownTransition.java | 15 +- .../dialogtransitions/screen/Dialog.java | 4 +- scoop-basics/src/main/res/layout/demos.xml | 9 +- .../com/lyft/scoop/dagger/DaggerInjector.java | 5 + ...per.java => DaggerScreenScoopFactory.java} | 4 +- ...java => DaggerScreenScoopFactoryTest.java} | 6 +- .../main/java/com/lyft/scoop/RouteChange.java | 40 +- .../src/main/java/com/lyft/scoop/Router.java | 119 ++--- scoop/src/main/java/com/lyft/scoop/Scoop.java | 22 +- .../java/com/lyft/scoop/ScoopBackstack.java | 31 -- .../src/main/java/com/lyft/scoop/Screen.java | 8 + .../java/com/lyft/scoop/ScreenBackstack.java | 42 ++ .../com/lyft/scoop/ScreenScoopFactory.java | 16 + .../java/com/lyft/scoop/ScreenScooper.java | 70 ++- .../main/java/com/lyft/scoop/ScreenSwap.java | 17 + .../main/java/com/lyft/scoop/UiContainer.java | 59 +-- .../scoop/transitions/FadeTransition.java | 22 +- .../transitions/ObjectAnimatorTransition.java | 18 +- .../java/com/lyft/scoop/RouteChangeTest.java | 63 +++ .../test/java/com/lyft/scoop/RouterTest.java | 266 ++++++----- .../com/lyft/scoop/ScoopBackstackTest.java | 31 -- .../test/java/com/lyft/scoop/ScoopTest.java | 41 +- .../com/lyft/scoop/ScreenBackstackTest.java | 46 ++ .../lyft/scoop/ScreenScoopFactoryTest.java | 29 ++ .../com/lyft/scoop/ScreenScooperTest.java | 416 +++++++++++++++++- .../test/java/com/lyft/scoop/ScreenTest.java | 31 ++ .../java/com/lyft/scoop/UiContainerTest.java | 24 +- 39 files changed, 1243 insertions(+), 447 deletions(-) create mode 100644 scoop-basics/src/main/java/com/example/scoop/basics/androidservices/SampleIntentService.java rename scoop-dagger/src/main/java/com/lyft/scoop/dagger/{DaggerScreenScooper.java => DaggerScreenScoopFactory.java} (89%) rename scoop-dagger/src/test/java/com/lyft/scoop/dagger/{DaggerScreenScooperTest.java => DaggerScreenScoopFactoryTest.java} (88%) delete mode 100644 scoop/src/main/java/com/lyft/scoop/ScoopBackstack.java create mode 100644 scoop/src/main/java/com/lyft/scoop/ScreenBackstack.java create mode 100644 scoop/src/main/java/com/lyft/scoop/ScreenScoopFactory.java create mode 100644 scoop/src/main/java/com/lyft/scoop/ScreenSwap.java create mode 100644 scoop/src/test/java/com/lyft/scoop/RouteChangeTest.java delete mode 100644 scoop/src/test/java/com/lyft/scoop/ScoopBackstackTest.java create mode 100644 scoop/src/test/java/com/lyft/scoop/ScreenBackstackTest.java create mode 100644 scoop/src/test/java/com/lyft/scoop/ScreenScoopFactoryTest.java create mode 100644 scoop/src/test/java/com/lyft/scoop/ScreenTest.java diff --git a/scoop-basics/build.gradle b/scoop-basics/build.gradle index 06416fc..e840738 100644 --- a/scoop-basics/build.gradle +++ b/scoop-basics/build.gradle @@ -49,6 +49,7 @@ dependencies { compile 'com.android.support:multidex:1.0.0' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.jakewharton.timber:timber:3.1.0' + compile 'com.jakewharton.rxrelay:rxrelay:1.0.0' compile 'com.google.android.gms:play-services-location:8.1.0' compile project(':scoop') compile project(':scoop-dagger') diff --git a/scoop-basics/src/main/AndroidManifest.xml b/scoop-basics/src/main/AndroidManifest.xml index cd07e0a..acb6aa6 100644 --- a/scoop-basics/src/main/AndroidManifest.xml +++ b/scoop-basics/src/main/AndroidManifest.xml @@ -1,14 +1,16 @@ + xmlns:android="http://schemas.android.com/apk/res/android" + > - + + android:required="true" + /> + android:value="@integer/google_play_services_version" + /> + android:value="AIzaSyAgTvwvsXZpBZrEGSKEUSDS_v1b5dtGEfg" + /> + + diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/App.java b/scoop-basics/src/main/java/com/example/scoop/basics/App.java index cf708e1..7530192 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/App.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/App.java @@ -18,6 +18,8 @@ public void onCreate() { Stetho.initializeWithDefaults(this); Timber.plant(new Timber.DebugTree()); + Timber.d("onCreate"); + Scoop.setViewBinder(new ButterKnifeViewBinder()); applicationGraph = ObjectGraph.create(new AppModule(this)); diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/AppModule.java b/scoop-basics/src/main/java/com/example/scoop/basics/AppModule.java index ad2cc28..e6d86cd 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/AppModule.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/AppModule.java @@ -1,9 +1,14 @@ package com.example.scoop.basics; import android.app.Application; +import android.app.NotificationManager; +import android.content.Context; +import com.example.scoop.basics.androidservices.SampleIntentService; import com.example.scoop.basics.scoop.AppRouter; import com.example.scoop.basics.scoop.DialogRouter; -import com.lyft.scoop.dagger.DaggerScreenScooper; +import com.lyft.scoop.ScreenScoopFactory; +import com.lyft.scoop.ScreenScooper; +import com.lyft.scoop.dagger.DaggerScreenScoopFactory; import dagger.Module; import dagger.Provides; import javax.inject.Singleton; @@ -11,6 +16,7 @@ @Module( injects = { App.class, + SampleIntentService.class }, includes = { }, @@ -24,22 +30,26 @@ public AppModule(App app) { this.app = app; } - @Singleton @Provides - DaggerScreenScooper provideDaggerScreenScooper() { - return new DaggerScreenScooper(); + ScreenScoopFactory provideDaggerScreenScooper() { + return new DaggerScreenScoopFactory(); + } + + @Provides + ScreenScooper provideScreenFactory(ScreenScoopFactory screenScoopFactory) { + return new ScreenScooper(screenScoopFactory); } @Singleton @Provides - AppRouter provideAppRouter(DaggerScreenScooper daggerScreenScooper) { - return new AppRouter(daggerScreenScooper, false); + AppRouter provideAppRouter() { + return new AppRouter(false); } @Singleton @Provides - DialogRouter provideDialogRouter(DaggerScreenScooper daggerScreenScooper) { - return new DialogRouter(new AppRouter(daggerScreenScooper, true)); + DialogRouter provideDialogRouter() { + return new DialogRouter(new AppRouter(true)); } @Singleton @@ -48,4 +58,9 @@ Application provideApplication() { return app; } + @Singleton + @Provides + NotificationManager provideNotificationManager() { + return (NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE); + } } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/MainActivity.java b/scoop-basics/src/main/java/com/example/scoop/basics/MainActivity.java index 6bbec85..bde203d 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/MainActivity.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/MainActivity.java @@ -32,34 +32,35 @@ public class MainActivity extends AppCompatActivity { DialogRouter dialogRouter; private CompositeSubscription subscriptions = new CompositeSubscription(); - private Scoop rootScoop; + private Scoop activityScoop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Timber.d("onCreate"); setContentView(R.layout.activity_main); - getRootScoop().inflate(R.layout.root, (ViewGroup) findViewById(R.id.root), true); + getActivityScoop().inflate(R.layout.root, (ViewGroup) findViewById(R.id.root), true); ButterKnife.bind(this); - DaggerInjector.fromScoop(getRootScoop()).inject(this); - - appRouter.onCreate(rootScoop); - dialogRouter.onCreate(rootScoop); - appRouter.goTo(new DemoScreen()); - - Timber.d("onCreate"); + DaggerInjector.fromScoop(getActivityScoop()).inject(this); } @Override protected void onResume() { super.onResume(); + Timber.d("onResume"); + + if (!appRouter.hasActiveScreen()) { + appRouter.goTo(new DemoScreen()); + } } @Override protected void onPause() { super.onPause(); + Timber.d("onPause"); } @Override @@ -70,10 +71,9 @@ protected void onSaveInstanceState(Bundle outState) { @Override protected void onDestroy() { - Timber.d("onDestroy"); subscriptions.clear(); - + getActivityScoop().destroy(); super.onDestroy(); } @@ -104,18 +104,19 @@ public void onBackPressed() { super.onBackPressed(); } - private Scoop getRootScoop() { - if (rootScoop == null) { + private Scoop getActivityScoop() { + if (activityScoop == null) { + Timber.d("getActivityScoop"); ObjectGraph activityGraph = getApp().getApplicationGraph().plus(new MainActivityModule(this)); DaggerInjector activityInjector = new DaggerInjector(activityGraph); - rootScoop = new Scoop.Builder("root") + activityScoop = new Scoop.Builder("activity_scoop") .service(DaggerInjector.SERVICE_NAME, activityInjector) .build(); } - return rootScoop; + return activityScoop; } private App getApp() { diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/MainActivityModule.java b/scoop-basics/src/main/java/com/example/scoop/basics/MainActivityModule.java index a9aa1e8..5c2a6f5 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/MainActivityModule.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/MainActivityModule.java @@ -1,6 +1,5 @@ package com.example.scoop.basics; -import android.app.Activity; import com.example.scoop.basics.scoop.DialogUiContainer; import com.example.scoop.basics.scoop.MainUiContainer; import dagger.Provides; @@ -25,7 +24,7 @@ public MainActivityModule(MainActivity mainActivity) { } @Provides - Activity provideActivity() { + MainActivity provideActivity() { return mainActivity; } } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/androidservices/SampleIntentService.java b/scoop-basics/src/main/java/com/example/scoop/basics/androidservices/SampleIntentService.java new file mode 100644 index 0000000..575c927 --- /dev/null +++ b/scoop-basics/src/main/java/com/example/scoop/basics/androidservices/SampleIntentService.java @@ -0,0 +1,39 @@ +package com.example.scoop.basics.androidservices; + +import android.app.IntentService; +import android.content.Intent; +import com.example.scoop.basics.App; +import com.example.scoop.basics.MainActivity; +import com.example.scoop.basics.scoop.AppRouter; +import com.example.scoop.basics.ui.DemoScreen; +import com.example.scoop.basics.ui.navigationsample.screen.AScreen; +import javax.inject.Inject; +import timber.log.Timber; + +public class SampleIntentService extends IntentService { + + @Inject + AppRouter appRouter; + + public SampleIntentService() { + super(SampleIntentService.class.getSimpleName()); + } + + @Override + public void onCreate() { + super.onCreate(); + + Timber.d("onCreate"); + getApp().getApplicationGraph().inject(this); + } + + private App getApp() {return (App) this.getApplicationContext();} + + @Override + protected void onHandleIntent(Intent intent) { + appRouter.replaceAllWith(new DemoScreen(), new AScreen()); + Intent mainActivityIntent = new Intent(this, MainActivity.class); + mainActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(mainActivityIntent); + } +} diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/AppRouter.java b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/AppRouter.java index 60edf4d..f2248e9 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/AppRouter.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/AppRouter.java @@ -1,25 +1,24 @@ package com.example.scoop.basics.scoop; -import com.lyft.scoop.Router; +import com.jakewharton.rxrelay.BehaviorRelay; import com.lyft.scoop.RouteChange; -import com.lyft.scoop.ScreenScooper; +import com.lyft.scoop.Router; import rx.Observable; -import rx.subjects.BehaviorSubject; public class AppRouter extends Router { - private final BehaviorSubject screenChangeSubject = BehaviorSubject.create(); + private final BehaviorRelay routeChangeRelay = BehaviorRelay.create(); - public AppRouter(ScreenScooper screenScooper, boolean hasEmptyStack) { - super(screenScooper, hasEmptyStack); + public AppRouter(boolean hasEmptyStack) { + super(hasEmptyStack); } - public Observable observeScreenChange() { - return screenChangeSubject.asObservable(); + @Override + protected void onRouteChanged(RouteChange routeChange) { + routeChangeRelay.call(routeChange); } - @Override - protected void onScoopChanged(RouteChange change) { - screenChangeSubject.onNext(change); + public Observable observeRouteChange() { + return routeChangeRelay.asObservable(); } } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogRouter.java b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogRouter.java index ec4f7d9..3b6e66c 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogRouter.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogRouter.java @@ -1,7 +1,6 @@ package com.example.scoop.basics.scoop; import com.lyft.scoop.RouteChange; -import com.lyft.scoop.Scoop; import com.lyft.scoop.Screen; import rx.Observable; @@ -21,11 +20,7 @@ public void show(Screen screen) { dialogRouter.replaceAllWith(screen); } - public void onCreate(Scoop rootScoop) { - dialogRouter.onCreate(rootScoop); - } - public Observable observeDialogChange() { - return dialogRouter.observeScreenChange(); + return dialogRouter.observeRouteChange(); } } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogUiContainer.java b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogUiContainer.java index f1b00f0..d53805b 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogUiContainer.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/DialogUiContainer.java @@ -6,6 +6,8 @@ import com.example.scoop.basics.ui.Keyboard; import com.lyft.scoop.LayoutInflater; import com.lyft.scoop.RouteChange; +import com.lyft.scoop.Scoop; +import com.lyft.scoop.ScreenScooper; import com.lyft.scoop.UiContainer; import com.lyft.scoop.ViewControllerInflater; import com.lyft.scoop.dagger.DaggerInjector; @@ -13,13 +15,15 @@ import com.lyft.scoop.dagger.DaggerViewControllerInflater; import javax.inject.Inject; import rx.functions.Action1; -import timber.log.Timber; public class DialogUiContainer extends UiContainer { @Inject DialogRouter dialogRouter; + @Inject + ScreenScooper screenScooper; + private ViewSubscriptions subscriptions = new ViewSubscriptions(); public DialogUiContainer(Context context, AttributeSet attrs) { @@ -62,12 +66,17 @@ protected void onDetachedFromWindow() { private Action1 onDialogChanged = new Action1() { @Override - public void call(RouteChange screenChange) { - if (screenChange.next != null) { - Timber.d("Scoop changed:" + screenChange.next.getClass().getSimpleName()); - } - DialogUiContainer.this.goTo(screenChange); + public void call(RouteChange routeChange) { + + Scoop rootScoop = Scoop.fromView(DialogUiContainer.this); + + Scoop currentScreenScoop = Scoop.fromView(getActiveView()); + + Scoop scoop = screenScooper.create(rootScoop, currentScreenScoop, routeChange.fromPath, routeChange.toPath); + + goTo(routeChange.toScreenSwap(scoop)); + Keyboard.hideKeyboard(DialogUiContainer.this); } }; -} \ No newline at end of file +} diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/MainUiContainer.java b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/MainUiContainer.java index 90fc454..8921278 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/scoop/MainUiContainer.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/scoop/MainUiContainer.java @@ -6,6 +6,8 @@ import com.example.scoop.basics.ui.Keyboard; import com.lyft.scoop.LayoutInflater; import com.lyft.scoop.RouteChange; +import com.lyft.scoop.Scoop; +import com.lyft.scoop.ScreenScooper; import com.lyft.scoop.UiContainer; import com.lyft.scoop.ViewControllerInflater; import com.lyft.scoop.dagger.DaggerInjector; @@ -13,13 +15,15 @@ import com.lyft.scoop.dagger.DaggerViewControllerInflater; import javax.inject.Inject; import rx.functions.Action1; -import timber.log.Timber; public class MainUiContainer extends UiContainer { @Inject AppRouter appRouter; + @Inject + ScreenScooper screenScooper; + private ViewSubscriptions subscriptions = new ViewSubscriptions(); public MainUiContainer(Context context, AttributeSet attrs) { @@ -50,7 +54,7 @@ protected void onAttachedToWindow() { return; } - subscriptions.add(appRouter.observeScreenChange(), onScreenChanged); + subscriptions.add(appRouter.observeRouteChange(), onRouteChange); } @Override @@ -60,14 +64,21 @@ protected void onDetachedFromWindow() { subscriptions.unsubscribe(); } - private Action1 onScreenChanged = new Action1() { + private Action1 onRouteChange = new Action1() { @Override - public void call(RouteChange screenChange) { - if (screenChange.next != null) { - Timber.d("Scoop changed:" + screenChange.next.getClass().getSimpleName()); + public void call(RouteChange routeChange) { + + Scoop rootScoop = Scoop.fromView(MainUiContainer.this); + + Scoop currentScreenScoop = Scoop.fromView(getActiveView()); + + Scoop scoop = screenScooper.create(rootScoop, currentScreenScoop, routeChange.fromPath, routeChange.toPath); + + // To prevent showing empty screen when activity is closed with "Back" button + if (!routeChange.toPath.isEmpty()) { + goTo(routeChange.toScreenSwap(scoop)); + Keyboard.hideKeyboard(MainUiContainer.this); } - MainUiContainer.this.goTo(screenChange); - Keyboard.hideKeyboard(MainUiContainer.this); } }; } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/ui/DemosController.java b/scoop-basics/src/main/java/com/example/scoop/basics/ui/DemosController.java index b4fa8f1..8555a75 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/ui/DemosController.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/ui/DemosController.java @@ -1,10 +1,15 @@ package com.example.scoop.basics.ui; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; import butterknife.OnClick; import com.example.scoop.basics.R; +import com.example.scoop.basics.androidservices.SampleIntentService; import com.example.scoop.basics.rx.ViewSubscriptions; import com.example.scoop.basics.scoop.AppRouter; -import com.example.scoop.basics.scoop.DialogRouter; import com.example.scoop.basics.ui.layoutsample.screen.LayoutScreen; import com.example.scoop.basics.ui.layoutsample.screen.NestedLayoutScreen; import com.example.scoop.basics.ui.navigationsample.screen.AScreen; @@ -17,14 +22,14 @@ public class DemosController extends ViewController { private AppRouter appRouter; - private DialogRouter dialogRouter; + private NotificationManager notificationManager; ViewSubscriptions viewSubscriptions = new ViewSubscriptions(); @Inject - public DemosController(AppRouter appRouter, DialogRouter dialogRouter) { + public DemosController(AppRouter appRouter, NotificationManager notificationManager) { this.appRouter = appRouter; - this.dialogRouter = dialogRouter; + this.notificationManager = notificationManager; } @Override @@ -73,4 +78,23 @@ public void goToNestedLayoutSample() { public void goToTransitions() { appRouter.goTo(new TransitionsScreen()); } + + @OnClick(R.id.notification_button) + public void openNotification() { + Context context = getView().getContext(); + + Intent serviceIntent = new Intent(context, SampleIntentService.class); + + PendingIntent contentIntent = PendingIntent.getService(context, 0, + serviceIntent, 0); + + Notification notification = new Notification.Builder(context) + .setContentTitle("This is a push notification.") + .setContentText("Scoop!") + .setSmallIcon(R.drawable.ic_launcher) + .setContentIntent(contentIntent) + .build(); + + notificationManager.notify(100, notification); + } } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/SlideDownTransition.java b/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/SlideDownTransition.java index f9b6cda..f2c2222 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/SlideDownTransition.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/SlideDownTransition.java @@ -13,28 +13,23 @@ public class SlideDownTransition implements ScreenTransition { @Override public void transition(final ViewGroup root, final View from, final View to, final TransitionListener transitionListener) { - if (to == null) { - root.removeView(from); - return; - } - - Animator animator = createAnimator(to); + Animator animator = createAnimator(from); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - root.removeView(from); + ((ViewGroup) from.getParent()).removeView(from); transitionListener.onTransitionCompleted(); } }); animator.start(); } - private Animator createAnimator(View to) { - int fromTranslation = to.getHeight(); + private Animator createAnimator(View from) { + int fromTranslation = from.getHeight(); AnimatorSet set = new AnimatorSet(); - set.play(ObjectAnimator.ofFloat(to, View.TRANSLATION_Y, fromTranslation)); + set.play(ObjectAnimator.ofFloat(from, View.TRANSLATION_Y, fromTranslation)); return set; } diff --git a/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/screen/Dialog.java b/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/screen/Dialog.java index b813afd..e691988 100644 --- a/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/screen/Dialog.java +++ b/scoop-basics/src/main/java/com/example/scoop/basics/ui/transitions/dialogtransitions/screen/Dialog.java @@ -12,7 +12,7 @@ @Controller(DialogController.class) @DaggerModule(DialogModule.class) -@EnterTransition(SlideDownTransition.class) -@ExitTransition(SlideUpTransition.class) +@EnterTransition(SlideUpTransition.class) +@ExitTransition(SlideDownTransition.class) public class Dialog extends Screen { } diff --git a/scoop-basics/src/main/res/layout/demos.xml b/scoop-basics/src/main/res/layout/demos.xml index 08e87cf..c4a483e 100644 --- a/scoop-basics/src/main/res/layout/demos.xml +++ b/scoop-basics/src/main/res/layout/demos.xml @@ -47,4 +47,11 @@ android:text="Nested layout sample" /> - \ No newline at end of file +