package com.seafile.seadroid2.ui.dialog; import android.app.Dialog; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import com.seafile.seadroid2.R; import com.seafile.seadroid2.SeafException; import com.seafile.seadroid2.account.Account; import com.seafile.seadroid2.data.DataManager; class DeleteRepoTask extends TaskDialog.Task { private String mRepoID; private DataManager mDataManager; DeleteRepoTask(String repoID, DataManager dataManager) { mRepoID = repoID; mDataManager = dataManager; } @Override protected void runTask() { try { mDataManager.deleteRepo(mRepoID); } catch (SeafException e) { setTaskException(e); } } } public class DeleteRepoDialog extends TaskDialog { private final static String STATE_REPO_ID = "delete_repo_dialog.repo_id"; private final static String STATE_ACCOUNT = "delete_repo_dialog.account"; private String mRepoID; private Account mAccount; private DataManager mDataManager; public void init(String repoID, Account account) { mRepoID = repoID; mAccount = account; } private DataManager getDataManager() { if (mDataManager == null) { mDataManager = new DataManager(mAccount); } return mDataManager; } @Override protected View createDialogContentView(LayoutInflater inflater, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_delete_repo, null); if (savedInstanceState != null) { // Restore state mRepoID = savedInstanceState.getString(STATE_REPO_ID); mAccount = savedInstanceState.getParcelable(STATE_ACCOUNT); } return view; } @Override protected void onSaveDialogContentState(Bundle outState) { super.onSaveDialogContentState(outState); outState.putString(STATE_REPO_ID, mRepoID); outState.putParcelable(STATE_ACCOUNT, mAccount); } @Override protected void onDialogCreated(Dialog dialog) { super.onDialogCreated(dialog); dialog.setTitle(R.string.delete_repo_title); } @Override protected DeleteRepoTask prepareTask() { return new DeleteRepoTask(mRepoID, getDataManager()); } }