diff --git a/app/build.gradle b/app/build.gradle index f8cefba08..8164b62ab 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'com.neenbedankt.android-apt' android { compileSdkVersion 23 @@ -40,6 +41,8 @@ dependencies { compile 'org.apmem.tools:layouts:1.10@aar' compile 'com.opencsv:opencsv:3.7' compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT' + compile 'com.jakewharton:butterknife:8.0.1' + apt 'com.jakewharton:butterknife-compiler:8.0.1' compile project(':libs:drag-sort-listview:library') diff --git a/app/src/main/java/org/isoron/uhabits/ui/habits/list/ListHabitsFragment.java b/app/src/main/java/org/isoron/uhabits/ui/habits/list/ListHabitsFragment.java index cefecc0c9..586fb5387 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/habits/list/ListHabitsFragment.java +++ b/app/src/main/java/org/isoron/uhabits/ui/habits/list/ListHabitsFragment.java @@ -28,7 +28,6 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.ProgressBar; @@ -43,8 +42,12 @@ import org.isoron.uhabits.ui.HintManager; import org.isoron.uhabits.ui.habits.edit.EditHabitDialogFragment; import org.isoron.uhabits.utils.InterfaceUtils; -public class ListHabitsFragment extends Fragment implements OnClickListener, - HabitListSelectionCallback.Listener, ListHabitsController.Screen +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; + +public class ListHabitsFragment extends Fragment + implements HabitListSelectionCallback.Listener, ListHabitsController.Screen { private ActionMode actionMode; private HintManager hintManager; @@ -52,38 +55,26 @@ public class ListHabitsFragment extends Fragment implements OnClickListener, private Listener habitClickListener; private BaseActivity activity; - private HabitListView listView; - private LinearLayout llButtonsHeader; - private ProgressBar progressBar; - private View llEmpty; + @BindView(R.id.listView) HabitListView listView; + @BindView(R.id.llButtonsHeader) LinearLayout llButtonsHeader; + @BindView(R.id.progressBar) ProgressBar progressBar; + @BindView(R.id.llEmpty) View llEmpty; + @BindView(R.id.llHint) View llHint; + @BindView(R.id.tvStarEmpty) TextView tvStarEmpty; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.list_habits_fragment, container, false); - - View llHint = view.findViewById(R.id.llHint); - llButtonsHeader = (LinearLayout) view.findViewById(R.id.llButtonsHeader); - llEmpty = view.findViewById(R.id.llEmpty); - progressBar = (ProgressBar) view.findViewById(R.id.progressBar); - listView = (HabitListView) view.findViewById(R.id.listView); - TextView tvStarEmpty = (TextView) view.findViewById(R.id.tvStarEmpty); + ButterKnife.bind(this, view); helper = new ListHabitsHelper(activity, listView.getLoader()); hintManager = new HintManager(activity, llHint); - - llHint.setOnClickListener(this); tvStarEmpty.setTypeface(InterfaceUtils.getFontAwesome(activity)); listView.setListener(new HabitListViewListener()); setHasOptionsMenu(true); - if(savedInstanceState != null) - { - EditHabitDialogFragment frag = (EditHabitDialogFragment) getFragmentManager() - .findFragmentByTag("editHabit"); - } - return view; } @@ -100,7 +91,6 @@ public class ListHabitsFragment extends Fragment implements OnClickListener, public void onResume() { super.onResume(); - listView.getLoader().onResume(); listView.refreshData(null); helper.updateEmptyMessage(llEmpty); @@ -124,6 +114,7 @@ public class ListHabitsFragment extends Fragment implements OnClickListener, showArchivedItem.setChecked(listView.getShowArchived()); } + @Override public boolean onOptionsItemSelected(MenuItem item) { @@ -175,11 +166,10 @@ public class ListHabitsFragment extends Fragment implements OnClickListener, listView.cancelSelection(); } - @Override - public void onClick(View v) + @OnClick(R.id.llHint) + public void onClickHint() { - if (v.getId() == R.id.llHint) - hintManager.dismissHint(); + hintManager.dismissHint(); } public ProgressBar getProgressBar() diff --git a/app/src/main/java/org/isoron/uhabits/ui/habits/show/ShowHabitFragment.java b/app/src/main/java/org/isoron/uhabits/ui/habits/show/ShowHabitFragment.java index 3ce2bf349..093d6d51f 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/habits/show/ShowHabitFragment.java +++ b/app/src/main/java/org/isoron/uhabits/ui/habits/show/ShowHabitFragment.java @@ -20,7 +20,6 @@ package org.isoron.uhabits.ui.habits.show; import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.Menu; @@ -29,7 +28,6 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; -import android.widget.Button; import android.widget.Spinner; import org.isoron.uhabits.R; @@ -49,15 +47,12 @@ import org.isoron.uhabits.views.HabitStreakView; import java.util.LinkedList; import java.util.List; -public class ShowHabitFragment extends Fragment - implements Spinner.OnItemSelectedListener, ModelObservable.Listener -{ - protected ShowHabitActivity activity; - @Nullable - private List dataViews; - - private int previousScoreInterval; +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +public class ShowHabitFragment extends Fragment implements ModelObservable.Listener +{ Habit habit; float todayScore; @@ -65,14 +60,25 @@ public class ShowHabitFragment extends Fragment float lastYearScore; int activeColor; int inactiveColor; + int previousScoreInterval; private ShowHabitHelper helper; + protected ShowHabitActivity activity; + private List dataViews; + + @BindView(R.id.sStrengthInterval) Spinner sStrengthInterval; + @BindView(R.id.scoreView) HabitScoreView habitScoreView; + @BindView(R.id.historyView) HabitHistoryView habitHistoryView; + @BindView(R.id.punchcardView) HabitFrequencyView habitFrequencyView; + @BindView(R.id.streakView) HabitStreakView habitStreakView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.show_habit, container, false); + ButterKnife.bind(this, view); + activity = (ShowHabitActivity) getActivity(); helper = new ShowHabitHelper(this); @@ -84,41 +90,31 @@ public class ShowHabitFragment extends Fragment previousScoreInterval = defaultScoreInterval; setScoreBucketSize(defaultScoreInterval); - Spinner sStrengthInterval = (Spinner) view.findViewById(R.id.sStrengthInterval); sStrengthInterval.setSelection(defaultScoreInterval); - sStrengthInterval.setOnItemSelectedListener(this); + sStrengthInterval.setOnItemSelectedListener(new OnItemSelectedListener()); - createDataViews(view); + createDataViews(); helper.updateCardHeaders(view); - - bindButtontEditHistory(view); setHasOptionsMenu(true); return view; } - private void bindButtontEditHistory(View view) + @OnClick(R.id.btEditHistory) + public void onClickEditHistory() { - Button btEditHistory = (Button) view.findViewById(R.id.btEditHistory); - btEditHistory.setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - HistoryEditorDialog frag = new HistoryEditorDialog(); - frag.setHabit(habit); - frag.show(getFragmentManager(), "historyEditor"); - } - }); + HistoryEditorDialog frag = new HistoryEditorDialog(); + frag.setHabit(habit); + frag.show(getFragmentManager(), "historyEditor"); } - private void createDataViews(View view) + private void createDataViews() { dataViews = new LinkedList<>(); - dataViews.add((HabitScoreView) view.findViewById(R.id.scoreView)); - dataViews.add((HabitHistoryView) view.findViewById(R.id.historyView)); - dataViews.add((HabitFrequencyView) view.findViewById(R.id.punchcardView)); - dataViews.add((HabitStreakView) view.findViewById(R.id.streakView)); + dataViews.add(habitScoreView); + dataViews.add(habitHistoryView); + dataViews.add(habitFrequencyView); + dataViews.add(habitStreakView); for(HabitDataView dataView : dataViews) dataView.setHabit(habit); @@ -160,19 +156,11 @@ public class ShowHabitFragment extends Fragment new RefreshTask().execute(); } - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) - { - if(parent.getId() == R.id.sStrengthInterval) - setScoreBucketSize(position); - } - private void setScoreBucketSize(int position) { if(getView() == null) return; - HabitScoreView scoreView = (HabitScoreView) getView().findViewById(R.id.scoreView); - scoreView.setBucketSize(HabitScoreView.DEFAULT_BUCKET_SIZES[position]); + habitScoreView.setBucketSize(HabitScoreView.DEFAULT_BUCKET_SIZES[position]); if(position != previousScoreInterval) refreshData(); @@ -181,11 +169,6 @@ public class ShowHabitFragment extends Fragment previousScoreInterval = position; } - @Override - public void onNothingSelected(AdapterView parent) - { - } - @Override public void onModelChange() { @@ -203,6 +186,20 @@ public class ShowHabitFragment extends Fragment }); } + @Override + public void onStart() + { + super.onStart(); + habit.observable.addListener(this); + } + + @Override + public void onPause() + { + habit.observable.removeListener(this); + super.onPause(); + } + private class RefreshTask extends BaseTask { @Override @@ -228,17 +225,18 @@ public class ShowHabitFragment extends Fragment } } - @Override - public void onStart() + private class OnItemSelectedListener implements AdapterView.OnItemSelectedListener { - super.onStart(); - habit.observable.addListener(this); - } + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) + { + setScoreBucketSize(position); + } - @Override - public void onPause() - { - habit.observable.removeListener(this); - super.onPause(); + @Override + public void onNothingSelected(AdapterView parent) + { + + } } } diff --git a/build.gradle b/build.gradle index eb0a985ee..d9ea1210d 100644 --- a/build.gradle +++ b/build.gradle @@ -6,6 +6,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } }