Skip to content

Instantly share code, notes, and snippets.

@devmsh
Created May 13, 2018 19:24
Show Gist options
  • Select an option

  • Save devmsh/b07d9dd0c84b860673f4ba53b328750d to your computer and use it in GitHub Desktop.

Select an option

Save devmsh/b07d9dd0c84b860673f4ba53b328750d to your computer and use it in GitHub Desktop.
Android with|without Databinding
package app.com.datrios.activities;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import com.jaeger.library.StatusBarUtil;
import java.util.ArrayList;
import app.com.datrios.Library.interfaces.DataHandler;
import app.com.datrios.R;
import app.com.datrios.Repository;
import app.com.datrios.adapters.LeaderBoard.LeaderBoardAdapter;
import app.com.datrios.databinding.ActivityLeaderBoardBinding;
import app.com.datrios.models.Leaderboard;
public class LeaderBoardActivity extends AppCompatActivity {
ArrayList<Leaderboard> leaderboards = new ArrayList<>();
LeaderBoardAdapter leaderBoardAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ActivityLeaderBoardBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_leader_board);
initToolbar();
leaderBoardAdapter = new LeaderBoardAdapter(this, leaderboards);
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(leaderBoardAdapter);
Repository.getLeaderBoard(new DataHandler<Leaderboard>() {
@Override
public void onSuccess(ArrayList<Leaderboard> objects, int source) {
leaderboards.clear();
leaderboards.addAll(objects);
if (leaderboards.size() > 3) {
binding.setFirst(leaderboards.get(0));
binding.setSecond(leaderboards.get(1));
binding.setThird(leaderboards.get(2));
leaderboards.clear();
leaderboards.addAll(objects.subList(3, (objects.size() - 1)));
leaderBoardAdapter.notifyDataSetChanged();
}
}
});
}
private void initToolbar() {
Toolbar toolbar = findViewById(R.id.toolbar);
StatusBarUtil.setTranslucentForImageView(this, toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
package app.com.datrios.activities;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.jaeger.library.StatusBarUtil;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import app.com.datrios.Library.interfaces.DataHandlerInterface;
import app.com.datrios.R;
import app.com.datrios.Repository;
import app.com.datrios.adapters.LeaderBoard.LeaderBoardAdapter;
import app.com.datrios.models.LeaderBoard.LeaderBoardModel;
import de.hdodenhof.circleimageview.CircleImageView;
public class LeaderBoardActivity extends AppCompatActivity {
private Toolbar toolbar;
private LinearLayout st1Container;
private TextView st1UserName;
private TextView st1Points;
private LinearLayout st2Container;
private TextView st2UserName;
private TextView st2Points;
private LinearLayout st3Container;
private TextView st3UserName;
private TextView st3Points;
private RecyclerView recyclerView;
private CircleImageView st1_user_photo;
private CircleImageView st2_user_photo;
private CircleImageView st3_user_photo;
private void initView() {
toolbar = findViewById(R.id.toolbar);
st1Container = findViewById(R.id.st1_container);
st1UserName = findViewById(R.id.st1_user_name);
st1Points = findViewById(R.id.st1_points);
st2Container = findViewById(R.id.st2_container);
st2UserName = findViewById(R.id.st2_user_name);
st2Points = findViewById(R.id.st2_points);
st3Container = findViewById(R.id.st3_container);
st3UserName = findViewById(R.id.st3_user_name);
st3Points = findViewById(R.id.st3_points);
recyclerView = findViewById(R.id.recycler_view);
st1_user_photo = findViewById(R.id.st1_user_photo);
st2_user_photo = findViewById(R.id.st2_user_photo);
st3_user_photo = findViewById(R.id.st3_user_photo);
}
ArrayList<LeaderBoardModel> leaderBoardModels = new ArrayList<>();
LeaderBoardAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leader_board);
initView();
StatusBarUtil.setTranslucentForImageView(this, toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
adapter = new LeaderBoardAdapter(this, leaderBoardModels);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
Repository.getLeaderBoard(new DataHandlerInterface<LeaderBoardModel>() {
@Override
public void onSuccess(ArrayList<LeaderBoardModel> objects, int source) {
leaderBoardModels.clear();
leaderBoardModels.addAll(objects);
if (leaderBoardModels.size() > 3) {
st1UserName.setText(leaderBoardModels.get(0).getName());
st1Points.setText(leaderBoardModels.get(0).getPoints() + "");
Picasso.with(LeaderBoardActivity.this).load(leaderBoardModels.get(0).getPhoto()).into(st1_user_photo);
st2UserName.setText(leaderBoardModels.get(1).getName());
st2Points.setText(leaderBoardModels.get(1).getPoints() + "");
Picasso.with(LeaderBoardActivity.this).load(leaderBoardModels.get(1).getPhoto()).into(st2_user_photo);
st3UserName.setText(leaderBoardModels.get(2).getName());
Picasso.with(LeaderBoardActivity.this).load(leaderBoardModels.get(2).getPhoto()).into(st3_user_photo);
st3Points.setText(leaderBoardModels.get(2).getPoints() + "");
leaderBoardModels.clear();
leaderBoardModels.addAll(objects.subList(3, (objects.size() - 1)));
adapter.notifyDataSetChanged();
}
}
@Override
public void onSuccess(LeaderBoardModel leaderBoardModel, int source) {
}
@Override
public void onFail(Exception e) {
}
@Override
public void onFail(Object o, boolean isConnectToInternet) {
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment