package mx.ambmultimedia.brillamexico.activities;
import android.content.Context;
import android.content.Intent;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;
import com.cuneytayyildiz.widget.PullRefreshLayout;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.JsonHttpResponseHandler;
import com.squareup.picasso.Picasso;
import org.apache.http.Header;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import de.hdodenhof.circleimageview.CircleImageView;
import mx.ambmultimedia.brillamexico.R;
import mx.ambmultimedia.brillamexico.adapters.ListNoticias;
import mx.ambmultimedia.brillamexico.customViews.ExtendableListView;
import mx.ambmultimedia.brillamexico.fragments.NavDrawerFrag;
import mx.ambmultimedia.brillamexico.utils.Config;
import mx.ambmultimedia.brillamexico.utils.DrawerUtils;
public class Noticias extends ActionBarActivity {
Context ctx;
Config config;
NavDrawerFrag navDrawerFragment;
DrawerLayout drawer_layout;
ExtendableListView listNoticias;
PullRefreshLayout refreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_noticias);
ctx = this;
config = new Config(ctx);
Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
navDrawerFragment = (NavDrawerFrag) getSupportFragmentManager().findFragmentById(R.id.navDrawer);
drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout2);
navDrawerFragment.setUp(R.id.navDrawer, drawer_layout, toolbar);
DrawerUtils drawerutils = new DrawerUtils(this, this);
drawerutils.Navigation(drawer_layout);
BuildProfile();
GetNoticias(1);
listNoticias = (ExtendableListView) findViewById(R.id.listNoticias);
refreshLayout = (PullRefreshLayout) findViewById(R.id.swipeRefreshLayout);
refreshLayout.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
GetNoticias(1);
}
});
}
public void BuildProfile () {
String fbID = config.get("fbID", "0");
String _user = config.get("user", "null");
final TextView DrawerUserName = (TextView) findViewById(R.id.UserName);
final TextView DrawerCountPuntos = (TextView) findViewById(R.id.UserPoints);
try {
JSONObject user = new JSONObject(_user);
DrawerUserName.setText(user.getString("name"));
DrawerCountPuntos.setText(user.getString("points") + " puntos");
} catch (JSONException e) { }
CircleImageView ImgDrawerAvatar = (CircleImageView) findViewById(R.id.UserAvatar);
String _avatarUrl = getString(R.string.fb_avatar_link);
String miniAvatarUrl = _avatarUrl.replaceAll("__fbid__", fbID);
Picasso.with(ctx)
.load(miniAvatarUrl)
.placeholder(R.drawable.com_facebook_profile_picture_blank_square)
.into(ImgDrawerAvatar);
}
public void GetNoticias (int page) {
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://brillamexico.org/api.php?page=" + page, null, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
try {
final JSONArray noticias = response;
ListNoticias adapter = new ListNoticias(ctx, noticias);
listNoticias.setAdapter(adapter);
listNoticias.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
try {
JSONObject noticia = noticias.getJSONObject(position);
String noticiaID = noticia.getString("id");
Intent intent = new Intent(Noticias.this, NoticiaSelf.class);
intent.putExtra("noticiaID", noticiaID);
startActivity(intent);
} catch (JSONException e) {}
}
});
refreshLayout.setRefreshing(false);
} catch (Exception e) { }
}
@Override
public void onFailure(int statusCode, Header[] headers, String response, Throwable e) {
String msg = "[" + statusCode + "|b/noticias] " + e.getMessage();
Toast.makeText(ctx, msg, Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onBackPressed () {
if (drawer_layout.isDrawerOpen(Gravity.LEFT)){
drawer_layout.closeDrawer(Gravity.LEFT);
} else {
super.onBackPressed();
}
}
}