Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(android)(8_0_X): amend hasActivityTransitions() for transitions #10833

Merged
merged 5 commits into from
Apr 15, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -420,11 +420,7 @@ protected void handleOpen(KrollDict options)
int exitAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION), 0);
topActivity.overridePendingTransition(enterAnimation, exitAnimation);
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
topActivity.startActivity(intent, createActivityOptionsBundle(topActivity));
} else {
topActivity.startActivity(intent);
}
topActivity.startActivity(intent);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ public abstract class TiLaunchActivity extends TiBaseActivity
*/
public abstract String getUrl();

private boolean hasLoadedScript = false;

/**
* The JavaScript URL that should be ran for the given TiJSActivity derived class name.
* Will only return a result if given activity class was launched at least once.
Expand Down Expand Up @@ -167,16 +169,20 @@ protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
}

@Override
protected void windowCreated(Bundle savedInstanceState)
public boolean isJSActivity()
{
super.windowCreated(savedInstanceState);
loadScript();
return false;
}

public boolean isJSActivity()
@Override
protected void onResume()
{
return false;
// Prevent script from loading on future resumes
if (!hasLoadedScript) {
hasLoadedScript = true;
loadScript();
}
super.onResume();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.appcelerator.titanium.TiBlob;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.TiDimension;
import org.appcelerator.titanium.TiLaunchActivity;
import org.appcelerator.titanium.util.TiConvert;
import org.appcelerator.titanium.util.TiDeviceOrientation;
import org.appcelerator.titanium.util.TiRHelper;
Expand All @@ -38,9 +39,10 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.util.Pair;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.util.Pair;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
Expand Down Expand Up @@ -640,15 +642,20 @@ public void setNavigationWindow(TiWindowProxy navigationWindow)
@Nullable
protected Bundle createActivityOptionsBundle(Activity activity)
{
if (hasActivityTransitions()) {
Bundle b = ActivityOptions
.makeSceneTransitionAnimation(
activity, sharedElementPairs.toArray(new Pair[sharedElementPairs.size()]))
.toBundle();
return b;
ActivityOptionsCompat options = null;

// Do NOT apply transitions to launch activity.
if (hasActivityTransitions() && !(activity instanceof TiLaunchActivity)) {
if (!sharedElementPairs.isEmpty()) {
options = ActivityOptionsCompat.makeSceneTransitionAnimation(
activity, sharedElementPairs.toArray(new Pair[sharedElementPairs.size()]));
} else {
options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity);
}
} else {
return null;
options = ActivityOptionsCompat.makeBasic();
}
return options.toBundle();
}

/**
Expand All @@ -657,6 +664,6 @@ protected Bundle createActivityOptionsBundle(Activity activity)
protected boolean hasActivityTransitions()
{
final boolean animated = TiConvert.toBoolean(getProperties(), TiC.PROPERTY_ANIMATED, true);
return (LOLLIPOP_OR_GREATER && animated && sharedElementPairs != null && !sharedElementPairs.isEmpty());
return LOLLIPOP_OR_GREATER && animated;
}
}