Hi there, I was reviewing the code, it's awesome. I think it would be better if some parts are changed for better readability and future extensions. They are mentioned below.
I've seen two very big methods, setupSharedElementTransitionsFab() and setupSharedElementTransitionsButton(). And I think these ones would be refactored into creating a new abstract class with some common methods, with a new interface for setting up transitions. I think it would be better explained in the UML class diagram presented below.
And I also share the code snippets proposals I had reffered to,
package com.hitherejoe.animate.ui.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
public class PopupActivity extends Activity {
boolean isDismissing = false;
public static final String EXTRA_MORPH_TYPE = "morph_type";
public static final String MORPH_TYPE_BUTTON = "morph_type_button";
public static final String MORPH_TYPE_FAB = "morph_type_fab";
public static Intent getStartIntent(Context context, String type) {
Intent intent = new Intent(context, PopupActivity.class);
intent.putExtra(EXTRA_MORPH_TYPE, type);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popup);
String type = getIntent().getStringExtra(EXTRA_MORPH_TYPE);
ShareableElementTransition transition = createTransitionForType(type);
if (transition != null) {
View container = (ViewGroup) findViewById(R.id.container);
transition.setupSharedElementTransitions(this, container);
}
}
private ShareableElementTransition createTransitionForType(String type) {
if (type.equals(MORPH_TYPE_BUTTON)) {
return new ButtonSharedElementTransition();
} else if (type.equals(MORPH_TYPE_FAB)) {
return new FabSharedElementTransition(
getResources().getDimensionPixelSize(R.dimen.dialog_corners));
}
return null;
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
}
public void dismiss(View view) {
isDismissing = true;
setResult(Activity.RESULT_CANCELED);
finishAfterTransition();
}
@Override
public void onBackPressed() {
dismiss(null);
}
}
Note: At this moment, I did not considered to make a pull request for android dependecies I hadn't put enough effort to link with the code, but even with that I had written based on the code project. Have a nice day!
Hi there, I was reviewing the code, it's awesome. I think it would be better if some parts are changed for better readability and future extensions. They are mentioned below.
I've seen two very big methods, setupSharedElementTransitionsFab() and setupSharedElementTransitionsButton(). And I think these ones would be refactored into creating a new abstract class with some common methods, with a new interface for setting up transitions. I think it would be better explained in the UML class diagram presented below.
And I also share the code snippets proposals I had reffered to,
app/src/main/java/com/hitherejoe/animate/ui/activity/SharedElementTransition.java
app/src/main/java/com/hitherejoe/animate/ui/activity/ShareableElementTransition.java
app/src/main/java/com/hitherejoe/animate/ui/activity/ButtonSharedElementTransition.java
app/src/main/java/com/hitherejoe/animate/ui/activity/FabSharedElementTransition.java
app/src/main/java/com/hitherejoe/animate/ui/activity/PopupActivity.java
Note: At this moment, I did not considered to make a pull request for android dependecies I hadn't put enough effort to link with the code, but even with that I had written based on the code project. Have a nice day!