summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/app/src/main/java/org')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java147
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.kt122
2 files changed, 122 insertions, 147 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java
deleted file mode 100644
index 9393a48baf..0000000000
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java
+++ /dev/null
@@ -1,147 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-package org.dolphinemu.dolphinemu.ui.platform;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.graphics.Insets;
-import androidx.core.view.ViewCompat;
-import androidx.core.view.WindowInsetsCompat;
-import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-
-import com.google.android.material.color.MaterialColors;
-
-import org.dolphinemu.dolphinemu.R;
-import org.dolphinemu.dolphinemu.adapters.GameAdapter;
-import org.dolphinemu.dolphinemu.databinding.FragmentGridBinding;
-import org.dolphinemu.dolphinemu.layout.AutofitGridLayoutManager;
-import org.dolphinemu.dolphinemu.services.GameFileCacheManager;
-
-public final class PlatformGamesFragment extends Fragment implements PlatformGamesView
-{
- private static final String ARG_PLATFORM = "platform";
-
- private SwipeRefreshLayout mSwipeRefresh;
- private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener;
-
- private FragmentGridBinding mBinding;
-
- public static PlatformGamesFragment newInstance(Platform platform)
- {
- PlatformGamesFragment fragment = new PlatformGamesFragment();
-
- Bundle args = new Bundle();
- args.putSerializable(ARG_PLATFORM, platform);
-
- fragment.setArguments(args);
- return fragment;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- }
-
- @NonNull
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState)
- {
- mBinding = FragmentGridBinding.inflate(inflater, container, false);
- return mBinding.getRoot();
- }
-
- @Override
- public void onViewCreated(@NonNull View view, Bundle savedInstanceState)
- {
- mSwipeRefresh = mBinding.swipeRefresh;
- GameAdapter adapter = new GameAdapter(requireActivity());
- adapter.setStateRestorationPolicy(
- RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY);
- mBinding.gridGames.setAdapter(adapter);
- mBinding.gridGames.setLayoutManager(new AutofitGridLayoutManager(requireContext(),
- getResources().getDimensionPixelSize(R.dimen.card_width)));
-
- // Set theme color to the refresh animation's background
- mSwipeRefresh.setProgressBackgroundColorSchemeColor(
- MaterialColors.getColor(mSwipeRefresh, R.attr.colorPrimary));
- mSwipeRefresh.setColorSchemeColors(
- MaterialColors.getColor(mSwipeRefresh, R.attr.colorOnPrimary));
-
- mSwipeRefresh.setOnRefreshListener(mOnRefreshListener);
-
- setInsets();
-
- setRefreshing(GameFileCacheManager.isLoadingOrRescanning());
-
- showGames();
- }
-
- @Override
- public void onDestroyView()
- {
- super.onDestroyView();
- mBinding = null;
- }
-
- @Override
- public void onItemClick(String gameId)
- {
- // No-op for now
- }
-
- @Override
- public void showGames()
- {
- if (mBinding == null)
- return;
-
- if (mBinding.gridGames.getAdapter() != null)
- {
- Platform platform = (Platform) getArguments().getSerializable(ARG_PLATFORM);
- ((GameAdapter) mBinding.gridGames.getAdapter()).swapDataSet(
- GameFileCacheManager.getGameFilesForPlatform(platform));
- }
- }
-
- @Override
- public void refetchMetadata()
- {
- ((GameAdapter) mBinding.gridGames.getAdapter()).refetchMetadata();
- }
-
- public void setOnRefreshListener(@Nullable SwipeRefreshLayout.OnRefreshListener listener)
- {
- mOnRefreshListener = listener;
-
- if (mSwipeRefresh != null)
- {
- mSwipeRefresh.setOnRefreshListener(listener);
- }
- }
-
- public void setRefreshing(boolean refreshing)
- {
- mBinding.swipeRefresh.setRefreshing(refreshing);
- }
-
- private void setInsets()
- {
- ViewCompat.setOnApplyWindowInsetsListener(mBinding.gridGames, (v, windowInsets) ->
- {
- Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
- v.setPadding(0, 0, 0,
- insets.bottom + getResources().getDimensionPixelSize(R.dimen.spacing_list) +
- getResources().getDimensionPixelSize(R.dimen.spacing_fab));
- return windowInsets;
- });
- }
-}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.kt
new file mode 100644
index 0000000000..5f1139da8a
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.kt
@@ -0,0 +1,122 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.dolphinemu.dolphinemu.ui.platform
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.RecyclerView
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener
+import com.google.android.material.color.MaterialColors
+import org.dolphinemu.dolphinemu.R
+import org.dolphinemu.dolphinemu.adapters.GameAdapter
+import org.dolphinemu.dolphinemu.databinding.FragmentGridBinding
+import org.dolphinemu.dolphinemu.layout.AutofitGridLayoutManager
+import org.dolphinemu.dolphinemu.services.GameFileCacheManager
+
+class PlatformGamesFragment : Fragment(), PlatformGamesView {
+ private var swipeRefresh: SwipeRefreshLayout? = null
+ private var onRefreshListener: OnRefreshListener? = null
+
+ private var _binding: FragmentGridBinding? = null
+ private val binding: FragmentGridBinding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ _binding = FragmentGridBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ swipeRefresh = binding.swipeRefresh
+ val gameAdapter = GameAdapter(requireActivity())
+ gameAdapter.stateRestorationPolicy =
+ RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY
+
+ binding.gridGames.apply {
+ adapter = gameAdapter
+ layoutManager = AutofitGridLayoutManager(
+ requireContext(),
+ resources.getDimensionPixelSize(R.dimen.card_width)
+ )
+ }
+
+ // Set theme color to the refresh animation's background
+ binding.swipeRefresh.apply {
+ setProgressBackgroundColorSchemeColor(
+ MaterialColors.getColor(swipeRefresh!!, R.attr.colorPrimary)
+ )
+ setColorSchemeColors(MaterialColors.getColor(swipeRefresh!!, R.attr.colorOnPrimary))
+ setOnRefreshListener(onRefreshListener)
+ }
+
+ setInsets()
+ setRefreshing(GameFileCacheManager.isLoadingOrRescanning())
+ showGames()
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
+ override fun showGames() {
+ if (_binding == null)
+ return
+
+ if (binding.gridGames.adapter != null) {
+ val platform = requireArguments().getSerializable(ARG_PLATFORM) as Platform
+ (binding.gridGames.adapter as GameAdapter?)!!.swapDataSet(
+ GameFileCacheManager.getGameFilesForPlatform(platform)
+ )
+ }
+ }
+
+ override fun refetchMetadata() {
+ (binding.gridGames.adapter as GameAdapter).refetchMetadata()
+ }
+
+ fun setOnRefreshListener(listener: OnRefreshListener?) {
+ onRefreshListener = listener
+ swipeRefresh?.setOnRefreshListener(listener)
+ }
+
+ override fun setRefreshing(refreshing: Boolean) {
+ binding.swipeRefresh.isRefreshing = refreshing
+ }
+
+ private fun setInsets() {
+ ViewCompat.setOnApplyWindowInsetsListener(binding.gridGames) { v: View, windowInsets: WindowInsetsCompat ->
+ val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.setPadding(
+ 0,
+ 0,
+ 0,
+ insets.bottom + resources.getDimensionPixelSize(R.dimen.spacing_list)
+ + resources.getDimensionPixelSize(R.dimen.spacing_fab)
+ )
+ windowInsets
+ }
+ }
+
+ companion object {
+ private const val ARG_PLATFORM = "platform"
+
+ @JvmStatic
+ fun newInstance(platform: Platform?): PlatformGamesFragment {
+ val fragment = PlatformGamesFragment()
+ val args = Bundle()
+ args.putSerializable(ARG_PLATFORM, platform)
+ fragment.arguments = args
+ return fragment
+ }
+ }
+}