Skip to content

Commit 2c20043

Browse files
author
Jorge Costa
committed
Merge branch 'release/0.4.3'
2 parents d9c7e65 + 822d339 commit 2c20043

4 files changed

Lines changed: 42 additions & 4 deletions

File tree

activity-fragment-manager/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ publish {
7878
userOrg = "jmspt"
7979
groupId = "com.massivedisaster"
8080
artifactId = 'activity-fragment-manager'
81-
publishVersion = "0.4.2"
81+
publishVersion = "0.4.3"
8282
desc = 'Activity Fragment Manager'
8383
website = websiteBase
8484
licences = licensesBase

activity-fragment-manager/src/main/java/com/massivedisaster/activitymanager/ActivityFragmentManager.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
package com.massivedisaster.activitymanager;
2727

2828
import android.app.Activity;
29+
import android.content.Context;
2930
import android.support.v4.app.Fragment;
3031

3132
import com.massivedisaster.activitymanager.activity.AbstractFragmentActivity;
@@ -93,4 +94,19 @@ public static ActivityTransaction open(Fragment fragment, Class<? extends Abstra
9394
Class<? extends Fragment> fragmentClass) {
9495
return new ActivityTransaction(fragment, activityClass, fragmentClass);
9596
}
97+
98+
/**
99+
* Starts a new {@link ActivityTransaction},
100+
* when you {@link ActivityTransaction#commit} w'll open a new activity with the specific fragment.
101+
* Use this method if you only have the context, ex: Service, Broadcast, etc
102+
*
103+
* @param context The Context.
104+
* @param activityClass The AbstractFragmentActivity class.
105+
* @param fragmentClass The Fragment to be injected in the activityClass.
106+
* @return The {@link ActivityTransaction}.
107+
*/
108+
public static ActivityTransaction open(Context context, Class<? extends AbstractFragmentActivity> activityClass,
109+
Class<? extends Fragment> fragmentClass) {
110+
return new ActivityTransaction(context, activityClass, fragmentClass);
111+
}
96112
}

activity-fragment-manager/src/main/java/com/massivedisaster/activitymanager/ActivityTransaction.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
package com.massivedisaster.activitymanager;
2727

2828
import android.app.Activity;
29+
import android.content.Context;
2930
import android.content.Intent;
3031
import android.os.Bundle;
3132
import android.support.v4.app.ActivityCompat;
@@ -55,6 +56,7 @@ public class ActivityTransaction implements ITransaction<ActivityTransaction> {
5556
private List<Pair<View, String>> mSharedElements;
5657
private Activity mActivityBase;
5758
private Fragment mFragment;
59+
private Context mContext;
5860
private Integer mRequestCode;
5961

6062
/**
@@ -89,6 +91,22 @@ public class ActivityTransaction implements ITransaction<ActivityTransaction> {
8991
mIntent.putExtra(ACTIVITY_MANAGER_FRAGMENT, fragmentClass.getCanonicalName());
9092
}
9193

94+
/**
95+
* ActivityTransaction constructor, created to be used by a fragment.
96+
*
97+
* @param context The context to be used to start the new activity.
98+
* @param abstractBaseActivityClass The AbstractFragmentActivity class.
99+
* @param fragmentClass The Fragment to be injected in the activityClass.
100+
*/
101+
ActivityTransaction(Context context, Class<? extends AbstractFragmentActivity> abstractBaseActivityClass,
102+
Class<? extends Fragment> fragmentClass) {
103+
mContext = context;
104+
mAbstractBaseActivity = abstractBaseActivityClass;
105+
106+
mIntent = new Intent(mContext, mAbstractBaseActivity);
107+
mIntent.putExtra(ACTIVITY_MANAGER_FRAGMENT, fragmentClass.getCanonicalName());
108+
}
109+
92110

93111
@Override
94112
public ActivityTransaction setTag(String tag) {
@@ -159,14 +177,18 @@ public void commit() {
159177
if (mRequestCode == null) {
160178
if (mActivityBase != null) {
161179
ContextCompat.startActivity(mActivityBase, intent, bundleOptions);
162-
} else {
180+
} else if (mFragment != null) {
163181
mFragment.startActivity(intent, bundleOptions);
182+
} else {
183+
mContext.startActivity(intent);
164184
}
165185
} else {
166186
if (mActivityBase != null) {
167187
ActivityCompat.startActivityForResult(mActivityBase, intent, mRequestCode, bundleOptions);
168-
} else {
188+
} else if (mFragment != null) {
169189
mFragment.startActivityForResult(intent, mRequestCode, bundleOptions);
190+
} else {
191+
mContext.startActivity(intent);
170192
}
171193
}
172194
}

deploy/configuration.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"basePath": "../",
33
"readmePath": "../README.md",
4-
"version": "0.4.2",
4+
"version": "0.4.3",
55
"modules": [
66
"activity-fragment-manager"
77
]

0 commit comments

Comments
 (0)