Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Verified Commit a9d5994e authored by mebitek's avatar mebitek Committed by Fahim M. Choudhury
Browse files

view tasks in agenda view (option menu entry for agenda view to choose between tasks or events)

(cherry picked from commit ff04f022b73f6d6d1cf150d449ae40e2baec1e55)
parent fdc24e7b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
### mebitek Etar Fork

* #### current features
  - view task on day, week and month view
  - view task on day, week, month and agenda view

![Etar Calendar](metadata/en-US/images/featureGraphic.png)
# Etar Calendar
+43 −1
Original line number Diff line number Diff line
@@ -214,6 +214,10 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
    private MenuItem mSearchMenu;
    private MenuItem mControlsMenu;
    private MenuItem mViewSettings;

    private MenuItem mViewAgendaEvents;

    private MenuItem mViewAgendaTasks;
    private Menu mOptionsMenu;
    private QueryHandler mHandler;
    private final Runnable mHomeTimeUpdater = new Runnable() {
@@ -930,6 +934,18 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
        }
    }

    protected void updateViewAgentaSwitchVisibility() {
        boolean viewAgendaSwitchVisible = mController.getViewType() == ViewType.AGENDA;
        if (mViewAgendaTasks != null) {
            mViewAgendaTasks.setVisible(viewAgendaSwitchVisible);
            mViewAgendaTasks.setEnabled(viewAgendaSwitchVisible);
        }
        if (mViewAgendaEvents != null) {
            mViewAgendaEvents.setVisible(viewAgendaSwitchVisible && !mViewAgendaTasks.isVisible());
            mViewAgendaEvents.setEnabled(viewAgendaSwitchVisible);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
@@ -974,6 +990,10 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
        mViewSettings = menu.findItem(R.id.action_view_settings);
        updateViewSettingsVisiblility();

        mViewAgendaEvents = menu.findItem(R.id.action_view_agenda_events);
        mViewAgendaTasks = menu.findItem(R.id.action_view_agenda_tasks);
        updateViewAgentaSwitchVisibility();


        MenuItem menuItem = menu.findItem(R.id.action_today);

@@ -1072,6 +1092,27 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
            startActivity(intent);
        } else if (itemId == R.id.action_info) {
            checkAndRequestDisablingDoze();
        } else if (itemId == R.id.action_view_agenda_tasks || itemId == R.id.action_view_agenda_events) {
                FragmentManager manager = getFragmentManager();
                FragmentTransaction transaction = manager.beginTransaction();
                long millis = Utils.timeFromIntentInMillis(getIntent());
                AgendaFragment frag = new AgendaFragment(millis, false);

                if (itemId == R.id.action_view_agenda_tasks) {
                    frag.isTask = true;
                    mOptionsMenu.findItem(R.id.action_view_agenda_events).setVisible(true);
                } else if (itemId == R.id.action_view_agenda_events) {
                    frag.isTask = false;
                    mOptionsMenu.findItem(R.id.action_view_agenda_tasks).setVisible(true);
                }
                item.setVisible(false);

                transaction.replace(R.id.main_pane, frag);
                mController.registerEventHandler(R.id.main_pane, (EventHandler) frag);
                transaction.commit();


                return false;
            } else {
                return mExtensions.handleItemSelected(item, this);
        }
@@ -1446,6 +1487,7 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
                }
            }
            updateViewSettingsVisiblility();
            updateViewAgentaSwitchVisibility();
            displayTime = event.selectedTime != null ? event.selectedTime.toMillis()
                    : event.startTime.toMillis();
            if (!mIsTabletConfig) {
+7 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.calendar.DynamicTheme;
import com.android.calendar.Utils;
import com.android.calendarcommon2.Time;

import java.util.Calendar;
import java.util.Formatter;
import java.util.Locale;
import java.util.TimeZone;
@@ -178,6 +179,12 @@ public class AgendaAdapter extends ResourceCursorAdapter {
        // When
        long begin = cursor.getLong(AgendaWindowAdapter.INDEX_BEGIN);
        long end = cursor.getLong(AgendaWindowAdapter.INDEX_END);
        if (begin == 0) {
            Calendar instance = Calendar.getInstance();
            instance.setTimeInMillis(end);
            instance.add(Calendar.MINUTE, -30);
            begin = instance.getTimeInMillis();
        }
        String eventTz = cursor.getString(AgendaWindowAdapter.INDEX_TIME_ZONE);
        int flags = 0;
        String whenString;
+19 −12
Original line number Diff line number Diff line
@@ -32,11 +32,7 @@ import com.android.calendar.Utils;
import com.android.calendar.agenda.AgendaWindowAdapter.DayAdapterInfo;
import com.android.calendarcommon2.Time;

import java.util.ArrayList;
import java.util.Formatter;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Locale;
import java.util.*;

import ws.xsoh.etar.R;

@@ -299,10 +295,25 @@ public class AgendaByDayAdapter extends BaseAdapter {

        LinkedList<MultipleDayInfo> multipleDayList = new LinkedList<MultipleDayInfo>();
        for (int position = 0; cursor.moveToNext(); position++) {
            int startDay = cursor.getInt(AgendaWindowAdapter.INDEX_START_DAY);
            int startDay;
            int endDay;
            long startTime;
            long endTime;
            if (dayAdapterInfo.isTask) {
                long endMills = cursor.getLong(AgendaWindowAdapter.INDEX_END);
                startDay = Time.getJulianDay(endMills, new Time().getGmtOffset());
                endDay = Time.getJulianDay(endMills, new Time().getGmtOffset());
                endTime = endMills;
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.MINUTE, -30);
                startTime = instance.getTimeInMillis();
            } else {
                startDay = cursor.getInt(AgendaWindowAdapter.INDEX_START_DAY);
                endDay = cursor.getInt(AgendaWindowAdapter.INDEX_END_DAY);
                startTime = cursor.getLong(AgendaWindowAdapter.INDEX_BEGIN);
                endTime = cursor.getLong(AgendaWindowAdapter.INDEX_END);
            }
            long id = cursor.getLong(AgendaWindowAdapter.INDEX_EVENT_ID);
            long startTime =  cursor.getLong(AgendaWindowAdapter.INDEX_BEGIN);
            long endTime =  cursor.getLong(AgendaWindowAdapter.INDEX_END);
            long instanceId = cursor.getLong(AgendaWindowAdapter.INDEX_INSTANCE_ID);
            boolean allDay = cursor.getInt(AgendaWindowAdapter.INDEX_ALL_DAY) != 0;
            if (allDay) {
@@ -365,10 +376,6 @@ public class AgendaByDayAdapter extends BaseAdapter {
                prevStartDay = startDay;
            }

            // If this event spans multiple days, then add it to the multipleDay
            // list.
            int endDay = cursor.getInt(AgendaWindowAdapter.INDEX_END_DAY);

            // Skip over the days outside of the adapter's range
            endDay = Math.min(endDay, dayAdapterInfo.end);
            if (endDay > startDay) {
+12 −0
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@ public class AgendaFragment extends Fragment implements CalendarController.Event
    private long mLastHandledEventId = -1;
    private Time mLastHandledEventTime = null;

    public boolean isTask = false;

    public AgendaFragment() {
        this(0, false);
    }
@@ -166,10 +168,12 @@ public class AgendaFragment extends Fragment implements CalendarController.Event
            lv.setAdapter(a);
            if (a instanceof HeaderViewListAdapter) {
                mAdapter = (AgendaWindowAdapter) ((HeaderViewListAdapter)a).getWrappedAdapter();
                mAdapter.isTask = isTask;
                lv.setIndexer(mAdapter);
                lv.setHeaderHeightListener(mAdapter);
            } else if (a instanceof AgendaWindowAdapter) {
                mAdapter = (AgendaWindowAdapter)a;
                mAdapter.isTask = isTask;
                lv.setIndexer(mAdapter);
                lv.setHeaderHeightListener(mAdapter);
            } else {
@@ -214,6 +218,13 @@ public class AgendaFragment extends Fragment implements CalendarController.Event
                getActivity());
        boolean hideDeclined = prefs.getBoolean(
                GeneralPreferences.KEY_HIDE_DECLINED, false);
        AgendaWindowAdapter.AgendaItem item = mAgendaListView.getFirstVisibleAgendaItem();
        if (item!=null && item.isTask) {
            Time t = new Time(mTimeZone);
            t.set(item.end);
            mController.setTime(item.end);
            mTime.set(t.toMillis());
        }

        mAgendaListView.setHideDeclinedEvents(hideDeclined);
        if (mLastHandledEventId != -1) {
@@ -457,6 +468,7 @@ public class AgendaFragment extends Fragment implements CalendarController.Event
            Time t = new Time(mTimeZone);
            t.setJulianDay(mJulianDayOnTop);
            mController.setTime(t.toMillis());
            mTime.set(t.toMillis());
            // Cannot sent a message that eventually may change the layout of the views
            // so instead post a runnable that will run when the layout is done
            if (!mIsTabletConfig) {
Loading