diff --git a/api/src/com/todoroo/andlib/utility/DialogUtilities.java b/api/src/com/todoroo/andlib/utility/DialogUtilities.java index 995296b78..b77a91220 100644 --- a/api/src/com/todoroo/andlib/utility/DialogUtilities.java +++ b/api/src/com/todoroo/andlib/utility/DialogUtilities.java @@ -122,20 +122,8 @@ public class DialogUtilities { public static void okCancelDialog(final Activity activity, final String title, final String text, final DialogInterface.OnClickListener okListener, final DialogInterface.OnClickListener cancelListener) { - if(activity.isFinishing()) - return; - tryOnUiThread(activity, new Runnable() { - public void run() { - new AlertDialog.Builder(activity) - .setTitle(title) - .setMessage(text) - .setIcon(android.R.drawable.ic_dialog_alert) - .setPositiveButton(android.R.string.ok, okListener) - .setNegativeButton(android.R.string.cancel, cancelListener) - .show().setOwnerActivity(activity); - } - }); + okCancelCustomDialog(activity, title, text, android.R.string.ok, android.R.string.cancel, okListener, cancelListener); } /** @@ -149,6 +137,19 @@ public class DialogUtilities { public static void okCancelDialog(final Activity activity, final String text, final DialogInterface.OnClickListener okListener, final DialogInterface.OnClickListener cancelListener) { + + okCancelCustomDialog(activity, activity.getString(R.string.DLG_confirm_title), 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 title, final String text, + final int okTitleId, final int cancelTitleId, + final DialogInterface.OnClickListener okListener, + final DialogInterface.OnClickListener cancelListener) { if(activity.isFinishing()) return; @@ -157,9 +158,10 @@ public class DialogUtilities { new AlertDialog.Builder(activity) .setTitle(R.string.DLG_confirm_title) .setMessage(text) + .setTitle(title) .setIcon(android.R.drawable.ic_dialog_alert) - .setPositiveButton(android.R.string.ok, okListener) - .setNegativeButton(android.R.string.cancel, cancelListener) + .setPositiveButton(okTitleId, okListener) + .setNegativeButton(cancelTitleId, cancelListener) .show().setOwnerActivity(activity); } }); diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 4d21e32a9..3e3a51357 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -73,12 +73,15 @@ - + - + + + diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index ed6186b74..c3ab9dc84 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -35,15 +35,10 @@ import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; -import android.graphics.Color; import android.graphics.PixelFormat; import android.os.Build; import android.os.Bundle; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.TextPaint; import android.text.method.PasswordTransformationMethod; -import android.text.style.ClickableSpan; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; @@ -72,7 +67,6 @@ import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmInvoker; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmSyncProvider; -import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.gtasks.auth.ModernAuthManager; import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.StatisticsService; @@ -88,45 +82,52 @@ public class ActFmLoginActivity extends Activity implements AuthListener { public static final String APP_ID = "183862944961271"; //$NON-NLS-1$ - @Autowired ExceptionService exceptionService; - @Autowired TaskService taskService; - @Autowired ActFmPreferenceService actFmPreferenceService; + @Autowired protected ExceptionService exceptionService; + @Autowired protected TaskService taskService; + @Autowired protected ActFmPreferenceService actFmPreferenceService; private final ActFmInvoker actFmInvoker = new ActFmInvoker(); private Facebook facebook; private AsyncFacebookRunner facebookRunner; private TextView errors; - private boolean noSync = false; - - // True if this screen was shown as part of new user experience - private boolean shownFromWelcome = false; + protected boolean noSync = false; // --- ui initialization private static final int REQUEST_CODE_GOOGLE_ACCOUNTS = 1; private static final int REQUEST_CODE_OAUTH = 2; - public static final String KEY_SHOW_LATER_BUTTON = "actfm_login_show_later"; - static { AstridDependencyInjector.initialize(); } public static final String EXTRA_DO_NOT_SYNC = "nosync"; //$NON-NLS-1$ + protected int getContentViewResource() { + return R.layout.actfm_login_activity; + } + + protected int getTitleResource() { + return R.string.actfm_ALA_title; + } + public ActFmLoginActivity() { super(); DependencyInjectionService.getInstance().inject(this); } + protected void finishAndShowNext() { + finish(); + } + @SuppressWarnings("nls") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ContextManager.setContext(this); - setContentView(R.layout.actfm_login_activity); - setTitle(R.string.actfm_ALA_title); + setContentView(getContentViewResource()); + setTitle(getTitleResource()); noSync = getIntent().getBooleanExtra(EXTRA_DO_NOT_SYNC, false); @@ -151,18 +152,12 @@ public class ActFmLoginActivity extends Activity implements AuthListener { setResult(RESULT_CANCELED); } - private void initializeUI() { - shownFromWelcome = getIntent().getBooleanExtra(KEY_SHOW_LATER_BUTTON, false); - if (shownFromWelcome) { - Button loginLater = (Button)findViewById(R.id.login_later); - loginLater.setVisibility(View.VISIBLE); - loginLater.setOnClickListener(loginLaterListener); - } + protected void initializeUI() { findViewById(R.id.gg_login).setOnClickListener(googleListener); - TextView pwLogin = (TextView) findViewById(R.id.pw_login); + Button pwLogin = (Button) findViewById(R.id.pw_login); pwLogin.setOnClickListener(signUpListener); - String pwLoginBase = getString(R.string.actfm_ALA_pw_login); + /*String pwLoginBase = getString(R.string.actfm_ALA_pw_login); SpannableString link = new SpannableString(String.format("%s %s", //$NON-NLS-1$ pwLoginBase, getString(R.string.actfm_ALA_pw_link))); ClickableSpan linkSpan = new ClickableSpan() { @@ -175,31 +170,15 @@ public class ActFmLoginActivity extends Activity implements AuthListener { ds.setUnderlineText(true); ds.setColor(Color.rgb(255, 96, 0)); } + }; link.setSpan(linkSpan, pwLoginBase.length() + 1, link.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - pwLogin.setText(link); + pwLogin.setText(link);//*/ } // --- event handler - private final OnClickListener loginLaterListener = new OnClickListener() { - @Override - public void onClick(View arg0) { - String confirmLater = ActFmLoginActivity.this.getString(R.string.actfm_ALA_confirm_later_dialog); - DialogUtilities.okCancelDialog(ActFmLoginActivity.this, confirmLater, confirmLaterListener, null); - } - - private final DialogInterface.OnClickListener confirmLaterListener = new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Intent taskListStartup = new Intent(ActFmLoginActivity.this, TaskListActivity.class); - ActFmLoginActivity.this.startActivity(taskListStartup); - ActFmLoginActivity.this.finish(); - } - }; - }; - - private final OnClickListener googleListener = new OnClickListener() { + protected final OnClickListener googleListener = new OnClickListener() { @Override @SuppressWarnings("nls") public void onClick(View arg0) { @@ -216,7 +195,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { } }; - private final OnClickListener signUpListener = new OnClickListener() { + protected final OnClickListener signUpListener = new OnClickListener() { @Override public void onClick(View arg0) { final LinearLayout body = new LinearLayout(ActFmLoginActivity.this); @@ -381,7 +360,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { } @SuppressWarnings("nls") - private void postAuthenticate(JSONObject result, String token) { + protected void postAuthenticate(JSONObject result, String token) { actFmPreferenceService.setToken(token); Preferences.setLong(ActFmPreferenceService.PREF_USER_ID, @@ -391,11 +370,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { Preferences.setString(ActFmPreferenceService.PREF_PICTURE, result.optString("picture")); setResult(RESULT_OK); - if (shownFromWelcome) { - Intent taskListStartup = new Intent(ActFmLoginActivity.this, TaskListActivity.class); - this.startActivity(taskListStartup); - } - finish(); + finishAndShowNext(); if(!noSync) { new ActFmSyncProvider().synchronize(this); diff --git a/astrid/plugin-src/com/todoroo/astrid/notes/NotesDecorationExposer.java b/astrid/plugin-src/com/todoroo/astrid/notes/NotesDecorationExposer.java index 1c69a60d4..2359c6c4f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/notes/NotesDecorationExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/notes/NotesDecorationExposer.java @@ -24,7 +24,7 @@ public class NotesDecorationExposer implements TaskDecorationExposer { @Override public TaskDecoration expose(Task task) { - if(Preferences.getBoolean(R.string.p_showNotes, false)) + if(Preferences.getBoolean(R.string.p_showNotes, true)) return null; if(task == null || !NotesPlugin.hasNotes(task)) return null; diff --git a/astrid/plugin-src/com/todoroo/astrid/notes/NotesDetailExposer.java b/astrid/plugin-src/com/todoroo/astrid/notes/NotesDetailExposer.java index f16fd6efb..e92e6955f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/notes/NotesDetailExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/notes/NotesDetailExposer.java @@ -49,7 +49,7 @@ public class NotesDetailExposer extends BroadcastReceiver { @SuppressWarnings("nls") public String getTaskDetails(long id) { - if(!Preferences.getBoolean(R.string.p_showNotes, false)) + if(!Preferences.getBoolean(R.string.p_showNotes, true)) return null; Task task = PluginServices.getTaskService().fetchById(id, Task.ID, Task.NOTES); diff --git a/astrid/res/drawable/astrid_com_gradient.xml b/astrid/res/drawable/astrid_com_gradient.xml index bcbab823b..d47fa720e 100644 --- a/astrid/res/drawable/astrid_com_gradient.xml +++ b/astrid/res/drawable/astrid_com_gradient.xml @@ -3,8 +3,8 @@ android:shape="rectangle"> diff --git a/astrid/res/drawable/astrid_com_logo.png b/astrid/res/drawable/astrid_com_logo.png index 5f9ff6893..933d4448d 100644 Binary files a/astrid/res/drawable/astrid_com_logo.png and b/astrid/res/drawable/astrid_com_logo.png differ diff --git a/astrid/res/drawable/astrid_com_logo_old.png b/astrid/res/drawable/astrid_com_logo_old.png new file mode 100644 index 000000000..5f9ff6893 Binary files /dev/null and b/astrid/res/drawable/astrid_com_logo_old.png differ diff --git a/astrid/res/drawable/welcome_android_overlay.png b/astrid/res/drawable/welcome_android_overlay.png new file mode 100644 index 000000000..1758d9255 Binary files /dev/null and b/astrid/res/drawable/welcome_android_overlay.png differ diff --git a/astrid/res/layout/actfm_login_activity.xml b/astrid/res/layout/actfm_login_activity.xml index e18b717ff..1c9ab5ecb 100644 --- a/astrid/res/layout/actfm_login_activity.xml +++ b/astrid/res/layout/actfm_login_activity.xml @@ -1,108 +1,108 @@ - - + android:paddingLeft="4dip" + android:paddingRight="4dip" + android:background="@drawable/astrid_com_gradient" + android:orientation="vertical"> - - - + - - - -