package com.kanshu.kanshu;
import android.app.ProgressDialog;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import com.kanshu.kanshu.controller.TopicsController;
import com.kanshu.kanshu.model.Topic;
import java.util.ArrayList;
import java.util.Iterator;
/**
* Created by alouanemed on 22-01-2015.
*/
public class TopicsActivity extends BaseActivity {
ProgressDialog dialog = null;
TopicsController mTopicsController;
//we will store the selected IDs instead of titles
private ArrayList<Integer> mChosenTopicsListIDs;
GridView mGridview;
Button btnTopics_Next;
ArrayList<Topic> mTopicsList;
TopicsAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_topics);
btnTopics_Next = (Button) findViewById(R.id.Topics_Next);
mGridview = (GridView) findViewById(R.id.list);
mTopicsController = new TopicsController(this);
mChosenTopicsListIDs = new ArrayList<Integer>();
new getTopicsAsync().execute();
mGridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
if (!mChosenTopicsListIDs.isEmpty()) {
if (mChosenTopicsListIDs.contains(position)) {
//duplicate !
mChosenTopicsListIDs.remove(mChosenTopicsListIDs.indexOf(position));
String current_path = mTopicsList.get(position).getImgURL();
String helper_str =current_path.substring(0,current_path.length()-8);
mTopicsList.get(position).setImgURL(helper_str);
mAdapter.notifyDataSetChanged();
} else {
//we are good let's add new one
mChosenTopicsListIDs.add(position);
mTopicsList.get(position).setImgURL( mTopicsList.get(position).getImgURL()+"_updated");
/*String current_path = mTopicsList.get(position).getImgURL();
String helper_str =current_path.substring(0,current_path.length()-9);
System.out.println("helper_str>" + helper_str);
mTopicsList.get(position).setImgURL(helper_str+"48dp");*/
mAdapter.notifyDataSetChanged();
}
} else {
mChosenTopicsListIDs.add(position);
mTopicsList.get(position).setImgURL( mTopicsList.get(position).getImgURL()+"_updated");
mAdapter.notifyDataSetChanged();
}
if (!mChosenTopicsListIDs.isEmpty()) {
btnTopics_Next.setEnabled(true);
btnTopics_Next.setBackgroundColor(Color.parseColor("#d32f2f"));
} else {
btnTopics_Next.setEnabled(false);
btnTopics_Next.setBackgroundColor(Color.parseColor("#ffffffff"));
}
}
});
btnTopics_Next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!mChosenTopicsListIDs.isEmpty()) {
getIDS();
}
}
});
}
public void getIDS() {
Iterator it = mChosenTopicsListIDs.iterator();
while (it.hasNext()) {
Log.e("Msg", it.next() + "");
}
}
//AsyncTask class to get the topics
private class getTopicsAsync extends AsyncTask<Void, Void, Void> {
//before executing let's show a dialog to the user
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = ProgressDialog.show(TopicsActivity.this, "", "please wait...", true);
}
//do the job in InBackground while the dialog is shown
@Override
protected Void doInBackground(Void... arg0) {
mTopicsController.getTopics();
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (dialog.isShowing()) {
dialog.dismiss();
}
Typeface tfBold = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Medium.ttf");
mTopicsList = mTopicsController.getmTopicsList();
mAdapter = new TopicsAdapter(TopicsActivity.this, mTopicsList, tfBold, mTopicsController);
mGridview.setAdapter(mAdapter);
this.cancel(true);
}
}
}