Add CaldavListFragment

pull/645/head
Alex Baker 6 years ago
parent cd6ffbee38
commit 4e74362b89

@ -18,6 +18,7 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
import com.todoroo.astrid.api.CaldavFilter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.api.GtasksFilter;
@ -38,6 +39,9 @@ import org.tasks.R;
import org.tasks.activities.TagSettingsActivity;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.caldav.CaldavListFragment;
import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavDao;
import org.tasks.data.GoogleTaskList;
import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
@ -97,6 +101,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
@Inject Tracker tracker;
@Inject TaskCreator taskCreator;
@Inject TaskDao taskDao;
@Inject CaldavDao caldavDao;
@Inject LocalBroadcastManager localBroadcastManager;
@BindView(R.id.drawer_layout) DrawerLayout drawerLayout;
@ -330,6 +335,12 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
? GtasksSubtaskListFragment.newGtasksSubtaskListFragment(gtasksFilter, list)
: GtasksListFragment.newGtasksListFragment(gtasksFilter, list);
}
} else if (filter instanceof CaldavFilter) {
CaldavFilter caldavFilter = (CaldavFilter) filter;
CaldavAccount account = caldavDao.getByUuid(caldavFilter.getUuid());
if (account != null) {
return CaldavListFragment.newCaldavListFragment(caldavFilter, account);
}
} else if (filter != null) {
return subtasksHelper.shouldUseSubtasksFragmentForFilter(filter)
? SubtasksListFragment.newSubtasksListFragment(filter)

@ -315,6 +315,8 @@ public class FilterAdapter extends ArrayAdapter<FilterListItem> {
}
}
addSubMenu(R.string.CalDAV, filterProvider.getCalDAVFilters(), false);
if (navigationDrawer) {
add(new NavigationDrawerSeparator());

@ -0,0 +1,56 @@
package org.tasks.caldav;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.CaldavFilter;
import org.tasks.R;
import org.tasks.data.CaldavAccount;
import org.tasks.injection.FragmentComponent;
public class CaldavListFragment extends TaskListFragment {
public static TaskListFragment newCaldavListFragment(CaldavFilter filter, CaldavAccount account) {
CaldavListFragment fragment = new CaldavListFragment();
fragment.filter = filter;
fragment.account = account;
return fragment;
}
private static final String EXTRA_CALDAV_ACCOUNT = "extra_caldav_account";
protected CaldavAccount account;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
this.account = savedInstanceState.getParcelable(EXTRA_CALDAV_ACCOUNT);
}
}
@Override
protected void inflateMenu(Toolbar toolbar) {
super.inflateMenu(toolbar);
toolbar.inflateMenu(R.menu.menu_caldav_list_fragment);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(EXTRA_CALDAV_ACCOUNT, account);
}
@Override
protected boolean hasDraggableOption() {
return false;
}
@Override
public void inject(FragmentComponent component) {
component.inject(this);
}
}

@ -13,6 +13,7 @@ import com.todoroo.astrid.ui.EditTitleControlSet;
import com.todoroo.astrid.ui.HideUntilControlSet;
import com.todoroo.astrid.ui.ReminderControlSet;
import org.tasks.caldav.CaldavListFragment;
import org.tasks.fragments.CommentBarFragment;
import org.tasks.tasklist.GtasksListFragment;
import org.tasks.tasklist.TagListFragment;
@ -69,4 +70,6 @@ public interface FragmentComponent {
void inject(RemoteListFragment remoteListFragment);
void inject(GtasksListFragment gtasksListFragment);
void inject(CaldavListFragment caldavListFragment);
}

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_caldav_list_fragment"
android:title="@string/account_settings"
app:showAsAction="never" />
</menu>

@ -831,6 +831,8 @@ File %1$s contained %2$s.\n\n
<string name="start_of_week">Start of week</string>
<string name="use_locale_default">Use locale default</string>
<string name="use_native_datetime_pickers">Use native date and time pickers</string>
<string name="CalDAV">CalDAV</string>
<string name="account_settings">Account settings</string>
<string name="notification_channel_settings">Manage notifications</string>
<string name="battery_optimization_settings">Manage battery optimizations</string>
<string name="notification_disable_battery_optimizations_description">Battery optimizations may delay notifications</string>

Loading…
Cancel
Save