From 357f8d967001772330916589404fa11529e7a197 Mon Sep 17 00:00:00 2001 From: Vasili Chyrvon Date: Tue, 18 Jul 2017 01:01:59 +0300 Subject: [PATCH 1/8] Update FragmentNavigator.java Small change in docs --- .../ru/terrakok/cicerone/android/FragmentNavigator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java index b713139..4406061 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java @@ -46,9 +46,9 @@ public FragmentNavigator(FragmentManager fragmentManager, int containerId) { /** * Override this method for setup custom fragment transaction animation. * - * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} + * @param command current navigation command. Will be only {@link Forward} or {@link Replace} * @param currentFragment current fragment in container - * (for {@link Replace} command it will be previous screen, NOT replaced screen) + * (for {@link Replace} command it will be screen previous in new chain, NOT replaced screen) * @param nextFragment next screen fragment * @param fragmentTransaction fragment transaction */ @@ -183,4 +183,4 @@ protected void backToUnexisting() { protected void unknownScreen(Command command) { throw new RuntimeException("Can't create a screen for passed screenKey."); } -} \ No newline at end of file +} From 73449263496bf7cea955f7b1d82ff55673459a89 Mon Sep 17 00:00:00 2001 From: Vasili Chyrvon Date: Tue, 18 Jul 2017 01:03:58 +0300 Subject: [PATCH 2/8] Update SupportFragmentNavigator.java Small change in docs --- .../cicerone/android/SupportFragmentNavigator.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java index 7a89776..1e0a4dc 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java @@ -43,12 +43,12 @@ public SupportFragmentNavigator(FragmentManager fragmentManager, int containerId this.containerId = containerId; } - /** + /** * Override this method for setup custom fragment transaction animation. * - * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} + * @param command current navigation command. Will be only {@link Forward} or {@link Replace} * @param currentFragment current fragment in container - * (for {@link Replace} command it will be previous screen, NOT replaced screen) + * (for {@link Replace} command it will be screen previous in new chain, NOT replaced screen) * @param nextFragment next screen fragment * @param fragmentTransaction fragment transaction */ @@ -182,4 +182,4 @@ protected void backToUnexisting() { protected void unknownScreen(Command command) { throw new RuntimeException("Can't create a screen for passed screenKey."); } -} \ No newline at end of file +} From 37d5818413f6d95821856be9c30f7c82f5eedc48 Mon Sep 17 00:00:00 2001 From: Denis Nikiforov Date: Thu, 27 Jul 2017 16:04:40 +0300 Subject: [PATCH 3/8] Add support of activity transitions --- .../cicerone/android/AppNavigator.java | 20 +++++++++++++++++-- .../cicerone/android/SupportAppNavigator.java | 20 +++++++++++++++++-- .../src/main/java/android/app/Activity.java | 5 +++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java index 467ef9c..bbe1897 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java @@ -3,6 +3,7 @@ import android.app.Activity; import android.app.FragmentManager; import android.content.Intent; +import android.os.Bundle; import android.widget.Toast; import ru.terrakok.cicerone.commands.BackTo; @@ -34,15 +35,28 @@ public AppNavigator(Activity activity, FragmentManager fragmentManager, int cont this.activity = activity; } + /** + * Override this method for setup custom activity transaction animation. + * + * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} + * @param activityIntent activity intent + * @return transition options + */ + protected Bundle setupActivityTransactionAnimation(Command command, Intent activityIntent) { + return null; + } + @Override public void applyCommand(Command command) { if (command instanceof Forward) { Forward forward = (Forward) command; Intent activityIntent = createActivityIntent(forward.getScreenKey(), forward.getTransitionData()); + Bundle options = setupActivityTransactionAnimation(command, activityIntent); + // Start activity if (activityIntent != null) { - activity.startActivity(activityIntent); + activity.startActivity(activityIntent, options); return; } @@ -50,9 +64,11 @@ public void applyCommand(Command command) { Replace replace = (Replace) command; Intent activityIntent = createActivityIntent(replace.getScreenKey(), replace.getTransitionData()); + Bundle options = setupActivityTransactionAnimation(command, activityIntent); + // Replace activity if (activityIntent != null) { - activity.startActivity(activityIntent); + activity.startActivity(activityIntent, options); activity.finish(); return; } diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java index b6ae25f..f548002 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java @@ -2,6 +2,7 @@ import android.app.Activity; import android.content.Intent; +import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.widget.Toast; @@ -35,15 +36,28 @@ public SupportAppNavigator(FragmentActivity activity, FragmentManager fragmentMa this.activity = activity; } + /** + * Override this method for setup custom activity transaction animation. + * + * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} + * @param activityIntent activity intent + * @return transition options + */ + protected Bundle setupActivityTransactionAnimation(Command command, Intent activityIntent) { + return null; + } + @Override public void applyCommand(Command command) { if (command instanceof Forward) { Forward forward = (Forward) command; Intent activityIntent = createActivityIntent(forward.getScreenKey(), forward.getTransitionData()); + Bundle options = setupActivityTransactionAnimation(command, activityIntent); + // Start activity if (activityIntent != null) { - activity.startActivity(activityIntent); + activity.startActivity(activityIntent, options); return; } @@ -51,9 +65,11 @@ public void applyCommand(Command command) { Replace replace = (Replace) command; Intent activityIntent = createActivityIntent(replace.getScreenKey(), replace.getTransitionData()); + Bundle options = setupActivityTransactionAnimation(command, activityIntent); + // Replace activity if (activityIntent != null) { - activity.startActivity(activityIntent); + activity.startActivity(activityIntent, options); activity.finish(); return; } diff --git a/library/stub-android/src/main/java/android/app/Activity.java b/library/stub-android/src/main/java/android/app/Activity.java index 4a8cc05..e29ae90 100644 --- a/library/stub-android/src/main/java/android/app/Activity.java +++ b/library/stub-android/src/main/java/android/app/Activity.java @@ -2,6 +2,7 @@ import android.content.Context; import android.content.Intent; +import android.os.Bundle; /*** * Created by laomo on 2016-11-21. @@ -11,6 +12,10 @@ public void startActivity(Intent intent) { throw new RuntimeException("Stub!"); } + public void startActivity(Intent intent, Bundle options) { + throw new RuntimeException("Stub!"); + } + public FragmentManager getFragmentManager() { throw new RuntimeException("Stub!"); } From 68bc8c809c1041454c9278a541d52724ad3d669a Mon Sep 17 00:00:00 2001 From: Denis Nikiforov Date: Fri, 28 Jul 2017 12:34:26 +0300 Subject: [PATCH 4/8] Create activity transition only if activity intent is not null --- .../java/ru/terrakok/cicerone/android/AppNavigator.java | 6 ++---- .../ru/terrakok/cicerone/android/SupportAppNavigator.java | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java index bbe1897..18e9797 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java @@ -52,10 +52,9 @@ public void applyCommand(Command command) { Forward forward = (Forward) command; Intent activityIntent = createActivityIntent(forward.getScreenKey(), forward.getTransitionData()); - Bundle options = setupActivityTransactionAnimation(command, activityIntent); - // Start activity if (activityIntent != null) { + Bundle options = setupActivityTransactionAnimation(command, activityIntent); activity.startActivity(activityIntent, options); return; } @@ -64,10 +63,9 @@ public void applyCommand(Command command) { Replace replace = (Replace) command; Intent activityIntent = createActivityIntent(replace.getScreenKey(), replace.getTransitionData()); - Bundle options = setupActivityTransactionAnimation(command, activityIntent); - // Replace activity if (activityIntent != null) { + Bundle options = setupActivityTransactionAnimation(command, activityIntent); activity.startActivity(activityIntent, options); activity.finish(); return; diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java index f548002..6b7fc82 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java @@ -53,10 +53,9 @@ public void applyCommand(Command command) { Forward forward = (Forward) command; Intent activityIntent = createActivityIntent(forward.getScreenKey(), forward.getTransitionData()); - Bundle options = setupActivityTransactionAnimation(command, activityIntent); - // Start activity if (activityIntent != null) { + Bundle options = setupActivityTransactionAnimation(command, activityIntent); activity.startActivity(activityIntent, options); return; } @@ -65,10 +64,9 @@ public void applyCommand(Command command) { Replace replace = (Replace) command; Intent activityIntent = createActivityIntent(replace.getScreenKey(), replace.getTransitionData()); - Bundle options = setupActivityTransactionAnimation(command, activityIntent); - // Replace activity if (activityIntent != null) { + Bundle options = setupActivityTransactionAnimation(command, activityIntent); activity.startActivity(activityIntent, options); activity.finish(); return; From 0f59f588b8a9e0fdb31a2b4d7ae8726c79e3651f Mon Sep 17 00:00:00 2001 From: Denis Nikiforov Date: Sat, 29 Jul 2017 22:09:50 +0300 Subject: [PATCH 5/8] Rename setupActivityTransactionAnimation to createStartActivityOptions --- .../java/ru/terrakok/cicerone/android/AppNavigator.java | 6 +++--- .../ru/terrakok/cicerone/android/SupportAppNavigator.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java index 18e9797..effceef 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java @@ -42,7 +42,7 @@ public AppNavigator(Activity activity, FragmentManager fragmentManager, int cont * @param activityIntent activity intent * @return transition options */ - protected Bundle setupActivityTransactionAnimation(Command command, Intent activityIntent) { + protected Bundle createStartActivityOptions(Command command, Intent activityIntent) { return null; } @@ -54,7 +54,7 @@ public void applyCommand(Command command) { // Start activity if (activityIntent != null) { - Bundle options = setupActivityTransactionAnimation(command, activityIntent); + Bundle options = createStartActivityOptions(command, activityIntent); activity.startActivity(activityIntent, options); return; } @@ -65,7 +65,7 @@ public void applyCommand(Command command) { // Replace activity if (activityIntent != null) { - Bundle options = setupActivityTransactionAnimation(command, activityIntent); + Bundle options = createStartActivityOptions(command, activityIntent); activity.startActivity(activityIntent, options); activity.finish(); return; diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java index 6b7fc82..56953f3 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java @@ -43,7 +43,7 @@ public SupportAppNavigator(FragmentActivity activity, FragmentManager fragmentMa * @param activityIntent activity intent * @return transition options */ - protected Bundle setupActivityTransactionAnimation(Command command, Intent activityIntent) { + protected Bundle createStartActivityOptions(Command command, Intent activityIntent) { return null; } @@ -55,7 +55,7 @@ public void applyCommand(Command command) { // Start activity if (activityIntent != null) { - Bundle options = setupActivityTransactionAnimation(command, activityIntent); + Bundle options = createStartActivityOptions(command, activityIntent); activity.startActivity(activityIntent, options); return; } @@ -66,7 +66,7 @@ public void applyCommand(Command command) { // Replace activity if (activityIntent != null) { - Bundle options = setupActivityTransactionAnimation(command, activityIntent); + Bundle options = createStartActivityOptions(command, activityIntent); activity.startActivity(activityIntent, options); activity.finish(); return; From 30f2f736c0b3ccda86af80b1e0e86f0d9851df44 Mon Sep 17 00:00:00 2001 From: Denis Nikiforov Date: Sat, 29 Jul 2017 22:12:40 +0300 Subject: [PATCH 6/8] Update docs --- .../main/java/ru/terrakok/cicerone/android/AppNavigator.java | 2 +- .../java/ru/terrakok/cicerone/android/SupportAppNavigator.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java index effceef..93d9c33 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java @@ -36,7 +36,7 @@ public AppNavigator(Activity activity, FragmentManager fragmentManager, int cont } /** - * Override this method for setup custom activity transaction animation. + * Override this method to create option for start activity * * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} * @param activityIntent activity intent diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java index 56953f3..8be6dd4 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java @@ -37,7 +37,7 @@ public SupportAppNavigator(FragmentActivity activity, FragmentManager fragmentMa } /** - * Override this method for setup custom activity transaction animation. + * Override this method to create option for start activity * * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} * @param activityIntent activity intent From 4120ce878d4ee788cb9d6183108414e9991c88e3 Mon Sep 17 00:00:00 2001 From: Vasili Chyrvon Date: Wed, 2 Aug 2017 01:28:34 +0300 Subject: [PATCH 7/8] Changed the javadocs of the animation allowing methods to look similar. --- .../main/java/ru/terrakok/cicerone/android/AppNavigator.java | 2 +- .../java/ru/terrakok/cicerone/android/FragmentNavigator.java | 2 +- .../ru/terrakok/cicerone/android/SupportAppNavigator.java | 2 +- .../terrakok/cicerone/android/SupportFragmentNavigator.java | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java index 93d9c33..7e63ca3 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/AppNavigator.java @@ -38,7 +38,7 @@ public AppNavigator(Activity activity, FragmentManager fragmentManager, int cont /** * Override this method to create option for start activity * - * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} + * @param command current navigation command. Will be only {@link Forward} or {@link Replace} * @param activityIntent activity intent * @return transition options */ diff --git a/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java index 4406061..048eb24 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/FragmentNavigator.java @@ -44,7 +44,7 @@ public FragmentNavigator(FragmentManager fragmentManager, int containerId) { } /** - * Override this method for setup custom fragment transaction animation. + * Override this method to setup custom fragment transaction animation. * * @param command current navigation command. Will be only {@link Forward} or {@link Replace} * @param currentFragment current fragment in container diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java index 8be6dd4..073de14 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportAppNavigator.java @@ -39,7 +39,7 @@ public SupportAppNavigator(FragmentActivity activity, FragmentManager fragmentMa /** * Override this method to create option for start activity * - * @param command current navigation command. Maybe only {@link Forward} and {@link Replace} + * @param command current navigation command. Will be only {@link Forward} or {@link Replace} * @param activityIntent activity intent * @return transition options */ diff --git a/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java b/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java index 1e0a4dc..55de496 100644 --- a/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java +++ b/library/src/main/java/ru/terrakok/cicerone/android/SupportFragmentNavigator.java @@ -43,8 +43,8 @@ public SupportFragmentNavigator(FragmentManager fragmentManager, int containerId this.containerId = containerId; } - /** - * Override this method for setup custom fragment transaction animation. + /** + * Override this method to setup custom fragment transaction animation. * * @param command current navigation command. Will be only {@link Forward} or {@link Replace} * @param currentFragment current fragment in container From ecd214fa36a390e23037bdbaeab5c6a9aacbd99e Mon Sep 17 00:00:00 2001 From: terrakok Date: Mon, 21 Aug 2017 22:58:35 +0300 Subject: [PATCH 8/8] update readme.md for new version --- README.md | 10 +++++----- README_RUS.md | 4 ++++ library/build.gradle | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 477432c..5a3fa21 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ # Cicerone [![jCenter](https://api.bintray.com/packages/terrakok/terramaven/cicerone/images/download.svg)](https://bintray.com/terrakok/terramaven/cicerone/_latestVersion) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +[![Join the chat at https://gitter.im/terrakok/Cicerone](https://img.shields.io/badge/Gitter-Join%20Chat-brightred.svg?style=flat)](https://gitter.im/terrakok/Cicerone) + [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Cicerone-green.svg?style=true)](https://android-arsenal.com/details/1/4700) -[![Android Weekly](https://img.shields.io/badge/Android%20Weekly-250-lightgrey.svg)](http://androidweekly.net/issues/issue-250) -[![Telegram](https://img.shields.io/badge/Telegram-ENG-blue.svg)](https://t.me/Cicerone_ENG) -[![Telegram](https://img.shields.io/badge/Telegram-RUS-blue.svg)](https://t.me/Cicerone_RUS) +[![Android Weekly](https://img.shields.io/badge/Android%20Weekly-250-green.svg)](http://androidweekly.net/issues/issue-250) +[![Android Weekly](https://img.shields.io/badge/Android%20Weekly-271-green.svg)](http://androidweekly.net/issues/issue-271) ![](https://habrastorage.org/files/644/32e/9eb/64432e9eb3664723b3ee438449dab3b0.png) Cicerone (a guide, one who conducts sightseers) is a lightweight library that makes the navigation in an Android app easy. It was designed to be used with the MVP pattern (try [Moxy](https://github.com/Arello-Mobile/Moxy)), but will work great with any architecture. -[Russian version readme](https://github.com/terrakok/Cicerone/blob/develop/README_RUS.md) - ## Main advantages + is not tied to Fragments + not a framework diff --git a/README_RUS.md b/README_RUS.md index 7c8e4c6..5dcb5f1 100644 --- a/README_RUS.md +++ b/README_RUS.md @@ -1,5 +1,9 @@ # Cicerone +[![Telegram](https://img.shields.io/badge/Telegram-RUS-blue.svg)](https://t.me/Cicerone_RUS) + +![](https://habrastorage.org/files/644/32e/9eb/64432e9eb3664723b3ee438449dab3b0.png) + Cicerone (_"чи-че-ро́-не"_ - устар. гид) - легкая библиотека для простой реализации навигации в андроид приложении. Разработана для использования в MVP архитектуре (попробуйте [Moxy](https://github.com/Arello-Mobile/Moxy)), но легко встраивается в любые решения. diff --git a/library/build.gradle b/library/build.gradle index 81190ab..4a92572 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -15,7 +15,7 @@ ext { bintrayName = 'cicerone' publishedGroupId = 'ru.terrakok.cicerone' artifact = 'cicerone' - libraryVersion = '2.0.0' + libraryVersion = '2.1.0' gitUrl = 'https://github.com/terrakok/Cicerone' allLicenses = ['MIT'] }