Start converting to view binding

gtask_related_email
Alex Baker 6 years ago
parent 9f40b8b9c7
commit ce7d04b595

@ -113,6 +113,10 @@ android {
} }
} }
viewBinding {
isEnabled = true
}
dataBinding { dataBinding {
isEnabled = true isEnabled = true
} }

@ -21,15 +21,12 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.view.ActionMode; import androidx.appcompat.view.ActionMode;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProviders;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
@ -45,6 +42,7 @@ import org.tasks.LocalBroadcastManager;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.TagSettingsActivity; import org.tasks.activities.TagSettingsActivity;
import org.tasks.billing.Inventory; import org.tasks.billing.Inventory;
import org.tasks.databinding.TaskListActivityBinding;
import org.tasks.dialogs.SortDialog; import org.tasks.dialogs.SortDialog;
import org.tasks.fragments.CommentBarFragment; import org.tasks.fragments.CommentBarFragment;
import org.tasks.gtasks.PlayServices; import org.tasks.gtasks.PlayServices;
@ -94,15 +92,6 @@ public class MainActivity extends InjectingAppCompatActivity
@Inject PlayServices playServices; @Inject PlayServices playServices;
@Inject Inventory inventory; @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 CompositeDisposable disposables;
private NavigationDrawerFragment navigationDrawer; private NavigationDrawerFragment navigationDrawer;
private int currentNightMode; private int currentNightMode;
@ -111,6 +100,8 @@ public class MainActivity extends InjectingAppCompatActivity
private Filter filter; private Filter filter;
private ActionMode actionMode = null; private ActionMode actionMode = null;
TaskListActivityBinding binding;
/** @see android.app.Activity#onCreate(Bundle) */ /** @see android.app.Activity#onCreate(Bundle) */
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -122,9 +113,8 @@ public class MainActivity extends InjectingAppCompatActivity
currentNightMode = getNightMode(); currentNightMode = getNightMode();
currentPro = inventory.hasPro(); currentPro = inventory.hasPro();
setContentView(R.layout.task_list_activity); binding = TaskListActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
ButterKnife.bind(this);
if (savedInstanceState != null) { if (savedInstanceState != null) {
filter = savedInstanceState.getParcelable(EXTRA_FILTER); filter = savedInstanceState.getParcelable(EXTRA_FILTER);
@ -132,9 +122,9 @@ public class MainActivity extends InjectingAppCompatActivity
} }
navigationDrawer = getNavigationDrawerFragment(); navigationDrawer = getNavigationDrawerFragment();
navigationDrawer.setUp(drawerLayout); navigationDrawer.setUp(binding.drawerLayout);
drawerLayout.addDrawerListener( binding.drawerLayout.addDrawerListener(
new DrawerLayout.SimpleDrawerListener() { new DrawerLayout.SimpleDrawerListener() {
@Override @Override
public void onDrawerStateChanged(int newState) { public void onDrawerStateChanged(int newState) {
@ -244,8 +234,8 @@ public class MainActivity extends InjectingAppCompatActivity
private void showDetailFragment() { private void showDetailFragment() {
if (isSinglePaneLayout()) { if (isSinglePaneLayout()) {
detail.setVisibility(View.VISIBLE); binding.detail.setVisibility(View.VISIBLE);
master.setVisibility(View.GONE); binding.master.setVisibility(View.GONE);
} }
} }
@ -256,8 +246,8 @@ public class MainActivity extends InjectingAppCompatActivity
.commit(); .commit();
if (isSinglePaneLayout()) { if (isSinglePaneLayout()) {
master.setVisibility(View.VISIBLE); binding.master.setVisibility(View.VISIBLE);
detail.setVisibility(View.GONE); binding.detail.setVisibility(View.GONE);
} }
} }
@ -281,7 +271,7 @@ public class MainActivity extends InjectingAppCompatActivity
private void applyTheme() { private void applyTheme() {
ThemeColor filterColor = getFilterColor(); ThemeColor filterColor = getFilterColor();
filterColor.applyToStatusBar(drawerLayout); filterColor.applyToStatusBar(binding.drawerLayout);
filterColor.applyToNavigationBar(this); filterColor.applyToNavigationBar(this);
filterColor.applyTaskDescription( filterColor.applyTaskDescription(
this, filter == null ? getString(R.string.app_name) : filter.listingTitle); this, filter == null ? getString(R.string.app_name) : filter.listingTitle);

@ -21,14 +21,11 @@ import android.view.LayoutInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
@ -48,6 +45,7 @@ import org.tasks.R;
import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracker;
import org.tasks.data.UserActivity; import org.tasks.data.UserActivity;
import org.tasks.data.UserActivityDao; import org.tasks.data.UserActivityDao;
import org.tasks.databinding.FragmentTaskEditBinding;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.fragments.TaskEditControlSetFragmentManager; import org.tasks.fragments.TaskEditControlSetFragmentManager;
import org.tasks.injection.ForActivity; import org.tasks.injection.ForActivity;
@ -76,15 +74,6 @@ public final class TaskEditFragment extends InjectingFragment
@Inject Tracker tracker; @Inject Tracker tracker;
@Inject TimerPlugin timerPlugin; @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; Task model = null;
private TaskEditFragmentCallbackHandler callback; private TaskEditFragmentCallbackHandler callback;
@ -111,12 +100,13 @@ public final class TaskEditFragment extends InjectingFragment
@Override @Override
public View onCreateView( public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_task_edit, container, false); FragmentTaskEditBinding binding = FragmentTaskEditBinding.inflate(inflater);
ButterKnife.bind(this, view); View view = binding.getRoot();
Bundle arguments = getArguments(); Bundle arguments = getArguments();
model = arguments.getParcelable(EXTRA_TASK); model = arguments.getParcelable(EXTRA_TASK);
Toolbar toolbar = binding.toolbar.toolbar;
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); final boolean backButtonSavesTask = preferences.backButtonSavesTask();
toolbar.setNavigationIcon( toolbar.setNavigationIcon(
ContextCompat.getDrawable( ContextCompat.getDrawable(
@ -142,7 +132,7 @@ public final class TaskEditFragment extends InjectingFragment
notificationManager.cancel(model.getId()); notificationManager.cancel(model.getId());
} }
commentsController.initialize(model, comments); commentsController.initialize(model, binding.comments);
commentsController.reloadView(); commentsController.reloadView();
FragmentManager fragmentManager = getChildFragmentManager(); FragmentManager fragmentManager = getChildFragmentManager();
@ -161,7 +151,7 @@ public final class TaskEditFragment extends InjectingFragment
fragmentTransaction.commit(); fragmentTransaction.commit();
for (int i = taskEditControlFragments.size() - 2; i > 1; i--) { 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; return view;

@ -18,12 +18,9 @@ import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ListView; import android.widget.ListView;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.todoroo.andlib.data.Property.CountProperty; import com.todoroo.andlib.data.Property.CountProperty;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.sql.UnaryCriterion; import com.todoroo.andlib.sql.UnaryCriterion;
@ -46,6 +43,7 @@ import java.util.Map.Entry;
import javax.inject.Inject; import javax.inject.Inject;
import org.tasks.R; import org.tasks.R;
import org.tasks.data.FilterDao; import org.tasks.data.FilterDao;
import org.tasks.databinding.CustomFilterActivityBinding;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterCriteriaProvider; import org.tasks.filters.FilterCriteriaProvider;
import org.tasks.injection.ActivityComponent; 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 String IDENTIFIER_UNIVERSE = "active"; // $NON-NLS-1$
private static final int MENU_GROUP_FILTER = 0; private static final int MENU_GROUP_FILTER = 0;
// --- hierarchy of filter classes
@Inject Database database; @Inject Database database;
@Inject FilterDao filterDao; @Inject FilterDao filterDao;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
// --- activity
@Inject FilterCriteriaProvider filterCriteriaProvider; @Inject FilterCriteriaProvider filterCriteriaProvider;
@Inject Locale locale; @Inject Locale locale;
@BindView(R.id.tag_name) CustomFilterActivityBinding binding;
EditText filterName;
@BindView(R.id.toolbar)
Toolbar toolbar;
private ListView listView; private ListView listView;
private CustomFilterAdapter adapter; private CustomFilterAdapter adapter;
@ -119,9 +110,10 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.custom_filter_activity); binding = CustomFilterActivityBinding.inflate(getLayoutInflater());
ButterKnife.bind(this); setContentView(binding.getRoot());
Toolbar toolbar = binding.toolbar.toolbar;
toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_outline_clear_24px)); toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_outline_clear_24px));
toolbar.setTitle(R.string.FLA_new_filter); toolbar.setTitle(R.string.FLA_new_filter);
toolbar.inflateMenu(R.menu.menu_custom_filter_activity); toolbar.inflateMenu(R.menu.menu_custom_filter_activity);
@ -186,7 +178,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
@Override @Override
public void finish() { public void finish() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(filterName.getWindowToken(), 0); imm.hideSoftInputFromWindow(binding.filterName.getWindowToken(), 0);
super.finish(); super.finish();
} }
@ -203,7 +195,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
} }
private void saveAndView() { private void saveAndView() {
String title = filterName.getText().toString().trim(); String title = binding.filterName.getText().toString().trim();
if (isEmpty(title)) { if (isEmpty(title)) {
return; return;
@ -327,7 +319,7 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity
} }
private void discard() { private void discard() {
if (filterName.getText().toString().trim().isEmpty() && adapter.getCount() <= 1) { if (binding.filterName.getText().toString().trim().isEmpty() && adapter.getCount() <= 1) {
finish(); finish();
} else { } else {
dialogBuilder dialogBuilder

@ -8,14 +8,13 @@ import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.google.android.material.textfield.TextInputEditText;
import javax.inject.Inject; import javax.inject.Inject;
import net.dinglisch.android.tasker.TaskerPlugin; import net.dinglisch.android.tasker.TaskerPlugin;
import org.tasks.LocalBroadcastManager; import org.tasks.LocalBroadcastManager;
import org.tasks.R; import org.tasks.R;
import org.tasks.billing.Inventory; import org.tasks.billing.Inventory;
import org.tasks.databinding.ActivityTaskerCreateBinding;
import org.tasks.databinding.ToolbarBinding;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.locale.bundle.TaskCreationBundle; import org.tasks.locale.bundle.TaskCreationBundle;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -30,23 +29,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Inject Inventory inventory; @Inject Inventory inventory;
@Inject LocalBroadcastManager localBroadcastManager; @Inject LocalBroadcastManager localBroadcastManager;
@BindView(R.id.title) ActivityTaskerCreateBinding binding;
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;
private Bundle previousBundle; private Bundle previousBundle;
@ -54,10 +37,10 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
public void onCreate(final Bundle savedInstanceState) { public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tasker_create); binding = ActivityTaskerCreateBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
ButterKnife.bind(this);
Toolbar toolbar = binding.toolbar.toolbar;
toolbar.setTitle(R.string.tasker_create_task); toolbar.setTitle(R.string.tasker_create_task);
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); final boolean backButtonSavesTask = preferences.backButtonSavesTask();
toolbar.setNavigationIcon( toolbar.setNavigationIcon(
@ -81,7 +64,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
if (savedInstanceState != null) { if (savedInstanceState != null) {
previousBundle = savedInstanceState.getParcelable(TaskCreationBundle.EXTRA_BUNDLE); previousBundle = savedInstanceState.getParcelable(TaskCreationBundle.EXTRA_BUNDLE);
TaskCreationBundle bundle = new TaskCreationBundle(previousBundle); TaskCreationBundle bundle = new TaskCreationBundle(previousBundle);
title.setText(bundle.getTitle()); binding.title.setText(bundle.getTitle());
} }
if (!inventory.purchasedTasker()) { if (!inventory.purchasedTasker()) {
@ -98,11 +81,11 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
final Bundle previousBundle, final String previousBlurb) { final Bundle previousBundle, final String previousBlurb) {
this.previousBundle = previousBundle; this.previousBundle = previousBundle;
TaskCreationBundle bundle = new TaskCreationBundle(previousBundle); TaskCreationBundle bundle = new TaskCreationBundle(previousBundle);
title.setText(bundle.getTitle()); binding.title.setText(bundle.getTitle());
dueDate.setText(bundle.getDueDate()); binding.dueDate.setText(bundle.getDueDate());
dueTime.setText(bundle.getDueTime()); binding.dueTime.setText(bundle.getDueTime());
priority.setText(bundle.getPriority()); binding.priority.setText(bundle.getPriority());
description.setText(bundle.getDescription()); binding.description.setText(bundle.getDescription());
} }
@Override @Override
@ -113,11 +96,11 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Override @Override
protected Bundle getResultBundle() { protected Bundle getResultBundle() {
TaskCreationBundle bundle = new TaskCreationBundle(); TaskCreationBundle bundle = new TaskCreationBundle();
bundle.setTitle(title.getText().toString().trim()); bundle.setTitle(binding.title.getText().toString().trim());
bundle.setDueDate(dueDate.getText().toString().trim()); bundle.setDueDate(binding.dueDate.getText().toString().trim());
bundle.setDueTime(dueTime.getText().toString().trim()); bundle.setDueTime(binding.dueTime.getText().toString().trim());
bundle.setPriority(priority.getText().toString().trim()); bundle.setPriority(binding.priority.getText().toString().trim());
bundle.setDescription(description.getText().toString().trim()); bundle.setDescription(binding.description.getText().toString().trim());
Bundle resultBundle = bundle.build(); Bundle resultBundle = bundle.build();
if (TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement(this)) { if (TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement(this)) {
TaskerPlugin.Setting.setVariableReplaceKeys( TaskerPlugin.Setting.setVariableReplaceKeys(
@ -135,7 +118,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Override @Override
public String getResultBlurb(final Bundle bundle) { public String getResultBlurb(final Bundle bundle) {
return title.getText().toString().trim(); return binding.title.getText().toString().trim();
} }
@Override @Override

@ -5,7 +5,9 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/toolbar"/> <include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<ScrollView <ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"

@ -9,7 +9,9 @@
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/toolbar"/> <include
android:id="@+id/toolbar"
layout="@layout/toolbar"/>
<RelativeLayout <RelativeLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
@ -25,7 +27,7 @@
android:text="@string/name"/> android:text="@string/name"/>
<EditText <EditText
android:id="@+id/tag_name" android:id="@+id/filter_name"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"

@ -8,7 +8,9 @@
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/toolbar"/> <include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:scrollbarStyle="outsideOverlay" android:scrollbarStyle="outsideOverlay"

Loading…
Cancel
Save