Refactor activity decorations and transitions

Reuse some code, and prevent the need to have to apply transitions
in multiple places.

Change-Id: I5319e49136d6d05de3eb03eff8dae0f3560e509a
This commit is contained in:
Tommy Webb
2024-07-24 21:39:04 +00:00
parent 3ba6626aab
commit 635998c42d
3 changed files with 25 additions and 23 deletions

View File

@@ -43,6 +43,7 @@ public abstract class BaseSetupWizardActivity extends AppCompatActivity implemen
NavigationBarListener { NavigationBarListener {
public static final String TAG = BaseSetupWizardActivity.class.getSimpleName(); public static final String TAG = BaseSetupWizardActivity.class.getSimpleName();
public static final int DEFAULT_TRANSITION = TransitionHelper.TRANSITION_FADE_THROUGH;
private NavigationLayout mNavigationBar; private NavigationLayout mNavigationBar;
@@ -68,10 +69,10 @@ public abstract class BaseSetupWizardActivity extends AppCompatActivity implemen
Log.v(TAG, "handleOnBackPressed()"); Log.v(TAG, "handleOnBackPressed()");
} }
finishAction(RESULT_CANCELED, new Intent().putExtra("onBackPressed", true)); finishAction(RESULT_CANCELED, new Intent().putExtra("onBackPressed", true));
TransitionHelper.applyBackwardTransition(BaseSetupWizardActivity.this,
TransitionHelper.TRANSITION_FADE_THROUGH, true);
} }
}); });
// Apply default transition, to take effect whenever leaving this activity.
applyForwardTransition();
} }
@Override @Override
@@ -229,10 +230,12 @@ public abstract class BaseSetupWizardActivity extends AppCompatActivity implemen
protected final void finishAction(int resultCode, Intent data) { protected final void finishAction(int resultCode, Intent data) {
if (resultCode != RESULT_CANCELED) { if (resultCode != RESULT_CANCELED) {
nextAction(resultCode, data); nextAction(resultCode, data);
finish();
} else { } else {
setResult(resultCode, data); setResult(resultCode, data);
finish();
applyBackwardTransition();
} }
finish();
} }
public final void nextAction(int resultCode) { public final void nextAction(int resultCode) {
@@ -252,23 +255,21 @@ public abstract class BaseSetupWizardActivity extends AppCompatActivity implemen
startActivityForResult(intent); startActivityForResult(intent);
} }
/** Adorn the Intent with Setup Wizard-related extras. */
protected Intent decorateIntent(Intent intent) {
return intent
.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, isFirstRun())
.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
.putExtra(WizardManagerHelper.EXTRA_THEME, ThemeHelper.THEME_GLIF_V4);
}
@Override @Override
public void startActivity(Intent intent) { public void startActivity(Intent intent) {
intent.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, isFirstRun()); super.startActivity(decorateIntent(intent));
intent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
intent.putExtra(WizardManagerHelper.EXTRA_THEME, ThemeHelper.THEME_GLIF_V4);
super.startActivity(intent);
TransitionHelper.applyForwardTransition(this,
TransitionHelper.TRANSITION_FADE_THROUGH, true);
} }
protected final void startActivityForResult(@NonNull Intent intent) { protected final void startActivityForResult(@NonNull Intent intent) {
intent.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, isFirstRun()); activityResultLauncher.launch(decorateIntent(intent));
intent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
intent.putExtra(WizardManagerHelper.EXTRA_THEME, ThemeHelper.THEME_GLIF_V4);
activityResultLauncher.launch(intent);
TransitionHelper.applyForwardTransition(this,
TransitionHelper.TRANSITION_FADE_THROUGH, true);
} }
protected void onActivityResult(ActivityResult activityResult) { protected void onActivityResult(ActivityResult activityResult) {
@@ -330,4 +331,13 @@ public abstract class BaseSetupWizardActivity extends AppCompatActivity implemen
protected int getIconResId() { protected int getIconResId() {
return -1; return -1;
} }
protected void applyForwardTransition() {
TransitionHelper.applyForwardTransition(this, DEFAULT_TRANSITION, true);
}
protected void applyBackwardTransition() {
TransitionHelper.applyBackwardTransition(BaseSetupWizardActivity.this,
DEFAULT_TRANSITION, true);
}
} }

View File

@@ -13,8 +13,6 @@ import android.content.Intent;
import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResult;
import com.google.android.setupdesign.transition.TransitionHelper;
import org.lineageos.setupwizard.util.SetupWizardUtils; import org.lineageos.setupwizard.util.SetupWizardUtils;
public class SimMissingActivity extends SubBaseActivity { public class SimMissingActivity extends SubBaseActivity {
@@ -42,8 +40,6 @@ public class SimMissingActivity extends SubBaseActivity {
} else { } else {
finishAction(RESULT_CANCELED, data); finishAction(RESULT_CANCELED, data);
} }
TransitionHelper.applyBackwardTransition(this,
TransitionHelper.TRANSITION_FADE_THROUGH, true);
} else if (!SetupWizardUtils.simMissing(this)) { } else if (!SetupWizardUtils.simMissing(this)) {
nextAction(RESULT_OK); nextAction(RESULT_OK);
} }

View File

@@ -19,8 +19,6 @@ import android.util.Log;
import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResult;
import com.google.android.setupdesign.transition.TransitionHelper;
public abstract class SubBaseActivity extends BaseSetupWizardActivity { public abstract class SubBaseActivity extends BaseSetupWizardActivity {
public static final String TAG = SubBaseActivity.class.getSimpleName(); public static final String TAG = SubBaseActivity.class.getSimpleName();
@@ -82,8 +80,6 @@ public abstract class SubBaseActivity extends BaseSetupWizardActivity {
finishAction(RESULT_ACTIVITY_NOT_FOUND); finishAction(RESULT_ACTIVITY_NOT_FOUND);
} else if (data != null && data.getBooleanExtra("onBackPressed", false)) { } else if (data != null && data.getBooleanExtra("onBackPressed", false)) {
onStartSubactivity(); onStartSubactivity();
TransitionHelper.applyBackwardTransition(this,
TransitionHelper.TRANSITION_FADE_THROUGH, true);
} else { } else {
finishAction(RESULT_CANCELED); finishAction(RESULT_CANCELED);
} }