package de.saxsys.android.projectiler.app;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.todddavies.components.progressbar.ProgressWheel;
import org.droidparts.activity.Activity;
import org.droidparts.annotation.inject.InjectView;
import org.droidparts.concurrent.task.AsyncTaskResultListener;
import java.util.List;
import de.saxsys.android.projectiler.app.asynctasks.GetProjectsAsyncTask;
import de.saxsys.android.projectiler.app.ui.adapter.ProjectListAdapter;
import de.saxsys.android.projectiler.app.utils.BusinessProcess;
import de.saxsys.android.projectiler.app.utils.WidgetUtils;
public class SelectProjectPopup extends Activity {
private final String TAG = SelectProjectPopup.class.getSimpleName();
@InjectView(id = R.id.progressBar)
private ProgressWheel progressBar;
@InjectView(id = R.id.lvProjects)
private PullToRefreshListView lvProjects;
private BusinessProcess businessProcess;
@Override
public void onPreInject() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_select_project_popup);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
businessProcess = BusinessProcess.getInstance(getApplicationContext());
if (businessProcess.getStartDate() != null) {
finish();
}
progressBar.setVisibility(View.VISIBLE);
progressBar.spin();
lvProjects.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
progressBar.setVisibility(View.VISIBLE);
progressBar.spin();
lvProjects.setVisibility(View.GONE);
new GetProjectsAsyncTask(getApplicationContext(), true, getProjectsResultListener).execute();
}
});
new GetProjectsAsyncTask(getApplicationContext(), false, getProjectsResultListener).execute();
}
private AsyncTaskResultListener<List<String>> getProjectsResultListener = new AsyncTaskResultListener<List<String>>() {
@Override
public void onAsyncTaskSuccess(List<String> itemList) {
lvProjects.onRefreshComplete();
lvProjects.setAdapter(new ProjectListAdapter(getApplicationContext(), itemList));
lvProjects.setVisibility(View.VISIBLE);
lvProjects.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int index, long l) {
String projectName = (String) adapterView.getItemAtPosition(index);
businessProcess.saveProjectName(getApplicationContext(), projectName);
WidgetUtils.refreshWidget(getApplicationContext());
finish();
}
});
progressBar.setVisibility(View.GONE);
}
@Override
public void onAsyncTaskFailure(Exception e) {
Log.e(TAG, e.getMessage(), e);
lvProjects.onRefreshComplete();
finish();
}
};
}