package com.release.sihle.umoclasses;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends ActionBarActivity {
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
private List<UmmoQ> ummoQs= new ArrayList<UmmoQ>();
public List<UmmoQ> getUmmoSet(){
return ummoQs;
}
public void getQs(){
try {
String urlString = getString(R.string.SERVER_URL)+"/user/avalqs";
final FormPoster formPoster = new FormPoster(new URL(urlString));
formPoster.add("data", "data");
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
InputStream is = formPoster.post();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
final StringBuilder response = new StringBuilder(); // or StringBuffer if not Java 5+
String line;
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
String objString = response.toString();
Log.d("Respose",objString);
try{
ummoQs.clear();
JSONArray jsonArray = new JSONArray(objString);
for (int i=0;i<jsonArray.length();i++){
JSONObject obj = jsonArray.getJSONObject(i);
UmmoQ ummoQ= new UmmoQ();
ummoQ.setId(obj.getString("_id"));
ummoQ.setName(obj.getString("qName"));
ummoQs.add(ummoQ);
//ummoQ.setLength(obj.getInt());
}
mAdapter.notifyDataSetChanged();
}
catch (JSONException jse){
Log.d("Eroor in Response",jse.toString());
}
//Toast.makeText(calee,"Sent Information",Toast.LENGTH_LONG).show();
}
catch (IOException ioe){
Log.e("IO Exception",ioe.toString());
}
}
});
thread.start();
}
catch (MalformedURLException me){
Log.e("NetWork Exception",me.toString());
}
}
public void joinQ(View view){
//mRecyclerView.
// Log.d("index",new Integer(position).toString());
UmmoQ ummoQ = ummoQs.get(0);
try {
String urlString = getString(R.string.SERVER_URL)+"/user/joinq";
final FormPoster formPoster = new FormPoster(new URL(urlString));
formPoster.add("qid",ummoQ.getId());
formPoster.add("uid",PreferenceManager.getDefaultSharedPreferences(this).getString(getString(R.string.PREF_USER_ID), ""));
formPoster.add("data", "data");
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
InputStream is = formPoster.post();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
final StringBuilder response = new StringBuilder(); // or StringBuffer if not Java 5+
String line;
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
String objString = response.toString();
Log.d("Respose",objString);
//Toast.makeText(calee,"Sent Information",Toast.LENGTH_LONG).show();
}
catch (IOException ioe){
Log.e("IO Exception",ioe.toString());
}
}
});
thread.start();
}
catch (MalformedURLException me){
Log.e("NetWork Exception",me.toString());
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getQs();
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
mRecyclerView.setHasFixedSize(true);
// use a linear layout manager
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
//List<UmmoQ> myDataset =getUmmoSet();
// specify an adapter (see also next example)
ummoQs.add(new UmmoQ());
mAdapter = new MyAdapter(ummoQs);
mRecyclerView.setAdapter(mAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
class UmmoClass
{
public void register(){
}
public void joinQ(String qid){
}
public void leaveq(String qid){
}
public void getJoinedQs(){
}
public void getQupdates(String qid){
}
}
class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<UmmoQ> mDataset;
// Provide a reference to the views for each data item
// Complex data items may need more than one view per item, and
// you provide access to all the views for a data item in a view holder
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public TextView mTextView;
public TextView mdataView;
public Button but;
public ViewHolder(View v) {
super(v);
mTextView =(TextView) v.findViewById(R.id.info_text);
mdataView =(TextView) v.findViewById(R.id.data_view);
but = (Button)v.findViewById(R.id.join_b);
}
}
// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(List<UmmoQ> myDataset) {
mDataset = myDataset;
}
// Create new views (invoked by the layout manager)
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
View v = (View)LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
// set the view's size, margins, paddings and layout parameters
ViewHolder vh = new ViewHolder(v);
return vh;
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
holder.mTextView.setText(mDataset.get(position).getName());
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return mDataset.size();
}
}