Save account on back press and with notify

This commit is contained in:
Dominik Schürmann 2014-09-07 16:10:28 +02:00
parent 0e83df21cf
commit 27772d401c
3 changed files with 25 additions and 7 deletions

View File

@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.helper.ActionBarHelper;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.remote.AccountSettings;
import org.sufficientlysecure.keychain.service.OperationResultParcel;
import org.sufficientlysecure.keychain.ui.CertifyKeyActivity;
import org.sufficientlysecure.keychain.util.Log;
public class AccountSettingsActivity extends ActionBarActivity {
@ -104,6 +105,11 @@ public class AccountSettingsActivity extends ActionBarActivity {
private void save() {
new ProviderHelper(this).updateApiAccount(mAccountUri, mAccountSettingsFragment.getAccSettings());
// TODO: show "account saved" instead of "operation succeeded"
OperationResultParcel result = new OperationResultParcel(OperationResultParcel.RESULT_OK, null);
Intent intent = new Intent();
intent.putExtra(OperationResultParcel.EXTRA_RESULT, result);
setResult(RESULT_OK, intent);
finish();
}
@ -118,4 +124,9 @@ public class AccountSettingsActivity extends ActionBarActivity {
}
}
@Override
public void onBackPressed() {
save();
super.onBackPressed();
}
}

View File

@ -104,7 +104,7 @@ public class AccountsListFragment extends ListFragment implements
// edit account settings
Intent intent = new Intent(getActivity(), AccountSettingsActivity.class);
intent.setData(accountUri);
startActivity(intent);
startActivityForResult(intent, 0);
}
});

View File

@ -17,12 +17,9 @@
package org.sufficientlysecure.keychain.remote.ui;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
@ -35,10 +32,9 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.remote.AppSettings;
import org.sufficientlysecure.keychain.service.OperationResultParcel;
import org.sufficientlysecure.keychain.util.Log;
import java.util.List;
public class AppSettingsActivity extends ActionBarActivity {
private Uri mAppUri;
@ -95,7 +91,7 @@ public class AppSettingsActivity extends ActionBarActivity {
return super.onOptionsItemSelected(item);
}
// disabled: breaks Yubikey NFC Foreground dispatching
// TODO: breaks Yubikey NFC Foreground dispatching
private void startApp() {
Intent i;
PackageManager manager = getPackageManager();
@ -159,4 +155,15 @@ public class AppSettingsActivity extends ActionBarActivity {
finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// if a result has been returned, display a notify
if (data != null && data.hasExtra(OperationResultParcel.EXTRA_RESULT)) {
OperationResultParcel result = data.getParcelableExtra(OperationResultParcel.EXTRA_RESULT);
result.createNotify(this).show();
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}