From d326be12241698b699d8d6beaf833f4716c38136 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 12 Mar 2016 05:17:55 -0500 Subject: [PATCH] Reintroduce longClick hack --- .../uhabits/fragments/ListHabitsFragment.java | 42 +++++++------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java index cbebd2b63..ef11a2301 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java @@ -22,7 +22,6 @@ package org.isoron.uhabits.fragments; import android.app.Activity; import android.app.Fragment; import android.content.SharedPreferences; -import android.os.AsyncTask; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.ActionMode; @@ -70,6 +69,7 @@ public class ListHabitsFragment extends Fragment OnClickListener, HabitListLoader.Listener, AdapterView.OnItemLongClickListener, HabitSelectionCallback.Listener { + long lastLongClick = 0; private boolean isShortToggleEnabled; private boolean showArchived; @@ -230,6 +230,8 @@ public class ListHabitsFragment extends Fragment @Override public void onItemClick(AdapterView parent, View view, int position, long id) { + if (new Date().getTime() - lastLongClick < 1000) return; + if(actionMode == null) { Habit habit = loader.habitsList.get(position); @@ -295,6 +297,8 @@ public class ListHabitsFragment extends Fragment @Override public boolean onLongClick(View v) { + lastLongClick = new Date().getTime(); + switch (v.getId()) { case R.id.tvCheck: @@ -313,36 +317,18 @@ public class ListHabitsFragment extends Fragment DialogHelper.vibrate(activity, 100); } - private void toggleCheck(final View v) + private void toggleCheck(View v) { - final Long tag = (Long) v.getTag(R.string.habit_key); - final Integer offset = (Integer) v.getTag(R.string.offset_key); - - new AsyncTask() - { - private Habit habit; - - @Override - protected Void doInBackground(Void... params) - { - long timestamp = DateHelper.getStartOfDay( - DateHelper.getLocalTime() - offset * DateHelper.millisecondsInOneDay); + Long tag = (Long) v.getTag(R.string.habit_key); + Integer offset = (Integer) v.getTag(R.string.offset_key); + long timestamp = DateHelper.getStartOfDay( + DateHelper.getLocalTime() - offset * DateHelper.millisecondsInOneDay); - habit = loader.habits.get(tag); - if(habit == null) return null; + Habit habit = loader.habits.get(tag); + if(habit == null) return; - executeCommand(new ToggleRepetitionCommand(habit, timestamp), habit.getId()); - - return null; - } - - @Override - protected void onPostExecute(Void aVoid) - { - if(habit != null) - helper.toggleCheckmarkView(v, habit); - } - }.execute(); + helper.toggleCheckmarkView(v, habit); + executeCommand(new ToggleRepetitionCommand(habit, timestamp), habit.getId()); } private void executeCommand(Command c, Long refreshKey)