/**
* This file is part of FileSpace for Android, an app for managing your server (files, talks...).
* <p/>
* Copyright (c) 2014-2015 FileSpace for Android contributors (http://mercandalli.com)
* <p/>
* LICENSE:
* <p/>
* FileSpace for Android is free software: you can redistribute it and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
* later version.
* <p/>
* FileSpace for Android is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* @author Jonathan Mercandalli
* @license http://www.gnu.org/licenses/gpl.html
* @copyright 2014-2015 FileSpace for Android contributors (http://mercandalli.com)
*/
package com.mercandalli.android.apps.files.common.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.mercandalli.android.apps.files.R;
import com.mercandalli.android.apps.files.common.listener.IPostExecuteListener;
import com.mercandalli.android.apps.files.common.net.TaskGet;
import com.mercandalli.android.apps.files.common.net.TaskPost;
import com.mercandalli.android.apps.files.file.FileChooserDialog;
import com.mercandalli.android.apps.files.file.FileModel;
import com.mercandalli.android.apps.files.main.Constants;
import org.json.JSONObject;
import java.io.File;
public class DialogRequest extends Dialog {
FileChooserDialog mFileChooserDialog;
private final Activity mActivity;
private File file;
FileModel mFileModel;
private final int GET = 0;
private final int POST = 1;
private final int PUT = 2;
private final int DELETE = 3;
private final int nbMethod = 4;
private int currentMethod = GET;
public DialogRequest(final Activity activity, final IPostExecuteListener listener) {
super(activity);
this.mActivity = activity;
this.setContentView(R.layout.dialog_request);
this.setTitle(R.string.app_name);
this.setCancelable(true);
this.findViewById(R.id.request).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (currentMethod) {
case POST:
if (!((EditText) DialogRequest.this.findViewById(R.id.server)).getText().toString().equals("")) {
(new TaskPost(mActivity, Constants.URL_DOMAIN + "FileSpace-API/" + ((EditText) DialogRequest.this.findViewById(R.id.server)).getText().toString(), new IPostExecuteListener() {
@Override
public void onPostExecute(JSONObject json, String body) {
if (listener != null) {
listener.onPostExecute(json, body);
}
}
})).execute();
}
break;
case PUT:
//TODO Dev: request PUT
Toast.makeText(getContext(), getContext().getString(R.string.not_implemented), Toast.LENGTH_SHORT).show();
break;
case DELETE:
//TODO Dev: request DELETE
Toast.makeText(getContext(), getContext().getString(R.string.not_implemented), Toast.LENGTH_SHORT).show();
break;
default: //GET
if (!((EditText) DialogRequest.this.findViewById(R.id.server)).getText().toString().equals("")) {
(new TaskGet(mActivity,
Constants.URL_DOMAIN + "FileSpace-API/" + ((EditText) DialogRequest.this.findViewById(R.id.server)).getText().toString(),
new IPostExecuteListener() {
@Override
public void onPostExecute(JSONObject json, String body) {
if (listener != null) {
listener.onPostExecute(json, body);
}
}
}, null)).execute();
}
}
DialogRequest.this.dismiss();
}
});
findViewById(R.id.fileButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mFileChooserDialog = new FileChooserDialog(mActivity, new FileChooserDialog.FileChooserDialogSelection() {
@Override
public void onFileChooserDialogSelected(FileModel fileModel, View view) {
((TextView) DialogRequest.this.findViewById(R.id.label)).setText(fileModel.getUrl());
DialogRequest.this.file = new File(fileModel.getUrl());
DialogRequest.this.mFileModel = fileModel;
}
});
}
});
findViewById(R.id.method).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentMethod++;
if (currentMethod >= nbMethod) {
currentMethod = 0;
}
refreshButtonMethod();
}
});
refreshButtonMethod();
show();
}
public void refreshButtonMethod() {
switch (currentMethod) {
case 1:
((TextView) this.findViewById(R.id.method)).setText("POST");
break;
case 2:
((TextView) this.findViewById(R.id.method)).setText("PUT");
break;
case 3:
((TextView) this.findViewById(R.id.method)).setText("DELETE");
break;
default:
((TextView) this.findViewById(R.id.method)).setText("GET");
}
}
}