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.RelativeLayout; import android.widget.TextView; 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 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.activities.UserViewer; import mx.ambmultimedia.brillamexico.activities.Compromisos; import mx.ambmultimedia.brillamexico.adapters.ListTopUsers; import mx.ambmultimedia.brillamexico.customViews.ExtendableGridView; import mx.ambmultimedia.brillamexico.utils.Config; @SuppressLint("ValidFragment") public class TopUsers extends Fragment { Context ctx; Config config; PullRefreshLayout refreshLayout; public TopUsers (Context _ctx) { ctx = _ctx; } public View onCreateView (LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final View layout; layout = inflater.inflate(R.layout.fragment_top_users, container, false); config = new Config(ctx); GetLeaderBoard(layout); GeneralEvents(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; AsyncHttpClient client = new AsyncHttpClient(); String hostname = ctx.getString(R.string.hostname); client.get(hostname + "/users/leaders", null, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { try { final JSONArray _users = response; final JSONObject firstUser = _users.getJSONObject(0); final JSONArray users = RemoveJSONArray(_users, 0); // ============ String avatarUrl = ctx.getString(R.string.fb_avatar_link); avatarUrl = avatarUrl.replaceAll("__fbid__", firstUser.getString("fbid")); CircleImageView userAvatar = (CircleImageView) _view.findViewById(R.id.faUserAvatar); Picasso.with(ctx) .load(avatarUrl) .placeholder(R.drawable.com_facebook_profile_picture_blank_square) .error(R.drawable.com_facebook_profile_picture_blank_square) .into(userAvatar); TextView userName = (TextView) _view.findViewById(R.id.faUserName); userName.setText(firstUser.getString("name")); TextView userPoints = (TextView) _view.findViewById(R.id.faUserPoints); userPoints.setText(firstUser.getString("points") + " puntos"); TextView userPosition = (TextView) _view.findViewById(R.id.faUserPosition); userPosition.setText("1"); final String userID = firstUser.getString("fbid"); RelativeLayout toFirstUser = (RelativeLayout) _view.findViewById(R.id.toFirstUser); toFirstUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(ctx, UserViewer.class); intent.putExtra("userID", userID); startActivity(intent); } }); // ============ ListTopUsers adapter = new ListTopUsers(ctx, users); ExtendableGridView listUsers = (ExtendableGridView) _view.findViewById(R.id.usersGrid); 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/leaders] " + 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); } }); } public static JSONArray RemoveJSONArray (JSONArray jarray, int pos) { JSONArray Njarray=new JSONArray(); try { for (int i=0;i<jarray.length();i++){ if (i!=pos) { Njarray.put(jarray.get(i)); } } } catch (Exception e) {e.printStackTrace();} return Njarray; } }