Skip to content

Commit 4509755

Browse files
committed
Remapped listeners to be more sensitive to taps
1 parent 55a0cbd commit 4509755

6 files changed

Lines changed: 83 additions & 8 deletions

File tree

app/src/main/java/uk/openvk/android/refresh/ui/core/activities/QuickSearchActivity.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
import static java.security.AccessController.getContext;
44

55
import android.annotation.SuppressLint;
6+
import android.content.Intent;
67
import android.content.SharedPreferences;
8+
import android.content.pm.PackageManager;
9+
import android.content.pm.ResolveInfo;
10+
import android.net.Uri;
711
import android.os.Bundle;
812
import android.os.Handler;
913
import android.os.Looper;
@@ -18,12 +22,17 @@
1822
import com.kieronquinn.monetcompat.app.MonetCompatActivity;
1923
import com.mancj.materialsearchbar.MaterialSearchBar;
2024

25+
import java.util.List;
26+
2127
import io.github.luizgrp.sectionedrecyclerviewadapter.SectionedRecyclerViewAdapter;
2228
import uk.openvk.android.refresh.Global;
2329
import uk.openvk.android.refresh.R;
2430
import uk.openvk.android.refresh.api.Groups;
2531
import uk.openvk.android.refresh.api.Users;
2632
import uk.openvk.android.refresh.api.enumerations.HandlerMessages;
33+
import uk.openvk.android.refresh.api.models.Group;
34+
import uk.openvk.android.refresh.api.models.User;
35+
import uk.openvk.android.refresh.api.models.WallPost;
2736
import uk.openvk.android.refresh.api.wrappers.DownloadManager;
2837
import uk.openvk.android.refresh.api.wrappers.OvkAPIWrapper;
2938
import uk.openvk.android.refresh.ui.list.sections.CommunitiesSearchSection;
@@ -127,4 +136,46 @@ private void receiveState(int message, Bundle data) {
127136

128137
private void setMonetTheme() {
129138
}
139+
140+
public void openProfile(int position) {
141+
User user = users.getList().get(position);
142+
String url = "";
143+
if(user.id > 0) {
144+
url = String.format("openvk://profile/id%s", user.id);
145+
}
146+
if(url.length() > 0) {
147+
Intent i = new Intent(Intent.ACTION_VIEW);
148+
i.setData(Uri.parse(url));
149+
final PackageManager pm = getPackageManager();
150+
@SuppressLint("QueryPermissionsNeeded") List<ResolveInfo> activityList = pm.queryIntentActivities(i, 0);
151+
for (int index = 0; index < activityList.size(); index++) {
152+
ResolveInfo app = activityList.get(index);
153+
if (app.activityInfo.name.contains("uk.openvk.android.refresh")) {
154+
i.setClassName(app.activityInfo.packageName, app.activityInfo.name);
155+
}
156+
}
157+
startActivity(i);
158+
}
159+
}
160+
161+
public void openGroup(int position) {
162+
Group group = groups.getList().get(position);
163+
String url = "";
164+
if(group.id > 0) {
165+
url = String.format("openvk://group/club%s", group.id);
166+
}
167+
if(url.length() > 0) {
168+
Intent i = new Intent(Intent.ACTION_VIEW);
169+
i.setData(Uri.parse(url));
170+
final PackageManager pm = getPackageManager();
171+
@SuppressLint("QueryPermissionsNeeded") List<ResolveInfo> activityList = pm.queryIntentActivities(i, 0);
172+
for (int index = 0; index < activityList.size(); index++) {
173+
ResolveInfo app = activityList.get(index);
174+
if (app.activityInfo.name.contains("uk.openvk.android.refresh")) {
175+
i.setClassName(app.activityInfo.packageName, app.activityInfo.name);
176+
}
177+
}
178+
startActivity(i);
179+
}
180+
}
130181
}

app/src/main/java/uk/openvk/android/refresh/ui/list/adapters/FriendsAdapter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ void bind(final int position) {
7878
.diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true)
7979
.dontAnimate().centerCrop()
8080
.into((ImageView) convertView.findViewById(R.id.friend_avatar));
81+
verified_icon.setFocusable(false);
82+
convertView.findViewById(R.id.friend_avatar).setFocusable(false);
83+
friend_title.setFocusable(false);
8184
if(item.verified) {
8285
verified_icon.setVisibility(View.VISIBLE);
8386
} else {
@@ -94,8 +97,7 @@ public void onClick(View v) {
9497
}
9598
};
9699
setTheme(convertView);
97-
((ImageView) convertView.findViewById(R.id.friend_avatar)).setOnClickListener(openProfileListener);
98-
friend_title.setOnClickListener(openProfileListener);
100+
convertView.setOnClickListener(openProfileListener);
99101
}
100102
}
101103

app/src/main/java/uk/openvk/android/refresh/ui/list/adapters/GroupsAdapter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ void bind(final int position) {
7575
.dontAnimate().centerCrop()
7676
.into((ImageView) convertView.findViewById(R.id.group_avatar));
7777

78+
convertView.findViewById(R.id.group_avatar).setFocusable(false);
79+
group_title.setFocusable(false);
80+
group_summary.setFocusable(false);
81+
7882
convertView.setOnClickListener(new View.OnClickListener() {
7983
@Override
8084
public void onClick(View v) {

app/src/main/java/uk/openvk/android/refresh/ui/list/items/ListCategory.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

app/src/main/java/uk/openvk/android/refresh/ui/list/sections/CommunitiesSearchSection.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import uk.openvk.android.refresh.R;
1515
import uk.openvk.android.refresh.api.models.Group;
1616
import uk.openvk.android.refresh.api.models.User;
17+
import uk.openvk.android.refresh.ui.core.activities.QuickSearchActivity;
1718

1819
public class CommunitiesSearchSection extends Section {
1920
private Context ctx;
@@ -53,12 +54,23 @@ public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) {
5354
Holder itemHolder = (Holder) holder;
5455
Group item = items.get(position);
5556
itemHolder.title.setText(item.name);
57+
itemHolder.title.setFocusable(false);
58+
itemHolder.view.setOnClickListener(new View.OnClickListener() {
59+
@Override
60+
public void onClick(View v) {
61+
if(ctx instanceof QuickSearchActivity) {
62+
((QuickSearchActivity) ctx).openGroup(position);
63+
}
64+
}
65+
});
5666
}
5767

5868
public static class Holder extends RecyclerView.ViewHolder {
5969
public TextView title;
70+
public View view;
6071
public Holder(@NonNull View view) {
6172
super(view);
73+
this.view = view;
6274
title = view.findViewById(R.id.search_result_title);
6375
}
6476
}

app/src/main/java/uk/openvk/android/refresh/ui/list/sections/PeopleSearchSection.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.github.luizgrp.sectionedrecyclerviewadapter.SectionParameters;
1717
import uk.openvk.android.refresh.R;
1818
import uk.openvk.android.refresh.api.models.User;
19+
import uk.openvk.android.refresh.ui.core.activities.QuickSearchActivity;
1920

2021
public class PeopleSearchSection extends Section {
2122
private Context ctx;
@@ -55,12 +56,23 @@ public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) {
5556
Holder itemHolder = (Holder) holder;
5657
User item = items.get(position);
5758
itemHolder.title.setText(String.format("%s %s", item.first_name, item.last_name));
59+
itemHolder.title.setFocusable(false);
60+
itemHolder.view.setOnClickListener(new View.OnClickListener() {
61+
@Override
62+
public void onClick(View v) {
63+
if(ctx instanceof QuickSearchActivity) {
64+
((QuickSearchActivity) ctx).openProfile(position);
65+
}
66+
}
67+
});
5868
}
5969

6070
public static class Holder extends RecyclerView.ViewHolder {
6171
public TextView title;
72+
public View view;
6273
public Holder(@NonNull View view) {
6374
super(view);
75+
this.view = view;
6476
title = view.findViewById(R.id.search_result_title);
6577
}
6678
}

0 commit comments

Comments
 (0)