From d220516a2c72a2d1bcda790d848f0d6b50f75bc5 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 23 Jul 2019 11:39:13 -0400 Subject: [PATCH] android: frontend: Fix bug where games could be double-clicked. --- .../org/citra/citra_android/adapters/GameAdapter.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java b/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java index 2445ec1ed..a39dae207 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java +++ b/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java @@ -3,6 +3,7 @@ package org.citra.citra_android.adapters; import android.database.Cursor; import android.database.DataSetObserver; import android.graphics.Rect; +import android.os.SystemClock; import android.support.v4.app.FragmentActivity; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -27,6 +28,7 @@ public final class GameAdapter extends RecyclerView.Adapter impl private GameDataSetObserver mObserver; private boolean mDatasetValid; + private long mLastClickTime = 0; /** * Initializes the adapter's observer, which watches for changes to the dataset. The adapter will @@ -174,6 +176,12 @@ public final class GameAdapter extends RecyclerView.Adapter impl */ @Override public void onClick(View view) { + // Double-click prevention, using threshold of 1000 ms + if (SystemClock.elapsedRealtime() - mLastClickTime < 1000){ + return; + } + mLastClickTime = SystemClock.elapsedRealtime(); + GameViewHolder holder = (GameViewHolder) view.getTag(); EmulationActivity.launch((FragmentActivity) view.getContext(),