mirror of https://github.com/tasks/tasks
Use caldav uuid as android account name
parent
63dd83c165
commit
aa490b632c
@ -1,112 +0,0 @@
|
|||||||
package org.tasks.caldav;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.app.ProgressDialog;
|
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
|
|
||||||
import com.todoroo.astrid.helper.UUIDHelper;
|
|
||||||
|
|
||||||
import org.tasks.R;
|
|
||||||
import org.tasks.data.CaldavAccount;
|
|
||||||
import org.tasks.data.CaldavDao;
|
|
||||||
import org.tasks.dialogs.DialogBuilder;
|
|
||||||
import org.tasks.injection.DialogFragmentComponent;
|
|
||||||
import org.tasks.injection.InjectingDialogFragment;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
|
|
||||||
|
|
||||||
public class RenameAccountDialog extends InjectingDialogFragment {
|
|
||||||
|
|
||||||
public static RenameAccountDialog newRenameAccountDialog(String uuid, String name) {
|
|
||||||
RenameAccountDialog dialog = new RenameAccountDialog();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putString(EXTRA_NAME, name);
|
|
||||||
args.putString(EXTRA_UUID, uuid);
|
|
||||||
dialog.setArguments(args);
|
|
||||||
return dialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface RenameAccountDialogCallback {
|
|
||||||
void onListRenamed();
|
|
||||||
|
|
||||||
void renameFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final String EXTRA_NAME = "extra_name";
|
|
||||||
private static final String EXTRA_UUID = "extra_uuid";
|
|
||||||
|
|
||||||
@Inject DialogBuilder dialogBuilder;
|
|
||||||
@Inject CaldavAccountManager caldavAccountManager;
|
|
||||||
@Inject CaldavDao caldavDao;
|
|
||||||
|
|
||||||
private RenameAccountDialogCallback callback;
|
|
||||||
private String name;
|
|
||||||
private String uuid;
|
|
||||||
private ProgressDialog dialog;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setRetainInstance(true);
|
|
||||||
Bundle arguments = getArguments();
|
|
||||||
name = arguments.getString(EXTRA_NAME);
|
|
||||||
uuid = arguments.getString(EXTRA_UUID);
|
|
||||||
dialog = dialogBuilder.newProgressDialog(R.string.renaming_list);
|
|
||||||
execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
@Override
|
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
||||||
return dialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAttach(Activity activity) {
|
|
||||||
super.onAttach(activity);
|
|
||||||
|
|
||||||
callback = (RenameAccountDialogCallback) activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inject(DialogFragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void execute() {
|
|
||||||
new AsyncTask<Void, Void, Boolean>() {
|
|
||||||
@Override
|
|
||||||
protected Boolean doInBackground(Void... voids) {
|
|
||||||
CaldavAccount caldavAccount = caldavDao.getAccount(uuid);
|
|
||||||
caldavAccount.setName(name);
|
|
||||||
Account old = caldavAccountManager.getAccount(uuid);
|
|
||||||
if (!caldavAccountManager.addAccount(caldavAccount, old.getPassword())) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
caldavDao.update(caldavAccount);
|
|
||||||
old.setUuid(null);
|
|
||||||
caldavAccountManager.removeAccount(old);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Boolean result) {
|
|
||||||
if (dialog.isShowing()) {
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
callback.onListRenamed();
|
|
||||||
} else {
|
|
||||||
callback.renameFailed();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.execute();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue