From 4e1bc0a5be6fb30ba745fa3c4896965a59d70df4 Mon Sep 17 00:00:00 2001 From: 1fexd Date: Sat, 18 Feb 2023 13:09:54 +0100 Subject: [PATCH] #89 feat: Implement double tapping on preferred item box --- .../openwith/resolver/ResolverActivity.java | 23 ++++++++++++++++++- .../res/layout/resolver_list_with_default.xml | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/resolver/src/main/kotlin/com/tasomaniac/openwith/resolver/ResolverActivity.java b/resolver/src/main/kotlin/com/tasomaniac/openwith/resolver/ResolverActivity.java index 71a4f573..5b291643 100644 --- a/resolver/src/main/kotlin/com/tasomaniac/openwith/resolver/ResolverActivity.java +++ b/resolver/src/main/kotlin/com/tasomaniac/openwith/resolver/ResolverActivity.java @@ -15,10 +15,13 @@ */ package com.tasomaniac.openwith.resolver; +import android.annotation.SuppressLint; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; +import android.view.GestureDetector; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; @@ -77,7 +80,7 @@ protected void onStart() { super.onStart(); } - @Override + @SuppressLint("ClickableViewAccessibility") @Override public void displayData(IntentResolverResult result) { setContentView(result.getFilteredItem() != null ? R.layout.resolver_list_with_default : R.layout.resolver_list); setupList(result, result.getShowExtended()); @@ -86,6 +89,24 @@ public void displayData(IntentResolverResult result) { rdl.setOnDismissedListener(this::finish); findViewById(R.id.button_always).setOnClickListener(v -> listener.onActionButtonClick(true)); findViewById(R.id.button_once).setOnClickListener(v -> listener.onActionButtonClick(false)); + + if(result.getFilteredItem() != null){ + GestureDetector gDetector = new GestureDetector(getBaseContext(), new GestureDetector.SimpleOnGestureListener() { + + @Override + public boolean onDown(MotionEvent e) { + return true; + } + + @Override + public boolean onDoubleTap(MotionEvent e) { + listener.onActionButtonClick(false); + return true; + } + }); + + findViewById(R.id.preferred_item).setOnTouchListener((v, event) -> gDetector.onTouchEvent(event)); + } } private void setupList(IntentResolverResult data, boolean shouldDisplayExtendedInfo) { diff --git a/resolver/src/main/res/layout/resolver_list_with_default.xml b/resolver/src/main/res/layout/resolver_list_with_default.xml index c2d89a64..97b071a9 100644 --- a/resolver/src/main/res/layout/resolver_list_with_default.xml +++ b/resolver/src/main/res/layout/resolver_list_with_default.xml @@ -33,6 +33,7 @@ app:layout_alwaysShow="true">