package mx.ambmultimedia.brillamexico.fragments; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Toast; import com.cuneytayyildiz.widget.PullRefreshLayout; import com.getbase.floatingactionbutton.FloatingActionButton; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.JsonHttpResponseHandler; import org.apache.http.Header; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import mx.ambmultimedia.brillamexico.adapters.ListLeaderBoard; import mx.ambmultimedia.brillamexico.R; import mx.ambmultimedia.brillamexico.activities.UserViewer; import mx.ambmultimedia.brillamexico.activities.Compromisos; import mx.ambmultimedia.brillamexico.customViews.ExtendableListView; import mx.ambmultimedia.brillamexico.utils.Config; @SuppressLint("ValidFragment") public class LeaderBoard extends Fragment { Context ctx; Config config; PullRefreshLayout refreshLayout; String CampoDeAccion; public LeaderBoard (Context _ctx) { ctx = _ctx; } public View onCreateView (LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final View layout; layout = inflater.inflate(R.layout.fragment_leader_board, container, false); config = new Config(ctx); GeneralEvents(layout); GetLeaderBoard(layout); refreshLayout = (PullRefreshLayout) layout.findViewById(R.id.swipeRefreshLayout); refreshLayout.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { GetLeaderBoard(layout); } }); return layout; } public void GetLeaderBoard (View view) { final View _view = view; try { JSONObject selfuser = new JSONObject(config.get("user", "null")); CampoDeAccion = selfuser.getString("fieldaction_id"); } catch (JSONException e) {} AsyncHttpClient client = new AsyncHttpClient(); String hostname = ctx.getString(R.string.hostname); client.get(hostname + "/users/leaderboard/" + CampoDeAccion, null, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { try { final JSONArray users = response; ListLeaderBoard adapter = new ListLeaderBoard(ctx, users); ExtendableListView listUsers = (ExtendableListView) _view.findViewById(R.id.lisLeaderBoard); listUsers.setAdapter(adapter); listUsers.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { try { JSONObject user = users.getJSONObject(position); String userID = user.getString("fbid"); Intent intent = new Intent(ctx, UserViewer.class); intent.putExtra("userID", userID); 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 + "|us/leaderboard] " + e.getMessage(); Toast.makeText(ctx, msg, Toast.LENGTH_LONG).show(); } }); } public void GeneralEvents (View view) { FloatingActionButton toSelfie = (FloatingActionButton) view.findViewById(R.id.toSelfie); toSelfie.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(ctx, Compromisos.class); startActivity(intent); } }); } }