Merge remote-tracking branch 'upstream/master' into 130122_sb_new_sync

pull/14/head
Sam Bosley 13 years ago
commit 551df209cb

@ -54,6 +54,9 @@ public class ActFmGoogleAuthActivity extends ListActivity {
private String authToken; private String authToken;
private String accountName; private String accountName;
private boolean onSuccess = false;
private boolean dismissDialog = false;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -96,7 +99,7 @@ public class ActFmGoogleAuthActivity extends ListActivity {
} }
} }
private void getAuthToken(Account a, final ProgressDialog pd) { private void getAuthToken(final Account a, final ProgressDialog pd) {
AccountManagerCallback<Bundle> callback = new AccountManagerCallback<Bundle>() { AccountManagerCallback<Bundle> callback = new AccountManagerCallback<Bundle>() {
public void run(final AccountManagerFuture<Bundle> future) { public void run(final AccountManagerFuture<Bundle> future) {
new Thread() { new Thread() {
@ -106,7 +109,16 @@ public class ActFmGoogleAuthActivity extends ListActivity {
Bundle bundle = future.getResult(30, TimeUnit.SECONDS); Bundle bundle = future.getResult(30, TimeUnit.SECONDS);
if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) { if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {
authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN); authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
onAuthTokenSuccess(); if (!onSuccess) {
accountManager.manager.invalidateAuthToken(AUTH_TOKEN_TYPE, authToken);
getAuthToken(a, pd);
onSuccess = true;
} else {
onAuthTokenSuccess();
dismissDialog = true;
}
} else {
dismissDialog = true;
} }
} catch (final Exception e) { } catch (final Exception e) {
Log.e("actfm-google-auth", "Login Error", e); //$NON-NLS-1$ //$NON-NLS-2$ Log.e("actfm-google-auth", "Login Error", e); //$NON-NLS-1$ //$NON-NLS-2$
@ -121,7 +133,8 @@ public class ActFmGoogleAuthActivity extends ListActivity {
} }
}); });
} finally { } finally {
DialogUtilities.dismissDialog(ActFmGoogleAuthActivity.this, pd); if (dismissDialog)
DialogUtilities.dismissDialog(ActFmGoogleAuthActivity.this, pd);
} }
} }
}.start(); }.start();

@ -93,8 +93,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
/** receiver for new filters */ /** receiver for new filters */
protected final FilterReceiver filterReceiver = new FilterReceiver(); protected final FilterReceiver filterReceiver = new FilterReceiver();
private final BladeFilterReceiver bladeFilterReceiver = new BladeFilterReceiver();
private boolean shouldUseBladeFilter = true;
/** row layout to inflate */ /** row layout to inflate */
private final int layout; private final int layout;
@ -372,18 +370,30 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
* *
*/ */
public class FilterReceiver extends BroadcastReceiver { public class FilterReceiver extends BroadcastReceiver {
private final List<ResolveInfo> filterExposerList;
public FilterReceiver() {
// query astrids AndroidManifest.xml for all registered default-receivers to expose filters
PackageManager pm = ContextManager.getContext().getPackageManager();
filterExposerList = pm.queryBroadcastReceivers(
new Intent(AstridApiConstants.BROADCAST_REQUEST_FILTERS),
PackageManager.MATCH_DEFAULT_ONLY);
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
try { try {
Bundle extras = intent.getExtras(); for (ResolveInfo filterExposerInfo : filterExposerList) {
extras.setClassLoader(FilterListHeader.class.getClassLoader()); String className = filterExposerInfo.activityInfo.name;
final Parcelable[] filters = extras.getParcelableArray(AstridApiConstants.EXTRAS_RESPONSE); AstridFilterExposer filterExposer = null;
populateFiltersToAdapter(filters); filterExposer = (AstridFilterExposer) Class.forName(className, true, FilterAdapter.class.getClassLoader()).newInstance();
shouldUseBladeFilter = getCount() == 0;
if (filterExposer != null) {
populateFiltersToAdapter(filterExposer.getFilters());
}
}
} catch (Exception e) { } catch (Exception e) {
Log.e("receive-filter-" + //$NON-NLS-1$ e.printStackTrace();
intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON),
e.toString(), e);
} }
} }
@ -413,50 +423,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
} }
} }
/**
* Receiver which gets called after the FilterReceiver
* and checks if the filters are populated.
* If they aren't (e.g. due to the bug in the ZTE Blade's Parcelable-system throwing a
* ClassNotFoundExeption), the filters are fetched manually.
*
* @author Arne Jans <arne@astrid.com>
*
*/
public class BladeFilterReceiver extends FilterReceiver {
private final List<ResolveInfo> filterExposerList;
public BladeFilterReceiver() {
// query astrids AndroidManifest.xml for all registered default-receivers to expose filters
PackageManager pm = ContextManager.getContext().getPackageManager();
filterExposerList = pm.queryBroadcastReceivers(
new Intent(AstridApiConstants.BROADCAST_REQUEST_FILTERS),
PackageManager.MATCH_DEFAULT_ONLY);
}
@SuppressWarnings("nls")
@Override
public void onReceive(Context context, Intent intent) {
if (shouldUseBladeFilter && getCount() == 0 && filterExposerList != null && filterExposerList.size()>0) {
try {
for (ResolveInfo filterExposerInfo : filterExposerList) {
Log.d("BladeFilterReceiver", filterExposerInfo.toString());
String className = filterExposerInfo.activityInfo.name;
AstridFilterExposer filterExposer = null;
filterExposer = (AstridFilterExposer) Class.forName(className, true, FilterAdapter.class.getClassLoader()).newInstance();
if (filterExposer != null) {
populateFiltersToAdapter(filterExposer.getFilters());
}
}
} catch (Exception e) {
Log.e("receive-bladefilter-" + //$NON-NLS-1$
intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON),
e.toString(), e);
}
}
}
}
@Override @Override
public void notifyDataSetChanged() { public void notifyDataSetChanged() {
super.notifyDataSetChanged(); super.notifyDataSetChanged();
@ -470,16 +436,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
* can then add lists to this activity * can then add lists to this activity
*/ */
public void getLists() { public void getLists() {
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_REQUEST_FILTERS); filterReceiver.onReceive(activity, null);
// activity.sendOrderedBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
// the bladeFilterReceiver will be called after the usual FilterReceiver has finished (to handle the empty list)
activity.sendOrderedBroadcast(broadcastIntent,
AstridApiConstants.PERMISSION_READ,
bladeFilterReceiver,
null,
Activity.RESULT_OK,
null,
null);
} }
/** /**
@ -489,9 +446,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
IntentFilter regularFilter = new IntentFilter(AstridApiConstants.BROADCAST_SEND_FILTERS); IntentFilter regularFilter = new IntentFilter(AstridApiConstants.BROADCAST_SEND_FILTERS);
regularFilter.setPriority(2); regularFilter.setPriority(2);
activity.registerReceiver(filterReceiver, regularFilter); activity.registerReceiver(filterReceiver, regularFilter);
IntentFilter bladeFilter = new IntentFilter(AstridApiConstants.BROADCAST_SEND_FILTERS);
bladeFilter.setPriority(1);
activity.registerReceiver(bladeFilterReceiver, bladeFilter);
getLists(); getLists();
} }
@ -500,7 +454,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
*/ */
public void unregisterRecevier() { public void unregisterRecevier() {
activity.unregisterReceiver(filterReceiver); activity.unregisterReceiver(filterReceiver);
activity.unregisterReceiver(bladeFilterReceiver);
} }
/** /**

@ -64,6 +64,7 @@ public class EditTitleControlSet extends TaskEditControlSet implements Importanc
scaleAnimation.setDuration(100); scaleAnimation.setDuration(100);
// set check box to actual action item state // set check box to actual action item state
completeBox.startAnimation(scaleAnimation); completeBox.startAnimation(scaleAnimation);
updateCompleteBox();
} }
}); });
} }
@ -101,14 +102,17 @@ public class EditTitleControlSet extends TaskEditControlSet implements Importanc
private void updateCompleteBox() { private void updateCompleteBox() {
boolean checked = completeBox.isChecked();
int[] resourceArray = isRepeating ? (checked ? TaskAdapter.IMPORTANCE_REPEAT_RESOURCES_CHECKED : TaskAdapter.IMPORTANCE_REPEAT_RESOURCES)
: (checked ? TaskAdapter.IMPORTANCE_RESOURCES_CHECKED : TaskAdapter.IMPORTANCE_RESOURCES);
int valueToUse = importanceValue; int valueToUse = importanceValue;
if (valueToUse >= TaskAdapter.IMPORTANCE_RESOURCES.length) if (valueToUse >= resourceArray.length)
valueToUse = TaskAdapter.IMPORTANCE_RESOURCES.length - 1; valueToUse = resourceArray.length - 1;
if(valueToUse < TaskAdapter.IMPORTANCE_RESOURCES.length) { if(valueToUse < resourceArray.length) {
if (isRepeating) { if (isRepeating) {
completeBox.setImageResource(TaskAdapter.IMPORTANCE_REPEAT_RESOURCES[valueToUse]); completeBox.setImageResource(resourceArray[valueToUse]);
} else { } else {
completeBox.setImageResource(TaskAdapter.IMPORTANCE_RESOURCES[valueToUse]); completeBox.setImageResource(resourceArray[valueToUse]);
} }
} }
} }

@ -43,6 +43,10 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
private View currentView; private View currentView;
private int currentPage; private int currentPage;
private String authToken;
private boolean onSuccess = false;
private boolean dismissDialog = false;
public static final String KEY_SHOWED_WELCOME_LOGIN = "key_showed_welcome_login"; //$NON-NLS-1$ public static final String KEY_SHOWED_WELCOME_LOGIN = "key_showed_welcome_login"; //$NON-NLS-1$
public static final String TOKEN_MANUAL_SHOW = "manual"; //$NON-NLS-1$ public static final String TOKEN_MANUAL_SHOW = "manual"; //$NON-NLS-1$
@ -111,8 +115,13 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
StatisticsService.reportEvent(StatisticsConstants.ACTFM_LOGIN_SIMPLE); StatisticsService.reportEvent(StatisticsConstants.ACTFM_LOGIN_SIMPLE);
final ProgressDialog pd = DialogUtilities.progressDialog(WelcomeWalkthrough.this, getString(R.string.gtasks_GLA_authenticating)); final ProgressDialog pd = DialogUtilities.progressDialog(WelcomeWalkthrough.this, getString(R.string.gtasks_GLA_authenticating));
pd.show(); pd.show();
GoogleAccountManager accountManager = new GoogleAccountManager(WelcomeWalkthrough.this); getAuthToken(email, pd);
Account a = accountManager.getAccountByName(email); }
private void getAuthToken(final String e,
final ProgressDialog pd) {
final GoogleAccountManager accountManager = new GoogleAccountManager(WelcomeWalkthrough.this);
Account a = accountManager.getAccountByName(e);
AccountManagerCallback<Bundle> callback = new AccountManagerCallback<Bundle>() { AccountManagerCallback<Bundle> callback = new AccountManagerCallback<Bundle>() {
public void run(final AccountManagerFuture<Bundle> future) { public void run(final AccountManagerFuture<Bundle> future) {
new Thread() { new Thread() {
@ -121,8 +130,17 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
try { try {
Bundle bundle = future.getResult(30, TimeUnit.SECONDS); Bundle bundle = future.getResult(30, TimeUnit.SECONDS);
if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) { if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {
String authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN); authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
onAuthTokenSuccess(email, authToken); if (!onSuccess) {
accountManager.manager.invalidateAuthToken(ActFmGoogleAuthActivity.AUTH_TOKEN_TYPE, authToken);
getAuthToken(e, pd);
onSuccess = true;
} else {
onAuthTokenSuccess(e, authToken);
dismissDialog = true;
}
} else {
dismissDialog = true;
} }
} catch (final Exception e) { } catch (final Exception e) {
Log.e("actfm-google-auth", "Login Error", e); //$NON-NLS-1$ //$NON-NLS-2$ Log.e("actfm-google-auth", "Login Error", e); //$NON-NLS-1$ //$NON-NLS-2$
@ -138,7 +156,8 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
} }
}); });
} finally { } finally {
DialogUtilities.dismissDialog(WelcomeWalkthrough.this, pd); if (dismissDialog)
DialogUtilities.dismissDialog(WelcomeWalkthrough.this, pd);
} }
} }
}.start(); }.start();

Loading…
Cancel
Save