diff --git a/src/googleplay/AndroidManifest.xml b/src/googleplay/AndroidManifest.xml
index 50cbc0345..db419a8d0 100644
--- a/src/googleplay/AndroidManifest.xml
+++ b/src/googleplay/AndroidManifest.xml
@@ -27,7 +27,7 @@
+ android:theme="@style/TasksDialog" />
diff --git a/src/googleplay/java/org/tasks/activities/DonationActivity.java b/src/googleplay/java/org/tasks/activities/DonationActivity.java
index 409806951..85e376180 100644
--- a/src/googleplay/java/org/tasks/activities/DonationActivity.java
+++ b/src/googleplay/java/org/tasks/activities/DonationActivity.java
@@ -1,10 +1,8 @@
package org.tasks.activities;
-import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
import android.widget.Toast;
import org.slf4j.Logger;
@@ -15,13 +13,17 @@ import org.tasks.billing.IabHelper;
import org.tasks.billing.IabResult;
import org.tasks.billing.Inventory;
import org.tasks.billing.Purchase;
+import org.tasks.dialogs.DialogBuilder;
+import org.tasks.injection.InjectingActivity;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-public class DonationActivity extends Activity implements IabHelper.OnIabSetupFinishedListener,
+import javax.inject.Inject;
+
+public class DonationActivity extends InjectingActivity implements IabHelper.OnIabSetupFinishedListener,
IabHelper.QueryInventoryFinishedListener, IabHelper.OnIabPurchaseFinishedListener,
IabHelper.OnConsumeFinishedListener, IabHelper.OnConsumeMultiFinishedListener {
@@ -33,6 +35,8 @@ public class DonationActivity extends Activity implements IabHelper.OnIabSetupFi
private Inventory inventory;
private boolean itemSelected;
+ @Inject DialogBuilder dialogBuilder;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -44,7 +48,7 @@ public class DonationActivity extends Activity implements IabHelper.OnIabSetupFi
iabHelper.startSetup(this);
final String[] donationValues = getValues();
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ dialogBuilder.newDialog()
.setTitle(R.string.select_amount)
.setItems(donationValues, new DialogInterface.OnClickListener() {
@Override
@@ -59,17 +63,16 @@ public class DonationActivity extends Activity implements IabHelper.OnIabSetupFi
error(getString(R.string.error));
}
}
- });
- AlertDialog donationAmount = builder.show();
- donationAmount.setOwnerActivity(this);
- donationAmount.setOnDismissListener(new DialogInterface.OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface dialog) {
- if (!itemSelected) {
- finish();
- }
- }
- });
+ })
+ .setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ if (!itemSelected) {
+ finish();
+ }
+ }
+ })
+ .show();
}
private void initiateDonation(int amount) {
diff --git a/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java b/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java
index b5839a71f..b0c217c86 100644
--- a/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java
+++ b/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java
@@ -31,6 +31,7 @@ import org.tasks.location.Geofence;
import org.tasks.location.GoogleApi;
import org.tasks.location.OnLocationPickedHandler;
import org.tasks.location.PlaceAutocompleteAdapter;
+import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
@@ -43,6 +44,9 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
@Inject FragmentActivity fragmentActivity;
@Inject GoogleApi googleApi;
+ @Inject DialogBuilder dialogBuilder;
+ @Inject ActivityPreferences activityPreferences;
+
private OnLocationPickedHandler onLocationPickedHandler;
private DialogInterface.OnCancelListener onCancelListener;
@@ -53,17 +57,18 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
+ activityPreferences.applyTheme();
+
googleApi.connect(this);
- Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.Tasks_Dialog);
- LayoutInflater themedInflater = getActivity().getLayoutInflater().cloneInContext(contextThemeWrapper);
- View view = themedInflater.inflate(R.layout.location_picker_dialog, null);
+ LayoutInflater layoutInflater = getActivity().getLayoutInflater();
+ View view = layoutInflater.inflate(R.layout.location_picker_dialog, null);
AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) view.findViewById(R.id.address_entry);
autoCompleteTextView.setOnItemClickListener(mAutocompleteClickListener);
mAdapter = new PlaceAutocompleteAdapter(googleApi, fragmentActivity, android.R.layout.simple_list_item_1);
autoCompleteTextView.setAdapter(mAdapter);
- return new AlertDialog.Builder(getActivity())
+ return dialogBuilder.newDialog()
.setView(view)
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
diff --git a/src/googleplay/res/layout/location_picker_dialog.xml b/src/googleplay/res/layout/location_picker_dialog.xml
index 264014f51..719fb4585 100644
--- a/src/googleplay/res/layout/location_picker_dialog.xml
+++ b/src/googleplay/res/layout/location_picker_dialog.xml
@@ -2,7 +2,7 @@
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
@@ -352,7 +352,7 @@
+ android:theme="@style/TasksDialog"/>
@@ -396,7 +396,7 @@
+ android:theme="@style/TasksDialog" />
@@ -444,19 +444,19 @@
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
+ android:theme="@style/TasksDialog" />
@@ -476,7 +476,7 @@
+ android:theme="@style/TasksDialog"/>
diff --git a/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java b/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java
index 2d4edb919..840f4f33f 100644
--- a/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java
+++ b/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java
@@ -9,145 +9,25 @@ package com.todoroo.andlib.utility;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
-import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
-import org.tasks.preferences.ActivityPreferences;
-
-import javax.inject.Inject;
+@Deprecated
public class DialogUtilities {
private static final Logger log = LoggerFactory.getLogger(DialogUtilities.class);
- private ActivityPreferences activityPreferences;
-
- @Inject
- public DialogUtilities(ActivityPreferences activityPreferences) {
- this.activityPreferences = activityPreferences;
- }
-
- /**
- * Displays a dialog box with an OK button
- */
- public static void okDialog(final Activity activity, final String text,
- final DialogInterface.OnClickListener okListener) {
- if(activity.isFinishing()) {
- return;
- }
-
- tryOnUiThread(activity, new Runnable() {
- @Override
- public void run() {
- new AlertDialog.Builder(activity)
- .setTitle(R.string.DLG_information_title)
- .setMessage(text)
- .setPositiveButton(android.R.string.ok, okListener)
- .show().setOwnerActivity(activity);
- }
- });
- }
-
- /**
- * Displays a dialog box with an OK button
- */
- public static void okDialog(final Activity activity, final String title,
- final int icon, final CharSequence text) {
- if(activity.isFinishing()) {
- return;
- }
-
- tryOnUiThread(activity, new Runnable() {
- @Override
- public void run() {
- new AlertDialog.Builder(activity)
- .setTitle(title)
- .setMessage(text)
- .setIcon(icon)
- .setPositiveButton(android.R.string.ok, null)
- .show().setOwnerActivity(activity);
- }
- });
- }
-
- /**
- * Displays a dialog box with OK and Cancel buttons
- */
- public static void okCancelDialog(final Activity activity, final String text,
- final DialogInterface.OnClickListener okListener,
- final DialogInterface.OnClickListener cancelListener) {
-
- okCancelCustomDialog(activity, text, android.R.string.ok, android.R.string.cancel, okListener, cancelListener);
-
- }
-
- /**
- * Displays a dialog box with custom titled OK and cancel button titles
- */
-
- public static void okCancelCustomDialog(final Activity activity, final String text,
- final int okTitleId, final int cancelTitleId,
- final DialogInterface.OnClickListener okListener,
- final DialogInterface.OnClickListener cancelListener) {
- if(activity.isFinishing()) {
- return;
- }
-
- tryOnUiThread(activity, new Runnable() {
- final boolean[] selectedOk = new boolean[1];
- @Override
- public void run() {
- AlertDialog dialog = new AlertDialog.Builder(activity)
- .setMessage(text)
- .setPositiveButton(okTitleId, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- selectedOk[0] = true;
- okListener.onClick(dialog, which);
- }
- })
- .setNegativeButton(cancelTitleId, cancelListener)
- .show();
- dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface dialog) {
- if (!selectedOk[0] && cancelListener != null) {
- cancelListener.onClick(dialog, Dialog.BUTTON_NEGATIVE);
- }
- }
- });
- dialog.setOwnerActivity(activity);
- }
- });
- }
-
- /** Run runnable with progress dialog */
- public static ProgressDialog runWithProgressDialog(final Activity activity, final Runnable runnable) {
- final ProgressDialog progressdiag = progressDialog(activity, activity.getString(R.string.DLG_wait));
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- runnable.run();
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- DialogUtilities.okDialog(activity, activity.getString(R.string.DLG_error, e.toString()), null);
- } finally {
- DialogUtilities.dismissDialog(activity, progressdiag);
- }
- }
- }).start();
-
- return progressdiag;
- }
/**
* Displays a progress dialog. Must be run on the UI thread
*/
public static ProgressDialog progressDialog(Activity context, String text) {
- ProgressDialog dialog = new ProgressDialog(context);
+ return progressDialog(context, text, R.style.TasksDialog);
+ }
+
+ private static ProgressDialog progressDialog(Activity context, String text, int theme) {
+ ProgressDialog dialog = new ProgressDialog(context, theme);
dialog.setIndeterminate(true);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage(text);
@@ -176,7 +56,6 @@ public class DialogUtilities {
});
}
-
private static void tryOnUiThread(Activity activity, final Runnable runnable) {
activity.runOnUiThread(new Runnable() {
@Override
diff --git a/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java b/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java
index 1659516ab..4da65cd23 100644
--- a/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java
+++ b/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java
@@ -9,11 +9,9 @@ import android.app.Activity;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
-import android.support.v7.app.AlertDialog;
import android.webkit.MimeTypeMap;
import android.widget.ArrayAdapter;
import android.widget.Toast;
@@ -21,6 +19,7 @@ import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.DeviceInfo;
import org.tasks.preferences.Preferences;
@@ -30,7 +29,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
@@ -47,16 +45,18 @@ public class ActFmCameraModule {
private final Fragment fragment;
private final Preferences preferences;
private DeviceInfo deviceInfo;
+ private DialogBuilder dialogBuilder;
public interface ClearImageCallback {
void clearImage();
}
@Inject
- public ActFmCameraModule(Fragment fragment, Preferences preferences, DeviceInfo deviceInfo) {
+ public ActFmCameraModule(Fragment fragment, Preferences preferences, DeviceInfo deviceInfo, DialogBuilder dialogBuilder) {
this.fragment = fragment;
this.preferences = preferences;
this.deviceInfo = deviceInfo;
+ this.dialogBuilder = dialogBuilder;
}
public void showPictureLauncher(final ClearImageCallback clearImageOption) {
@@ -121,7 +121,7 @@ public class ActFmCameraModule {
};
// show a menu of available options
- new AlertDialog.Builder(fragment.getActivity())
+ dialogBuilder.newDialog()
.setAdapter(adapter, listener)
.show().setOwnerActivity(fragment.getActivity());
}
diff --git a/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java b/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java
index 25a0b0a33..ad36dedff 100644
--- a/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java
+++ b/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java
@@ -10,7 +10,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
@@ -23,6 +22,7 @@ import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.dao.StoreObjectDao;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences;
@@ -41,6 +41,7 @@ public class FilterSettingsActivity extends InjectingAppCompatActivity {
@Inject ActivityPreferences preferences;
@Inject StoreObjectDao storeObjectDao;
+ @Inject DialogBuilder dialogBuilder;
@InjectView(R.id.tag_name) EditText filterName;
@InjectView(R.id.toolbar) Toolbar toolbar;
@@ -119,8 +120,7 @@ public class FilterSettingsActivity extends InjectingAppCompatActivity {
}
private void deleteTag() {
- new AlertDialog.Builder(this, R.style.Tasks_Dialog)
- .setMessage(getString(R.string.delete_tag_confirmation, filter.listingTitle))
+ dialogBuilder.newMessageDialog(R.string.delete_tag_confirmation, filter.listingTitle)
.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -129,11 +129,7 @@ public class FilterSettingsActivity extends InjectingAppCompatActivity {
finish();
}
})
- .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- })
+ .setNegativeButton(android.R.string.cancel, null)
.show();
}
@@ -142,20 +138,14 @@ public class FilterSettingsActivity extends InjectingAppCompatActivity {
if (filter.listingTitle.equals(tagName)) {
finish();
} else {
- new AlertDialog.Builder(this, R.style.Tasks_Dialog)
- .setMessage(R.string.discard_changes)
+ dialogBuilder.newMessageDialog(R.string.discard_changes)
.setPositiveButton(R.string.discard, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
- .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
-
- }
- })
+ .setNegativeButton(android.R.string.cancel, null)
.show();
}
}
diff --git a/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java b/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java
index 5441befd6..b590c144a 100644
--- a/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java
+++ b/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java
@@ -10,7 +10,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
@@ -29,6 +28,7 @@ import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences;
@@ -51,6 +51,7 @@ public class TagSettingsActivity extends InjectingAppCompatActivity {
@Inject TagDataDao tagDataDao;
@Inject ActivityPreferences preferences;
@Inject MetadataDao metadataDao;
+ @Inject DialogBuilder dialogBuilder;
@InjectView(R.id.tag_name) EditText tagName;
@InjectView(R.id.toolbar) Toolbar toolbar;
@@ -160,8 +161,7 @@ public class TagSettingsActivity extends InjectingAppCompatActivity {
}
private void deleteTag() {
- new AlertDialog.Builder(this, R.style.Tasks_Dialog)
- .setMessage(getString(R.string.delete_tag_confirmation, tagData.getName()))
+ dialogBuilder.newMessageDialog(R.string.delete_tag_confirmation, tagData.getName())
.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -174,11 +174,7 @@ public class TagSettingsActivity extends InjectingAppCompatActivity {
finish();
}
})
- .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- })
+ .setNegativeButton(android.R.string.cancel, null)
.show();
}
@@ -188,20 +184,14 @@ public class TagSettingsActivity extends InjectingAppCompatActivity {
(!isNewTag && tagData.getName().equals(tagName))) {
finish();
} else {
- new AlertDialog.Builder(this, R.style.Tasks_Dialog)
- .setMessage(R.string.discard_changes)
+ dialogBuilder.newMessageDialog(R.string.discard_changes)
.setPositiveButton(R.string.discard, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
- .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
-
- }
- })
+ .setNegativeButton(android.R.string.cancel, null)
.show();
}
}
diff --git a/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java b/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java
index 8f47c645d..d05097f60 100644
--- a/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java
+++ b/src/main/java/com/todoroo/astrid/activity/FilterShortcutActivity.java
@@ -15,18 +15,17 @@ import android.view.View;
import android.widget.Button;
import android.widget.ListView;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterCounter;
import org.tasks.filters.FilterProvider;
import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingListActivity;
import org.tasks.preferences.ActivityPreferences;
-import org.tasks.ui.NavigationDrawerFragment;
import javax.inject.Inject;
@@ -36,6 +35,7 @@ public class FilterShortcutActivity extends InjectingListActivity {
@Inject ActivityPreferences preferences;
@Inject FilterProvider filterProvider;
@Inject @ForApplication Context context;
+ @Inject DialogBuilder dialogBuilder;
private FilterAdapter adapter = null;
@@ -59,7 +59,9 @@ public class FilterShortcutActivity extends InjectingListActivity {
public void onClick(View v) {
Filter filter = (Filter) adapter.getSelection();
if (filter == null) {
- DialogUtilities.okDialog(FilterShortcutActivity.this, getString(R.string.FLA_no_filter_selected), null);
+ dialogBuilder.newMessageDialog(R.string.FLA_no_filter_selected)
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
return;
}
Intent shortcutIntent = ShortcutActivity.createIntent(context, filter);
diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
index 39f8fe1c1..e65a64661 100755
--- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
+++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
@@ -14,7 +14,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
-import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -77,9 +76,9 @@ import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
-import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.activities.LocationPickerActivity;
import org.tasks.activities.TimePickerActivity;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingFragment;
import org.tasks.location.Geofence;
import org.tasks.location.GeofenceService;
@@ -177,6 +176,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
@Inject GeofenceService geofenceService;
@Inject ResourceResolver resourceResolver;
@Inject DeviceInfo deviceInfo;
+ @Inject DialogBuilder dialogBuilder;
// --- UI components
@@ -705,8 +705,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
}
protected void deleteButtonClick() {
- new AlertDialog.Builder(getActivity())
- .setMessage(R.string.DLG_delete_this_task_question)
+ dialogBuilder.newMessageDialog(R.string.DLG_delete_this_task_question)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -727,7 +726,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
}
}
})
- .setNegativeButton(android.R.string.cancel, null).show();
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
}
private void startAttachFile() {
@@ -763,9 +763,10 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
};
// show a menu of available options
- new AlertDialog.Builder(getActivity())
- .setAdapter(adapter, listener)
- .show().setOwnerActivity(getActivity());
+ dialogBuilder.newDialog()
+ .setAdapter(adapter, listener)
+ .show()
+ .setOwnerActivity(getActivity());
}
private void startRecordingAudio() {
diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
index 4ff6f0e45..d34f1cbc3 100644
--- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
+++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java
@@ -17,7 +17,6 @@ import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
@@ -73,6 +72,7 @@ import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForActivity;
import org.tasks.injection.InjectingListFragment;
import org.tasks.injection.Injector;
@@ -136,6 +136,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
@Inject TaskAttachmentDao taskAttachmentDao;
@Inject Injector injector;
@Inject GtasksPreferenceService gtasksPreferenceService;
+ @Inject DialogBuilder dialogBuilder;
protected Resources resources;
protected TaskAdapter taskAdapter = null;
@@ -762,8 +763,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
/** Show a dialog box and delete the task specified */
private void deleteTask(final Task task) {
- new AlertDialog.Builder(getActivity())
- .setMessage(getString(R.string.delete_tag_confirmation, task.getTitle()))
+ dialogBuilder.newMessageDialog(R.string.delete_tag_confirmation, task.getTitle())
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -772,7 +772,8 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
loadTaskListContent();
}
})
- .setNegativeButton(android.R.string.cancel, null).show();
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
}
public void onTaskCreated(Task task) {
diff --git a/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java b/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java
index 2cd618f1a..400795fe5 100644
--- a/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java
+++ b/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java
@@ -12,7 +12,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Handler;
-import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.view.WindowManager.BadTokenException;
@@ -35,6 +34,7 @@ import com.todoroo.astrid.tags.TaskToTagMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
@@ -51,6 +51,7 @@ public class TasksXmlImporter {
private final TagDataDao tagDataDao;
private final MetadataDao metadataDao;
private final TaskService taskService;
+ private final DialogBuilder dialogBuilder;
private Context context;
private Handler handler;
@@ -72,10 +73,12 @@ public class TasksXmlImporter {
}
@Inject
- public TasksXmlImporter(TagDataDao tagDataDao, MetadataDao metadataDao, TaskService taskService) {
+ public TasksXmlImporter(TagDataDao tagDataDao, MetadataDao metadataDao, TaskService taskService,
+ DialogBuilder dialogBuilder) {
this.tagDataDao = tagDataDao;
this.metadataDao = metadataDao;
this.taskService = taskService;
+ this.dialogBuilder = dialogBuilder;
}
/**
@@ -160,18 +163,16 @@ public class TasksXmlImporter {
}
private void showSummary() {
- final AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(R.string.import_summary_title);
Resources r = context.getResources();
- String message = context.getString(R.string.import_summary_message,
- input,
- r.getQuantityString(R.plurals.Ntasks, taskCount, taskCount),
- r.getQuantityString(R.plurals.Ntasks, importCount, importCount),
- r.getQuantityString(R.plurals.Ntasks, skipCount, skipCount),
- r.getQuantityString(R.plurals.Ntasks, errorCount, errorCount));
- builder.setMessage(message);
- builder.setPositiveButton(context.getString(android.R.string.ok),
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newDialog()
+ .setTitle(R.string.import_summary_title)
+ .setMessage(context.getString(R.string.import_summary_message,
+ input,
+ r.getQuantityString(R.plurals.Ntasks, taskCount, taskCount),
+ r.getQuantityString(R.plurals.Ntasks, importCount, importCount),
+ r.getQuantityString(R.plurals.Ntasks, skipCount, skipCount),
+ r.getQuantityString(R.plurals.Ntasks, errorCount, errorCount)))
+ .setPositiveButton(context.getString(android.R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
@@ -179,9 +180,8 @@ public class TasksXmlImporter {
handler.post(runAfterImport);
}
}
- });
-
- builder.show();
+ })
+ .show();
}
// --- importers
diff --git a/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java b/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java
index 1945b2e64..8f1b84bdf 100644
--- a/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java
+++ b/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java
@@ -20,7 +20,6 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.todoroo.andlib.utility.AndroidUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
@@ -28,6 +27,7 @@ import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingFragmentActivity;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.ActivityPreferences;
@@ -56,6 +56,7 @@ public class MissedCallActivity extends InjectingFragmentActivity {
@Inject TaskService taskService;
@Inject ActivityPreferences preferences;
@Inject ResourceResolver resourceResolver;
+ @Inject DialogBuilder dialogBuilder;
private final OnClickListener dismissListener = new OnClickListener() {
@Override
@@ -72,23 +73,21 @@ public class MissedCallActivity extends InjectingFragmentActivity {
int ignorePresses = preferences.getInt(PREF_IGNORE_PRESSES, 0);
ignorePresses++;
if (ignorePresses == IGNORE_PROMPT_COUNT) {
- DialogUtilities.okCancelCustomDialog(MissedCallActivity.this,
- getString(R.string.MCA_ignore_body),
- R.string.MCA_ignore_all,
- R.string.MCA_ignore_this,
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.MCA_ignore_body)
+ .setPositiveButton(R.string.MCA_ignore_all, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
preferences.setBoolean(R.string.p_field_missed_calls, false);
dismissListener.onClick(v);
}
- },
- new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(R.string.MCA_ignore_this, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismissListener.onClick(v);
}
- });
+ })
+ .show();
} else {
dismissListener.onClick(v);
}
diff --git a/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java b/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
index 380071e35..539633c7c 100644
--- a/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
+++ b/src/main/java/com/todoroo/astrid/core/CustomFilterActivity.java
@@ -50,6 +50,7 @@ import com.todoroo.astrid.data.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences;
@@ -151,6 +152,7 @@ public class CustomFilterActivity extends InjectingAppCompatActivity {
@Inject Database database;
@Inject StoreObjectDao storeObjectDao;
@Inject ActivityPreferences preferences;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -173,7 +175,7 @@ public class CustomFilterActivity extends InjectingAppCompatActivity {
filterName = (TextView)findViewById(R.id.filterName);
List startingCriteria = new ArrayList<>();
startingCriteria.add(getStartingUniverse());
- adapter = new CustomFilterAdapter(this, startingCriteria);
+ adapter = new CustomFilterAdapter(this, dialogBuilder, startingCriteria);
listView.setAdapter(adapter);
updateList();
diff --git a/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java b/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java
index 2f1aa3360..2be47c442 100644
--- a/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java
+++ b/src/main/java/com/todoroo/astrid/core/CustomFilterAdapter.java
@@ -25,6 +25,7 @@ import com.todoroo.astrid.api.TextInputCriterion;
import com.todoroo.astrid.core.CustomFilterActivity.CriterionInstance;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import java.util.List;
@@ -37,11 +38,13 @@ import java.util.List;
public class CustomFilterAdapter extends ArrayAdapter {
private final CustomFilterActivity activity;
+ private DialogBuilder dialogBuilder;
private final LayoutInflater inflater;
- public CustomFilterAdapter(CustomFilterActivity activity, List objects) {
+ public CustomFilterAdapter(CustomFilterActivity activity, DialogBuilder dialogBuilder, List objects) {
super(activity, R.id.name, objects);
this.activity = activity;
+ this.dialogBuilder = dialogBuilder;
inflater = (LayoutInflater) activity.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
}
@@ -107,8 +110,8 @@ public class CustomFilterAdapter extends ArrayAdapter {
* Show options menu for the given criterioninstance
*/
public void showOptionsFor(final CriterionInstance item, final Runnable onComplete) {
- AlertDialog.Builder dialog = new AlertDialog.Builder(activity).
- setTitle(item.criterion.name);
+ AlertDialog.Builder dialog = dialogBuilder.newDialog()
+ .setTitle(item.criterion.name);
if(item.criterion instanceof MultipleSelectCriterion) {
MultipleSelectCriterion multiSelectCriterion = (MultipleSelectCriterion) item.criterion;
diff --git a/src/main/java/com/todoroo/astrid/files/FileExplore.java b/src/main/java/com/todoroo/astrid/files/FileExplore.java
index 88dd3828f..f555ce184 100644
--- a/src/main/java/com/todoroo/astrid/files/FileExplore.java
+++ b/src/main/java/com/todoroo/astrid/files/FileExplore.java
@@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.files;
-import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
@@ -19,53 +18,57 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;
-
-import com.todoroo.andlib.utility.DialogUtilities;
+import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
+import org.tasks.injection.InjectingActivity;
+import org.tasks.preferences.ActivityPreferences;
+import org.tasks.preferences.ResourceResolver;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
+import javax.inject.Inject;
+
/**
* Based on the Android-File-Explore project by Manish Burman
* https://github.com/mburman/Android-File-Explore
*
*/
-public class FileExplore extends Activity {
+public class FileExplore extends InjectingActivity {
private static final Logger log = LoggerFactory.getLogger(FileExplore.class);
- // Stores names of traversed directories
- ArrayList str = new ArrayList<>();
-
- // Check if the first level of the directory structure is the one showing
- private Boolean firstLvl = true;
+ private static final int DIALOG_LOAD_FILE = 1000;
public static final String RESULT_FILE_SELECTED = "fileSelected"; //$NON-NLS-1$
-
public static final String RESULT_DIR_SELECTED = "dirSelected"; //$NON-NLS-1$
-
public static final String EXTRA_DIRECTORIES_SELECTABLE = "directoriesSelectable"; //$NON-NLS-1$
+ ArrayList str = new ArrayList<>(); // Stores names of traversed directories
+ private Boolean firstLvl = true; // Check if the first level of the directory structure is the one showing
+
+ @Inject DialogBuilder dialogBuilder;
+ @Inject ActivityPreferences activityPreferences;
+ @Inject ResourceResolver resourceResolver;
+
private Item[] fileList;
private File path;
private String chosenFile;
- private static final int DIALOG_LOAD_FILE = 1000;
private String upString;
-
private boolean directoryMode;
-
private ListAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
+ activityPreferences.applyDialogTheme();
+
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
path = new File(Environment.getExternalStorageDirectory().toString());
} else {
@@ -86,12 +89,7 @@ public class FileExplore extends Activity {
path.mkdirs();
} catch (SecurityException e) {
log.error(e.getMessage(), e);
- DialogUtilities.okDialog(this, getString(R.string.file_browser_err_permissions), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- }
- });
+ Toast.makeText(this, R.string.file_browser_err_permissions, Toast.LENGTH_LONG).show();
}
// Checks whether path exists
@@ -110,21 +108,21 @@ public class FileExplore extends Activity {
String[] fList = path.list(filter);
fileList = new Item[fList.length];
for (int i = 0; i < fList.length; i++) {
- fileList[i] = new Item(fList[i], R.drawable.ic_insert_drive_file_black_24dp);
+ fileList[i] = new Item(fList[i], resourceResolver.getResource(R.attr.ic_file));
// Convert into file path
File sel = new File(path, fList[i]);
// Set drawables
if (sel.isDirectory()) {
- fileList[i].icon = R.drawable.ic_folder_black_24dp;
+ fileList[i].icon = resourceResolver.getResource(R.attr.ic_folder);
}
}
if (!firstLvl) {
Item temp[] = new Item[fileList.length + 1];
System.arraycopy(fileList, 0, temp, 1, fileList.length);
- temp[0] = new Item(upString, R.drawable.ic_arrow_back_black_24dp);
+ temp[0] = new Item(upString, resourceResolver.getResource(R.attr.ic_arrow_back));
fileList = temp;
}
} else {
@@ -180,7 +178,7 @@ public class FileExplore extends Activity {
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog;
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ AlertDialog.Builder builder = dialogBuilder.newDialog();
if (fileList == null) {
dialog = builder.create();
diff --git a/src/main/java/com/todoroo/astrid/files/FilesControlSet.java b/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
index 1e1c810b2..d3256da41 100644
--- a/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
+++ b/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
@@ -24,7 +24,6 @@ import android.widget.Toast;
import com.todoroo.andlib.data.Callback;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.SyncFlags;
@@ -35,6 +34,7 @@ import com.todoroo.astrid.ui.PopupControlSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.ActivityPreferences;
import java.io.File;
@@ -48,10 +48,13 @@ public class FilesControlSet extends PopupControlSet {
private final LinearLayout fileDisplayList;
private final LayoutInflater inflater;
private final TaskAttachmentDao taskAttachmentDao;
+ private final DialogBuilder dialogBuilder;
- public FilesControlSet(ActivityPreferences preferences, TaskAttachmentDao taskAttachmentDao, Activity activity) {
+ public FilesControlSet(ActivityPreferences preferences, TaskAttachmentDao taskAttachmentDao,
+ Activity activity) {
super(preferences, activity, R.layout.control_set_files_dialog, R.layout.control_set_files, R.string.TEA_control_files);
this.taskAttachmentDao = taskAttachmentDao;
+ this.dialogBuilder = new DialogBuilder(activity, preferences);
fileDisplayList = (LinearLayout) getView().findViewById(R.id.files_list);
inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
}
@@ -145,27 +148,29 @@ public class FilesControlSet extends PopupControlSet {
clearFile.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- DialogUtilities.okCancelDialog(activity, activity.getString(R.string.premium_remove_file_confirm),
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface d, int which) {
- if (RemoteModel.isValidUuid(m.getUUID())) {
- // TODO: delete
- m.setDeletedAt(DateUtilities.now());
- taskAttachmentDao.saveExisting(m);
- } else {
- taskAttachmentDao.delete(m.getId());
- }
-
- if (m.containsNonNullValue(TaskAttachment.FILE_PATH)) {
- File f = new File(m.getFilePath());
- f.delete();
- }
- files.remove(m);
- refreshDisplayView();
- finalList.removeView(fileRow);
- }
- }, null);
+ dialogBuilder.newMessageDialog(R.string.premium_remove_file_confirm)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (RemoteModel.isValidUuid(m.getUUID())) {
+ // TODO: delete
+ m.setDeletedAt(DateUtilities.now());
+ taskAttachmentDao.saveExisting(m);
+ } else {
+ taskAttachmentDao.delete(m.getId());
+ }
+
+ if (m.containsNonNullValue(TaskAttachment.FILE_PATH)) {
+ File f = new File(m.getFilePath());
+ f.delete();
+ }
+ files.remove(m);
+ refreshDisplayView();
+ finalList.removeView(fileRow);
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
}
});
}
diff --git a/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java b/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java
index e2e6ca144..bd89835aa 100644
--- a/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java
+++ b/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java
@@ -13,7 +13,8 @@ import android.widget.TextView;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
+
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.BasicPreferences;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
@@ -52,6 +53,7 @@ public class CalendarReminderActivity extends InjectingActivity {
@Inject TagDataDao tagDataDao;
@Inject ActivityPreferences preferences;
@Inject ResourceResolver resourceResolver;
+ @Inject DialogBuilder dialogBuilder;
private String eventName;
private long startTime;
@@ -81,23 +83,21 @@ public class CalendarReminderActivity extends InjectingActivity {
int ignorePresses = preferences.getInt(PREF_IGNORE_PRESSES, 0);
ignorePresses++;
if (ignorePresses == IGNORE_PROMPT_COUNT) {
- DialogUtilities.okCancelCustomDialog(CalendarReminderActivity.this,
- getString(R.string.CRA_ignore_body),
- R.string.CRA_ignore_all,
- R.string.CRA_ignore_this,
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.CRA_ignore_body)
+ .setPositiveButton(R.string.CRA_ignore_all, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
preferences.setBoolean(R.string.p_calendar_reminders, false);
dismissListener.onClick(v);
}
- },
- new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(R.string.CRA_ignore_this, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismissListener.onClick(v);
}
- });
+ })
+ .show();
} else {
dismissListener.onClick(v);
}
@@ -189,30 +189,28 @@ public class CalendarReminderActivity extends InjectingActivity {
}
private void listExists(final TagData tag) {
- DialogUtilities.okCancelCustomDialog(this,
- getString(R.string.CRA_list_exists_body, tag.getName()),
- R.string.CRA_create_new,
- R.string.CRA_use_existing,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- createNewList(tag.getName() + " "
- + DateUtilities.getDateStringHideYear(newDate(startTime)));
- }
- },
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- FilterWithCustomIntent filter = TagFilterExposer.filterFromTagData(CalendarReminderActivity.this, tag);
-
- Intent listIntent = new Intent(CalendarReminderActivity.this, TaskListActivity.class);
- listIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter);
- listIntent.putExtras(filter.customExtras);
-
- startActivity(listIntent);
- dismissButton.performClick();
- }
- });
+ dialogBuilder.newMessageDialog(R.string.CRA_list_exists_body, tag.getName())
+ .setPositiveButton(R.string.CRA_create_new, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ createNewList(tag.getName() + " "
+ + DateUtilities.getDateStringHideYear(newDate(startTime)));
+ }
+ })
+ .setNegativeButton(R.string.CRA_use_existing, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ FilterWithCustomIntent filter = TagFilterExposer.filterFromTagData(CalendarReminderActivity.this, tag);
+
+ Intent listIntent = new Intent(CalendarReminderActivity.this, TaskListActivity.class);
+ listIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter);
+ listIntent.putExtras(filter.customExtras);
+
+ startActivity(listIntent);
+ dismissButton.performClick();
+ }
+ })
+ .show();
}
private void createNewList(String name) {
diff --git a/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java b/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java
index 6861ab4f5..5e1c1cee0 100644
--- a/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java
+++ b/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java
@@ -50,6 +50,8 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.timers.TimerActionControlSet.TimerActionListener;
import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.preferences.Preferences;
@@ -65,6 +67,8 @@ import static org.tasks.files.ImageHelper.sampleBitmap;
public class EditNoteActivity extends LinearLayout implements TimerActionListener {
+ private static final Logger log = LoggerFactory.getLogger(EditNoteActivity.class);
+
private Task task;
private ActFmCameraModule actFmCameraModule;
@@ -132,7 +136,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
try {
fetchTask(t);
} catch (SQLiteException e) {
- StartupService.handleSQLiteError(fragment.getActivity(), e);
+ log.error(e.getMessage(), e);
}
if(task == null) {
return;
diff --git a/src/main/java/com/todoroo/astrid/service/StartupService.java b/src/main/java/com/todoroo/astrid/service/StartupService.java
index 764dcccb3..aeb789537 100644
--- a/src/main/java/com/todoroo/astrid/service/StartupService.java
+++ b/src/main/java/com/todoroo/astrid/service/StartupService.java
@@ -16,7 +16,6 @@ import android.preference.PreferenceManager;
import com.todoroo.andlib.data.DatabaseDao.ModelUpdateListener;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.utility.AndroidUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.backup.TasksXmlImporter;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.DatabaseUpdateListener;
@@ -37,6 +36,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences;
import java.io.File;
@@ -68,6 +68,7 @@ public class StartupService {
private final CalendarAlarmScheduler calendarAlarmScheduler;
private final TaskDeleter taskDeleter;
private Broadcaster broadcaster;
+ private DialogBuilder dialogBuilder;
@Inject
public StartupService(UpgradeService upgradeService, TagDataDao tagDataDao, Database database,
@@ -75,7 +76,7 @@ public class StartupService {
GtasksSyncService gtasksSyncService, MetadataDao metadataDao,
Preferences preferences, TasksXmlImporter xmlImporter,
CalendarAlarmScheduler calendarAlarmScheduler, TaskDeleter taskDeleter,
- Broadcaster broadcaster) {
+ Broadcaster broadcaster, DialogBuilder dialogBuilder) {
this.upgradeService = upgradeService;
this.tagDataDao = tagDataDao;
this.database = database;
@@ -87,6 +88,7 @@ public class StartupService {
this.calendarAlarmScheduler = calendarAlarmScheduler;
this.taskDeleter = taskDeleter;
this.broadcaster = broadcaster;
+ this.dialogBuilder = dialogBuilder;
}
/**
@@ -111,7 +113,10 @@ public class StartupService {
try {
database.openForWriting();
} catch (SQLiteException e) {
- handleSQLiteError(activity, e);
+ log.error(e.getMessage(), e);
+ dialogBuilder.newMessageDialog(R.string.DB_corrupted_body)
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
return;
}
@@ -196,11 +201,6 @@ public class StartupService {
});
}
- public static void handleSQLiteError(Activity activity, final SQLiteException e) {
- log.error(e.getMessage(), e);
- DialogUtilities.okDialog(activity, activity.getString(R.string.DB_corrupted_title), 0, activity.getString(R.string.DB_corrupted_body));
- }
-
/**
* If database exists, no tasks but metadata, and a backup file exists, restore it
*/
diff --git a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java
index 20c258e4e..b3d62bd45 100644
--- a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java
+++ b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java
@@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.ui;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.data.TagData;
@@ -16,6 +15,7 @@ import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.Injector;
import javax.inject.Inject;
@@ -32,6 +32,7 @@ public class QuickAddBar {
@Inject TaskService taskService;
@Inject TaskCreator taskCreator;
+ @Inject DialogBuilder dialogBuilder;
private TaskListActivity activity;
private TaskListFragment fragment;
@@ -55,7 +56,9 @@ public class QuickAddBar {
TagData tagData = fragment.getActiveTagData();
if(tagData != null && (!tagData.containsNonNullValue(TagData.NAME) ||
tagData.getName().length() == 0)) {
- DialogUtilities.okDialog(activity, activity.getString(R.string.tag_no_title_error), null);
+ dialogBuilder.newMessageDialog(R.string.tag_no_title_error)
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
return null;
}
diff --git a/src/main/java/org/tasks/activities/ClearAllDataActivity.java b/src/main/java/org/tasks/activities/ClearAllDataActivity.java
index 0292bd1bf..3d4f15500 100644
--- a/src/main/java/org/tasks/activities/ClearAllDataActivity.java
+++ b/src/main/java/org/tasks/activities/ClearAllDataActivity.java
@@ -7,6 +7,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.Database;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingActivity;
import org.tasks.preferences.Preferences;
@@ -16,29 +17,27 @@ public class ClearAllDataActivity extends InjectingActivity {
@Inject Database database;
@Inject Preferences preferences;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- DialogUtilities.okCancelDialog(
- this,
- getResources().getString(R.string.EPr_manage_clear_all_message),
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.EPr_manage_clear_all_message)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
deleteDatabase(database.getName());
-
preferences.reset();
-
System.exit(0);
}
- },
- new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
- });
+ })
+ .show();
}
}
diff --git a/src/main/java/org/tasks/activities/ClearGtaskDataActivity.java b/src/main/java/org/tasks/activities/ClearGtaskDataActivity.java
index 445c37244..713c88f93 100644
--- a/src/main/java/org/tasks/activities/ClearGtaskDataActivity.java
+++ b/src/main/java/org/tasks/activities/ClearGtaskDataActivity.java
@@ -7,6 +7,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.gtasks.sync.GtasksSyncV2Provider;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingActivity;
import javax.inject.Inject;
@@ -14,25 +15,27 @@ import javax.inject.Inject;
public class ClearGtaskDataActivity extends InjectingActivity {
@Inject GtasksSyncV2Provider gtasksSyncV2Provider;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- DialogUtilities.okCancelDialog(ClearGtaskDataActivity.this,
- getString(R.string.sync_forget_confirm), new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.sync_forget_confirm)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
gtasksSyncV2Provider.signOut();
setResult(RESULT_OK);
finish();
}
- }, new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
- }
- );
+ })
+ .show();
}
}
diff --git a/src/main/java/org/tasks/activities/DeleteAllCalendarEventsActivity.java b/src/main/java/org/tasks/activities/DeleteAllCalendarEventsActivity.java
index 23aec491a..7e648c32b 100644
--- a/src/main/java/org/tasks/activities/DeleteAllCalendarEventsActivity.java
+++ b/src/main/java/org/tasks/activities/DeleteAllCalendarEventsActivity.java
@@ -1,18 +1,18 @@
package org.tasks.activities;
-import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Query;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingActivity;
+import org.tasks.ui.ProgressDialogAsyncTask;
import javax.inject.Inject;
@@ -20,22 +20,19 @@ public class DeleteAllCalendarEventsActivity extends InjectingActivity {
@Inject TaskService taskService;
@Inject GCalHelper gcalHelper;
-
- private ProgressDialog pd;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- DialogUtilities.okCancelDialog(
- this,
- getResources().getString(
- R.string.EPr_manage_delete_all_gcal_message),
- new DialogInterface.OnClickListener() {
+
+ dialogBuilder.newMessageDialog(R.string.EPr_manage_delete_all_gcal_message)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- pd = DialogUtilities.runWithProgressDialog(DeleteAllCalendarEventsActivity.this, new Runnable() {
+ new ProgressDialogAsyncTask(DeleteAllCalendarEventsActivity.this, dialogBuilder) {
@Override
- public void run() {
+ protected Integer doInBackground(Void... params) {
int deletedEventCount = 0;
TodorooCursor cursor = taskService.query(Query.select(Task.ID, Task.CALENDAR_URI).where(
Task.CALENDAR_URI.isNotNull()));
@@ -55,34 +52,23 @@ public class DeleteAllCalendarEventsActivity extends InjectingActivity {
// since the GCalHelper doesnt save it due to performance-reasons
Task template = new Task();
template.setCalendarUri(""); //$NON-NLS-1$
- taskService.update(
- Task.CALENDAR_URI.isNotNull(),
- template);
- showResult(R.string.EPr_manage_delete_all_gcal_status, deletedEventCount);
+ taskService.update(Task.CALENDAR_URI.isNotNull(), template);
+ return deletedEventCount;
+ }
+
+ @Override
+ protected int getResultResource() {
+ return R.string.EPr_manage_delete_all_gcal_status;
}
- });
+ }.execute();
}
- }, new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
- });
- }
-
- @Override
- protected void onPause() {
- DialogUtilities.dismissDialog(this, pd);
-
- super.onPause();
- }
-
- private void showResult(int resourceText, int result) {
- DialogUtilities.okDialog(this, getString(resourceText, result), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- }
- });
+ })
+ .show();
}
}
diff --git a/src/main/java/org/tasks/activities/DeleteCompletedActivity.java b/src/main/java/org/tasks/activities/DeleteCompletedActivity.java
index cbb5178b6..e62a422d1 100644
--- a/src/main/java/org/tasks/activities/DeleteCompletedActivity.java
+++ b/src/main/java/org/tasks/activities/DeleteCompletedActivity.java
@@ -1,6 +1,5 @@
package org.tasks.activities;
-import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
@@ -8,13 +7,14 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingActivity;
+import org.tasks.ui.ProgressDialogAsyncTask;
import javax.inject.Inject;
@@ -22,23 +22,19 @@ public class DeleteCompletedActivity extends InjectingActivity {
@Inject TaskService taskService;
@Inject GCalHelper gcalHelper;
-
- private ProgressDialog pd;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- DialogUtilities.okCancelDialog(
- this,
- getResources().getString(
- R.string.EPr_manage_delete_completed_message),
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.EPr_manage_delete_completed_message)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- pd = DialogUtilities.runWithProgressDialog(DeleteCompletedActivity.this, new Runnable() {
+ new ProgressDialogAsyncTask(DeleteCompletedActivity.this, dialogBuilder) {
@Override
- public void run() {
+ protected Integer doInBackground(Void... params) {
TodorooCursor cursor = taskService.query(Query.select(Task.ID, Task.CALENDAR_URI).where(
Criterion.and(Task.COMPLETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull())));
try {
@@ -52,38 +48,23 @@ public class DeleteCompletedActivity extends InjectingActivity {
cursor.close();
}
Task template = new Task();
- template.setDeletionDate(
- DateUtilities.now());
- int result = taskService.update(
- Task.COMPLETION_DATE.gt(0), template);
- showResult(
- R.string.EPr_manage_delete_completed_status,
- result);
+ template.setDeletionDate(DateUtilities.now());
+ return taskService.update(Task.COMPLETION_DATE.gt(0), template);
+ }
+
+ @Override
+ protected int getResultResource() {
+ return R.string.EPr_manage_delete_completed_status;
}
- });
+ }.execute();
}
- }, new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
- });
-
- }
-
- @Override
- protected void onPause() {
- DialogUtilities.dismissDialog(this, pd);
-
- super.onPause();
- }
-
- protected void showResult(int resourceText, int result) {
- DialogUtilities.okDialog(this, getString(resourceText, result), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- }
- });
+ })
+ .show();
}
}
diff --git a/src/main/java/org/tasks/activities/DeleteCompletedEventsActivity.java b/src/main/java/org/tasks/activities/DeleteCompletedEventsActivity.java
index fbd29befb..171a4e449 100644
--- a/src/main/java/org/tasks/activities/DeleteCompletedEventsActivity.java
+++ b/src/main/java/org/tasks/activities/DeleteCompletedEventsActivity.java
@@ -1,19 +1,19 @@
package org.tasks.activities;
-import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingActivity;
+import org.tasks.ui.ProgressDialogAsyncTask;
import javax.inject.Inject;
@@ -21,23 +21,20 @@ public class DeleteCompletedEventsActivity extends InjectingActivity {
@Inject TaskService taskService;
@Inject GCalHelper gcalHelper;
-
- private ProgressDialog pd;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- DialogUtilities.okCancelDialog(
- this,
- getResources().getString(
- R.string.EPr_manage_delete_completed_gcal_message),
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.EPr_manage_delete_completed_gcal_message)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- pd = DialogUtilities.runWithProgressDialog(DeleteCompletedEventsActivity.this, new Runnable() {
+ new ProgressDialogAsyncTask(DeleteCompletedEventsActivity.this, dialogBuilder) {
+
@Override
- public void run() {
+ protected Integer doInBackground(Void... params) {
int deletedEventCount = 0;
TodorooCursor cursor = taskService.query(Query.select(Task.ID, Task.CALENDAR_URI).where(
Criterion.and(Task.COMPLETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull())));
@@ -60,31 +57,22 @@ public class DeleteCompletedEventsActivity extends InjectingActivity {
taskService.update(
Criterion.and(Task.COMPLETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull()),
template);
- showResult(R.string.EPr_manage_delete_completed_gcal_status, deletedEventCount);
+ return deletedEventCount;
+ }
+
+ @Override
+ protected int getResultResource() {
+ return R.string.EPr_manage_delete_completed_gcal_status;
}
- });
+ }.execute();
}
- }, new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
- });
- }
-
- @Override
- protected void onPause() {
- DialogUtilities.dismissDialog(this, pd);
-
- super.onPause();
- }
-
- private void showResult(int resourceText, int result) {
- DialogUtilities.okDialog(this, getString(resourceText, result), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- }
- });
+ })
+ .show();
}
}
diff --git a/src/main/java/org/tasks/activities/FilterSelectionActivity.java b/src/main/java/org/tasks/activities/FilterSelectionActivity.java
index 5fa2bb32d..77aa4231f 100644
--- a/src/main/java/org/tasks/activities/FilterSelectionActivity.java
+++ b/src/main/java/org/tasks/activities/FilterSelectionActivity.java
@@ -3,16 +3,16 @@ package org.tasks.activities;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
-import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterCounter;
import org.tasks.filters.FilterProvider;
import org.tasks.injection.InjectingFragmentActivity;
+import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
@@ -24,15 +24,19 @@ public class FilterSelectionActivity extends InjectingFragmentActivity {
@Inject FilterProvider filterProvider;
@Inject FilterCounter filterCounter;
+ @Inject DialogBuilder dialogBuilder;
+ @Inject ActivityPreferences activityPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ activityPreferences.applyDialogTheme();
+
final FilterAdapter filterAdapter = new FilterAdapter(filterProvider, filterCounter, this, null, false);
filterAdapter.populateList();
- new AlertDialog.Builder(this, R.style.Tasks_Dialog)
+ dialogBuilder.newDialog()
.setSingleChoiceItems(filterAdapter, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diff --git a/src/main/java/org/tasks/activities/PurgeDeletedActivity.java b/src/main/java/org/tasks/activities/PurgeDeletedActivity.java
index 00de38e75..7842f56f5 100644
--- a/src/main/java/org/tasks/activities/PurgeDeletedActivity.java
+++ b/src/main/java/org/tasks/activities/PurgeDeletedActivity.java
@@ -1,13 +1,11 @@
package org.tasks.activities;
-import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
-import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
@@ -15,7 +13,9 @@ import com.todoroo.astrid.service.TaskDeleter;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingActivity;
+import org.tasks.ui.ProgressDialogAsyncTask;
import javax.inject.Inject;
@@ -25,23 +25,19 @@ public class PurgeDeletedActivity extends InjectingActivity {
@Inject TaskDeleter taskDeleter;
@Inject GCalHelper gcalHelper;
@Inject MetadataDao metadataDao;
-
- private ProgressDialog pd;
+ @Inject DialogBuilder dialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- DialogUtilities.okCancelDialog(
- this,
- getResources().getString(
- R.string.EPr_manage_purge_deleted_message),
- new DialogInterface.OnClickListener() {
+ dialogBuilder.newMessageDialog(R.string.EPr_manage_purge_deleted_message)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- pd = DialogUtilities.runWithProgressDialog(PurgeDeletedActivity.this, new Runnable() {
+ new ProgressDialogAsyncTask(PurgeDeletedActivity.this, dialogBuilder) {
@Override
- public void run() {
+ protected Integer doInBackground(Void... params) {
TodorooCursor cursor = taskService.query(Query.select(Task.ID, Task.TITLE, Task.CALENDAR_URI).where(
Criterion.and(Task.DELETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull())));
try {
@@ -56,32 +52,22 @@ public class PurgeDeletedActivity extends InjectingActivity {
}
int result = taskDeleter.purgeDeletedTasks();
metadataDao.removeDanglingMetadata();
- showResult(R.string.EPr_manage_purge_deleted_status, result);
+ return result;
+ }
+
+ @Override
+ protected int getResultResource() {
+ return R.string.EPr_manage_purge_deleted_status;
}
- });
+ }.execute();
}
- }, new DialogInterface.OnClickListener() {
+ })
+ .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
- });
-
- }
-
- @Override
- protected void onPause() {
- DialogUtilities.dismissDialog(this, pd);
-
- super.onPause();
- }
-
- protected void showResult(int resourceText, int result) {
- DialogUtilities.okDialog(this, getString(resourceText, result), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- }
- });
+ })
+ .show();
}
}
diff --git a/src/main/java/org/tasks/activities/SortActivity.java b/src/main/java/org/tasks/activities/SortActivity.java
index 792899476..27224255e 100644
--- a/src/main/java/org/tasks/activities/SortActivity.java
+++ b/src/main/java/org/tasks/activities/SortActivity.java
@@ -13,6 +13,7 @@ import com.todoroo.astrid.core.SortHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingFragmentActivity;
import org.tasks.preferences.Preferences;
@@ -28,6 +29,7 @@ public class SortActivity extends InjectingFragmentActivity {
public static final String EXTRA_TOGGLE_MANUAL = "extra_toggle_manual";
@Inject Preferences preferences;
+ @Inject DialogBuilder dialogBuilder;
private boolean manualEnabled;
private AlertDialog alertDialog;
@@ -60,7 +62,7 @@ public class SortActivity extends InjectingFragmentActivity {
selectedIndex -= 1;
}
- alertDialog = new AlertDialog.Builder(this, R.style.Tasks_Dialog)
+ alertDialog = dialogBuilder.newDialog()
.setSingleChoiceItems(adapter, selectedIndex, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diff --git a/src/main/java/org/tasks/dialogs/DialogBuilder.java b/src/main/java/org/tasks/dialogs/DialogBuilder.java
new file mode 100644
index 000000000..55727b496
--- /dev/null
+++ b/src/main/java/org/tasks/dialogs/DialogBuilder.java
@@ -0,0 +1,41 @@
+package org.tasks.dialogs;
+
+import android.app.Activity;
+import android.app.ProgressDialog;
+import android.support.v7.app.AlertDialog;
+
+import org.tasks.R;
+import org.tasks.preferences.ActivityPreferences;
+
+import javax.inject.Inject;
+
+public class DialogBuilder {
+ private Activity activity;
+ private final ActivityPreferences activityPreferences;
+
+ @Inject
+ public DialogBuilder(Activity activity, ActivityPreferences activityPreferences) {
+ this.activity = activity;
+ this.activityPreferences = activityPreferences;
+ }
+
+ public AlertDialog.Builder newDialog() {
+ return new AlertDialog.Builder(activity, activityPreferences.getDialogTheme());
+ }
+
+ public AlertDialog.Builder newMessageDialog(String message) {
+ return newDialog().setMessage(message);
+ }
+
+ public AlertDialog.Builder newMessageDialog(int message, Object... formatArgs) {
+ return newMessageDialog(activity.getString(message, formatArgs));
+ }
+
+ public ProgressDialog newProgressDialog() {
+ ProgressDialog dialog = new ProgressDialog(activity, activityPreferences.getDialogTheme());
+ dialog.setMessage(activity.getString(R.string.DLG_wait));
+ dialog.setCancelable(false);
+ dialog.setCanceledOnTouchOutside(false);
+ return dialog;
+ }
+}
diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java
index e3fbb4df3..8e6e5e4be 100644
--- a/src/main/java/org/tasks/injection/ActivityModule.java
+++ b/src/main/java/org/tasks/injection/ActivityModule.java
@@ -14,6 +14,7 @@ import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.DefaultsPreferences;
import com.todoroo.astrid.core.OldTaskPreferences;
import com.todoroo.astrid.files.AACRecordingActivity;
+import com.todoroo.astrid.files.FileExplore;
import com.todoroo.astrid.gcal.CalendarAlarmListCreator;
import com.todoroo.astrid.gcal.CalendarReminderActivity;
import com.todoroo.astrid.gtasks.GtasksPreferences;
@@ -26,6 +27,7 @@ import org.tasks.activities.ClearGtaskDataActivity;
import org.tasks.activities.DeleteAllCalendarEventsActivity;
import org.tasks.activities.DeleteCompletedActivity;
import org.tasks.activities.DeleteCompletedEventsActivity;
+import org.tasks.activities.DonationActivity;
import org.tasks.activities.ExportTaskActivity;
import org.tasks.activities.FilterSelectionActivity;
import org.tasks.activities.ImportTaskActivity;
@@ -86,7 +88,9 @@ import dagger.Provides;
HelpAndFeedbackActivity.class,
DateShortcutPreferences.class,
SortActivity.class,
- FilterSelectionActivity.class
+ FilterSelectionActivity.class,
+ FileExplore.class,
+ DonationActivity.class
})
public class ActivityModule {
diff --git a/src/main/java/org/tasks/injection/DialogFragmentModule.java b/src/main/java/org/tasks/injection/DialogFragmentModule.java
index b24b9f98c..7c555640f 100644
--- a/src/main/java/org/tasks/injection/DialogFragmentModule.java
+++ b/src/main/java/org/tasks/injection/DialogFragmentModule.java
@@ -1,5 +1,6 @@
package org.tasks.injection;
+import android.app.Activity;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
@@ -28,4 +29,9 @@ public class DialogFragmentModule {
public FragmentActivity getFragmentActivity() {
return dialogFragment.getActivity();
}
+
+ @Provides
+ public Activity getActivity() {
+ return dialogFragment.getActivity();
+ }
}
diff --git a/src/main/java/org/tasks/preferences/ActivityPreferences.java b/src/main/java/org/tasks/preferences/ActivityPreferences.java
index 9d780787e..3d230615e 100644
--- a/src/main/java/org/tasks/preferences/ActivityPreferences.java
+++ b/src/main/java/org/tasks/preferences/ActivityPreferences.java
@@ -42,6 +42,10 @@ public class ActivityPreferences extends Preferences {
applyTheme(isDarkTheme() ? R.style.TasksDark : R.style.Tasks);
}
+ public void applyDialogTheme() {
+ applyTheme(isDarkTheme() ? R.style.TasksDialogDark : R.style.TasksDialog);
+ }
+
public void applyStatusBarColor() {
applyStatusBarColor(isDarkTheme() ? android.R.color.black : R.color.primary_dark);
}
@@ -68,6 +72,14 @@ public class ActivityPreferences extends Preferences {
activity.getWindow().setFormat(PixelFormat.RGBA_8888);
}
+ public int getTheme() {
+ return isDarkTheme() ? R.style.TasksDark : R.style.Tasks;
+ }
+
+ public int getDialogTheme() {
+ return isDarkTheme() ? R.style.TasksDialogDark : R.style.TasksDialog;
+ }
+
public int getEditDialogTheme() {
return isDarkTheme() ? R.style.TEA_Dialog_Dark : R.style.TEA_Dialog;
}
diff --git a/src/main/java/org/tasks/reminders/NotificationDialog.java b/src/main/java/org/tasks/reminders/NotificationDialog.java
index bec4efb1c..bc296d526 100644
--- a/src/main/java/org/tasks/reminders/NotificationDialog.java
+++ b/src/main/java/org/tasks/reminders/NotificationDialog.java
@@ -5,15 +5,16 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
-import android.support.v7.app.AlertDialog;
-import android.widget.ArrayAdapter;
import org.tasks.Broadcaster;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.intents.TaskIntents;
import org.tasks.notifications.NotificationManager;
+import java.util.List;
+
import javax.inject.Inject;
import static java.util.Arrays.asList;
@@ -22,6 +23,7 @@ public class NotificationDialog extends InjectingDialogFragment {
@Inject NotificationManager notificationManager;
@Inject Broadcaster broadcaster;
+ @Inject DialogBuilder dialogBuilder;
private long taskId;
private String title;
@@ -30,14 +32,14 @@ public class NotificationDialog extends InjectingDialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- ArrayAdapter adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, asList(
+ List items = asList(
getString(R.string.TAd_actionEditTask),
getString(R.string.rmd_NoA_snooze),
- getString(R.string.rmd_NoA_done)
- ));
- return new AlertDialog.Builder(getActivity(), R.style.Tasks_Dialog)
+ getString(R.string.rmd_NoA_done));
+
+ return dialogBuilder.newDialog()
.setTitle(title)
- .setAdapter(adapter, new DialogInterface.OnClickListener() {
+ .setItems(items.toArray(new String[items.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
diff --git a/src/main/java/org/tasks/reminders/SnoozeDialog.java b/src/main/java/org/tasks/reminders/SnoozeDialog.java
index be7e6614e..e9b6919d1 100644
--- a/src/main/java/org/tasks/reminders/SnoozeDialog.java
+++ b/src/main/java/org/tasks/reminders/SnoozeDialog.java
@@ -5,13 +5,12 @@ import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
-import android.support.v7.app.AlertDialog;
-import android.widget.ArrayAdapter;
import com.todoroo.astrid.reminders.SnoozeCallback;
import org.joda.time.DateTime;
import org.tasks.R;
+import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.preferences.Preferences;
@@ -28,26 +27,26 @@ public class SnoozeDialog extends InjectingDialogFragment {
@Inject Preferences preferences;
@Inject @ForApplication Context context;
+ @Inject DialogBuilder dialogBuilder;
private DateTime now = new DateTime();
private SnoozeCallback snoozeCallback;
private DialogInterface.OnCancelListener onCancelListener;
private List snoozeTimes = new ArrayList<>();
- private ArrayAdapter adapter;
+ private List items = new ArrayList<>();
private DateTime getDateTimeShortcut(int resId, long def) {
return now.withMillisOfDay(preferences.getInt(getString(resId), (int) def));
}
private void add(int resId, DateTime dateTime) {
- adapter.add(String.format("%s (%s)", getString(resId), getTimeString(context, dateTime.toDate())));
+ items.add(String.format("%s (%s)", getString(resId), getTimeString(context, dateTime.toDate())));
snoozeTimes.add(dateTime.getMillis());
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1);
DateTime morning = getDateTimeShortcut(R.string.p_date_shortcut_morning, TimeUnit.HOURS.toMillis(9));
DateTime afternoon = getDateTimeShortcut(R.string.p_date_shortcut_afternoon, TimeUnit.HOURS.toMillis(13));
DateTime evening = getDateTimeShortcut(R.string.p_date_shortcut_evening, TimeUnit.HOURS.toMillis(17));
@@ -55,7 +54,7 @@ public class SnoozeDialog extends InjectingDialogFragment {
DateTime tomorrowMorning = morning.plusDays(1);
DateTime tomorrowAfternoon = afternoon.plusDays(1);
- adapter.add(getString(R.string.date_shortcut_hour));
+ items.add(getString(R.string.date_shortcut_hour));
snoozeTimes.add(0L);
DateTime hourCutoff = new DateTime().plusMinutes(75);
@@ -76,11 +75,11 @@ public class SnoozeDialog extends InjectingDialogFragment {
add(R.string.date_shortcut_tomorrow_morning, tomorrowMorning);
add(R.string.date_shortcut_tomorrow_afternoon, tomorrowAfternoon);
}
- adapter.add(getString(R.string.pick_a_date_and_time));
+ items.add(getString(R.string.pick_a_date_and_time));
- return new AlertDialog.Builder(getActivity(), R.style.Tasks_Dialog)
+ return dialogBuilder.newDialog()
.setTitle(R.string.rmd_NoA_snooze)
- .setAdapter(adapter, new DialogInterface.OnClickListener() {
+ .setItems(items.toArray(new String[items.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
diff --git a/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java b/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java
new file mode 100644
index 000000000..ab578cd6f
--- /dev/null
+++ b/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java
@@ -0,0 +1,39 @@
+package org.tasks.ui;
+
+import android.app.Activity;
+import android.app.ProgressDialog;
+import android.os.AsyncTask;
+import android.widget.Toast;
+
+import org.tasks.dialogs.DialogBuilder;
+
+public abstract class ProgressDialogAsyncTask extends AsyncTask {
+
+ ProgressDialog progressDialog;
+ private Activity activity;
+ private DialogBuilder dialogBuilder;
+
+ public ProgressDialogAsyncTask(Activity activity, DialogBuilder dialogBuilder) {
+ this.activity = activity;
+ this.dialogBuilder = dialogBuilder;
+ }
+
+ @Override
+ protected void onPreExecute() {
+ progressDialog = dialogBuilder.newProgressDialog();
+ progressDialog.show();
+ }
+
+ @Override
+ protected void onPostExecute(Integer integer) {
+ if (progressDialog.isShowing()) {
+ progressDialog.dismiss();
+ }
+
+ Toast.makeText(activity, activity.getString(getResultResource(), integer), Toast.LENGTH_LONG).show();
+
+ activity.finish();
+ }
+
+ protected abstract int getResultResource();
+}
diff --git a/src/main/res/drawable-hdpi/ic_folder_white_24dp.png b/src/main/res/drawable-hdpi/ic_folder_white_24dp.png
new file mode 100644
index 000000000..02ea533a8
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_folder_white_24dp.png differ
diff --git a/src/main/res/drawable-hdpi/ic_insert_drive_file_white_24dp.png b/src/main/res/drawable-hdpi/ic_insert_drive_file_white_24dp.png
new file mode 100644
index 000000000..84755e488
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_insert_drive_file_white_24dp.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_folder_white_24dp.png b/src/main/res/drawable-xhdpi/ic_folder_white_24dp.png
new file mode 100644
index 000000000..71a5a137c
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_folder_white_24dp.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_insert_drive_file_white_24dp.png b/src/main/res/drawable-xhdpi/ic_insert_drive_file_white_24dp.png
new file mode 100644
index 000000000..798ebd4e2
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_insert_drive_file_white_24dp.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_folder_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_folder_white_24dp.png
new file mode 100644
index 000000000..b93d5a1e4
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_folder_white_24dp.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_insert_drive_file_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_insert_drive_file_white_24dp.png
new file mode 100644
index 000000000..f3e153b45
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_insert_drive_file_white_24dp.png differ
diff --git a/src/main/res/drawable/ic_folder_white_24dp.png b/src/main/res/drawable/ic_folder_white_24dp.png
new file mode 100644
index 000000000..831d723ba
Binary files /dev/null and b/src/main/res/drawable/ic_folder_white_24dp.png differ
diff --git a/src/main/res/drawable/ic_insert_drive_file_white_24dp.png b/src/main/res/drawable/ic_insert_drive_file_white_24dp.png
new file mode 100644
index 000000000..b51ce3ed9
Binary files /dev/null and b/src/main/res/drawable/ic_insert_drive_file_white_24dp.png differ
diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml
index 47f436975..4aa31f0fa 100644
--- a/src/main/res/values-ar/strings.xml
+++ b/src/main/res/values-ar/strings.xml
@@ -107,7 +107,6 @@
هل فعلا تريد حذف جميع الأحداث للمهام ؟
تحميل...
اختر المهمه للعرض...
- قاعدة بيانات متلفه
Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings->Sync and backup->Manage old tasks->Clear all data) and restore
@@ -239,7 +238,6 @@
أمس
غدا
أمس
- معلومة
إنتظر من فضلك...
آخر تحيين:\n%s
تحيين في الخلفية
diff --git a/src/main/res/values-bg-rBG/strings.xml b/src/main/res/values-bg-rBG/strings.xml
index e1823b67c..452753361 100644
--- a/src/main/res/values-bg-rBG/strings.xml
+++ b/src/main/res/values-bg-rBG/strings.xml
@@ -173,7 +173,6 @@
Изтрити %d събития от календара!
Зареждане...
Изберете задачи за показване...
- Развалена База от данни
Ами сега! Изглежда, че базата от данни е развалена.
Ако виждате тази грешка редовно, ние ви предлагаме да изчистите всички
данни (Настройки->Синхронизиране и резервни копия->Управление на стари задачи->Изчисти всички данни)
@@ -372,7 +371,6 @@
Вчера
Утре
Вчера
- Информация
Ами сега, изглежда е станала грешка! Ето какво се случи:\n\n%s
Моля, изчакайте...
Последна синхронизация:\n%s
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index f10f5ab54..12c52e63f 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -201,7 +201,6 @@
Avui
Demà
Ahir
- Informació
¡Ui, sembla que hi ha hagut un problema! Això es el que ha passat:\n\n%s
Si us plau, espera...
Última sincronització:\n%s
diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml
index cce01e58b..8d9dbe3e2 100644
--- a/src/main/res/values-cs/strings.xml
+++ b/src/main/res/values-cs/strings.xml
@@ -161,7 +161,6 @@
Smazány %d upomínky v kalendáři
Nahrávám...
Označte úkol pro zobrazení...
- Poškozená databáze
OJ! Může být poškozená databáze. Zobrazuje-li se tato chyba znovu, vymaž všechny údaje v (Nastavení->Synchronizace a zálohy->Správa starých úkolů->Vymazat vše) a obnov své úkoly ze zálohy (Nastavení->Synchronizace a zálohy->Zálohy->Import úkolů) v úkolech.
Výchozí termín dokončení
Výchozí důležitost
@@ -347,7 +346,6 @@
Včera
Zítra
Včera
- Informace
Jejda, vypadá to, že se vyskytla chyba! Tady je co se stalo:\n\n%s
Čekejte prosím...
Poslední synchronizace:\n%s
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index d8fcc4072..97e3ce3c8 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -169,7 +169,6 @@
%d Kalendereinträge gelöscht!
Ladevorgang …
Aufgaben zum Anzeigen wählen …
- Fehler in der Datenbank
Oh-oh! Sieht aus aIs könnte deine Datenbank beschädigt sein. Falls Du diesen Fehler regelmäßig siehst, empfehlen wir, alle Daten zu löschen (Einstellungen->Synchronisation->Alte Aufgaben verwalten->Alle Daten löschen) und deine Aufgaben aus einem Backup in Tasks wiederherzustellen (Einstellungen->Synchronisation->Backups->-Backups verwalten>Aufgaben importieren).
Aufgabenstandards
Standard Dringlichkeit
diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml
index 5c593486d..f076ad609 100644
--- a/src/main/res/values-el/strings.xml
+++ b/src/main/res/values-el/strings.xml
@@ -163,7 +163,6 @@
Διαγράφτηκαν %d γεγονότα ημερολογίου!
Φόρτωση...
Επιλογή εργασιών για προβολή...
- Κατεστραμμένη βάση δεδομένων
Ωχ! Μοιάζει να έχετε μια κατεστραμμένη βάση δεδομένων.
Εάν βλέπετε αυτό το σφάλμα τακτικά, σας προτείνουμε καθαρισμό όλων των
δεδομένων (Ρυθμίσεις-> Sync και Backup-> Διαχείριση παλιά tasks-> Διαγραφή όλων των δεδομένων) και να αποκαταστήσει
@@ -346,7 +345,6 @@
Χθές
Αύριο
Χθές
- Πληροφορίες
Ωπ, προέκυψε σφάλμα!! Νά τι έγινε :\n\n%s
Παρακαλώ περιμένετε...
Τελευταίος συγχρονισμός:\n%s
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 56904b64f..c527b2582 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -170,7 +170,6 @@
¡Borrados %d eventos del calendario!
Cargando…
Seleccione las tareas que ver...
- Base de datos corrupta
\"¡Oh-oh! Es posible que tu base de datos esté corrupta. Si ves éste error con frecuencia, te sugerimos que limpies toda la información (Configuración->Sincronización y respaldos->Administrar tareas pasadas->Limpiar toda la información) y recuperar tus tareas de un respaldo (Configuración->Sincronización y respaldos->Respaldos->Importar tareas) en Tasks.\"
Configuración por defecto de tareas
Fecha límite por defecto
@@ -366,7 +365,6 @@
Ayer
Mñna
Ayer
- Información
¡Uy, parece que ocurró un error! Esto es lo que pasó:\n\n%s
Por favor, espere...
Ultima sincronización:\n%s
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index 634e3055d..30f796990 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -168,7 +168,6 @@
%d événements du calendrier ont été supprimés!
Chargement…
Sélectionnez les tâches à afficher…
- Base de donnée corrompue
Oh oh ! On dirait que vous avez une base de données corrompues. Si vous voyez souvent cette erreur, nous vous suggérons d\'effacer toutes vos données (Paramètres->Synchronisation et sauvegarde->Gérer les anciennes tâches->Effacer toutes les données) et restaurer vos tâches d\'une sauvegarde (Paramètres->Synchronisation et sauvegarde->Sauvegarde->Importer des tâches) dans Tasks
Valeurs par défaut
Échéance par défaut
@@ -362,7 +361,6 @@
Hier
Demain
Hier
- Informations
Oups, une erreur est survenue ! Voici ce qu\'il s\'est passé :\n\n%s
Veuillez patienter...
Dernière synchro. :\n%s
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index 60e2ac847..d58e54fd8 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -144,7 +144,6 @@
Eliminato il %d degli eventi del calendario!
Caricamento...
Seleziona le attività da visualizzare...
- Database corrotto
Oh, oh! Pare che tu abbia un database danneggiato.
Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dati (Impostazioni->Sincronizzazione e backup->Gestire tutti i dati->Cancellare tutti i dati) e ripristinare i tuoi task da un backup in Tasks (Impostazioni->Sincronizzazione e backup->Backup->Importa task).
Urgenza Predefinita
@@ -320,7 +319,6 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
Ieri
Domani
Ieri
- Informazione
Oops, sembra che ci sia stato un errore! E\' successo questo:\n\n%s
Attendi...
Ultima Sincronizzazione:\n%s
diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml
index 067dffc5f..4e0c3eb93 100644
--- a/src/main/res/values-iw/strings.xml
+++ b/src/main/res/values-iw/strings.xml
@@ -161,7 +161,6 @@
%d אירועי יומן נמחקו
טוענת...
בחר משימות להצגה...
- בסיס נתונים פגום
הו לא! נראה כי בסיס הנתונים אינו תקין.
אם אתה נתקל השגיאה זאת האופן תדיר, אנו מציעים שתמחק את כל הנתונים
(הגדרות->סינכרון וגיבוי->ניהול משימות ישנות->הסרת כל הנתונים) ושחזר את המשימות
@@ -348,7 +347,6 @@
אתמול
מחר
אתמול
- פרטים
אוּפְּס, נראה שארעה שגיאה! הנה מה שקה:\n\n%s
אנא המתן...
סנכרון אחרון:\n%s
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index f1d4f19c2..98f020455 100644
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -171,7 +171,6 @@
%d カレンダーイベントが削除されました!
読み込んでいます・・・
ウィジェットに表示する項目
- 不正なデータベース
データベースが正しくないようです.
このエラーが何度も表示される場合, データのクリア
(設定->同期およびバックアップ->古いタスクの管理->全てのデータをクリア) し,
@@ -371,7 +370,6 @@
昨日
明日
昨日
- インフォメーション
エラーが発生しました! 発生した内容\n\n%s
お待ちください
前回の同期:\n%s
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index e6872e1bb..1eca8a659 100644
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -171,7 +171,6 @@
%d 달력 이벤트를 삭제했습니다!
로드 중…
열람할 일정 선택...
- 손상된 데이터베이스
데이터베이스가 손상된 것 같습니다. 이 에러 메시지가 주기적으로 나타나면,
자료를 모두 지우고 (설정->동기화 & 백업->오래된 일정 관리->모든 자료 삭제)
Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
@@ -366,7 +365,6 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
어제
내일
어제
- 정보
에러가 발생한 것 같습니다! 발생한 에러는 다음과 같습니다:\n\n%s
잠시 기다리세요...
마지막 동기화: \n%s
diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml
index df07fa22f..6473de8c3 100644
--- a/src/main/res/values-nb/strings.xml
+++ b/src/main/res/values-nb/strings.xml
@@ -172,7 +172,6 @@
I dag
I morgen
I går
- Informasjon
Oi, det oppstod en feil! Dette skjedde:\n\n%s
Vennligst vent...
Siste synkronisering:\n%s
diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml
index 0185451cb..5aea337d6 100644
--- a/src/main/res/values-nl/strings.xml
+++ b/src/main/res/values-nl/strings.xml
@@ -165,7 +165,6 @@
%d agenda-items verwijderd!
Laden…
Selecteer weer te geven taken...
- Database Corrupt
Oh oh! Het lijkt erop dat je een corrupte database hebt. Als je deze error vaker ziet raden we je aan alle data te verwijderen (Instellingen->Beheer Alle Taken->Wis alle data) en je taken uit een backup te herstellen (Instellingen->Backup->Importeer Taken) in Tasks.
Standaard prioriteit
Standaard prioriteit
@@ -353,7 +352,6 @@
Gisteren
mrgn
gisteren
- Informatie
Er is een fout opgetreden:\n\n%s
Even geduld a.u.b.
Vorige:\n%s
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index c09261ab8..db3374239 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -164,7 +164,6 @@
Usunięto %d wydarzeń kalendarza!
Ładowanie...
Wybierz zadania do wyświetlenia
- Uszkodzona baza danych
O jej! Wygląda na to, że możeć mieć uszkodzoną bazę danych.
Jeśli widzisz ten błąd często, sugerujemy wyczyszczenie
wszystkich danych (Settings->Sync and backup->Manage old tasks->Clear all data)
@@ -356,7 +355,6 @@ i odzyskanie zadań z kopi zapasowej (Settings->Sync and backup->Backup-&g
Wczoraj
jtr
wcz
- Informacja
Ups! Wygląda na to, że wystąpił jakiś błąd! Oto, co się stało:\n\n%s
Proszę czekać...
Ostatnia synchronizacja:\n%s
diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml
index 029b8b8be..e22c89eaf 100644
--- a/src/main/res/values-pt-rBR/strings.xml
+++ b/src/main/res/values-pt-rBR/strings.xml
@@ -163,7 +163,6 @@
%d eventos de agenda apagados!
Carregando...
Selecionar tarefas para visualização...
- Banco de Dados Corrompido
Uh oh! Parece que você possui banco de dados corrompido. Se você vê esse erro regularmente, nós sugerimos que você limpe todos os dados (Configurações-> Sincronização e backup-> Manutenção de tarefas antigas-> Limpar todos os dados) e restaurar suas tarefas através do backup no Tasks (Configurações-> Sincronização e backup-> Backup-> Importar tarefas).
Urgência
Prioridade padrão
@@ -352,7 +351,6 @@
Ontem
amanhã
ontem
- Informações
Opa, parece que ocorreu um erro! Aqui está o que aconteceu:\n\n%s
Por favor, aguarde...
Última sincronização:\n%s
diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml
index 43b59bab1..2013dbba4 100644
--- a/src/main/res/values-pt/strings.xml
+++ b/src/main/res/values-pt/strings.xml
@@ -169,7 +169,6 @@
Eliminados %d eventos de calendário!
Carregando...
Escolha as tarefas a ver...
- Base de dados danificada
Parece que a sua base de dados está danificada.
Se este erro ocorrer repetidamente sugerimos a eliminação dos dados em
Definições->Sincronização e backup->Gerir tarefas antigas->Limpar todos os dados e o restauro
@@ -364,7 +363,6 @@ das tarefas através de um backup em Definições->Sincronização e backup-&
Ontem
Amanhã
Ontem
- Informação
Parece que ocorreu um erro! Isto foi o que aconteceu:\n\n%s
Por favor aguarde...
Última sincronização:\n%s
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index ab3c674f1..a82a957d1 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -168,7 +168,6 @@
Удалено %d календарных событий!
Загрузка...
Выберите задачи для просмотра…
- Поврежденная база данных
Упс! Похоже, ваша база данных повреждена.
Если вы получаете эту ошибку регулярно, рекомендуется стереть
все данные (Параметры->Синхронизация->Управление старыми задачами->Очистить все данные) и восстановить
@@ -364,7 +363,6 @@
Вчера
Завт
Вчера
- Информация
Ой, похоже произошла ошибка! Подробности ниже:\n\n%s
Пожалуйста, подождите…
Последняя синхронизация\n%s
diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml
index 0a2ef36d3..b0266ecfd 100644
--- a/src/main/res/values-sk/strings.xml
+++ b/src/main/res/values-sk/strings.xml
@@ -168,7 +168,6 @@
Vymazané %d udalosti kalendára!
Načítavanie
Vybrať úlohy na zobrazenie
- Poškodená databáza
Oh nie! Zdá sa, že máš poškodenú databázu. Ak sa ti táto chyba zobrazuje stále, vymaž všetky údaje
(Nastavenia->Synchronizáca a zálohy->Spravovať staré úlohy->Vymazať všetky údaje) a obnov svoje údaje zo zálohy (Nastavenia->Synchronizácie a zálohy->Záloha->Importovať úlohy) v Tasks.
Predvoľby úloh
@@ -362,7 +361,6 @@
Včera
Zajtra
Včera
- Informácia
Ups, zdá sa, že sa vyskytla chyba! Tu je čo sa stalo:\n\n%s
Prosím čakaj...
Posledná synchronizácia:\n%s
diff --git a/src/main/res/values-sl-rSI/strings.xml b/src/main/res/values-sl-rSI/strings.xml
index d91d727b1..1495521e1 100644
--- a/src/main/res/values-sl-rSI/strings.xml
+++ b/src/main/res/values-sl-rSI/strings.xml
@@ -167,7 +167,6 @@
Število zbrisanih dogodkov na koledarju: %d
Nalagam...
Izberi in prikaži opravke...
- Okvarjena baza podatkov
O, ne! Zdi se, da imate okvarjeno bazo podatkov. Če se ta napaka pogosto pojavlja, vam predlagamo, da zbrišete vse podatke (Nastavitve->Usklajevanje in varnostna kopija-> Upravljanje s preteklimi opravki->Zbriši vse podatke) in obnovite svoje opravke s pomočjo varnostne kopije aplikacije Opravki. (Nastavitve->Usklajevanje in varnostna kopija->Varnostna kopija->Uvozi opravke)
Privzeta dospelost
Privzeta dospelost
@@ -354,7 +353,6 @@
Včeraj
Jutr
Včer
- Informacija
Ups, zdi se, da je prišlo do napake! Tole se je zgodilo:\n\n%s
Prosimo, počakajte...
Najnovejše usklajevanje:\n%s
diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml
index e3c016900..d4b208c1e 100644
--- a/src/main/res/values-sv/strings.xml
+++ b/src/main/res/values-sv/strings.xml
@@ -159,7 +159,6 @@
%d kalenderhändelser raderade!
Laddar...
Välj uppgifter att se på...
- Korrupt databas
Oj! Det verkar som din databas är skadad.
Om du ser detta felmeddelande ofta, föreslår vi att du tömmer all data
(Inställningar->Synkronisering och backup->Hantera gamla uppgifter->Töm all data)
diff --git a/src/main/res/values-th/strings.xml b/src/main/res/values-th/strings.xml
index 5cd59cbcb..61342ac38 100644
--- a/src/main/res/values-th/strings.xml
+++ b/src/main/res/values-th/strings.xml
@@ -101,5 +101,4 @@
วันนี้
พรุ่งนี้
เมื่อวาน
- ข้อมูล
\ No newline at end of file
diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml
index 4b626252f..533ea5b22 100644
--- a/src/main/res/values-tr/strings.xml
+++ b/src/main/res/values-tr/strings.xml
@@ -142,7 +142,6 @@
%d takvim olayı silindi!
Yükleniyor...
Görüntülenecek görevi seç...
- Bozuk Veritabanı
Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings->Sync and backup->Manage old tasks->Clear all data) and restore
@@ -320,7 +319,6 @@
Dün
Yarın
Dün
- Bilgi
Oops, bir sorun meydana geldi! Olan şu:\n\n%s
Lütfen bekleyin...
Son Senk.\n%s
diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml
index a82855925..5921cdccc 100644
--- a/src/main/res/values-uk/strings.xml
+++ b/src/main/res/values-uk/strings.xml
@@ -167,7 +167,6 @@
Видалено %d календарних подій!
Завантаження...
Виберіть завдання для перегляду...
- Пошкоджена база данних
Ой! Схоже, ваша база даних пошкоджена.
Якщо ви отримуєте цю помилку регулярно,
рекомендується стерти всі дані (Параметри->
@@ -341,7 +340,6 @@
Вчора
Завт.
Вчор.
- Інформація
На жаль, схоже, сталася помилка! Ось що вийшло:\n\n%s
Будь ласка, зачекайте...
Остання синхр.:\n%s
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index 8eb203800..21ce83add 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -125,7 +125,6 @@
已经删除了 %d 个日历事件了!
载入中...
选择任务以显示...
- 数据库已经受损
啊喔!您有一个毁损的资料库。如果您经常看见这个错误出现,我们建议您清除所有数据(在设置->同步和备份->;管理旧任务->清楚所有数据)并在清单小助理备份中重新存入您的任务(设置->同步和备份->备份->导入任务)
默认截止期
默认隐藏直到
@@ -299,7 +298,6 @@
昨天
明天
昨天
- 信息
糟糕,发生错误!状况是:\n\n%s
请稍候...
上次同步:\n%s
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index 2fc36c03b..801c86aee 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -154,7 +154,6 @@
已經刪除了 %d 個日曆事件了!
載入中...
選擇工作顯示...
- 數據庫已經受損
啊喔!您有一個毀損的資料庫。如果您經常看見這個錯誤出現,我們建議您清除所有數據(在設置->同步和備份->;管理舊任務工作->清楚所有數據)並在Tasks備份中重新存入您的任務工作(設置->同步和備份->備份->導入任務工作)
預設嚴重性
預設優先權
@@ -336,7 +335,6 @@
昨天
明天
昨天
- 資訊
糟糕,發生錯誤!狀況是:\n\n%s
請稍候...
上次同步:\n%s
diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml
index 5bbe0e294..33f7d34d1 100644
--- a/src/main/res/values/attrs.xml
+++ b/src/main/res/values/attrs.xml
@@ -55,6 +55,9 @@
+
+
+
diff --git a/src/main/res/values/strings-core.xml b/src/main/res/values/strings-core.xml
index 60e7acf3e..bcc6806e1 100644
--- a/src/main/res/values/strings-core.xml
+++ b/src/main/res/values/strings-core.xml
@@ -392,8 +392,6 @@
- Corrupted Database
-
Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 566ab7974..d970bab03 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -31,9 +31,6 @@
-
- Information
-
Oops, looks like an error occurred! Here\'s what happened:\n\n%s
diff --git a/src/main/res/values/styles_dark.xml b/src/main/res/values/styles_dark.xml
index 1a9794f12..6aa18fe7a 100644
--- a/src/main/res/values/styles_dark.xml
+++ b/src/main/res/values/styles_dark.xml
@@ -67,4 +67,23 @@
- @drawable/ic_close_white_24dp
+
+
\ No newline at end of file
diff --git a/src/main/res/values/styles_light.xml b/src/main/res/values/styles_light.xml
index ad0d015a0..f76ca3537 100644
--- a/src/main/res/values/styles_light.xml
+++ b/src/main/res/values/styles_light.xml
@@ -67,7 +67,7 @@
- @drawable/ic_close_white_24dp
-
\ No newline at end of file