|
|
@ -18,6 +18,7 @@ import android.content.SharedPreferences.Editor;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.content.pm.ResolveInfo;
|
|
|
|
import android.content.pm.ResolveInfo;
|
|
|
|
import android.database.Cursor;
|
|
|
|
import android.database.Cursor;
|
|
|
|
|
|
|
|
import android.graphics.drawable.Drawable;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.v4.app.ActionBar;
|
|
|
|
import android.support.v4.app.ActionBar;
|
|
|
|
import android.support.v4.app.Fragment;
|
|
|
|
import android.support.v4.app.Fragment;
|
|
|
@ -362,11 +363,23 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected void addSyncRefreshMenuItem(Menu menu) {
|
|
|
|
protected void addSyncRefreshMenuItem(Menu menu) {
|
|
|
|
MenuItem item = menu.add(Menu.NONE, MENU_SYNC_ID, Menu.NONE,
|
|
|
|
addMenuItem(menu, R.string.TLA_menu_sync, R.drawable.ic_menu_refresh, MENU_SYNC_ID, true);
|
|
|
|
R.string.TLA_menu_sync);
|
|
|
|
}
|
|
|
|
item.setIcon(R.drawable.ic_menu_refresh);
|
|
|
|
|
|
|
|
if (((AstridActivity) getActivity()).getFragmentLayout() != AstridActivity.LAYOUT_SINGLE)
|
|
|
|
protected void addMenuItem(Menu menu, int title, int imageRes, int id, boolean showAsAction) {
|
|
|
|
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
|
|
|
TaskListActivity activity = (TaskListActivity) getActivity();
|
|
|
|
|
|
|
|
if (activity.getFragmentLayout() != AstridActivity.LAYOUT_SINGLE && showAsAction) {
|
|
|
|
|
|
|
|
MenuItem item = menu.add(Menu.NONE, id, Menu.NONE, title);
|
|
|
|
|
|
|
|
item.setIcon(imageRes);
|
|
|
|
|
|
|
|
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
activity.getMainMenuPopover().addMenuItem(title, imageRes, id);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void addMenuItem(CharSequence title, Drawable image, Intent customIntent, int id) {
|
|
|
|
|
|
|
|
TaskListActivity activity = (TaskListActivity) getActivity();
|
|
|
|
|
|
|
|
activity.getMainMenuPopover().addMenuItem(title, image, customIntent, id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -376,47 +389,29 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
|
|
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
|
|
|
if (getActivity() == null)
|
|
|
|
TaskListActivity activity = (TaskListActivity) getActivity();
|
|
|
|
|
|
|
|
if (activity == null)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
MenuItem item;
|
|
|
|
|
|
|
|
|
|
|
|
activity.getMainMenuPopover().clear();
|
|
|
|
|
|
|
|
|
|
|
|
// --- sort
|
|
|
|
// --- sort
|
|
|
|
if (allowResorting()) {
|
|
|
|
if (allowResorting()) {
|
|
|
|
item = menu.add(Menu.NONE, MENU_SORT_ID, Menu.NONE,
|
|
|
|
addMenuItem(menu, R.string.TLA_menu_sort, android.R.drawable.ic_menu_sort_by_size, MENU_SORT_ID, true);
|
|
|
|
R.string.TLA_menu_sort);
|
|
|
|
|
|
|
|
item.setIcon(android.R.drawable.ic_menu_sort_by_size);
|
|
|
|
|
|
|
|
if (((AstridActivity) getActivity()).getFragmentLayout() != AstridActivity.LAYOUT_SINGLE)
|
|
|
|
|
|
|
|
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- sync
|
|
|
|
// --- sync
|
|
|
|
addSyncRefreshMenuItem(menu);
|
|
|
|
addSyncRefreshMenuItem(menu);
|
|
|
|
|
|
|
|
|
|
|
|
// --- new filter
|
|
|
|
// --- new filter
|
|
|
|
item = menu.add(Menu.NONE, MENU_NEW_FILTER_ID, Menu.NONE,
|
|
|
|
addMenuItem(menu, R.string.FLA_new_filter, android.R.drawable.ic_menu_add, MENU_NEW_FILTER_ID, true);
|
|
|
|
R.string.FLA_new_filter);
|
|
|
|
|
|
|
|
item.setIcon(android.R.drawable.ic_menu_add);
|
|
|
|
|
|
|
|
if (((AstridActivity) getActivity()).getFragmentLayout() != AstridActivity.LAYOUT_SINGLE)
|
|
|
|
|
|
|
|
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// --- addons
|
|
|
|
// --- addons
|
|
|
|
if (!Constants.MARKET_DISABLED) {
|
|
|
|
if (!Constants.MARKET_DISABLED) {
|
|
|
|
item = menu.add(Menu.NONE, MENU_ADDONS_ID, Menu.NONE,
|
|
|
|
addMenuItem(menu, R.string.TLA_menu_addons, android.R.drawable.ic_menu_set_as, MENU_ADDONS_ID, false);
|
|
|
|
R.string.TLA_menu_addons);
|
|
|
|
|
|
|
|
item.setIcon(android.R.drawable.ic_menu_set_as);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- support
|
|
|
|
|
|
|
|
item = menu.add(Menu.NONE, MENU_SUPPORT_ID, Menu.NONE,
|
|
|
|
|
|
|
|
R.string.TLA_menu_support);
|
|
|
|
|
|
|
|
item.setIcon(android.R.drawable.ic_menu_help);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// --- settings
|
|
|
|
|
|
|
|
item = menu.add(Menu.NONE, MENU_SETTINGS_ID, Menu.NONE,
|
|
|
|
|
|
|
|
R.string.TLA_menu_settings);
|
|
|
|
|
|
|
|
item.setIcon(android.R.drawable.ic_menu_preferences);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ask about plug-ins
|
|
|
|
// ask about plug-ins
|
|
|
|
Intent queryIntent = new Intent(
|
|
|
|
Intent queryIntent = new Intent(
|
|
|
|
AstridApiConstants.ACTION_TASK_LIST_MENU);
|
|
|
|
AstridApiConstants.ACTION_TASK_LIST_MENU);
|
|
|
@ -427,14 +422,10 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
|
|
|
|
int length = resolveInfoList.size();
|
|
|
|
int length = resolveInfoList.size();
|
|
|
|
for (int i = 0; i < length; i++) {
|
|
|
|
for (int i = 0; i < length; i++) {
|
|
|
|
ResolveInfo resolveInfo = resolveInfoList.get(i);
|
|
|
|
ResolveInfo resolveInfo = resolveInfoList.get(i);
|
|
|
|
|
|
|
|
|
|
|
|
item = menu.add(Menu.NONE, MENU_ADDON_INTENT_ID, Menu.NONE,
|
|
|
|
|
|
|
|
resolveInfo.loadLabel(pm));
|
|
|
|
|
|
|
|
item.setIcon(resolveInfo.loadIcon(pm));
|
|
|
|
|
|
|
|
Intent intent = new Intent(AstridApiConstants.ACTION_TASK_LIST_MENU);
|
|
|
|
Intent intent = new Intent(AstridApiConstants.ACTION_TASK_LIST_MENU);
|
|
|
|
intent.setClassName(resolveInfo.activityInfo.packageName,
|
|
|
|
intent.setClassName(resolveInfo.activityInfo.packageName,
|
|
|
|
resolveInfo.activityInfo.name);
|
|
|
|
resolveInfo.activityInfo.name);
|
|
|
|
item.setIntent(intent);
|
|
|
|
addMenuItem(resolveInfo.loadLabel(pm), resolveInfo.loadIcon(pm), intent, MENU_ADDON_INTENT_ID);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1055,21 +1046,13 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
|
|
|
|
return onOptionsItemSelected(item);
|
|
|
|
return onOptionsItemSelected(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean handleOptionsMenuItemSelected(int id, Intent intent) {
|
|
|
|
public boolean onOptionsItemSelected(final MenuItem item) {
|
|
|
|
switch(id) {
|
|
|
|
Intent intent;
|
|
|
|
|
|
|
|
long itemId;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// handle my own menus
|
|
|
|
|
|
|
|
switch (item.getItemId()) {
|
|
|
|
|
|
|
|
case MENU_ADDONS_ID:
|
|
|
|
case MENU_ADDONS_ID:
|
|
|
|
StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_ADDONS);
|
|
|
|
StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_ADDONS);
|
|
|
|
intent = new Intent(getActivity(), AddOnActivity.class);
|
|
|
|
intent = new Intent(getActivity(), AddOnActivity.class);
|
|
|
|
startActivityForResult(intent, ACTIVITY_ADDONS);
|
|
|
|
startActivityForResult(intent, ACTIVITY_ADDONS);
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
case MENU_SETTINGS_ID:
|
|
|
|
|
|
|
|
showSettings();
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
case MENU_SORT_ID:
|
|
|
|
case MENU_SORT_ID:
|
|
|
|
StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_SORT);
|
|
|
|
StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_SORT);
|
|
|
|
AlertDialog dialog = SortSelectionActivity.createDialog(
|
|
|
|
AlertDialog dialog = SortSelectionActivity.createDialog(
|
|
|
@ -1080,11 +1063,7 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
|
|
|
|
StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_SYNC);
|
|
|
|
StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_SYNC);
|
|
|
|
syncActionHelper.performSyncAction();
|
|
|
|
syncActionHelper.performSyncAction();
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
case MENU_SUPPORT_ID:
|
|
|
|
|
|
|
|
showSupport();
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
case MENU_ADDON_INTENT_ID:
|
|
|
|
case MENU_ADDON_INTENT_ID:
|
|
|
|
intent = item.getIntent();
|
|
|
|
|
|
|
|
AndroidUtilities.startExternalIntent(getActivity(), intent,
|
|
|
|
AndroidUtilities.startExternalIntent(getActivity(), intent,
|
|
|
|
ACTIVITY_MENU_EXTERNAL);
|
|
|
|
ACTIVITY_MENU_EXTERNAL);
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
@ -1092,7 +1071,20 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
|
|
|
|
intent = new Intent(getActivity(), CustomFilterActivity.class);
|
|
|
|
intent = new Intent(getActivity(), CustomFilterActivity.class);
|
|
|
|
getActivity().startActivityForResult(intent, ACTIVITY_REQUEST_NEW_FILTER);
|
|
|
|
getActivity().startActivityForResult(intent, ACTIVITY_REQUEST_NEW_FILTER);
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public boolean onOptionsItemSelected(final MenuItem item) {
|
|
|
|
|
|
|
|
Intent intent;
|
|
|
|
|
|
|
|
long itemId;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// handle my own menus
|
|
|
|
|
|
|
|
if (handleOptionsMenuItemSelected(item.getItemId(), item.getIntent()))
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (item.getItemId()) {
|
|
|
|
// --- context menu items
|
|
|
|
// --- context menu items
|
|
|
|
|
|
|
|
|
|
|
|
case CONTEXT_MENU_BROADCAST_INTENT_ID: {
|
|
|
|
case CONTEXT_MENU_BROADCAST_INTENT_ID: {
|
|
|
|