From 84d5c2aac6fb35d6f20378b7adf5092e57122232 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Fri, 11 Mar 2016 12:26:56 -0500 Subject: [PATCH] Remove longClick hack --- .../uhabits/fragments/ListHabitsFragment.java | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 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 ef11a2301..cbebd2b63 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ListHabitsFragment.java @@ -22,6 +22,7 @@ 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; @@ -69,7 +70,6 @@ public class ListHabitsFragment extends Fragment OnClickListener, HabitListLoader.Listener, AdapterView.OnItemLongClickListener, HabitSelectionCallback.Listener { - long lastLongClick = 0; private boolean isShortToggleEnabled; private boolean showArchived; @@ -230,8 +230,6 @@ 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); @@ -297,8 +295,6 @@ public class ListHabitsFragment extends Fragment @Override public boolean onLongClick(View v) { - lastLongClick = new Date().getTime(); - switch (v.getId()) { case R.id.tvCheck: @@ -317,18 +313,36 @@ public class ListHabitsFragment extends Fragment DialogHelper.vibrate(activity, 100); } - private void toggleCheck(View v) + private void toggleCheck(final View v) { - 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); + 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); - Habit habit = loader.habits.get(tag); - if(habit == null) return; + habit = loader.habits.get(tag); + if(habit == null) return null; - helper.toggleCheckmarkView(v, habit); - executeCommand(new ToggleRepetitionCommand(habit, timestamp), habit.getId()); + executeCommand(new ToggleRepetitionCommand(habit, timestamp), habit.getId()); + + return null; + } + + @Override + protected void onPostExecute(Void aVoid) + { + if(habit != null) + helper.toggleCheckmarkView(v, habit); + } + }.execute(); } private void executeCommand(Command c, Long refreshKey)