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 accountName;
private boolean onSuccess = false;
private boolean dismissDialog = false;
@Override
protected void onCreate(Bundle 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>() {
public void run(final AccountManagerFuture<Bundle> future) {
new Thread() {
@ -106,7 +109,16 @@ public class ActFmGoogleAuthActivity extends ListActivity {
Bundle bundle = future.getResult(30, TimeUnit.SECONDS);
if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {
authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
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) {
Log.e("actfm-google-auth", "Login Error", e); //$NON-NLS-1$ //$NON-NLS-2$
@ -121,6 +133,7 @@ public class ActFmGoogleAuthActivity extends ListActivity {
}
});
} finally {
if (dismissDialog)
DialogUtilities.dismissDialog(ActFmGoogleAuthActivity.this, pd);
}
}

@ -93,8 +93,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
/** receiver for new filters */
protected final FilterReceiver filterReceiver = new FilterReceiver();
private final BladeFilterReceiver bladeFilterReceiver = new BladeFilterReceiver();
private boolean shouldUseBladeFilter = true;
/** row layout to inflate */
private final int layout;
@ -372,18 +370,30 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
*
*/
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
public void onReceive(Context context, Intent intent) {
try {
Bundle extras = intent.getExtras();
extras.setClassLoader(FilterListHeader.class.getClassLoader());
final Parcelable[] filters = extras.getParcelableArray(AstridApiConstants.EXTRAS_RESPONSE);
populateFiltersToAdapter(filters);
shouldUseBladeFilter = getCount() == 0;
for (ResolveInfo filterExposerInfo : filterExposerList) {
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-filter-" + //$NON-NLS-1$
intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON),
e.toString(), e);
e.printStackTrace();
}
}
@ -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
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
@ -470,16 +436,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
* can then add lists to this activity
*/
public void getLists() {
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_REQUEST_FILTERS);
// 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);
filterReceiver.onReceive(activity, null);
}
/**
@ -489,9 +446,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
IntentFilter regularFilter = new IntentFilter(AstridApiConstants.BROADCAST_SEND_FILTERS);
regularFilter.setPriority(2);
activity.registerReceiver(filterReceiver, regularFilter);
IntentFilter bladeFilter = new IntentFilter(AstridApiConstants.BROADCAST_SEND_FILTERS);
bladeFilter.setPriority(1);
activity.registerReceiver(bladeFilterReceiver, bladeFilter);
getLists();
}
@ -500,7 +454,6 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
*/
public void unregisterRecevier() {
activity.unregisterReceiver(filterReceiver);
activity.unregisterReceiver(bladeFilterReceiver);
}
/**

@ -64,6 +64,7 @@ public class EditTitleControlSet extends TaskEditControlSet implements Importanc
scaleAnimation.setDuration(100);
// set check box to actual action item state
completeBox.startAnimation(scaleAnimation);
updateCompleteBox();
}
});
}
@ -101,14 +102,17 @@ public class EditTitleControlSet extends TaskEditControlSet implements Importanc
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;
if (valueToUse >= TaskAdapter.IMPORTANCE_RESOURCES.length)
valueToUse = TaskAdapter.IMPORTANCE_RESOURCES.length - 1;
if(valueToUse < TaskAdapter.IMPORTANCE_RESOURCES.length) {
if (valueToUse >= resourceArray.length)
valueToUse = resourceArray.length - 1;
if(valueToUse < resourceArray.length) {
if (isRepeating) {
completeBox.setImageResource(TaskAdapter.IMPORTANCE_REPEAT_RESOURCES[valueToUse]);
completeBox.setImageResource(resourceArray[valueToUse]);
} else {
completeBox.setImageResource(TaskAdapter.IMPORTANCE_RESOURCES[valueToUse]);
completeBox.setImageResource(resourceArray[valueToUse]);
}
}
}

@ -43,6 +43,10 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
private View currentView;
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 TOKEN_MANUAL_SHOW = "manual"; //$NON-NLS-1$
@ -111,8 +115,13 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
StatisticsService.reportEvent(StatisticsConstants.ACTFM_LOGIN_SIMPLE);
final ProgressDialog pd = DialogUtilities.progressDialog(WelcomeWalkthrough.this, getString(R.string.gtasks_GLA_authenticating));
pd.show();
GoogleAccountManager accountManager = new GoogleAccountManager(WelcomeWalkthrough.this);
Account a = accountManager.getAccountByName(email);
getAuthToken(email, pd);
}
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>() {
public void run(final AccountManagerFuture<Bundle> future) {
new Thread() {
@ -121,8 +130,17 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
try {
Bundle bundle = future.getResult(30, TimeUnit.SECONDS);
if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {
String authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
onAuthTokenSuccess(email, authToken);
authToken = bundle.getString(AccountManager.KEY_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) {
Log.e("actfm-google-auth", "Login Error", e); //$NON-NLS-1$ //$NON-NLS-2$
@ -138,6 +156,7 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
}
});
} finally {
if (dismissDialog)
DialogUtilities.dismissDialog(WelcomeWalkthrough.this, pd);
}
}

Loading…
Cancel
Save