From bcf21338f13dbc0fc13c3c1e5d09f23c1524e4c9 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Thu, 11 Aug 2022 17:16:48 +0800 Subject: [PATCH] Added start activity transition animation. --- .../fatapp/oxygentoolbox/ui/home/tools/ToolsFragment.java | 2 +- .../fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java | 8 +++++++- .../java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java | 6 ++++-- app/src/main/res/values-v27/themes.xml | 4 ++++ app/src/main/res/values/themes.xml | 4 ++++ 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/tools/ToolsFragment.java b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/tools/ToolsFragment.java index 1cf2ea4..f1c9903 100644 --- a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/tools/ToolsFragment.java +++ b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/tools/ToolsFragment.java @@ -39,6 +39,6 @@ public class ToolsFragment extends Fragment { private void initLayout() { toolsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); - toolsRecyclerView.setAdapter(new ToolsAdapter()); + toolsRecyclerView.setAdapter(new ToolsAdapter(getActivity())); } } \ No newline at end of file diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java index df72eae..ea66f61 100644 --- a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java +++ b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java @@ -1,6 +1,7 @@ package com.fatapp.oxygentoolbox.ui.home.util; import android.annotation.SuppressLint; +import android.app.Activity; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -23,6 +24,11 @@ import java.util.Collections; public class ToolsAdapter extends RecyclerView.Adapter { private ViewGroup parent; + private Activity activity; + + public ToolsAdapter(Activity activity) { + this.activity = activity; + } @NonNull @Override @@ -42,7 +48,7 @@ public class ToolsAdapter extends RecyclerView.Adapter View toolButtonLayout = LayoutInflater.from(parent.getContext()).inflate(R.layout.fold_layout_button, parent, false); Button toolButton = toolButtonLayout.findViewById(R.id.tool_button); toolButton.setText(button.getText()); - toolButton.setOnClickListener(view -> ToolsLauncher.launch(parent.getContext(), button.getActivity())); + toolButton.setOnClickListener(view -> ToolsLauncher.launch(activity, parent.getContext(), button.getActivity())); toolButton.setOnTouchListener((view, motionEvent) -> { if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { view.animate().translationZ(8f).setDuration(100L); diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java b/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java index bb4117d..bfadf47 100644 --- a/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java +++ b/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java @@ -2,6 +2,8 @@ package com.fatapp.oxygentoolbox.util; import static androidx.core.content.ContextCompat.startActivity; +import android.app.Activity; +import android.app.ActivityOptions; import android.content.Context; import android.content.Intent; import android.widget.Toast; @@ -9,9 +11,9 @@ import android.widget.Toast; import com.fatapp.oxygentoolbox.R; public class ToolsLauncher { - public static void launch(Context context, String activity) { + public static void launch(Activity activity, Context context, String launchActivity) { try { - startActivity(context, new Intent(context, Class.forName(activity)), null); + startActivity(context, new Intent(context, Class.forName(launchActivity)), ActivityOptions.makeSceneTransitionAnimation(activity).toBundle()); } catch (ClassNotFoundException e) { Toast.makeText(context, R.string.activity_class_not_found, Toast.LENGTH_LONG).show(); } diff --git a/app/src/main/res/values-v27/themes.xml b/app/src/main/res/values-v27/themes.xml index 557b5de..72d4b79 100644 --- a/app/src/main/res/values-v27/themes.xml +++ b/app/src/main/res/values-v27/themes.xml @@ -19,6 +19,10 @@ @color/app_ripple @color/app_divider + true + @android:transition/fade + @android:transition/fade + ?attr/app_theme ?attr/app_theme diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 706f4bc..fa12d5f 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -19,6 +19,10 @@ @color/app_ripple @color/app_divider + true + @android:transition/fade + @android:transition/fade + ?attr/app_theme ?attr/app_theme