diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 34c9700f1..fbc0d8050 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -113,6 +113,10 @@ android {
}
}
+ viewBinding {
+ isEnabled = true
+ }
+
dataBinding {
isEnabled = true
}
diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java
index 39c0135a8..52cb7cbda 100644
--- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.java
@@ -21,15 +21,12 @@ import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
-import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.view.ActionMode;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders;
-import butterknife.BindView;
-import butterknife.ButterKnife;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
@@ -45,6 +42,7 @@ import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.activities.TagSettingsActivity;
import org.tasks.billing.Inventory;
+import org.tasks.databinding.TaskListActivityBinding;
import org.tasks.dialogs.SortDialog;
import org.tasks.fragments.CommentBarFragment;
import org.tasks.gtasks.PlayServices;
@@ -94,15 +92,6 @@ public class MainActivity extends InjectingAppCompatActivity
@Inject PlayServices playServices;
@Inject Inventory inventory;
- @BindView(R.id.drawer_layout)
- DrawerLayout drawerLayout;
-
- @BindView(R.id.master)
- FrameLayout master;
-
- @BindView(R.id.detail)
- FrameLayout detail;
-
private CompositeDisposable disposables;
private NavigationDrawerFragment navigationDrawer;
private int currentNightMode;
@@ -111,6 +100,8 @@ public class MainActivity extends InjectingAppCompatActivity
private Filter filter;
private ActionMode actionMode = null;
+ TaskListActivityBinding binding;
+
/** @see android.app.Activity#onCreate(Bundle) */
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -122,9 +113,8 @@ public class MainActivity extends InjectingAppCompatActivity
currentNightMode = getNightMode();
currentPro = inventory.hasPro();
- setContentView(R.layout.task_list_activity);
-
- ButterKnife.bind(this);
+ binding = TaskListActivityBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
if (savedInstanceState != null) {
filter = savedInstanceState.getParcelable(EXTRA_FILTER);
@@ -132,9 +122,9 @@ public class MainActivity extends InjectingAppCompatActivity
}
navigationDrawer = getNavigationDrawerFragment();
- navigationDrawer.setUp(drawerLayout);
+ navigationDrawer.setUp(binding.drawerLayout);
- drawerLayout.addDrawerListener(
+ binding.drawerLayout.addDrawerListener(
new DrawerLayout.SimpleDrawerListener() {
@Override
public void onDrawerStateChanged(int newState) {
@@ -244,8 +234,8 @@ public class MainActivity extends InjectingAppCompatActivity
private void showDetailFragment() {
if (isSinglePaneLayout()) {
- detail.setVisibility(View.VISIBLE);
- master.setVisibility(View.GONE);
+ binding.detail.setVisibility(View.VISIBLE);
+ binding.master.setVisibility(View.GONE);
}
}
@@ -256,8 +246,8 @@ public class MainActivity extends InjectingAppCompatActivity
.commit();
if (isSinglePaneLayout()) {
- master.setVisibility(View.VISIBLE);
- detail.setVisibility(View.GONE);
+ binding.master.setVisibility(View.VISIBLE);
+ binding.detail.setVisibility(View.GONE);
}
}
@@ -281,7 +271,7 @@ public class MainActivity extends InjectingAppCompatActivity
private void applyTheme() {
ThemeColor filterColor = getFilterColor();
- filterColor.applyToStatusBar(drawerLayout);
+ filterColor.applyToStatusBar(binding.drawerLayout);
filterColor.applyToNavigationBar(this);
filterColor.applyTaskDescription(
this, filter == null ? getString(R.string.app_name) : filter.listingTitle);
diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
index f5afb1784..acc9b0df0 100755
--- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
@@ -21,14 +21,11 @@ import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
-import butterknife.BindView;
-import butterknife.ButterKnife;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.Filter;
@@ -48,6 +45,7 @@ import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.data.UserActivity;
import org.tasks.data.UserActivityDao;
+import org.tasks.databinding.FragmentTaskEditBinding;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.fragments.TaskEditControlSetFragmentManager;
import org.tasks.injection.ForActivity;
@@ -76,15 +74,6 @@ public final class TaskEditFragment extends InjectingFragment
@Inject Tracker tracker;
@Inject TimerPlugin timerPlugin;
- @BindView(R.id.toolbar)
- Toolbar toolbar;
-
- @BindView(R.id.comments)
- LinearLayout comments;
-
- @BindView(R.id.control_sets)
- LinearLayout controlSets;
-
Task model = null;
private TaskEditFragmentCallbackHandler callback;
@@ -111,12 +100,13 @@ public final class TaskEditFragment extends InjectingFragment
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_task_edit, container, false);
- ButterKnife.bind(this, view);
+ FragmentTaskEditBinding binding = FragmentTaskEditBinding.inflate(inflater);
+ View view = binding.getRoot();
Bundle arguments = getArguments();
model = arguments.getParcelable(EXTRA_TASK);
+ Toolbar toolbar = binding.toolbar.toolbar;
final boolean backButtonSavesTask = preferences.backButtonSavesTask();
toolbar.setNavigationIcon(
ContextCompat.getDrawable(
@@ -142,7 +132,7 @@ public final class TaskEditFragment extends InjectingFragment
notificationManager.cancel(model.getId());
}
- commentsController.initialize(model, comments);
+ commentsController.initialize(model, binding.comments);
commentsController.reloadView();
FragmentManager fragmentManager = getChildFragmentManager();
@@ -161,7 +151,7 @@ public final class TaskEditFragment extends InjectingFragment
fragmentTransaction.commit();
for (int i = taskEditControlFragments.size() - 2; i > 1; i--) {
- controlSets.addView(inflater.inflate(R.layout.task_edit_row_divider, controlSets, false), i);
+ binding.controlSets.addView(inflater.inflate(R.layout.task_edit_row_divider, binding.controlSets, false), i);
}
return view;
diff --git a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
index 63dc383fa..54454114e 100644
--- a/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
+++ b/app/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
@@ -18,12 +18,9 @@ import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
import android.widget.ListView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
-import butterknife.BindView;
-import butterknife.ButterKnife;
import com.todoroo.andlib.data.Property.CountProperty;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.sql.UnaryCriterion;
@@ -46,6 +43,7 @@ import java.util.Map.Entry;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.FilterDao;
+import org.tasks.databinding.CustomFilterActivityBinding;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterCriteriaProvider;
import org.tasks.injection.ActivityComponent;
@@ -66,20 +64,13 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
private static final String IDENTIFIER_UNIVERSE = "active"; // $NON-NLS-1$
private static final int MENU_GROUP_FILTER = 0;
- // --- hierarchy of filter classes
@Inject Database database;
@Inject FilterDao filterDao;
@Inject DialogBuilder dialogBuilder;
-
- // --- activity
@Inject FilterCriteriaProvider filterCriteriaProvider;
@Inject Locale locale;
- @BindView(R.id.tag_name)
- EditText filterName;
-
- @BindView(R.id.toolbar)
- Toolbar toolbar;
+ CustomFilterActivityBinding binding;
private ListView listView;
private CustomFilterAdapter adapter;
@@ -119,9 +110,10 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.custom_filter_activity);
- ButterKnife.bind(this);
+ binding = CustomFilterActivityBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
+ Toolbar toolbar = binding.toolbar.toolbar;
toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_outline_clear_24px));
toolbar.setTitle(R.string.FLA_new_filter);
toolbar.inflateMenu(R.menu.menu_custom_filter_activity);
@@ -186,7 +178,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
@Override
public void finish() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(filterName.getWindowToken(), 0);
+ imm.hideSoftInputFromWindow(binding.filterName.getWindowToken(), 0);
super.finish();
}
@@ -203,7 +195,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
}
private void saveAndView() {
- String title = filterName.getText().toString().trim();
+ String title = binding.filterName.getText().toString().trim();
if (isEmpty(title)) {
return;
@@ -327,7 +319,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
}
private void discard() {
- if (filterName.getText().toString().trim().isEmpty() && adapter.getCount() <= 1) {
+ if (binding.filterName.getText().toString().trim().isEmpty() && adapter.getCount() <= 1) {
finish();
} else {
dialogBuilder
diff --git a/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java b/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java
index 9f7ece6ed..459ed5f65 100755
--- a/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java
+++ b/app/src/main/java/org/tasks/locale/ui/activity/TaskerCreateTaskActivity.java
@@ -8,14 +8,13 @@ import android.os.Bundle;
import android.view.MenuItem;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import com.google.android.material.textfield.TextInputEditText;
import javax.inject.Inject;
import net.dinglisch.android.tasker.TaskerPlugin;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.billing.Inventory;
+import org.tasks.databinding.ActivityTaskerCreateBinding;
+import org.tasks.databinding.ToolbarBinding;
import org.tasks.injection.ActivityComponent;
import org.tasks.locale.bundle.TaskCreationBundle;
import org.tasks.preferences.Preferences;
@@ -30,23 +29,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Inject Inventory inventory;
@Inject LocalBroadcastManager localBroadcastManager;
- @BindView(R.id.title)
- TextInputEditText title;
-
- @BindView(R.id.toolbar)
- Toolbar toolbar;
-
- @BindView(R.id.due_date)
- TextInputEditText dueDate;
-
- @BindView(R.id.due_time)
- TextInputEditText dueTime;
-
- @BindView(R.id.priority)
- TextInputEditText priority;
-
- @BindView(R.id.description)
- TextInputEditText description;
+ ActivityTaskerCreateBinding binding;
private Bundle previousBundle;
@@ -54,10 +37,10 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_tasker_create);
-
- ButterKnife.bind(this);
+ binding = ActivityTaskerCreateBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
+ Toolbar toolbar = binding.toolbar.toolbar;
toolbar.setTitle(R.string.tasker_create_task);
final boolean backButtonSavesTask = preferences.backButtonSavesTask();
toolbar.setNavigationIcon(
@@ -81,7 +64,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
if (savedInstanceState != null) {
previousBundle = savedInstanceState.getParcelable(TaskCreationBundle.EXTRA_BUNDLE);
TaskCreationBundle bundle = new TaskCreationBundle(previousBundle);
- title.setText(bundle.getTitle());
+ binding.title.setText(bundle.getTitle());
}
if (!inventory.purchasedTasker()) {
@@ -98,11 +81,11 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
final Bundle previousBundle, final String previousBlurb) {
this.previousBundle = previousBundle;
TaskCreationBundle bundle = new TaskCreationBundle(previousBundle);
- title.setText(bundle.getTitle());
- dueDate.setText(bundle.getDueDate());
- dueTime.setText(bundle.getDueTime());
- priority.setText(bundle.getPriority());
- description.setText(bundle.getDescription());
+ binding.title.setText(bundle.getTitle());
+ binding.dueDate.setText(bundle.getDueDate());
+ binding.dueTime.setText(bundle.getDueTime());
+ binding.priority.setText(bundle.getPriority());
+ binding.description.setText(bundle.getDescription());
}
@Override
@@ -113,11 +96,11 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Override
protected Bundle getResultBundle() {
TaskCreationBundle bundle = new TaskCreationBundle();
- bundle.setTitle(title.getText().toString().trim());
- bundle.setDueDate(dueDate.getText().toString().trim());
- bundle.setDueTime(dueTime.getText().toString().trim());
- bundle.setPriority(priority.getText().toString().trim());
- bundle.setDescription(description.getText().toString().trim());
+ bundle.setTitle(binding.title.getText().toString().trim());
+ bundle.setDueDate(binding.dueDate.getText().toString().trim());
+ bundle.setDueTime(binding.dueTime.getText().toString().trim());
+ bundle.setPriority(binding.priority.getText().toString().trim());
+ bundle.setDescription(binding.description.getText().toString().trim());
Bundle resultBundle = bundle.build();
if (TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement(this)) {
TaskerPlugin.Setting.setVariableReplaceKeys(
@@ -135,7 +118,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Override
public String getResultBlurb(final Bundle bundle) {
- return title.getText().toString().trim();
+ return binding.title.getText().toString().trim();
}
@Override
diff --git a/app/src/main/res/layout/activity_tasker_create.xml b/app/src/main/res/layout/activity_tasker_create.xml
index 62c3b238f..70de7e0ac 100644
--- a/app/src/main/res/layout/activity_tasker_create.xml
+++ b/app/src/main/res/layout/activity_tasker_create.xml
@@ -5,7 +5,9 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
+
-
+
-
+